Independent verification¶
A code-to-code check versus GMAT — orbit as a shared kernel, access as the product test
When a coverage map, a contact Gantt, or a lifetime curve appears in ASTROLAB, two different pieces of software have already done their work. The first is Orekit, the open-source flight-dynamics library that advances the spacecraft and evaluates events. Orekit is used across the industry for operational and study-grade orbit work; this page does not re-prove that Orekit can integrate an orbit. That demonstration already exists in the Orekit project and in the agencies and operators that fly it.
The second piece is ours: how ASTROLAB configures Orekit, and how it turns a trajectory into the geometric intervals that Coverage, Link, and Connection Network actually sell. Those two questions — “did we wire the same physics as another trusted tool?” and “do our contact edges agree with an independent locator?” — are what this ladder is for.
The independent reference is NASA/GSFC GMAT 2026a, through an ephemeris report and the Contact Locator. The comparison is therefore verification against another implementation of the same physics, not validation against flight GPS or laser ranging, and it is not a certification. How ASTROLAB treats motion and geometry in the product itself is described under Flight dynamics. Which buttons to press lives in Coverage, Link, and Connection network.
What is being checked¶
Two kernels sit behind every study. The numerical propagator answers where the bus is. The access engine answers when a geometric relationship is true. Matching GMAT on the first is a check of force-model wiring — gravitational parameter, harmonics, body frame, and, later in the ladder, drag, third bodies, and solar radiation pressure. Matching GMAT on the second is a check of the product geometry: a coarse time grid plus bisection on elevation, the same “Find precise event times” control documented on Coverage — Computation.
Routing and Latency never invent extra geometry. They only consume those windows. If the contact edges agree here, those analyses inherit the same clock.
| Kernel | Where it shows up | Independent truth | What a match means |
|---|---|---|---|
| Numerical propagator (Orekit) | Spacecraft → Numerical; every analysis that asks “where is the bus?” | GMAT ephemeris of the same initial state | The force-model wiring is the same physics GMAT was asked to run. Orekit’s DOP853 integrator is not under test. |
| Access engine | Coverage, Link, Connection network | GMAT Contact Locator | Pass count and contact edges (the bisection on elevation) agree. This is the product kernel. |
flowchart LR
IC["Shared initial state"] --> GMAT["GMAT 2026a"]
IC --> AL["ASTROLAB / Orekit"]
GMAT --> Eph["Ephemeris"]
GMAT --> Loc["Contact Locator"]
AL --> Num["Numerical"]
AL --> Acc["Access engine"]
Eph --> CmpP["RTN / EME2000"]
Num --> CmpP
Loc --> CmpA["Contact edges"]
Acc --> CmpA
How the ladder is built¶
A single thirty-day LEO arc is not enough if every force is switched on at once. Residuals would mix gravity, atmosphere, lunar-solar point masses, and radiation pressure, and there would be no honest way to say which wiring was responsible. The cases therefore add physics one layer at a time, on the same spacecraft, the same station, and the same dates.
Cases 001–003 isolate Earth gravity, from a point mass through zonals to the full EGM96 30×30 field. Case 004 keeps that field and adds a one-band exponential atmosphere. Case 005 keeps the field and adds the Sun and the Moon as point masses, with drag off. Case 006 keeps the field and adds spherical solar radiation pressure, with drag and third bodies off. Each rung is meant to be readable on its own, and together they tell a single story: first the integrator and μ, then the harmonic evaluator, then each perturbation in isolation.
flowchart TB
C1["001 · EGM96 0×0"] --> C2["002 · EGM96 30×0"]
C2 --> C3["003 · EGM96 30×30"]
C3 --> C4["004 · + exponential drag"]
C3 --> C5["005 · + Sun and Moon"]
C3 --> C6["006 · + spherical SRP"]
| Id | Status | What is on | What it isolates |
|---|---|---|---|
| 001 | published | EGM96 0×0 | Integrator and μ. No zonals. Access on a centimetre inertial arc. |
| 002 | published | EGM96 30×0 | J2…J30 (zonals). The Earth-fixed pole matters; rotation around Z does not. |
| 003 | published | EGM96 30×30 | Full field. Teserals couple to Earth-fixed longitude. |
| 004 | published | 003 + exponential drag | Same one-band ρ(h) on both sides. Cd = 3, area = 10 m². |
| 005 | published | 003 + Sun/Moon | Point masses only. No drag. |
| 006 | published | 003 + spherical SRP | Cr = 1, area = 10 m². No drag. |
Beta
These cases are part of the evaluation record. They do not turn ASTROLAB into a certified operational system — Legal.
The shared scenario¶
Every case flies the same low-Earth orbit for thirty days, from 2020-01-01 12:00 UTC to 2020-01-31 12:00 UTC. The epoch sits inside published Earth-orientation data for both Orekit-data finals2000A and GMAT eopc04, so neither side is extrapolating a bulletin. The spacecraft is a 500 kg bus. The ground station is Svalbard, at geodetic 78.2300° N, 15.3894° E, 0.45 km, with a 5° elevation mask on an ellipsoid horizon — a polar site that sees many short LEO passes, which is exactly what the access engine has to get right.
Cartesian components are entered in the Earth-fixed frame that each tool uses in its editors. The residual clock, however, does not start there. It starts on GMAT’s first EarthMJ2000Eq sample (orbit.ic_source: gmat_eme2000), so that a difference of Earth-orientation at epoch cannot masquerade as a force-model error. GMAT timestamps are in A.1; the compare maps A.1 to TAI minus 0.0343817 s. ASTROLAB then samples Orekit’s dense Dormand–Prince ephemeris at those instants, rather than interpolating a linear 1 s table of its own.
| Item | Value |
|---|---|
| Interval | 2020-01-01 12:00 UTC → 2020-01-31 12:00 UTC |
IC (editors / GMAT EarthFixed, Cartesian) |
−371.198531543, −895.954810819, 6945.667837814 km; −7.027890892, 2.911689621, −6.5×10⁻⁸ km/s |
| Compare IC | First GMAT EarthMJ2000Eq PV |
| Integrator | Dormand–Prince 8(5,3); min 0.001 s, max 2700 s, abs/rel 1e-12 (GMAT PrinceDormand853, same bounds) |
| Gravity | EGM96. No drag, SRP, or third body on 001–003. 004 adds exponential drag. 005 adds Sun and Moon. 006 adds spherical SRP. |
| Mass / areas | 500 kg. Cd / drag area: 2.2 / 1 m² on 001–003 and 005–006; 3 / 10 m² on 004. Cr / SRP area: 1 / 1 m² except 006 (1 / 10 m²). |
| Station | Svalbard, ellipsoid horizon, min elevation 5° |
| Access | 1 s grid, bisection 0.1 s, geodetic zenith (same local vertical as facility ENU) |
Product default versus this ladder¶
Two different things are easy to mix: the IERS Conventions (how celestial and terrestrial frames are connected) and an ITRF realization (ITRF2008, ITRF2014, ITRF2020 — a crust-fixed coordinate set). There is no ITRF2010. ASTROLAB’s product Earth-fixed frame is ITRF under IERS Conventions 2010, not a frame named ITRF2010.
That product frame is what constellations, access, and the editor continue to use. For the gravity comparison from case 002 onwards, however, the harmonic field has to be evaluated in the same rotating frame GMAT uses. GMAT 2026a documents EarthFixed as an FK5 reduction (IAU 1976 precession, IAU 1980 nutation, GMST, polar motion). The ladder therefore overlays Orekit getITRFEquinox(IERS_1996) plus GMAT eopc04_08.62-now (gmat_fk5) only on the Holmes body frame. Stations and frames['ITRF'] stay on the product IERS 2010 ITRF.
At the 2020-01-01 epoch the same inertial state, expressed in product ITRF versus GMAT EarthFixed, differs by 0.92 m. That number is a rotating-frame realisation difference, not along-track growth from the integrator. IERS Conventions 2010 is still the current IERS conventions edition; it is more recent than GMAT’s FK5 chain, and it is not “the latest ITRF” — the latest realisation is ITRF2020. GMAT 2026a can form ICRF with IAU 2000A/2006, but its documentation states that an IAU 2000 body-fixed Earth frame is not supported; EarthFixed stays FK5. This ladder uses EarthMJ2000Eq and EarthFixed, not GMAT ICRF.
| ASTROLAB product (what you run in Design) | This GMAT ladder (verification overlay) | |
|---|---|---|
| Inertial compare frame | EME2000 / GCRF as selected | GMAT EarthMJ2000Eq (EME2000) |
| Earth-fixed frame | Orekit getITRF(IERS_2010, true) — IERS Conventions 2010, CIO / Earth Rotation Angle, simpleEOP = true. The ITRF realisation follows loaded finals2000A. ASTROLAB does not pin ITRF2020. |
Holmes body frame on 002–006: GMAT EarthFixed (FK5), built as Orekit getITRFEquinox(IERS_1996) plus GMAT eopc04_08. Access stays on the product ITRF. |
| Gravity | ICGEM EGM96 (.gfc). Numerical always attaches NewtonianAttraction with EGM96 μ, then Holmes for non-central harmonics when degree and order are above zero. |
Same .gfc; GMAT uses EGM96.cof (same published μ and equatorial radius). |
| Drag (004) | Orekit Simple Exponential: ρ₀ = 2.54×10⁻¹⁰ kg/m³ at h₀ = 200 km, H = 50 km. Cd = 3, drag area = 10 m². |
GMAT Exponential (Spherical) with that one-band CSV as Drag.InputFile. Not GMAT’s stock Vallado altitude table. |
| Third body (005) | Orekit ThirdBodyAttraction for Sun and Moon. |
GMAT PointMasses = {Sun, Luna}. Drag off. |
| SRP (006) | Orekit SolarRadiationPressure with isotropic Cr, Cr = 1, area 10 m². |
GMAT spherical SRP, same Cr / SRPArea. Drag off, no point masses. |
| EOP bulletin | Orekit-data finals2000A |
GMAT eopc04_08.62-now only on the Holmes frame for 002–006 |
Before a leftover of a few metres is allowed to mean “the two gravity codes”, the setup has to close the obvious alternatives. Both sides share the same inertial initial state (epoch |dR| in EME2000 is 0 m on the published cases). Both sides use EGM96 μ (3.986004415×10¹⁴ m³/s²) on the Newtonian term — using WGS84 μ against EGM96 harmonics produced about 20 m along-track in thirty days; that path is closed. Both sides read the same Stokes coefficients (tide-free normalised C20 −4.84165371736×10⁻⁴, equatorial radius 6378136.3 m). Both sides integrate with an adaptive Dormand–Prince 8(5,3) at the same tolerances; case 001 already shows that interpolation at GMAT times is centimetre-level, so a 1 s fixed step would not explain the leftover metres on 002 and 003. Access uses the same geodetic latitude, ellipsoid horizon, 5° mask, and 1 s / 0.1 s bisection. GMAT NUTATION.DAT, SPICE kernels, and eopc04 are read from the local GMAT install and are not copied into the ASTROLAB repository. GMAT NutationUpdateInterval stays 60 s.
Case 001 — point-mass Earth¶
The first rung is deliberately empty of harmonics. With only a central EGM96 attraction, the comparison asks a single question: when ASTROLAB and GMAT are given the same μ, the same inertial state, and the same Dormand–Prince family, do the two integrators stay together?
They do. Over 124 006 samples the along-track residual is 3.4 cm RMS (7.8 cm at the peak). Radial and SMA sit at hundredths of a millimetre. Cross-track is numerically zero. Every one of the 444 Svalbard passes is matched, and the contact edges agree at 0.28 s RMS on start. That centimetre of along-track is the two adaptive codes plus μ. It is also the floor against which later cases must be read: whatever appears on 002 and 003 is not “Orekit cannot integrate”.
The 0.92 m difference in ITRF at epoch is not a propagator error. It is the rotating-frame realisation of an inertial arc that already agrees. Access in ASTROLAB still uses that product ITRF; GMAT’s Contact Locator uses EarthFixed. Nine-tenths of a metre is negligible next to a 5° mask and a 1 s grid, which is why the edges still match at about 0.3 s.
| Observable | RMS | Max |
|---|---|---|
| RTN radial | 0.02 mm | 0.06 mm |
| RTN along-track | 3.4 cm | 7.8 cm |
| RTN cross-track | 0.0 mm | 0.0 mm |
| Osculating SMA | 0.02 mm | 0.05 mm |
| Epoch |dR| EME2000 | 0 m | — |
| Epoch |dR| ITRF | 0.92 m | Product IERS 2010 ITRF vs GMAT EarthFixed of the same inertial state |
| Contacts | Value |
|---|---|
| Matched | 444 / 444 |
| Start / stop / duration RMS | 0.28 s / 0.29 s / 0.38 s |

