Skip to content

How accurate are Horospire's planet positions?

Measured against NASA JPL's DE440 at one moment a day, 1900 to 2050. Version 1.0, 19 October 2026.

The Moon in seven positions along one arc across a black sky. The Moon in seven positions along one arc across a black sky.
Horospire's error against NASA JPL, body by body, in arcminutesFor each body a bar from the median error to the 95th percentile and a mark at the largest error, on a scale of 0 to 7 arcminutes. The same figures are in Table 1.01234567Sun0.54Moon6.51Mercury1.41Venus2.99Mars6.72Jupiter2.10Saturn3.00Uranus2.40Neptune1.54Pluto1.32
Figure 1. How far Horospire's engine is from NASA JPL, body by body, in arcminutes: each bar runs from the median error to the 95th percentile, the mark is the largest error found, and the figure at the right is that largest.

Version 1.0: 551,520 placements, one moment a day from 1 January 1900 to 31 December 2050, against JPL DE440s through Skyfield 1.55. Every figure is in summary.csv.

In short

From 1 January 1900 to 31 December 2050, Horospire's positions for the Sun and the planets are on average between 0.15 arcminutes (the Sun) and 0.76 (Saturn) from NASA JPL's, and the Moon's are 1.20 away. An arcminute is a sixtieth of a degree; a zodiac sign spans 1,800 of them.

About one placement in 3,600 lands in a different sign than JPL gives (153 of 551,520), and each time the body stood within a few arcminutes of the sign's edge. Two widely used engines, measured the same way, come much closer.

Accurate positions say nothing about whether astrology is true. This study measures the arithmetic, not the interpretation.

1. The question

How far are the planet positions Horospire computes from NASA JPL's DE440 ephemeris over 1900 to 2050, and how often does the difference change the sign, decan or degree a chart shows?

DE440 is the planetary ephemeris NASA's Jet Propulsion Laboratory published in 2021, fitted to ground-based and spacecraft observations1. It is what this study treats as where the planets were and will be. The site's own test, which holds the engine at 575 moments on every run of its test suite, is on Research and Method; this study is the full measurement behind it.

2. Method

One moment a day for 55,152 days gives 551,520 placements of ten bodies. Each is computed twice, by Horospire's engine and from DE440, and compared. The reference was checked against JPL's Horizons system directly at 15 instants for all ten bodies3: the 150 values agree to within 0.25 arcseconds.

The method at a glance.

ReferenceJPL DE440s, read through Skyfield 1.552.
BodiesThe Sun, the Moon and Mercury to Pluto; Mars to Pluto as the centres of mass of their systems, which is what DE440s carries.
Years1 January 1900 to 31 December 2050, the range the engine is checked for.
SampleOne moment a day, the hour stepping by seven and the minute by thirteen each day, so every hour of the day is visited.
TimeThe civil time a reader enters: before 1972 read as GMT (UT1), from 1972 as UTC.
PositionApparent geocentric ecliptic longitude on the true ecliptic and equinox of date: the tropical zodiac.
ErrorThe shortest angle between the two longitudes: its mean, median, 95th percentile and largest.
Engine measuredThe Sun by Jean Meeus, Astronomical Algorithms, chapter 25; the Moon by chapter 47, cut to its 13 largest terms6; Mercury to Saturn from Meeus's mean orbital elements, Uranus to Pluto from JPL's approximate elements7, each orbit solved by Kepler's equation and turned to the equinox of date, with the largest Jupiter and Saturn terms from Paul Schlyter8. It reads the civil time as given, with no Delta T. Its code is not published in this version.

3. Results

Table 1 gives each body's errors over all 55,152 moments. The largest fell on single days: 6.72 arcminutes for Mars on 5 June 2048 and 6.51 for the Moon on 25 November 1999.

Table 1. Horospire's engine against NASA JPL's DE440, in arcminutes, at one moment a day from 1900 to 2050.

BodyMean95 percent withinLargestDifferent sign
Sun0.150.350.545 of 55,152
Moon1.202.996.5133 of 55,152
Mercury0.420.821.4111 of 55,152
Venus0.430.882.9917 of 55,152
Mars0.602.106.7212 of 55,152
Jupiter0.511.172.1012 of 55,152
Saturn0.761.853.0021 of 55,152
Uranus0.751.842.4014 of 55,152
Neptune0.451.051.549 of 55,152
Pluto0.430.931.3219 of 55,152

The medians, the dates of the largest errors and the decan and degree counts are in summary.csv; every placement's error is in daily-errors.csv.gz.

4. What the error means for a chart

A different sign: 153 of 551,520 placements, about one in 3,600. Each time, JPL had the body within 4.6 arcminutes of the sign's edge for the Moon, 2.3 for Mars and 1.6 or less for the others.

A different decan or degree: a different decan in 477 placements (0.09 percent); a different whole degree in 5,150 (0.93 percent), most often the Moon's (1,049 of its 55,152 days). A chart that prints degrees and minutes will often differ from a professional program in the minutes, and about once in a hundred placements in the degree.

Against the birth time: the Moon moves about half an arcminute for every minute of clock. Its mean error here equals about 2 minutes of birth time, and its largest about 12. A birth time rounded to the nearest five minutes can already move the Moon by more than its mean error, and the Ascendant by about half a degree.

