CLASLIB parity P0 baseline¶
This is the first scorecard produced with the canonical contract described in
claslib_near_equivalence_plan.md. It is a diagnostic baseline from the dirty
development tree, not a sign-off result.
Contract¶
- Dataset: public CLASLIB 2019-08-27 sample
- Window: GPST 2068/230420–233999 (3580 one-second epochs)
- Warmup: 300 seconds
- CLASLIB: commit
23cfd363a2db6d8d8144e292c82e9d97ca2d3015 - OBS SHA-256:
a54edc2dba3fa5cdcbbfb415766c9f3cb8ed551ce401c8d9440c30bd037fc169 - NAV SHA-256:
6234177c9cf4d9357084f52503dffcc0b4eb80a320d2188fb5175ceda4d50312 - L6 SHA-256:
9617fa4c03e700e6d0671323a3d3a3537dadedf001a2601bfe6d1f72debedc15 - CLASLIB NMEA SHA-256:
2505fae86e5ba188fe3c27b19f6ddd5bfaed53ec5c11f4a26d628335918978f1 - Native
.posSHA-256:043c528dea4e42c714ee81e26cfeb484197cae0cf5b7328e1b2c3be9822e1c3a
NMEA UTC receives the 18-second GPS–UTC offset before epoch matching. CLASLIB
FIX is NMEA quality 4; native FIX is .pos FixedAmbiguities > 0.
Result¶
All 3580 solution epochs matched. After warmup, CLASLIB was FIX for all 3280 evaluated epochs while this native baseline was intentionally run with AR off, so status agreement was 0% and native FIX count was zero.
| Metric | Baseline | Gate |
|---|---|---|
| Trajectory delta RMS 3D | 3.3905 m | 0.020 m |
| Trajectory delta P95 3D | 4.1245 m | 0.030 m |
| ZD common rows | 79,630 | — |
| ZD row-key coverage | 32.262% | 100% |
| PRC RMS delta | 0.01927 m | 0.010 m |
| CPC RMS delta | 1.63222 m | 0.010 m |
The full ZD comparison had 163,980 CLASLIB rows and 162,472 native rows. The largest CPC delta is phase-bias driven; row-surface mismatch is also material.
P1 first finding¶
CLASLIB keys GPS frequency slot 1 as CODE_L2W, including receiver epochs whose
raw observation is C2X/L2X. The native diagnostic now preserves the raw receiver
identity but requests the C2W/L2W correction slot. On the first 300 epochs this
reduced per-satellite L2 PRC RMS from 48–372 mm to 16–22 mm for G25/G26/G29/G31/G32.
The first phase investigation showed that the apparent lifecycle divergence was
actually a service-network selection error: the Chiba receiver belongs to CLAS
network 7, while native interpolation could consume a newer network-1 row.
P1 GPS progress¶
P1 closed on the full 3580-epoch run in
output/claslib_parity_p1_gps_surface_3580. The comparison uses requested
CLASLIB slot identity, so a receiver C2X/L2X observation is keyed as the
CLASLIB C2W/L2W correction slot while retaining raw observation provenance.
| Metric | P0 | P1 final | Gate |
|---|---|---|---|
| GPS code rows | — | 52,065 / 52,065 | 100% |
| GPS phase rows | — | 52,065 / 52,065 | 100% |
| GPS row-key coverage | incomplete | 100% | 100% |
| PRC RMS delta | 0.01927 m (all systems) | 0.002414 m | 0.010 m |
| CPC RMS delta | 1.63222 m (all systems) | 0.005058 m | 0.010 m |
| Phase-bias RMS delta | 2.54369 m (first GPS run) | 0.000000 m | — |
The closing changes were:
- exact network-7 phase-bias selection with the 15-second reception lag and a strict 30-second bank lifetime, reproducing the G26 90-second and G25 30-second withdrawal windows;
- CLASLIB
adjust_r_dts()IODE-boundary geometry compensation combined with SIS continuity, rather than applying the SIS term alone; - literal phase wind-up, end-of-stream code-bias hold, and exact L2W bias-cell identity;
- an output-only GPS L5 slot. It emits CLASLIB's C5X/L5X component rows with zero PRC5/CPC5 without increasing the estimator's two-frequency measurement count or colliding with the L2 ambiguity state;
- canonical normalizer treatment of zero PRC5/CPC5 as an invalid closure sentinel, so it no longer invents an IODE geometry component for L5.
The refreshed scorecard passes dataset coverage and all GPS ZD gates. It still fails trajectory, FLOAT/FIX, and status gates as expected because P2–P6 remain open and this static diagnostic run has ambiguity resolution disabled.