Methodology
This page documents how the calculator works in enough detail that a competent technical reader can verify it.
Julian Day Number
Every astronomical calculation on the site begins by converting the user's civil birth date and time into a Julian Day Number (JD). The JD is a continuous count of days, including fractional days, since noon on 1 January 4713 BCE in the proleptic Julian calendar. It exists because the civil calendar is awful for arithmetic — months have unequal lengths, leap years follow a complicated rule, calendar reforms have moved dates around historically — whereas the JD is a single floating-point number that astronomers can subtract, add, and feed directly into orbital theory. We compute the JD using the standard algorithm given in Meeus, then add the fractional day corresponding to the birth time in Universal Time. From there, every subsequent calculation — heliocentric planetary positions, lunar position, ascendant, house cusps — operates on the JD rather than on the civil date. This means leap years, century rules, the 1582 Gregorian reform, and historical timezone changes are all handled at one well-tested boundary rather than scattered through the code.
VSOP87 — planetary positions
Heliocentric positions of the Sun and the eight major planets are computed from the truncated VSOP87 analytical theory of Bretagnon & Francou (1988), published in Astronomy & Astrophysics 202. VSOP87 expresses each planet's heliocentric ecliptic longitude, latitude, and radius vector as a sum of periodic terms (sines and cosines) in time. The full series contains tens of thousands of terms; for natal-astrology accuracy we use the truncated version that retains all terms above an amplitude threshold producing an accuracy of roughly one arcsecond over the period 1900-2100. Heliocentric coordinates are then converted to geocentric ecliptic longitudes referenced to the equinox of date, which is what astrology requires.
ELP-2000/82 — the Moon
The Moon is calculated from an implementation of the ELP-2000/82B lunar series of Chapront-Touzé and Chapront. The Moon's motion is unusually complex (the Sun and Earth both perturb it strongly), so we retain a deeper set of perturbation terms than for the planets — enough to keep accuracy comfortably below one arcminute across the natal-astrology window. The known practical limit comes not from the theory but from the input: a birth recorded only to the nearest hour can leave the Moon ambiguous near a sign cusp, since the Moon moves about 13° per day, or roughly half a degree per hour. When a birth time is uncertain and the Moon is near 29° or 0° of any sign, we recommend confirming the birth time before treating the Moon sign as settled.
The Ascendant
The ascendant is the degree of the ecliptic rising on the eastern horizon at the moment and place of birth. It is calculated from the local sidereal time (derived from the JD and the birth longitude) and the obliquity of the ecliptic. Geometrically, the ascendant is the intersection of the ecliptic with the local horizon — the point where the band of the zodiac crosses the eastern edge of the sky. Because the entire celestial sphere rotates once every twenty-three hours and fifty-six minutes, the ascendant moves through the zodiac at roughly one degree every four minutes; this is why birth time matters so intensely. A four-minute error shifts the ascendant by a degree, which is far larger than any error in the underlying astronomy.
Placidus and other house systems
Our default house system is Placidus, devised by Placidus de Titis in the seventeenth century and the most widely used system in modern Western astrology. Placidus trisects the diurnal arc — the time taken for a degree of the ecliptic to rise from the IC to the ascendant, and again from the ascendant to the MC — to place the intermediate house cusps. The mathematics is iterative: the cusp of the eleventh house, for example, is the degree that takes one third of the diurnal arc to ascend from the MC. Placidus is mathematically beautiful but degenerates at extreme latitudes (above roughly 66°), where some degrees never rise above the horizon at all and the houses become undefined. For users born within the Arctic or Antarctic circles we recommend switching to Whole Sign houses, which never degenerate. We also support Koch, Equal, and Porphyry as alternative systems.
Lahiri ayanamsa (Vedic mode)
For sidereal / Vedic mode we apply the Lahiri (Chitrapaksha) ayanamsa, the Indian government standard published by the Calendar Reform Committee of 1955. The Lahiri ayanamsa is defined by placing the star Spica (Chitra) at exactly 0° Libra in the sidereal zodiac. As of 2026 the Lahiri offset is approximately 24°10′. We compute the precise Lahiri value for the birth date using the published formula and subtract it from each tropical position to produce the sidereal longitude. Other ayanamsas (Raman, Krishnamurti, Fagan-Bradley) differ from Lahiri by less than a degree; we have chosen to support only Lahiri to keep the interface simple.
Aspect orbs
Default aspect orbs: 8° for conjunctions and oppositions involving the Sun or Moon; 7° for those involving other planets; 6° for trines and squares; 4° for sextiles. These orbs are conservative — wide enough to capture the aspects an astrologer would actually read, narrow enough to keep the chart from being a tangle of weak relationships. Aspects exact within 1° are highlighted as partile and rendered with a thicker line on the wheel. Minor aspects (semi-square, sesquiquadrate, quincunx, semi-sextile) use tighter orbs of 2-3° and appear in the aspect table but not on the wheel.
Vedic implementation
Vedic mode applies the Lahiri ayanamsa to all positions, sets the default house system to Whole Sign, and computes the natal Moon's nakshatra and starting Vimshottari mahadasha. Dasha periods follow the standard ratios (Ketu 7, Venus 20, Sun 6, Moon 10, Mars 7, Rahu 18, Jupiter 16, Saturn 19, Mercury 17 years).
Time zones
Birth times are interpreted in the historical local time zone of the birth city, including DST and political shifts. The time zone database is the IANA tzdata, embedded with the calculator and updated periodically.
Accuracy limitations
Birth time uncertainty is the dominant practical error source — far larger than any error in the ephemeris.
Privacy
All calculations happen in your browser. See the privacy policy for the full disclosure. Full citations for all referenced works are on the sources page. For the human-readable account of why we built the calculator this way, see the about page.