Accuracy Revisited
Mark Pottenger
I have written about accuracy before, both in the CCRS Horoscope Program manual and in an article in Astrological Research Methods Volume 1. Here is a copy of a key table from my Astrological Research Methods article:
Table 1
Body 
Daily 
Orbital Period 
Motion in 
Motion in 1 TimeSecond 
Minimum 


Motion 
EDays 
EYears 
1 Minute 
Degrees 
Arcseconds 
Digits 
Sun 
0.985610 
365.26 
1.000 
0.00068445 
0.0000114075 
0.0410671 
8 
Moon 
13.176397 
27.32 
0.075 
0.00915028 
0.0001525046 
0.5490165 
7 
Mercury 
4.092343 
87.97 
0.241 
0.00284190 
0.0000473651 
0.1705143 
8 
Venus 
1.602139 
224.70 
0.615 
0.00111260 
0.0000185433 
0.0667558 
8 
Mars 
0.524002 
687.02 
1.881 
0.00036389 
0.0000060648 
0.0218334 
9 
Ceres 
0.214018 
1682.10 
4.605 
0.00014862 
0.0000024771 
0.0089174 
9 
Pallas 
0.213639 
1685.09 
4.614 
0.00014836 
0.0000024727 
0.0089016 
9 
Juno 
0.225976 
1593.09 
4.362 
0.00015693 
0.0000026155 
0.0094157 
9 
Vesta 
0.271615 
1325.41 
3.629 
0.00018862 
0.0000031437 
0.0113173 
9 
Jupiter 
0.083092 
4332.57 
11.862 
0.00005770 
0.0000009617 
0.0034622 
10 
Saturn 
0.033506 
10744.33 
29.416 
0.00002327 
0.0000003878 
0.0013961 
10 
Chiron 
0.019333 
18620.74 
50.981 
0.00001343 
0.0000002238 
0.0008056 
10 
Uranus 
0.011683 
30813.26 
84.362 
0.00000811 
0.0000001352 
0.0004868 
10 
Neptune 
0.005956 
60439.39 
165.474 
0.00000414 
0.0000000689 
0.0002482 
11 
Pluto 
0.003924 
91746.39 
251.188 
0.00000272 
0.0000000454 
0.0001635 
11 
The table shows geocentric motion for the Moon and heliocentric for all other bodies. The value for the Moon is taken from the Explanatory Supplement. All other values are from osculating elements in the 1993 volume of Ephemerides of Minor Planets. Note that these figures are osculating values for a particular date and that during an orbit a body can go slower or faster than this value. This means most of the decimals in these tables are not meaningful because the actual motions cover ranges around the numbers given. (In fact, the meaningless decimals in the tables illustrate the point that you can't trust all numbers produced by computer programs.) Dividing 360 degrees by the daily motion gives the orbital period in earth days. Dividing this by 365.25 gives the period in (Julian) earth years. Dividing the daily motion by 1440 (24 hours per day * 60 minutes per hour) gives motion in degrees during one minute of time. Dividing the daily motion by 86400 (24 hours * 60 minutes * 60 seconds per minute) gives motion in degrees during one second of time. Multiplying this by 3600 gives motion in seconds of arc in one second of clock time. The last column gives the minimum number of digits required to describe a position (zodiacal or celestial longitude) with sufficient accuracy to hope for times accurate to a second involving that body. This number includes 3 digits to represent the whole degrees of the longitude (2 digits only gets to midCancer) plus enough digits to reach the first significant digit to the right of the decimal in the degrees in one second of motion column. To really be any good, more than the first significant digit should be used, but this shows what precision it takes for a minimum to detect a digit change. If fewer digits than the minimum are used, the motion in one second of time simply will not be detected and the program will only detect events on a time scale sufficient to cause a change of at least one in the least significant digit used. This also means that times for longitudes in Aries through early Cancer (0–99 degrees absolute longitude) can be more accurate than times for longitudes from midCancer on (100–359 degrees) because an extra floating point digit is available (if longitudes are kept in degrees). A typical singleprecision floating point number on many home computers has 7 significant digits (24 bits). With such numbers, the only body for which seconds of time in lists of events might almost be believed is the Moon, and even that is only getting one significant digit of the amount the longitude would change in a second of time. Since I only keep longitudes in single precision in the 1992 release of the CCRS Horoscope Program even though many calculations are done double precision (53 bits = 15 digits), this illustrates why I warn people not to take seconds of time seriously in most lists of transiting events even though I show seconds because they can be used with transiting angles (cusps). A program that keeps everything in double precision floating point would have sufficient precision to represent a body's change in longitude in one second of time. However, even if there are enough digits, there are other issues of the accuracy of the calculations that fill in those digits.
The earliest microcomputer versions of the CCRS Horoscope Program were done entirely in double precision (14 digits) on our S100 computer with a special hardware math board. When I converted the program to Microsoft BASIC in 1983, I made as much of it as possible single precision to get acceptable speed out of the typical hardware then available.
Having done the analysis for the Astrological Research Methods article, I said I need to go back to full double precision in my next rewrite of the program. Too many features now available in the program suffer from the use of single precision to warrant using it in light of the power of current microcomputer hardware (several hundred times faster than in 1983). Partly due to a question about the accuracy of timed hits printed by the CCRS program, I have finally done some of the needed program rewriting and will share some points learned along the way.
For several years up through 1983, the standard ephemerides used internationally by the astronomical community were based on Sun, Mercury, Venus and Mars positions from formulae in Volume 6 of the Astronomical Papers, outer planet positions from Volume 12 of the Astronomical Papers, and Moon positions from formulae in the Improved Lunar Ephemeris. Volume 22 is the same kind of formula as Volume 12, but it was published about 15 years later and has better values for Pluto. The standard ephemerides used internationally by the astronomical community were changed in 1984 to use positions (DE 200) calculated at JPL (the Jet Propulsion Laboratory) with a numerical integration including the Sun, Moon, planets, five asteroids, and effects of lunar libration and relativity. The formulae by Bretagnon and Simon, which some programs might use, are an analytical fit to JPL’s DE 102. Unfortunately for any small computer, the JPL ephemerides take many megabytes of storage per century and only go back to around 1500 B.C. The CCRS Horoscope Program uses full Volume 6 Sun & inner planets, truncated Improved Lunar Ephemeris Moon, outer planets from an integration based on Volume 22, and asteroids from my own integration programs and orbital elements from astronomical sources. Several years ago ACS, the standard for accuracy in the astrological community, switched to JPL DE 200 as the basis for their ephemerides (in the time range it covers). In the summer of 1997, JPL released a new generation of ephemerides: DE 405 (600 years) and DE 406 (6000 years). The new JPL ephemerides change the positions of Neptune and Pluto enough to be quite noticeable in timed hits.
Astronomical ephemerides are the result of a mixture of theories of celestial mechanics and statistical use of actual observations. The JPL ephemerides started years ago with positions and velocities for Sun, Moon, planets and several asteroids for a particular date and time determined by some previous generation of astronomical theories. Current versions use their own earlier work as starting values. They calculate expected positions and velocities forward and backward from the starting epoch, using agreedon astronomical constants for speed of light, planetary masses, etc. to plug into equations for gravity, relativity, libration, etc. The resulting ephemerides are compared to tens of thousands of astronomical observations (historical optical, photographic, transit circle, radar, laser, satellite, spacecraft flyby, etc.) using a weighted statistical evaluation. The fit to observations is used to adjust equations, “constants”, masses, positions and velocities until the best possible fit is achieved. The space program has reduced many of the observational uncertainties, especially for planets probes have flown by, but very little observational data outside this century is used. For most astronomers, accurate positions for present and future are of more concern than longterm historical ephemerides. It is worth remembering that Pluto has only traveled about 1/3 of its orbit since it was discovered, so there is room there for a lot more observations. Basically, try to remember that astronomers’ ephemerides are the result of a lot of effort to get a statistical best fit, not stone tablets handed down by God. Astrologers’ ephemerides all trace back eventually to astronomers’ ephemerides.
I bought a copy of a CDROM (distributed by WillmannBell in Richmond, VA) with the new JPL ephemerides in September, and have spent the months since in offandon work on the CCRS program between other projects. All of the work has been done on CCRS under MSDOS, not on any of the incomplete CCRS for Windows projects. Along the way, the increased memory requirements of some of the changes made it impossible to run parts of CCRS under DOS 6.2 as installed on my Pentium system with a lot of memory used by drivers. (The mem command shows 483K for the largest executable program.) I had to switch to working in a DOS box under Windows 95, which gives more DOS memory (556K largest executable program).
The JPL ephemerides are in a fixed J2000 equatorial coordinate system, so the first step was to get XYZ values and do coordinate conversions and precession to get values in the ecliptic of date coordinates CCRS uses. The software that comes on the JPL ephemeris CDROM is FORTRAN source code, which I don’t have a compiler for. Fortunately, I found an online site with C versions, which I could work with. I made new outer planet disk ephemerides in CCRS format from the JPL DE 200, DE 405 and DE 406 values on the CDROM. Using those ephemerides, I proceeded with changes to CCRS program logic. To have a way of judging whether the changes I was making were improving the accuracy of my final answers, I manually compared a year’s outer planet (Jupiter, Saturn, Uranus, Neptune, Pluto) stations in CCRS timed hits against times from an ACS ephemeris. I also wrote a program to compare sets of 10 years’ outer planet aspect and station times from CCRS after each change to program logic.
The first change was to make the final heliocentric and geocentric longitudes double precision. This had no noticeable effect on station times. Next I converted the disk ephemerides to double precision. This also had no noticeable effect on station times. Next I converted the 4point interpolation the program does to get station times from individual longitudes to 8 points. This substantially improved some, but not all, station times. Next I tried increasing the interpolation to 10 points with little effect. Next I increased the number of terms in my nutation formula. This had a large effect on the station times. Next I changed my nutation formula to one from a newer astronomical reference (the 1992 edition of the Explanatory Supplement), which again improved station times. Next I went through several cycles of adding more terms in the new nutation formula and changing more intermediate variables and functions to double precision. The changes to my nutation formula from my starting value to my last test made a difference of 8 minutes of time in some stations. Next I experimented with different storage intervals in my disk ephemerides, both single and double precision, to look for the best balance between accuracy and disk space. All these changes and experiments brought CCRS station times very close to ACS times when I used ephemerides made from DE 200 starting values (the basis of their ephemerides), but I still have differences. The October 1997 Neptune station improved from 78 minutes different from ACS with standard CCRS ’92 to 1 minute different. The worst difference remaining in 1997 is 5 minutes of time on a March 1997 Pluto station, down from 21 minutes initially.
A note on interpolations: CCRS uses an 8point central interpolation of values from disk ephemerides to get asteroid and outer planet X, Y and Z positions and velocities for any given date and time. The resulting XYZ values are used to get longitude, latitude and distance. CCRS timed hit times are calculated by a 4point central interpolation using longitudes calculated for 0 UT on 4 consecutive days. The changes described above changed the hit time interpolation for stations only to use longitudes from 6, 8 or 10 consecutive days. The disk ephemeris interpolation still uses 8 points, though it is now double precision instead of single.
Nutation, the difference between mean and true equinox, is one of the values used in converting geometric celestial longitudes to apparent longitudes (the other value is the lighttime correction). For aspect times, changes to nutation have no effect because the same nutation is added to all longitudes calculated for a given moment. For station times, nutation has a large effect because differences in nutation affect more significant digits than the digits changing in the geometric longitude around the moment of a station. The geometric station and the apparent station are at different times. It is easy to miss the importance of accurate nutation when you look at planetary calculations because it is added after the formula or ephemeris produces the planet’s geometric position.
Given the importance of nutation in station times that I observed during this work, I conducted a test of extracting a disk file of daily values of nutation from the JPL ephemerides and using those values for nutation. Even though the JPL values were in J2000 coordinates, this reduced the 5minute Pluto difference to 2 minutes. It is not something I will keep in the program because of disk space, coordinate system and added program complexity. Unless I find another astronomical reference with a nutation formula that produces results even closer to JPL’s values, I will probably use the formula I entered during this work and accept a few minutes difference from ACS on a few stations. As of the writing of this article, I haven’t made up my mind if the project is closed and I should make updates available. If you have CCRS ’92, run under MSDOS with a lot of DOS (low) memory available, and are concerned about an hour or so in some outer planet event times, write or call me to inquire.
Here are tables with results from some of the comparisons I did during this work. All differences listed are the largest number of seconds (or minutes or hours) of time between the results of two runs of CCRS timed hits (aspects and stations) with different data.
Comparing times in 19901999: Nutation & ephemeris interval variations
Compare This: 
NJ200 
NJ405 
NJ405 
NC 
N1 
N3 
N3 
N3 
N3 
N3 
D512 
N3 
To This: 
D32 
D32 
NJ200 
N1 
N123 
S64 
D128 
D256 
D512 
S512 
S512 
S384 
Max diff minutes: 
48.3 
48.3 
0.0 
0.3 
7.8 
0.4 
0.9 
15.3 
15.5 
15.4 
0.3 
0.8 
Max diff seconds: 
2895 
2895 
1 
19 
466 
23 
56 
920 
927 
926 
17 
50 
NJ200,NJ405=nutation from JPL; D32=all nutation terms + corrections & 32day ephemerides;
NC=all nutation terms + corrections; N1=all terms through 1; N3=terms through 3; N123=terms through 123;
D128=double precision ephemerides at 128day interval; D256=256day; D512=64,128,256,512days;
S64=single precision ephemerides at 64day interval; S384=64,128,256,320,384; S512= 64,128,256,512 days
Comparing times in 19901999: Ephemeris interval variations
Compare This: 
N1 
N1 
N1 
N1 
N1 
N1 
N1 
N1 
N1 
N1 
N1 
To This: 
61111 
61222 
61333 
61888 
61985 
61937 
61920 
6198S 
61990 
61930 
61910 
Max diff minutes: 
0.5 
15.6 
0.8 
15.7 
15.7 
15.6 
4.2 
15.7 
15.6 
15.7 
0.6 
Max diff seconds: 
32 
933 
50 
941 
941 
938 
251 
940 
938 
939 
36 
N1=double precision 64day ephemerides; 61111=single precision 64,128,128,128,128; 61222=64,128,256,256,256; 61333=64,128,320,320,320; 61888= 64,128,384,384,384; 61985=64,128,192,384,512; 61937=64,128,192,320,576; 61920=64,128,192,256,640; 6198S=64,128,192,384,704; 61990=64,128,192,192,640; 61930=64,128,192,320,640; 61910=64,128,192,128,640
Comparing times in 19901999: Interpolation variations
Compare This: 
I10 
I10 
I10 
I8 
I8 
I6 
To This: 
I8 
I6 
I4 
I6 
I4 
I4 
Max diff time minutes: 
4.6 
2.2 
1.1 
2.4 
5.4 
2.9 
Max diff time seconds: 
276 
130 
63 
146 
321 
175 
I10=10 point interpolation, I8=8point, I6=6point, I4=4point
Comparing times in 19901999: Fundamental ephemeris variations
Compare This: 
E200 
E200 
E405 
CC92 
CC92 
CC92 
Excluding 
CC92 
CC92 
CC92 
To This: 
E405 
E406 
E406 
E200 
E405 
E406 
Neptune: 
E200 
E405 
E406 
Max diff minutes: 
33.1 
33.1 
0.0 
677.6 
689.0 
689.0 

25.1 
45.5 
45.5 
Max diff seconds: 
1987 
1987 
0 
40657 
41338 
41338 

1504 
2727 
2727 
E200=based on JPL DE 200; E405=based on JPL DE405; E406=based on JPL DE406; CC92=CCRS 92
Comparing times in 16101630: Fundamental ephemeris variations
Compare This: 
CC92 
CC92 
CC92 
E200 
E200 
E405 
To This: 
E200 
E405 
E406 
E405 
E406 
E406 
Max difference time hours: 
3.88 
40.37 
40.37 
44.25 
44.25 
0.03 
Max difference time minutes: 
232.6 
2422.1 
2422.1 
2654.7 
2654.7 
1.7 
Max difference time seconds: 
13956 
145327 
145327 
159283 
159283 
100 
As you can see from the last two tables, the new JPL ephemerides (DE 405/406) produce outer planet event times differing from the previous JPL ephemerides (DE 200) by up to 33 minutes of time in the 1990s and up to 44 hours of time (almost 2 days) in the early 1600s. The Volume 22 values in CCRS ’92 differ from the JPL values by up to 11 hours in the 1990s. CCRS ’92 differs almost 4 hours from DE 200 and over 40 hours from DE 405/406 in the early 1600s. This is less than DE 200 differs from DE 405/406 for those years. The 100 seconds of time difference between DE 405 and DE 406 in the last table can be blamed on the different storage intervals used in the two sets of CCRS format ephemerides.
I would like to make a fine distinction in terminology. All my work used ephemerides based on or derived from JPL values for the outer planets, but did not use JPL ephemerides directly in calculating planetary positions and events. If a program claims to use JPL ephemerides, the data files involved will take 41M for 16002168 in DE 200, 54M for 16002200 for DE 405 or 191M for –3000 – +3000 for DE 406. These ephemerides include the Sun, the Moon and all the planets. If the data files are smaller, the program’s ephemerides are at best JPLbased or JPLderived or a hybrid. For example, the final set of CCRS format outer planet ephemerides I used in this work take only 805K for DE 405 values (double precision XYZs at 32day intervals for 5 planets) and 896K for DE 406 values (single precision XYZs at intervals from 64 to 640 days). These cover all but a few years at each end of the periods of the full JPL ephemerides, but only include Jupiter through Pluto. JPL ephemerides consist of sets of polynomials at 32day intervals in DE 200 and DE 405 and 64day intervals in DE 406. The polynomials give very precise curve fitting in their valid range of dates and are essentially useless outside that range. The 1975 version of CCRS written by Rique used that kind of polynomial for asteroids and outer planets. The coordinates produced by evaluating the JPL polynomials are J2000 or ICRF (fixed equinox) equatorial XYZs. The shorter JPL ephemerides include values for nutation, so programs working directly with JPL files can use their nutation. JPL derived or hybrid ephemerides like my CCRS files don’t get the JPL nutation values, leading to some of the programming effort described above. Programs using JPL ephemerides have to precess and convert to the ecliptic after getting a planet’s position. Derived ephemerides are usually already in astrological (ecliptic of calculation date) coordinates.
Here is a table showing positions of Pluto at oneminute intervals around the 14 January 1610 direct station. (Remember that these figures are not pure JPL because they were calculated by CCRS ’92 using Volume 6 Sun values. A pure JPL ephemeris like ACS uses will produce slightly different values.) CCRS ’92 and DE 200 times differ by one minute, while DE 405/406 times are about 15 minutes earlier (not in the table). The table clearly shows that all the geometric motions are already direct, but the CCRS ’92 and DE 200 apparent geocentric positions turn direct in these 5 minutes (look at the sign in the last column). The Nutation and Light time columns show the two numbers that convert geometric to apparent longitude. You can also see from the magnitudes of the numbers involved why nutation is so critical. Before these changes, CCRS ’92 was getting a nutation of .0043 for this date instead of the new value of .0021. The difference affects the 3rd digit to the right of the decimal, while light time affects the 5th digit and the actual geometric geocentric motion in one minute of time affects the 8th digit.
Julian Day # 
Geom. Helio 
Geom. Geo 
Change in long 
Nutation 
Light time 
Apparent Geo 
Change in long 
CCRS 92 







2309114.21938557 
32.19366264 
31.00539447 

0.00210816 
0.00003655 
31.00324975887 

2309114.22008001 
32.19366447 
31.00539456 
0.000000084815 
0.00210818 
0.00003662 
31.00324975881 
0.000000000065 
2309114.22077444 
32.19366629 
31.00539464 
0.000000085005 
0.00210819 
0.00003669 
31.00324975894 
0.000000000129 
2309114.22146888 
32.19366811 
31.00539473 
0.000000085190 
0.00210820 
0.00003677 
31.00324975926 
0.000000000318 
2309114.22216331 
32.19366994 
31.00539481 
0.000000085353 
0.00210821 
0.00003684 
31.00324975974 
0.000000000485 
DE 200 







2309114.21938557 
32.19401109 
31.00574784 

0.00210816 
0.00003647 
31.00360320358 

2309114.22008001 
32.19401291 
31.00574792 
0.000000084617 
0.00210818 
0.00003654 
31.00360320332 
0.000000000262 
2309114.22077444 
32.19401473 
31.00574801 
0.000000084807 
0.00210819 
0.00003661 
31.00360320325 
0.000000000068 
2309114.22146888 
32.19401655 
31.00574809 
0.000000084992 
0.00210820 
0.00003669 
31.00360320337 
0.000000000121 
2309114.22216331 
32.19401838 
31.00574818 
0.000000085155 
0.00210821 
0.00003676 
31.00360320366 
0.000000000288 
DE 405 







2309114.21938557 
32.18376155 
30.99542310 

0.00210816 
0.00003757 
30.99327736055 

2309114.22008001 
32.18376337 
30.99542318 
0.000000087329 
0.00210818 
0.00003764 
30.99327736299 
0.000000002447 
2309114.22077444 
32.18376520 
30.99542327 
0.000000087518 
0.00210819 
0.00003772 
30.99327736564 
0.000000002641 
2309114.22146888 
32.18376702 
30.99542336 
0.000000087703 
0.00210820 
0.00003779 
30.99327736847 
0.000000002831 
2309114.22216331 
32.18376884 
30.99542345 
0.000000087866 
0.00210821 
0.00003786 
30.99327737146 
0.000000002998 
DE 406 







2309114.21938557 
32.18375044 
30.99541197 

0.00210816 
0.00003761 
30.99326619330 

2309114.22008001 
32.18375227 
30.99541205 
0.000000087420 
0.00210818 
0.00003768 
30.99326619584 
0.000000002539 
2309114.22077444 
32.18375409 
30.99541214 
0.000000087610 
0.00210819 
0.00003775 
30.99326619857 
0.000000002732 
2309114.22146888 
32.18375591 
30.99541223 
0.000000087795 
0.00210820 
0.00003783 
30.99326620149 
0.000000002922 
2309114.22216331 
32.18375774 
30.99541232 
0.000000087958 
0.00210821 
0.00003790 
30.99326620458 
0.000000003089 
ACS ephemerides, and any programs based on JPL’s DE 200, will probably be updated to DE 405/406 before too long, but how long will it be before the next JPL update and how much will that change the “most accurate” positions of the planets? I hope all of this makes users of computer programs and ephemerides stop taking them so much for granted and view transiting event times with a little skepticism.