How readings are made
What we calculate, what we write, where AI is involved, and how we check the result.
Calculation
Planet positions come from Astronomy Engine, an open-source astronomy library, run on our own server. Positions are geocentric ecliptic longitudes of date. We check them against published reference charts in automated tests.
Birthplaces are converted to coordinates, and local birth times to universal time using the historical time-zone rules for that place and date, including daylight saving time. When a local time happened twice, because the clocks went back, we ask which one you mean.
Astrological conventions
Western tropical zodiac, measured from the March equinox. Whole-sign houses. Major aspects only: conjunction, sextile, square, trine, and opposition, with stated orbs. Synastry uses tighter orbs and leaves out contacts between slow outer planets, which everyone born in the same years shares.
Without a birth time, we leave out the Rising sign, Midheaven, and houses rather than guess them, and we tell you when the Moon changed sign that day.
Numerology
Numbers use the Pythagorean system: A is 1 through I at 9, then J starts again at 1. Accents are removed and anything that isn't a letter is ignored. A, E, I, O, and U are always vowels. Y counts as a vowel only in a name word with no other vowel.
The Life Path reduces the birth month, day, and year separately, then adds and reduces them again. Master numbers 11, 22, and 33 are kept. Expression uses every letter of the full birth name, Soul Urge the vowels, Personality the consonants, and Maturity adds the Life Path and Expression. The Personal Year adds the birth month and day to the current year.
Name numbers are only shown when a full birth name is given. Every number named in a reading is checked against the calculation before the reading is saved.
How the writing is made
Each reading is assembled from a library of interpretations we wrote for every placement, aspect, and house, following traditional meanings. The template for each product decides which placements are read in which chapter.
When AI assistance is turned on, a language model may rewrite that draft so it reads more naturally. It's given only the calculated chart and the draft. It's told not to add placements, dates, predictions, or scores.
How every reading is checked
Before a reading is saved, an automated check compares every sign and house it mentions against the calculated chart, and rejects claims that need a birth time when there isn't one. It also rejects language that promises events, relationships, health outcomes, or money. If an AI rewrite fails the check, we use the original draft.
A reading is generated once and saved. Opening it again doesn't rewrite it.
See a full sample reading.