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 ≥ 6andloss_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)