{
  "claim_id": "F2",
  "claim_name": "95-yr Kp/ap archive reproduces storm-frequency table (whitepaper section 16.1)",
  "snapshot_id": "2026-04-28",
  "archive_basename": "noaa_kp_ap_historical.csv",
  "year_min": 1932,
  "year_max": 2026,
  "n_years": 95,
  "n_days": 34451,
  "kp_bands": [
    {
      "label": "Quiet (Kp<=2)",
      "kp_lo": 0.0,
      "kp_hi": 3.0,
      "n_days": 13101,
      "fraction_of_days": 0.38027923717744044,
      "events_per_year": 137.90526315789472
    },
    {
      "label": "Unsettled (3 <= Kp < 5)",
      "kp_lo": 3.0,
      "kp_hi": 5.0,
      "n_days": 15779,
      "fraction_of_days": 0.4580128298162608,
      "events_per_year": 166.09473684210528
    },
    {
      "label": "G1 minor (5 <= Kp < 6)",
      "kp_lo": 5.0,
      "kp_hi": 6.0,
      "n_days": 3427,
      "fraction_of_days": 0.09947461612144785,
      "events_per_year": 36.07368421052632
    },
    {
      "label": "G2 moderate (6 <= Kp < 7)",
      "kp_lo": 6.0,
      "kp_hi": 7.0,
      "n_days": 1377,
      "fraction_of_days": 0.039969812197033466,
      "events_per_year": 14.494736842105263
    },
    {
      "label": "G3 strong (7 <= Kp < 8)",
      "kp_lo": 7.0,
      "kp_hi": 8.0,
      "n_days": 520,
      "fraction_of_days": 0.015093901483266088,
      "events_per_year": 5.473684210526316
    },
    {
      "label": "G4 severe (8 <= Kp < 9)",
      "kp_lo": 8.0,
      "kp_hi": 9.0,
      "n_days": 220,
      "fraction_of_days": 0.006385881396766422,
      "events_per_year": 2.3157894736842106
    },
    {
      "label": "G5 extreme (Kp >= 9)",
      "kp_lo": 9.0,
      "kp_hi": 99.0,
      "n_days": 27,
      "fraction_of_days": 0.00078372180778497,
      "events_per_year": 0.28421052631578947
    }
  ],
  "tolerance": "coverage >= 90 yr; non-negative band counts; below-storm (Kp<5) majority of days; storm-class (Kp>=5) within [5%, 30%]; G5 < 0.5%; computation invariants only -- specific frequencies drift as archive updates",
  "coverage_ok": true,
  "distribution_ok": true,
  "below_storm_dominates": true,
  "storm_in_range": true,
  "extremes_rare": true,
  "frac_below_storm": 0.8382920669937012,
  "frac_storm": 0.1617079330062988,
  "pass": true,
  "verdict": "PASS",
  "validator_run_at_utc": "2026-04-28T21:10:09.252187+00:00",
  "charter_reference": "kessler/README.md, claim F2_kp_ap_archive_frequencies"
}