Case 001 — RTN position residual (ASTROLAB − GMAT), EGM96 0×0, 30 days. Along-track stays at centimetres; radial and cross-track are effectively closed.

Case 001 — inertial \|dR\| in EME2000. The residual clock starts at zero by construction of the shared initial state.

Case 001 — Svalbard contact start, stop, and duration (ASTROLAB − GMAT). Edge RMS is about 0.3 s on a 1 s grid with 0.1 s bisection.

Case 001 — Svalbard contacts, ASTROLAB versus GMAT. All 444 passes match.
Case 002 — zonals¶
With the integrator and μ closed, the next question is the non-central field — but not all of it at once. Case 002 turns on EGM96 zonals through degree 30 and leaves teserals off (order 0). A zonal field is symmetric about the Earth-fixed Z axis, so a difference of Greenwich hour angle should not clock the gravity; the pole (CIP) still orients J2, which is why the Holmes body frame is already the GMAT EarthFixed overlay (gmat_fk5). Access continues to use the product ITRF. The sample count is 123 582.
Along-track grows over the month to 2.2 m RMS (3.6 m at the peak). That growth follows the argument-of-latitude rate; it is not a constant clock offset that would have been visible from the first sample. Osculating SMA stays at millimetres, so energy and μ remain aligned. The leftover is therefore the non-central zonal implementation — Holmes–Featherstone in Orekit versus GMAT’s harmonic evaluator — at a few metres after thirty days of LEO. Cross-track sits at 1.3 m RMS. Access is unchanged in character from 001: 443 / 443 passes, start RMS 0.29 s.
| Observable | RMS | Max |
|---|---|---|
| RTN radial | 3.1 mm | 7.5 mm |
| RTN along-track | 2.2 m | 3.6 m |
| RTN cross-track | 1.3 m | 3.2 m |
| Osculating SMA | 4.7 mm | 12 mm |
| Epoch |dR| EME2000 | 0 m | — |
| Contacts | Value |
|---|---|
| Matched | 443 / 443 |
| Start / stop / duration RMS | 0.29 s / 0.28 s / 0.42 s |