The reading's sign table: for a birth inside the house's table of sign changes by date (Jupiter from 1920, Saturn from 1921, Mercury, Venus and Mars from 1930, each to its last change in 2026), the reading takes Mercury to Saturn from that table rather than from the engine. Each of its 3,580 dates is a real crossing in JPL: 2,845 fall on JPL's date in universal time, 731 a day earlier and 4 a day later. On none of the 182,890 planet-days it covers does the table differ from JPL at noon universal time on a day the reading does not mark as a change of sign.

Table 2. Three engines against NASA JPL's DE440 on the same 551,520 placements, in arcseconds.

EngineSun, meanMoon, meanPlanets, meanLargestDifferent sign
Horospire's engine (Meeus series, as of dfb56ab71)8.8471.825.3 to 45.4403 (Mars)153
astronomy-engine 2.1.19 (Don Cross, MIT)0.472.101.41 to 9.2120.6 (Venus)14
Swiss Ephemeris 2.10.03, Moshier mode (no ephemeris files)0.030.720.04 to 0.275.04 (the Moon)0

The same moments, reference and method for all three. libraries.csv names each version and the exact call. The Swiss Ephemeris row is its built-in Moshier mode, run with no ephemeris files installed, not its compressed JPL files.

5. Other software, measured the same way

Table 2 puts two engines that other software is built on through the same method.

astronomy-engine, Don Cross's MIT library, says it is "accurate to within ±1 arcminute"4. Measured here, its largest error is 0.34 arcminutes (Venus).

The Swiss Ephemeris, Astrodienst's library, says its compressed files agree "with the JPL Ephemeris to 1 milli-arcsecond (0.001")", and that its built-in Moshier mode's "deviation from JPL is below 1 arc second with the planets and a few arc seconds with the Moon"5. This study ran Moshier mode: the Moon's largest error is 5.0 arcseconds, and the planets' largest 3.0 (Neptune, at a single moment on 30 January 2003; 1.1 or less otherwise).

Horospire's engine is the least precise of the three. Its mean errors run 3 times (Neptune) to 34 times (the Moon) those of astronomy-engine, and about 100 to 600 times those of the Swiss Ephemeris in Moshier mode. In a chart that is the difference between a fraction of an arcminute and a fraction of an arcsecond, beside a sign of 1,800 arcminutes.

6. What accuracy does not show, and the limits

Accurate positions say nothing about whether astrology is true. The study measures where the planets are computed to be, not what a chart is said to mean.

It measures longitude only, as seen from the Earth's centre. For someone standing on the Earth the Moon can sit up to about a degree away (parallax); astrology programs conventionally use the geocentric Moon, and so does this study.

It does not measure the Ascendant, the Midheaven or the houses, which follow the birth time and place; the lunar nodes or Lilith, which are mean elements by definition; or any date outside 1900 to 2050.

A daily sample is still a sample. The means, medians and percentiles are steady; each largest error is the largest found, and a denser sample could find a larger one.

Delta T after today is a prediction, and the programs' predictions differ by about three seconds by 2050, about two arcseconds of the Moon. The sign table is counted in universal days, while a birth date is local, so a time zone can move a crossing to the neighbouring date.

The figures belong to the engine as of commit dfb56ab71. A change to the engine that moves a figure will be a new version, with its own folder.

Downloads and references

Downloads, version 1.0

References

  1. R. S. Park, W. M. Folkner, J. G. Williams and D. H. Boggs, The JPL Planetary and Lunar Ephemerides DE440 and DE441, The Astronomical Journal 161, 105 (2021). doi.org
  2. B. Rhodes, Skyfield, version 1.55. rhodesmill.org
  3. NASA JPL, the Horizons system and its API, which uses DE441. ssd-api.jpl.nasa.gov
  4. D. Cross, Astronomy Engine, version 2.1.19, its README. github.com
  5. Astrodienst, Swiss Ephemeris documentation, section 2.1.1, release 2.10.03. astro.com
  6. Jean Meeus, Astronomical Algorithms, 2nd edition (Willmann-Bell, 1998).
  7. E. M. Standish, Keplerian Elements for Approximate Positions of the Major Planets, NASA JPL. ssd.jpl.nasa.gov
  8. Paul Schlyter, How to Compute Planetary Positions. stjarnhimlen.se

7. Reproduce and cite

Every figure here can be rebuilt. The downloads hold the data and the scripts, and README.txt gives the recipe: reference.py computes the reference from DE440s, two scripts run astronomy-engine and the Swiss Ephemeris, and summarise.py writes summary.csv, libraries.csv and daily-errors.csv.gz, which then match the published files byte for byte. Horospire's engine is not published in this version, so house_from_errors.py rebuilds its values from the published errors, and the summary can still be checked. SHA256SUMS holds a checksum for every file.

The data is free to reuse under CC BY 4.0 and the scripts under MIT. To cite it:

Horospire (2026). Horospire planet positions against NASA JPL DE440, 1900 to 2050 (version 1.0) [Data set]. https://horospire.com/research/ephemeris-accuracy

The change log.

VersionMeasuredWhat changed
1.019 October 2026First publication. The 575-moment test in the site's suite reads time the same way from 18 October 2026, which moved three of its figures by 0.01 to 0.02 arcminutes.
It measures
Where the engine puts each body, against NASA JPL
How often a sign, decan or degree changes
The reading's sign table, against JPL's crossings
Two other engines, the same way
It does not measure
Whether astrology is true
What a placement is said to mean
The houses and the angles
Any date before 1900 or after 2050