How accurate is NovaOracles?
On four dates from 1981 to 2027, our positions for the Sun and the planets agree with NASA JPL Horizons to within 3.6″, and the Moon to within 4.4″. Eclipse contacts land within 6 seconds of NASA's elements, and sunrise, sunset, moonrise and moonset within 0.6 minutes of the US Naval Observatory.
Every engine value in the tables below is computed, when this page is built, by the same code the tools run. The reference values are published figures from the sources named with each table. A build check fails if any row leaves the tolerance stated on this page.
How the engine works
The planets come from VSOP87, the planetary theory of the Bureau des Longitudes in Paris, in a truncated form. The Moon comes from the lunar theory in Jean Meeus's Astronomical Algorithms (chapter 47, based on ELP-2000/82), and Pluto from Meeus chapter 37, which is valid from 1885 to 2099.
Positions are apparent. The engine corrects for the time light takes to reach us and for aberration, then applies nutation (IAU 1980), so longitudes refer to the true equinox of the date, the frame astrologers use. Houses come from the local sidereal time and the true obliquity of the ecliptic.
Clocks run on Universal Time, the planets on Terrestrial Time. The gap between the two, Delta T, is about 69 seconds today; the engine uses the Espenak and Meeus formulas up to 2005 and a fit to measured IERS values after that. All of it is plain TypeScript that runs in your browser or on our server, with no outside service.
Planet positions vs NASA JPL Horizons
Apparent geocentric ecliptic longitude, true equinox of date. JPL values come from Horizons (ephemeris DE441), fetched on 28 September 2026. Full values for Jun 12, 1981, 11:30 UT, then the differences on three more dates.
| Body | NovaOracles | JPL Horizons | Difference |
|---|---|---|---|
| Sun | 81.40002° | 81.40002° | -0.0″ |
| Moon | 204.84528° | 204.84458° | +2.5″ |
| Mercury | 94.87966° | 94.87971° | -0.2″ |
| Venus | 98.81782° | 98.81783° | -0.0″ |
| Mars | 65.15994° | 65.15995° | -0.0″ |
| Jupiter | 180.81366° | 180.81364° | +0.1″ |
| Saturn | 183.04235° | 183.04233° | +0.1″ |
| Uranus | 237.13133° | 237.13122° | +0.4″ |
| Neptune | 263.54236° | 263.54227° | +0.3″ |
| Pluto | 201.63701° | 201.63600° | +3.6″ |
Difference from JPL on other dates, in arcseconds
| Body | Jan 1, 2000, 12:00 UT | Aug 28, 2026, 00:00 UT | Aug 2, 2027, 10:00 UT |
|---|---|---|---|
| Sun | +0.0″ | +0.2″ | +0.2″ |
| Moon | -0.2″ | -4.4″ | +2.5″ |
| Mercury | +0.0″ | +0.2″ | +0.2″ |
| Venus | +0.2″ | +0.2″ | +0.2″ |
| Mars | +0.1″ | +0.1″ | +0.1″ |
| Jupiter | +0.2″ | +0.3″ | +0.3″ |
| Saturn | +0.1″ | +0.2″ | +0.2″ |
| Uranus | +0.3″ | -1.2″ | -1.2″ |
| Neptune | +0.6″ | +1.6″ | +1.6″ |
| Pluto | +2.0″ | -1.8″ | -1.9″ |
Ascendant and houses vs Swiss Ephemeris
A birth on 15 June 1990 at 12:30 UT in Istanbul, Placidus houses. Reference: Swiss Ephemeris 2.10, a library widely used in astrology software.
| NovaOracles | Swiss Ephemeris | Difference | |
|---|---|---|---|
| Ascendant | 203.68166° | 203.68168° | -0.0″ |
| Midheaven | 117.92004° | 117.92006° | -0.1″ |
| Cusp 2 | 231.41698° | 231.41699° | -0.0″ |
| Cusp 3 | 263.28769° | 263.28771° | -0.1″ |
| Cusp 5 | 331.23257° | 331.23258° | -0.0″ |
| Cusp 6 | 0.00911° | 0.00912° | -0.0″ |
| Cusp 8 | 51.41698° | 51.41699° | -0.0″ |
| Cusp 9 | 83.28769° | 83.28771° | -0.1″ |
| Cusp 11 | 151.23257° | 151.23258° | -0.0″ |
| Cusp 12 | 180.00911° | 180.00912° | -0.0″ |
Solar eclipses vs NASA
Gamma (how close the axis of the Moon's shadow passes to the center of the Earth), magnitude and the longest central phase, against NASA's Five Millennium Canon of Solar Eclipses by Espenak and Meeus.
| Eclipse | Gamma | Magnitude | Longest central phase |
|---|---|---|---|
| Apr 8, 2024 | 0.3433 / 0.3431 | 1.0565 / 1.0566 | 268 s / 268 s |
| Aug 12, 2026 | 0.8978 / 0.8977 | 1.0386 / 1.0386 | 138 s / 138 s |
| Aug 2, 2027 | 0.1421 / 0.1421 | 1.0790 / 1.0790 | 383 s / 383 s |
Each cell: ours, then NASA's.
2 August 2027: local contacts vs NASA's elements
Contact times for four cities in the path of totality. Ours come from our engine; the reference is reduced from NASA's published Besselian elements with the same Delta T, so the comparison tests positions and geometry alone. Our times run four to five seconds early, a known effect of the truncated lunar theory.
| City | First contact | Totality begins | Totality ends | Last contact |
|---|---|---|---|---|
| Cádiz | 07:40:4107:40:45-3.8 s | 08:45:2108:45:25-3.5 s | 08:48:1408:48:19-4.4 s | 09:59:3109:59:35-4.0 s |
| Tangier | 07:40:3107:40:35-3.9 s | 08:44:3708:44:41-3.9 s | 08:49:2808:49:32-4.1 s | 10:00:1910:00:23-4.1 s |
| Luxor | 08:40:1108:40:16-5.1 s | 10:02:0210:02:07-4.5 s | 10:08:2210:08:27-4.8 s | 11:26:3011:26:33-4.0 s |
| Jeddah | 09:00:1709:00:22-5.1 s | 10:22:1210:22:17-4.8 s | 10:28:0710:28:12-4.2 s | 11:43:3711:43:41-3.7 s |
Each cell: our time, NASA's time and the difference, all in UT.
Sunrise, sunset, moonrise and moonset vs USNO
Times in UT for the UT date, against the Astronomical Applications service of the US Naval Observatory, which publishes them to the minute. Standard refraction, sea level, no terrain. Each cell shows our time, then USNO's.
| Place | Date | Rise | Set |
|---|---|---|---|
| Sun, London | Sep 27, 2026 | 05:55 / 05:55 | 17:48 / 17:47 |
| Sun, Istanbul | Dec 21, 2026 | 05:25 / 05:25 | 14:39 / 14:39 |
| Sun, Sofia | Mar 20, 2027 | 04:31 / 04:31 | 16:38 / 16:38 |
| Sun, Berlin | Oct 25, 2026 | 05:50 / 05:50 | 15:50 / 15:50 |
| Sun, Paris | Jan 15, 2027 | 07:39 / 07:39 | 16:21 / 16:21 |
| Sun, Tromsø | Dec 21, 2026 | none | none |
| Moon, London | Sep 27, 2026 | 17:41 / 17:41 | 06:52 / 06:52 |
| Moon, Istanbul | Nov 3, 2026 | 23:24 / 23:24 | 12:04 / 12:04 |
| Moon, Sofia | Mar 20, 2027 | 14:32 / 14:32 | 03:20 / 03:20 |
| Moon, Berlin | Jun 10, 2027 | 09:40 / 09:40 | 23:06 / 23:06 |
| Moon, Paris | Dec 24, 2026 | 16:14 / 16:14 | 08:29 / 08:30 |
| Moon, Sydney | Aug 2, 2027 | 21:10 / 21:10 | 07:01 / 07:01 |
Lahiri ayanamsa vs Swiss Ephemeris
The angle our sidereal zodiac subtracts, against its definition (23°15′00.658″ on 21 March 1956) and published Swiss Ephemeris values for 1 January.
| Date | NovaOracles | Reference | Difference |
|---|---|---|---|
| Mar 21, 1956 | 23.25018° | 23.25018° | +0.0″ |
| Jan 1, 1950 | 23.15777° | 23.15778° | -0.0″ |
| Jan 1, 1980 | 23.57551° | 23.57556° | -0.2″ |
| Jan 1, 2000 | 23.85321° | 23.85333° | -0.5″ |
| Jan 1, 2020 | 24.13190° | 24.13194° | -0.2″ |
| Jan 1, 2025 | 24.20642° | 24.20639° | +0.1″ |
Tolerances
These are the limits the build check enforces. They are wider than the differences in the tables on purpose, so normal rounding never breaks a release; the tables show what we actually get.
- Sun, Moon and planets vs JPL: ±10″
- Ascendant, Midheaven and cusps vs Swiss Ephemeris: ±60″
- Eclipse contacts: ±8 s; gamma: ±0.002; magnitude: ±0.003; longest central phase: ±5 s
- Sunrise and sunset: ±2 min; moonrise and moonset: ±3 min
- Ayanamsa: ±2″
Where the limits are
- The truncated lunar theory is good to a few arcseconds. That is far below anything a chart shows, but it is why our eclipse times run a few seconds early.
- Pluto's theory is valid from 1885 to 2099, and the birth chart accepts years from 1900 to 2099.
- Delta T is measured for the past but only estimated for the future. Decades ahead it can be off by a minute or more, which moves the Moon by about half an arcminute.
- Rise and set times assume a flat horizon at sea level. Hills, buildings and the weather can move what you see by a few minutes.
- In a birth chart the largest error almost never comes from the ephemeris. It comes from the birth time and the time zone rule, which is why we print how the time was read under every chart.
Check it yourself
The reference values and the comparison live in our code as regression checks that run before every release. You can repeat any row: ask JPL Horizons for an observer table with the geocenter as the site and quantity 31, or open the USNO and NASA pages below.