Case 002 — RTN position residual (ASTROLAB − GMAT), EGM96 30×0. Along-track grows with argument of latitude; SMA remains millimetres.

Case 002 — inertial \|dR\| in EME2000. The secular pile-up is the zonal evaluator, not a time-tag error.

Case 002 — Svalbard contact start, stop, and duration. Edge RMS stays at the same ~0.3 s as the point-mass case.

Case 002 — Svalbard contacts, ASTROLAB versus GMAT. All 443 passes match.
Case 003 — full EGM96 30×30¶
Teserals see Earth-fixed longitude, so a difference of body frame around Z would now couple into the inertial residual. Case 003 therefore keeps the same gmat_fk5 Holmes frame as 002 and turns the field up to degree and order 30 — the configuration a Numerical spacecraft actually uses for a “full” EGM96 run in the product.
The surprise, if one expected the leftover to grow, is that it does not. Along-track improves relative to the zonal-only case: 1.0 m RMS, 1.3 m at the peak, on the same 123 582 samples. Cross-track stays at 1.3 m RMS. SMA remains millimetres. Teserals do not add a new secular along-track pile-up on top of 002. Access is again 443 / 443 passes at 0.29 s start RMS — the same product clock that Coverage, Link, and Connection Network inherit.
A few metres of inertial RTN after a month of 30×30 gravity is the expected disagreement between two independent spherical-harmonic codes. It is small compared with what a 5° elevation mask and a 1 s access grid already imply for pass timing.
| Observable | RMS | Max |
|---|---|---|
| RTN radial | 2.3 mm | 6.1 mm |
| RTN along-track | 1.0 m | 1.3 m |
| RTN cross-track | 1.3 m | 3.2 m |
| Osculating SMA | 2.6 mm | 5.8 mm |
| Epoch |dR| EME2000 | 0 m | — |
| Contacts | Value |
|---|---|
| Matched | 443 / 443 |
| Start / stop / duration RMS | 0.29 s / 0.28 s / 0.39 s |

