SSM-JTK – Data & Calibration — Integrity & invariants (2.11)

Core invariants (keep these true across all experiments)

  • Unwrap for fitting/events; wrap only for display. Use the continuous series for OLS and event detection; final angles use exactly one wrap: wrap360(y).
  • Numerical safety in BIC. Clamp tiny variances inside the log: BIC = k*log(N) + N*log( max(RSS/N, 1e-16) ).
  • Event pairing discipline. Nearest-neighbor with caps: crossings ±60 d, stations ±90 d.
  • Stable timebase. If the train window changes, keep the midpoint anchor and the same sampling mode (or re-derive and document). Time index is always t = days_since(date, t0).
  • Parsimony gate. Admit extras only when both hold: ΔBIC ≥ 6 and loss_EXTRA < loss_BASE.
  • Runtime minimalism. Evaluation requires only the per-body manifest and the one-line evaluator; no runtime ephemeris or external calls.

Practical checklist (quick audit)

  • One-wrap output (wrap360) only at the end.
  • Same daily timestamp in train/test/runtime.
  • No data leakage between windows.
  • Caps applied when pairing events.
  • Report train_range, test_range, t0, sampling mode, chosen carriers, and selection outcome.

Navigation
Back: SSM-JTK – Data & Calibration — Evaluation formula (runtime) (2.10)
Next: SSM-JTK – Data & Calibration — Public verification snippets (CSV-only) (2.12)