Natal Chart Lab

Methodology

Everything on this site that can be calculated is calculated, not looked up or generated. This page explains each step and its limits.

1. Planet positions

We use Astronomy Engine (MIT license), which implements VSOP87 for the planets and a lunar theory derived from ELP/MPP02, with light-time and aberration corrections. For each body we compute the apparent geocentric position and convert it to longitude on the true ecliptic of date, which is the frame of the tropical zodiac: 0° Aries is the March equinox point of the birth year.

The lunar North Node and Black Moon Lilith are mean points from the polynomial series in Meeus, Astronomical Algorithms (ch. 47). Chiron is not yet included.

2. Accuracy check against NASA JPL Horizons

We compared our longitudes with the JPL Horizons observer ecliptic longitude of date (quantity 31) for 50 positions: ten bodies on 5 dates from 1955 to 2026. The largest difference was 19.5 arcseconds (0.0054°). A zodiac sign is 30° wide.

BodyLargest difference
Sun1.0″
Moon4.9″
Mercury4.1″
Venus19.5″
Mars1.6″
Jupiter3.8″
Saturn10.3″
Uranus4.6″
Neptune16.8″
Pluto2.9″

Comparison generated 2026-10-25 by scripts/validate-horizons.ts. Dates checked: 1955-03-12 06:00 UT; 1972-11-30 18:45 UT; 1990-07-04 16:00 UT; 2008-01-15 03:20 UT; 2026-10-25 12:00 UT.

This sample checks planetary longitudes, not every date, house cusp, retrograde station or shadow boundary. It does not validate astrological interpretations or imply NASA/JPL certification or endorsement.

Read Checking a Birth Chart Calculator Against JPL Horizons for the query settings, complete results and a Python example.

3. Birth time and place

Birthplaces come from GeoNames (cities over 15,000 people; © GeoNames, CC BY 4.0). Each city carries its IANA time zone, and the local birth time is converted to Universal Time with the time zone database built into the runtime, which includes historical daylight-saving rules and wartime time. If a time fell in a spring-forward gap we use the offset before the change; if it occurred twice in an autumn fall-back we use the first occurrence, and in both cases the result says so.

Without a birth time we calculate for local noon and omit the Ascendant, Midheaven and houses. Where the Moon (or another body) changed signs during your local birth date we show both signs and the exact switch time.

4. Ascendant, Midheaven and houses

From the UT instant we take Greenwich apparent sidereal time (Astronomy Engine), add the east longitude of the birthplace to get the right ascension of the meridian (RAMC), and use the true obliquity of the ecliptic to find the ecliptic degrees on the eastern horizon (Ascendant) and the meridian (Midheaven). Our tests confirm the Ascendant point has altitude 0° and lies east of the meridian for each test case.

Placidus cusps 11, 12, 2 and 3 are found by iterating until each cusp's right ascension divides its own diurnal or nocturnal semi-arc into thirds; the rest are opposite points. Placidus is undefined where cusp points never rise or set (beyond about ±66° latitude); there we fall back to Whole Sign houses and say so.

5. Aspects

Major aspects (conjunction, sextile, square, trine, opposition) with orbs of 8° when the Sun or Moon is involved and 6° otherwise, two degrees less for sextiles.

6. Retrograde dates and shadows

A station is the instant a planet's apparent longitude stops increasing (retrograde) or decreasing (direct). We sample each planet's motion daily (every two days for Jupiter to Pluto) and bisect each change of direction to the minute. The pre-shadow begins when the planet first reaches the degree of its coming direct station, and the post-shadow ends when it passes the degree of its retrograde station; both are found by bisection on longitude. The resulting table of every retrograde from Mercury to Pluto, 1950–2050 is free to reuse with attribution.

Download the retrograde dataset

922 computed retrograde intervals for 8 planets, Mercury through Pluto, with UTC station times, tropical zodiac positions and pre- and post-shadow dates. The table includes retrogrades beginning from 1950 through 2050; their direct stations and shadows can extend beyond those years. Generated 2026-10-25.

Download CSV · Download JSON

The fixed v1 release, generated 2026-10-25, is also available on Kaggle and Hugging Face, with field definitions, source details and file checksums.

Licensed under CC BY 4.0. Credit Natal Chart Lab, link to the methodology and license, and indicate changes. Times are rounded to the minute; this resolution does not establish one-minute accuracy.

7. Interpretations

Sign and house descriptions summarize the Western astrological tradition and are written by us. Astrology is a symbolic and cultural tradition. The planetary positions on this site are calculated with astronomical accuracy; the interpretations describe what astrologers associate with them and are not scientifically validated predictions about personality, relationships or the future.

How to cite

Natal Chart Lab (2026). Methodology. https://natalchartlab.com/methodology