Case 003 — RTN position residual (ASTROLAB − GMAT), EGM96 30×30. Teserals do not add a new along-track secular on top of 002.

Case 003 — inertial \|dR\| in EME2000. The month closes at about a metre along-track RMS.

Case 003 — Svalbard contact start, stop, and duration. The access engine is insensitive to the extra teseral metres.

Case 003 — Svalbard contacts, ASTROLAB versus GMAT. The same 443 passes appear on both sides.
Case 004 — exponential drag¶
Gravity is now characterised. The next perturbation a LEO design actually feels is the thermosphere. Case 004 keeps the 003 gravity, Holmes frame, initial state, and Svalbard geometry, and turns drag on. Solar radiation pressure and third bodies stay off, so that a leftover cannot be blamed on eclipse or the Moon.
Atmosphere models are where two tools most easily talk past each other. GMAT’s stock Exponential atmosphere is Vallado’s piecewise altitude table. Orekit’s Simple Exponential is a single band. Comparing those two as if they were the same ρ(h) produces a secular along-track error of about a kilometre and a half — a number that says nothing useful about either product. This case therefore uses the same one-band exponential on both sides: density ρ₀ = 2.54×10⁻¹⁰ kg/m³ at reference altitude h₀ = 200 km, scale height H = 50 km. ASTROLAB is Orekit SimpleExponentialAtmosphere. GMAT is Exponential with that CSV as Drag.InputFile. The drag model itself is spherical (IsotropicDrag / GMAT Spherical). Mass stays 500 kg; Cd = 3 and drag area = 10 m².
Over 123 585 samples the along-track residual stays at 1.0 m RMS (3.0 m at the peak) — the same metre as gravity-only 003, not a kilometre-class secular. Radial is millimetres, SMA is millimetres, and cross-track is the same 1.3 m RMS as 003. Every one of the 443 Svalbard passes is matched, with start RMS 0.28 s. Once ρ(h) is the same function on both sides, exponential drag does not open a new disagreement.
| Observable | RMS | Max |
|---|---|---|
| RTN radial | 2.1 mm | 7.6 mm |
| RTN along-track | 1.0 m | 3.0 m |
| RTN cross-track | 1.3 m | 3.2 m |
| Osculating SMA | 2.2 mm | 9.0 mm |
| Epoch |dR| EME2000 | 0 m | — |
| Contacts | Value |
|---|---|
| Matched | 443 / 443 |
| Start / stop / duration RMS | 0.28 s / 0.29 s / 0.41 s |

