How do two-line element sets handle rev numbers > 99,999?

In a two-line element set (TLE), five characters in line 2 -- columns 64-68 -- are for the rev number. (https://en.wikipedia.org/wiki/Two-line_element_set)

But some satellites have been around the earth more than 99,999 times. How is their rev number represented? Do you simply drop the leftmost digit?

Naturally, I looked at Explorer 7, launched in 1959.

1    22U 59009A   19233.18212780 -.00000047  00000-0  19778-4 0  9992
2    22  50.2845  75.3904 0140092 187.8328 172.0431 14.94900884180252


has a rev number of 18,025. About six days later,

1    22U 59009A   19238.93082753 +.00000017 +00000-0 +24393-4 0  9990
2    22 050.2851 048.4269 0140117 209.7771 149.5149 14.94904297426168


it has a rev number of 42,616.

I can't make sense of this; it's not consistent with simply dropping the leftmost digit.

But then there's always the possibility that one, or both, of these TLEs were calculated erroneously.

• According to the "Format" section of en.wikipedia.org/wiki/Two-line_element_set the last digit on the first line is actually a checksum, so it appears the rev number is stuck at 999. This is unusual, since the format allows 4 digits for revision number, so it "should" get stuck at 9999, not 999.
– user7073
Jan 17, 2020 at 16:29
• @barrycarter - Format is 5 digits (64-68) so top limit is 99,999. The last three digits in the first line (before check sum) are the element set number. Rev number is in the second line. It does beg the question as to why the element number gets stuck at 999 rather than 9999 - but that is a different question. Jan 22, 2020 at 3:40
• @CarlosN You are correct. I was looking at the wrong field and on the wrong line
– user7073
Jan 22, 2020 at 5:06

A detective story, not an answer

I pulled the historical TLEs for the ISS from Space-Track.org. On 16 May 2016, it experienced a rev rollover. The TLEs around the rollover have rev's 99,989, 99,992, 1, 6

I then pulled up the historical TLEs for Explorer 7 in the time frame you suggested around 21 Aug 2019 - 27 Aug 2019. It includes the two TLEs you pointed out. From the TLEs we know that mean motion is around 14.94/revs per day, and the TLEs are roughly daily. Yet rev numbers are basically oscillating between ~42,600 and ~18,025 as @uhoh points out in his answer. Of note, object number is listed as 22U (no leading zeros; keep reading)

At 14.94 revs/day, the rev counter should rollover every 18.3 years or so (closer to 19 on average due to orbit getting lower over the years). So I repeated the exercise around Dec 1978. Sure enough we see a rollover from 99,982 to 00123 in two consecutive TLEs (16 Dec and 26 Dec). Of note, object number is listed as 00022U (see extra leading zeros; keep reading)

Fast forward another ~19 years to Nov 1997. Another rollover! Orbit 99,986 to 00016 (Nov 2 and Nov 3)

I then tried looking around 2016 for the next rollover. Surprise!

Something funny happens when I pull up TLEs for 2015 and 2016. I get two sets in the report. The first set starts around June 2015 (even though I requested January) and goes through Dec 2016. In this set the object ID is given as 22U and rev numbers go from 19,562 to 28,124. They are increasing, but nowhere near the rollover. Although the span of 8000ish revs is about right for 18 months.

But then in that same request I get a SECOND set of TLEs, this time with object ID 00022 (extra leading zeros) and spanning the full period of 1 Jan 2015 through 31 Dec 2016. Here the revs go from 92,771 through 3,618, rolling over on 3 May 2016. About 18.5 years, as expected!

I then asked for TLEs from 2017-2019. All have object number 22U (no zeros). On 31 Dec 2017 we are at rev 33,597 which is consistent with the 28,124 from 31 Dec 2016 in the 22U data set (~5400 revs per year). On 7 Dec 2018 rev is 38,697 again consistent with ~5400 revs per year. But then on 8 Dec 2018, rev number jumps to 14,206!! Roughly consistent with a rollover on 3 May 2016 from the 00022U data set (and original launch).

The rev then starts oscillating between the ~38,700 number and the 14,200 number slowly increasing until it gets to the 42,600/18,025 range around August 2019, as you discovered. So the increase that @uhoh pointed out in the bipolar distribution seems to be consistent with ~5400 revs/day

Conclusion

Something happened in 2015 that caused JSPOC to issue slightly different formats - namely removing leading zeros from the object ID. The transition also caused the rev counter to jump to a seemingly incorrect number. Then around Dec 2018 rev numbers from both data sets seem to be included, roughly alternating every TLE. Both rev trends, however, are consistent with the ~5,400 revs per day.

In parting I leave you with this nugget from the AMSAT TLE description page: "The folks who compute satellite orbits don’t tend to pay a great deal of attention to this number! At the time of this writing [1989], elements from NASA have an incorrect Epoch Rev for Oscar-10 and Oscar-13. Unless you use the revolution number for your own bookkeeping purposes, you needn’t worry about the accuracy of Epoch Rev." Note: I don't think TLEs have EVER been issued by NASA, it probably should say NORAD.

• An honorary space detective badge for you!
– uhoh
Jan 22, 2020 at 5:23

When the rev number goes above 99,999 you should simply drop the leftmost digit and write the remaining digits into the TLE. For example:

Rev #      Digits in line 2, columns 64-68
-------    -------------------------------

100,000    00000
156,287    56287
395,468    95468


Partial answer only; I took a small chunk of TLEs from that time frame and plotted rev number versus epoch day number and there is a bimodal distribution separated by about 24,500 revs. In other words about half of the TLEs are near your 18,000 and the other half are near your 42,600.

But I don't know why there are two groups, nor am I certain what happens when the rev number reaches 99,999. I think I have seen TLEs with rev number "stuck" at 99999 rather than rolling over, but certainly this one must have rolled more than once already.

I thought that overflow in rev number had already been addressed in this site, but looking now I can't find anything.

• Thanks for producing that nice plot. Turns out the oscillation results from two different control centers producing the TLEs on an alternating basis. One (or possibly both) is doing it wrong. Feb 11, 2020 at 6:16
• @user3358338 yikes! Thanks for the follow-up! btw you can always post that as another answer if it can be backed up with a source or citation, and accept it as well. That way it will be easier for future readers to know what's going on, since not everybody reads all of the comments.
– uhoh
Feb 11, 2020 at 8:58
• @user3358338 oh, you did! :-)
– uhoh
Feb 11, 2020 at 9:06