Ephemeris method, sources and validation
These are approximate astronomical calculations of apparent motion, not an exact natal chart and not evidence for astrology's personality or predictive claims.
Source and supported dates
We self-host Don Cross's Astronomy Engine 2.1.19 (MIT licensed). It uses truncated VSOP87 models for the major planets and numerical gravitational integration for Pluto. Its upstream project tests against USNO NOVAS, JPL Horizons and other ephemerides, with a target positional accuracy of about ±1 arcminute. That positional target is not a guaranteed uncertainty in a derivative or station time. Included license.
This site supports Gregorian dates from 1900-01-01 through 2099-12-31. The birthday form additionally rejects future dates. Mercury, Venus, Mars, Jupiter, Saturn, Uranus, Neptune and Pluto are included; Pluto is a dwarf planet. No external astronomy API, PHP, database or Node runtime is needed for the birthday calculation, and the date remains in your browser.
What is calculated
For each body, Astronomy Engine's GeoVector(body, time, true) supplies a geocentric vector corrected for light travel time and aberration. Ecliptic(vector) converts it to true ecliptic-of-date longitude. We take a wrap-safe central difference using positions three hours before and after the reference time (a six-hour interval). Negative speed in degrees per day is retrograde; positive speed is direct. Retrograde is apparent motion viewed from Earth, not a planet physically reversing its orbit.
The reference is 12:00 UTC on the entered date, not a known birth time. Historical civil times before UTC existed are treated using the library's UT convention and ΔT model. Birthplace is not required for this geocentric direction calculation; it is needed, with actual birth time, for a full natal chart's angles and houses.
Unknown time, time zone and stations
An entered local birthday with unknown time and zone can correspond to UTC times from the previous day at 10:00 through the following day at 12:00 (UTC+14 through UTC−12). We sample this 50-hour window hourly, including the endpoints. If speed changes sign or any sampled speed comes within 0.003 degrees/day of zero, the date-only result is “Near station / uncertain.” Uncertain bodies are excluded from the confirmed-retrograde summary. A body moving directly is shown as “Direct”; no list is invented when none are retrograde.
The slow-motion threshold is a conservative heuristic, not a statistical error bound. Hourly sampling and a compact ephemeris cannot guarantee an exact station instant. Use your actual universal birth time and a high-precision independent ephemeris near a station. We do not calculate houses, ascendants, aspects or exact birth charts. Symbolic sun-sign date bands and broad generational cohorts elsewhere on the site are not derived from this ephemeris.
Independent NASA/JPL validation
Retained records come from NASA/JPL Horizons, not Astronomy Engine: observer tables, Earth center 500@399, quantity 31 (apparent ecliptic-of-date longitude), six-hour steps. See the Horizons manual and API documentation. Horizons includes additional gravitational light-deflection corrections; it is not identical to Astronomy Engine's model.
Checks cover all eight bodies throughout 2024, Venus throughout 2023, Mars throughout 2022, and January 1–4 samples in 1900, 1950, 2000 and 2099. Across 15,058 positions and 14,974 six-hour-sampled central differences, the largest observed longitude difference was 0.245 arcminutes and speed difference was 0.000807 degrees/day. This validates the selected samples, not every possible birthday.
All sampled motion directions agreed outside the 0.003 degrees/day warning band. We also checked 20 station boundaries against zero-speed crossings interpolated from Horizons records. The largest observed station difference was 1.647 hours. These interpolations are approximate, not published exact station timestamps. Every listed station date correctly produces an uncertain date-only result.
Checked interior dates
- Mercury: 2024-04-15, retrograde.
- Mercury: 2024-05-15, direct.
- Venus: 2023-08-15, retrograde.
- Venus: 2023-10-15, direct.
- Mars: 2022-11-15, retrograde.
- Mars: 2024-02-15, direct.
- Jupiter: 2024-11-15, retrograde.
- Saturn: 2024-08-15, retrograde.
- Uranus: 2024-10-15, retrograde.
- Neptune: 2024-09-15, retrograde.
- Pluto: 2024-07-15, retrograde.
Checked stationary boundaries (UTC dates)
| Body | UTC date | Transition | Difference |
|---|---|---|---|
| Jupiter | 2024-10-09 | direct to retrograde | 0.091 hours |
| Mars | 2022-10-30 | direct to retrograde | 0.001 hours |
| Mars | 2024-12-06 | direct to retrograde | 0.019 hours |
| Mercury | 2024-01-02 | retrograde to direct | 0.029 hours |
| Mercury | 2024-04-01 | direct to retrograde | 0.035 hours |
| Mercury | 2024-04-25 | retrograde to direct | 0.042 hours |
| Mercury | 2024-08-05 | direct to retrograde | 0.066 hours |
| Mercury | 2024-08-28 | retrograde to direct | 0.081 hours |
| Mercury | 2024-11-26 | direct to retrograde | 0.013 hours |
| Mercury | 2024-12-15 | retrograde to direct | 0.005 hours |
| Neptune | 2024-07-02 | direct to retrograde | 0.241 hours |
| Neptune | 2024-12-07 | retrograde to direct | 0.089 hours |
| Pluto | 2024-05-02 | direct to retrograde | 0.346 hours |
| Pluto | 2024-10-11 | retrograde to direct | 1.647 hours |
| Saturn | 2024-06-29 | direct to retrograde | 0.048 hours |
| Saturn | 2024-11-15 | retrograde to direct | 0.108 hours |
| Uranus | 2024-01-27 | retrograde to direct | 0.101 hours |
| Uranus | 2024-09-01 | direct to retrograde | 0.155 hours |
| Venus | 2023-07-23 | direct to retrograde | 0.006 hours |
| Venus | 2023-09-04 | retrograde to direct | 0.014 hours |
All original Horizons response headers, settings and longitude samples are retained in the development project's tools/fixtures/horizons directory. Run node tools/fetch-horizons.mjs to obtain missing records, node tools/validate-retrogrades.mjs to repeat the offline checks, and node tools/build.mjs to regenerate this page. Those commands are development tools only; the Hostinger ZIP requires none of them.