Case 004 — RTN position residual (ASTROLAB − GMAT), EGM96 30×30 plus one-band exponential drag. Along-track stays at the same metre as 003.

Case 004 — inertial \|dR\| in EME2000. A shared ρ(h) does not grow a kilometre-class leftover.

Case 004 — Svalbard contact start, stop, and duration. Edge RMS remains about 0.3 s.

Case 004 — Svalbard contacts, ASTROLAB versus GMAT. All 443 passes match.
Case 005 — Sun and Moon¶
Lunar-solar point masses are the other conservative perturbation that a thirty-day LEO feels at the metre-to-tens-of-metres level. Case 005 again starts from 003 — same field, same Holmes overlay, same Svalbard mask — and adds only the Sun and the Moon. Drag and SRP stay off, and the bus returns to the 001–003 coefficients (Cd = 2.2, drag area 1 m²) so that a dormant drag model cannot leak into the residual. GMAT names the Moon Luna; ASTROLAB’s list is Sun and Moon.
The leftover does not move off 003. Over 123 581 samples along-track is 1.0 m RMS (1.3 m at the peak), cross-track 1.3 m RMS, SMA millimetres. Contacts are again 443 / 443 at 0.29 s start RMS. At this altitude and this duration, Orekit’s and GMAT’s Sun and Moon point masses agree inside the harmonic-evaluator floor already measured on 003.
| Observable | RMS | Max |
|---|---|---|
| RTN radial | 2.3 mm | 6.1 mm |
| RTN along-track | 1.0 m | 1.3 m |
| RTN cross-track | 1.3 m | 3.2 m |
| Osculating SMA | 2.6 mm | 5.8 mm |
| Epoch |dR| EME2000 | 0 m | — |
| Contacts | Value |
|---|---|
| Matched | 443 / 443 |
| Start / stop / duration RMS | 0.29 s / 0.29 s / 0.40 s |

