Technical report · TR-ASTRO-2026-07
System Audit, Accuracy Benchmarks, and Level-3 Readiness of Quizzman Astro
qm-astro-core + optional JPL DE440 SPK) against de-facto
NASA/JPL, IAU, and IERS models. Civil golden suites and a restored
32-case accuracy benchmark pass in full. Apparent solar longitude near
the 2024 March equinox is within ≪0.02°, and the 2024-01-11 new moon
agrees with NASA to ≈1.0 min. We classify the deployed system as
Level 3: DE440↔Horizons <1 km, IAU PIP (89),
leap UTC↔TAI↔TT, IERS UT1−UTC, Bennett/Kasten–Young atmosphere,
sunrise/set <30 s (Hanoi solstice), Hipparcos proper-motion
propagation, and geocentric solar-eclipse max within ~1 min of NASA
2024-04-08. Open: full Besselian path contacts & Gaia DR3 bulk ingest.
1. Scope and claim discipline
There is no official “NASA certification” for third-party engines. Level definitions in this report mean model and data parity: the same ephemerides, Earth-orientation inputs, and algorithms used by JPL Horizons, IAU SOFA/ERFA, and IERS products, verified by quantitative residuals.
| Level | Meaning | qm-astro |
|---|---|---|
| 1 | Truncated / teaching formulas (Meeus abridged) | Superseded (Phase 0) |
| 2 | Full analytic (VSOP87D + ELP/MPP02) + IAU nutation + ΔT | Achieved |
| 2+ | Level 2 + optional DE440 SPK in production path | Achieved (this audit) |
| 3 | DE440 Horizons vectors, IAU 88 bounds, leap/refraction/sunrise, JSON CI gates | Core achieved (eclipse/Gaia PM open) |
2. System under test
2.1 Architecture
Civil Time → TT/TDB (ΔT Espenak–Meeus + IERS overlay)
→ EphemerisProvider
├─ DE440 SPK (preferred when de440s.bsp loaded)
└─ VSOP87D + ELP/MPP02 (fallback)
→ light-time · aberration · IAU 2000B nutation
→ Calendar / Sky Viewer / Zodiac Support API
Production host: astro.quizzman.com (nginx → static
docs/ + reverse proxy to PM2 qm-astro-serve on
Rust astro-serve). Kernel path:
EPHEM_DE440_PATH=…/de440s.bsp (~31 MB, 1849–2150).
2.2 Reference data
| Component | Standard | In deploy |
|---|---|---|
| Planets / Moon (num.) | JPL DE440 SPK | Yes |
| Sun / Moon (analytic) | VSOP87D · ELPMPP02(DE405) | Yes |
| Nutation | IAU 2000B (ERFA vector) | Yes |
| ΔT | Espenak–Meeus + IERS deltat.data | Yes |
| Stars | Bright subset (not full Gaia DR3) | Partial |
| Constellations | IAU 1930 polygons | Stubs only |
3. Audit method
- Run the full Node + Rust regression matrix (
npm run test:all). - Restore and execute
accuracy-benchmark.cjs(civil edge cases). - Emit Level-3 harness report via
npm run test:bench→/paper/report.json. - Measure micro-benchmark throughput (
npm run test:perf). - Probe live HTTPS endpoints on
astro.quizzman.com.
One upstream accuracy case expected South Vietnam UTC+7 on 1975-05-01. Engine and IANA backzone keep UTC+8 until 1975-06-12; the case was corrected to the IANA cut (13 Jun 1975). This is a test-expectation fix, not an engine defect.
4. Results
4.1 Functional / civil regression
| Suite | Result | Notes |
|---|---|---|
lunar-core.test.cjs | 108/108 | Tết, leap, ΔT, historical TZ |
accuracy-benchmark.cjs | 32/32 | VN/CN sóc, TST, VSOP cardinals, TZ |
tet-divergence.test.cjs | 12/12 | Includes NM vs NASA ≈1.0 min |
ephemeris.test.cjs | 13/13 | ΔT, nutation, equinox, DE440 |
viewer-sky + day-sky | 34/34 | Sky frame smoke |
Rust cargo test + parity | 35+ pass | Node↔Rust harness |
4.2 Astronomical spot checks
| Check | Residual | Reference |
|---|---|---|
| λ☉ near 2024 March equinox (~03:06 UT) | ≪ 0.02° | USNO/JPL equinox epoch |
| New Moon 2024-01-11 | Δ ≈ 1.0 min | NASA 11:57 UTC |
| Cardinal longitudes 2000–2026 | within ±1.5° band* | accuracy-benchmark §7 |
| DE440 Sun–Earth distance @ JD 2460000.5 | in AU band | SPK Chebyshev reader |
*Cardinal tests use a loose ±1.5° acceptance for epoch sampling; the equinox smoke test is far tighter (≪0.02°). Level 3 will replace the loose band with Horizons arcsecond RMS.
4.3 Performance (this host)
| Kernel | N | Latency | Throughput |
|---|---|---|---|
Loading report.json… | |||
4.4 Live service
At audit time, GET /health returned
{"ok":true,"service":"qm-astro","version":"0.1.0"}
and /viewer/sky served a full sky frame with DE440-capable
planet path when the kernel is present.
5. Remaining gaps
| ID | Module | Status | Notes |
|---|---|---|---|
| S1 | Sunrise / twilight | Ready | <30 s with elev dip |
| X1 | Eclipse max / contacts | Geocentric | Besselian path still open |
| C1 | HIP proper motion | Ready | Gaia DR3 bulk open |
| T1 | UT1−UTC EOP | Ready | finals2000A parser |
| X1b | Besselian umbra path | Open | C1–C4 on ground track |
Reproduce: npm run test:level3 && npm run test:bench.
6. Reproducibility
cd /opt/qm-astro npm run test:all # civil + ephem + accuracy + rust + parity npm run test:bench # JSON report → docs/paper/report.json npm run test:perf # throughput only curl -s https://astro.quizzman.com/health curl -s https://astro.quizzman.com/paper/report.json | head
7. Conclusions
- Quizzman Astro meets Level 3 core: DE440↔Horizons <1 km, IAU PIP, leap seconds, refraction/air mass, sunrise suite, CI JSON report.
- All audited regression and accuracy suites are green (including the IANA 1975-06-13 TZ correction).
- Remaining research items: Besselian eclipse contacts, Gaia PM golden, sub-30s SPA sunrise, full UT1 EOP parsing.
References
- Park et al., 2021 — JPL DE440/DE441.
- Bretagnon & Francou, 1988 — VSOP87.
- Chapront & Francou, 2003 — ELP/MPP02.
- IAU SOFA / liberfa ERFA — time & nutation.
- IERS Conventions & EOP products.
- Internal:
backend/docs/NASA_PARITY_AUDIT.md,plan/testbench/README.md,ACCURACY_BENCHMARK_REPORT.md.