Case 005 — RTN position residual (ASTROLAB − GMAT), EGM96 30×30 plus Sun and Moon. The leftover is the same metre as 003.

Case 005 — inertial \|dR\| in EME2000. Lunar-solar point masses do not open a new secular.

Case 005 — Svalbard contact start, stop, and duration. Access stays at ~0.3 s.

Case 005 — Svalbard contacts, ASTROLAB versus GMAT. All 443 passes match.
Case 006 — spherical solar radiation pressure¶
The last isolated perturbation on this ladder is sunlight. Case 006 keeps the 003 gravity and turns on spherical solar radiation pressure, with drag and third bodies off. The reflectivity is Cr = 1 and the SRP area is 10 m² — large enough that thirty days of LEO eclipse cycling is visible, without pretending to be a detailed spacecraft BRDF. ASTROLAB uses Orekit SolarRadiationPressure with an isotropic coefficient. GMAT uses spherical SRP at the same Cr and area, flux 1367 W/m², shadow DualCone.
This is the first rung that grows beyond the gravity floor. Over 125 988 samples along-track is 5.9 m RMS (19.8 m at the peak). Radial rises to 0.28 m RMS; SMA stays at centimetres (13 mm RMS). Cross-track remains 1.3 m RMS, the same harmonic leftover as 003. Contacts are still 443 / 443 at 0.29 s start RMS: twenty metres of inertial ephemeris still sit inside a 5° mask and a 1 s grid. The extra along-track is eclipse, flux, and Cr·A wiring — not gravity, and not drag.
| Observable | RMS | Max |
|---|---|---|
| RTN radial | 0.28 m | 0.70 m |
| RTN along-track | 5.9 m | 19.8 m |
| RTN cross-track | 1.3 m | 3.3 m |
| Osculating SMA | 13 mm | 67 mm |
| Epoch |dR| EME2000 | 0 m | — |
| Contacts | Value |
|---|---|
| Matched | 443 / 443 |
| Start / stop / duration RMS | 0.29 s / 0.27 s / 0.40 s |

Case 006 — RTN position residual (ASTROLAB − GMAT), EGM96 30×30 plus spherical SRP. Along-track grows to a few metres RMS on top of the 003 gravity floor.

Case 006 — inertial \|dR\| in EME2000. The leftover is eclipse / flux / Cr·A, not a time-tag error (epoch remains 0 m).

Case 006 — Svalbard contact start, stop, and duration. Access still matches at ~0.3 s.

Case 006 — Svalbard contacts, ASTROLAB versus GMAT. All 443 passes match.
How to read the leftovers¶
The ladder now has a clear grammar from integrator through SRP. Epoch EME2000 at zero means the inertial initial state is shared on every case. Centimetres on 001, with SMA at zero, mean the integrator and μ are closed; Orekit DP853 versus GMAT PD853 is not the metre budget of later rungs. The 0.92 m ITRF offset at epoch is the product IERS 2010 frame versus GMAT FK5 on the same inertial state, and it does not move contact edges off the 0.3 s RMS that Coverage inherits. Metres on 002 and 003, with SMA still in millimetres, are the harmonic evaluator — not a 0.4 ms clock, which would have been a flat three metres from t = 0. Case 004 stays on that same metre once ρ(h) is one shared exponential band; a kilometre-and-a-half leftover would mean GMAT’s Vallado table was compared with Orekit’s one-band cut. Case 005 does not move off 003 either. Case 006 is the first perturbation that grows: a few metres RMS of along-track from spherical SRP, with SMA still centimetres and access still matched. Perfect pass counts at ~0.3 s, on every published case, are the access engine: grid, bisection, ellipsoid zenith, and a 5° mask, against GMAT Contact Locator.
| Signal | Meaning here |
|---|---|
| Epoch EME2000 = 0 | Shared inertial initial state. |
| 001 along-track = centimetres, SMA ≈ 0 | Integrator and μ closed. |
| Epoch ITRF ≈ 0.92 m | Product IERS 2010 ITRF vs GMAT FK5 EarthFixed of the same inertial state. |
| 002 / 003 along-track = 1–4 m, SMA millimetres | Harmonic evaluator / recursion, not μ and not a time-tag error. |
| 004 along-track ≈ 1 m, SMA millimetres | Same one-band ρ(h). Drag does not open a new leftover. |
| 005 along-track ≈ 1 m | Sun and Moon agree inside the 003 gravity floor. |
| 006 along-track ≈ 6 m RMS (20 m peak) | Spherical SRP / eclipse / Cr·A. Access still ~0.3 s. |
| Contacts 444/444 and 443/443, ~0.3 s | Access engine matches Contact Locator on this station. |
A few metres of inertial RTN after a month of 30×30 gravity is expected between two independent spherical-harmonic codes. It is not a statement that Orekit is unproven, and it is small compared with what a 5° elevation mask and a 1 s access grid already imply for pass timing.
What this ladder does not close¶
The ladder does not compare NRLMSISE-00 with NRLMSISE00, nor Jacchia–Roberts, nor dual-cone versus cylindrical eclipse identity as a dedicated case. It does not exercise other stations, masks, or sensor fields of view. It does not speak to RF budget or optical climate. Coverage Fast (no bisection) is allowed to be coarser by design and is not this test. Millimetre identity of GMAT versus Orekit Holmes at 30×30 is not claimed — the associated-Legendre implementations differ. A pinned ITRF realisation (ITRF2014 versus ITRF2020) is not claimed either: the product uses IERS Conventions 2010, and the realisation follows the loaded EOP.