{
  "meta": {
    "version": "v1",
    "generated_at": "2026-10-19T07:37:05.238Z",
    "cache_ttl": 3600
  },
  "data": {
    "schema_version": 1,
    "publisher": "HazardPulse / Coherence Energy Labs",
    "generated_at": "2026-10-10T11:05:03.180801Z",
    "n_entries": 19,
    "entries": [
      {
        "record_id": "weights_hazardpulse_tornado_v3-05a06c843c87",
        "name": "HazardPulse Tornado v3 (served)",
        "description": "served: 60-min probability (inputs include the live NWS warning state). P(a tornado from THIS storm within 60 min); inputs include NWS warning state. Event: a tornado report starts within 10 km of THIS storm's tracked polygon within 60 min. LightGBM (339 trees) exported to a NumPy payload; Platt on leave-one-year-out scores; trained 2020-10-15..2024-12-31, fixed rounds chosen by early stopping on validation 2023; scored once on 2025.",
        "weights_uri": "hazardpulse://results/models/tornado_v3_w.json",
        "weights_path": "results/models/tornado_v3_w.json",
        "size_bytes": 1073406,
        "blake3": "04ccabd09ce82c0a057f5a272e11110e7746c9b6853fdd5b01208b575a9cbf1b",
        "sha256": "05a06c843c87c99e10e95bfea8f7d542b9d9e5ec14151cfe4dc1252715b3a4ba",
        "framework": "hazardpulse_lgbm_payload/1",
        "format": "json",
        "input_schema": {
          "n_features": 30,
          "blocks": [
            "P",
            "W"
          ],
          "feature_names_path": "results/models/tornado_v3_w.json (feature_names)"
        },
        "output_schema": {
          "outputs": [
            "storm_60"
          ],
          "domain": "[0, 1]",
          "calibration": "Platt on leave-one-year-out scores; Venn-Abers band",
          "model_version": "tornado_v3-05a06c843c87"
        },
        "benchmark": {
          "test_window": "every ProbSevere storm observation of 2025 (read once by the final pipeline)",
          "test_auc": 0.970247810812761,
          "test_auc_ci": [
            0.9635708817450787,
            0.975789228589924
          ],
          "test_bss": 0.10670600619258641,
          "test_pr_auc": 0.1749710817781056,
          "n_test_samples": 1469977,
          "n_test_positive": 1579,
          "program": "docs/TORNADO_MODEL_PROGRAM.md"
        },
        "paper_doi": null,
        "paper_url": "https://github.com/coherence-energy-labs/hazardpulse",
        "license": "Apache-2.0",
        "publisher": "HazardPulse / Coherence Energy Labs",
        "publisher_url": "https://hazardpulse.com",
        "release_utc": "2026-10-10T11:05:01.535424Z",
        "rf_npe_compatible": false,
        "modality": "natural_hazard_prediction",
        "source": "hazardpulse_publish"
      },
      {
        "record_id": "weights_hazardpulse_tornado_v3-9005905f08b7",
        "name": "HazardPulse Tornado v3 (served fallback when the NWS warnings feed is down)",
        "description": "served fallback when the NWS warnings feed is down. P(a tornado from THIS storm within 60 min); no NWS input (fallback). Event: a tornado report starts within 10 km of THIS storm's tracked polygon within 60 min. LightGBM (339 trees) exported to a NumPy payload; Platt on leave-one-year-out scores; trained 2020-10-15..2024-12-31, fixed rounds chosen by early stopping on validation 2023; scored once on 2025.",
        "weights_uri": "hazardpulse://results/models/tornado_v3.json",
        "weights_path": "results/models/tornado_v3.json",
        "size_bytes": 1116027,
        "blake3": "3de2986a283901616582b629aea1aacc25eb812c5af419c81e2e9fe5780df2db",
        "sha256": "9005905f08b71b640a8e9dfe143be93e9ecee2606740c9a361f6c1999f75ac79",
        "framework": "hazardpulse_lgbm_payload/1",
        "format": "json",
        "input_schema": {
          "n_features": 28,
          "blocks": [
            "P"
          ],
          "feature_names_path": "results/models/tornado_v3.json (feature_names)"
        },
        "output_schema": {
          "outputs": [
            "storm_60"
          ],
          "domain": "[0, 1]",
          "calibration": "Platt on leave-one-year-out scores; Venn-Abers band",
          "model_version": "tornado_v3-9005905f08b7"
        },
        "benchmark": {
          "test_window": "every ProbSevere storm observation of 2025 (read once by the final pipeline)",
          "test_auc": 0.9693152081267481,
          "test_auc_ci": [
            0.9627864751426389,
            0.974832537374192
          ],
          "test_bss": 0.09659971609617568,
          "test_pr_auc": 0.1664243994006584,
          "n_test_samples": 1469977,
          "n_test_positive": 1579,
          "program": "docs/TORNADO_MODEL_PROGRAM.md"
        },
        "paper_doi": null,
        "paper_url": "https://github.com/coherence-energy-labs/hazardpulse",
        "license": "Apache-2.0",
        "publisher": "HazardPulse / Coherence Energy Labs",
        "publisher_url": "https://hazardpulse.com",
        "release_utc": "2026-10-10T11:05:01.572540Z",
        "rf_npe_compatible": false,
        "modality": "natural_hazard_prediction",
        "source": "hazardpulse_publish"
      },
      {
        "record_id": "weights_hazardpulse_tornado_v3-c45167a49056",
        "name": "HazardPulse Tornado v3 (served product)",
        "description": "served product: 30-min probability. P(a tornado from THIS storm within 30 min). Event: a tornado report starts within 10 km of THIS storm's tracked polygon within 30 min. LightGBM (301 trees) exported to a NumPy payload; Platt on leave-one-year-out scores; trained 2020-10-15..2024-12-31, fixed rounds chosen by early stopping on validation 2023; scored once on 2025.",
        "weights_uri": "hazardpulse://results/models/tornado_v3_w_30.json",
        "weights_path": "results/models/tornado_v3_w_30.json",
        "size_bytes": 837238,
        "blake3": "b0630f58e90c318bb522d2d517d51f03834736dc107427beef27763481a199ed",
        "sha256": "c45167a49056eb64fe01c1eecfb8acd8e35f2cae95d9e4f84a01913782864676",
        "framework": "hazardpulse_lgbm_payload/1",
        "format": "json",
        "input_schema": {
          "n_features": 30,
          "blocks": [
            "P",
            "W"
          ],
          "feature_names_path": "results/models/tornado_v3_w_30.json (feature_names)"
        },
        "output_schema": {
          "outputs": [
            "storm_30"
          ],
          "domain": "[0, 1]",
          "calibration": "Platt on leave-one-year-out scores; Venn-Abers band",
          "model_version": "tornado_v3-c45167a49056"
        },
        "benchmark": {
          "test_window": "every ProbSevere storm observation of 2025 (read once by the final pipeline)",
          "test_auc": 0.9743128937913959,
          "test_auc_ci": [
            0.9675163768823757,
            0.9794856976195109
          ],
          "test_bss": 0.08395941995147549,
          "test_pr_auc": 0.1393515628960252,
          "n_test_samples": 1469977,
          "n_test_positive": 978,
          "program": "docs/TORNADO_MODEL_PROGRAM.md"
        },
        "paper_doi": null,
        "paper_url": "https://github.com/coherence-energy-labs/hazardpulse",
        "license": "Apache-2.0",
        "publisher": "HazardPulse / Coherence Energy Labs",
        "publisher_url": "https://hazardpulse.com",
        "release_utc": "2026-10-10T11:05:01.602091Z",
        "rf_npe_compatible": false,
        "modality": "natural_hazard_prediction",
        "source": "hazardpulse_publish"
      },
      {
        "record_id": "weights_hazardpulse_tornado_v3-58208efc4bb4",
        "name": "HazardPulse Tornado v3 (served product)",
        "description": "served product: 90-min probability. P(a tornado from THIS storm within 90 min). Event: a tornado report starts within 10 km of THIS storm's tracked polygon within 90 min. LightGBM (312 trees) exported to a NumPy payload; Platt on leave-one-year-out scores; trained 2020-10-15..2024-12-31, fixed rounds chosen by early stopping on validation 2023; scored once on 2025.",
        "weights_uri": "hazardpulse://results/models/tornado_v3_w_90.json",
        "weights_path": "results/models/tornado_v3_w_90.json",
        "size_bytes": 1014707,
        "blake3": "a91c7ece6a0faea87fb1f316b352824edced56995b50e621dba0e7e85a481093",
        "sha256": "58208efc4bb403bb62f6fe630581588c1342eeaf0ccde867c180bafbadca74fa",
        "framework": "hazardpulse_lgbm_payload/1",
        "format": "json",
        "input_schema": {
          "n_features": 30,
          "blocks": [
            "P",
            "W"
          ],
          "feature_names_path": "results/models/tornado_v3_w_90.json (feature_names)"
        },
        "output_schema": {
          "outputs": [
            "storm_90"
          ],
          "domain": "[0, 1]",
          "calibration": "Platt on leave-one-year-out scores; Venn-Abers band",
          "model_version": "tornado_v3-58208efc4bb4"
        },
        "benchmark": {
          "test_window": "every ProbSevere storm observation of 2025 (read once by the final pipeline)",
          "test_auc": 0.9681260954912128,
          "test_auc_ci": [
            0.9613780960495075,
            0.9735512104408639
          ],
          "test_bss": 0.11136491727407305,
          "test_pr_auc": 0.18940639304030257,
          "n_test_samples": 1469977,
          "n_test_positive": 1993,
          "program": "docs/TORNADO_MODEL_PROGRAM.md"
        },
        "paper_doi": null,
        "paper_url": "https://github.com/coherence-energy-labs/hazardpulse",
        "license": "Apache-2.0",
        "publisher": "HazardPulse / Coherence Energy Labs",
        "publisher_url": "https://hazardpulse.com",
        "release_utc": "2026-10-10T11:05:01.638269Z",
        "rf_npe_compatible": false,
        "modality": "natural_hazard_prediction",
        "source": "hazardpulse_publish"
      },
      {
        "record_id": "weights_hazardpulse_tornado_v3-a4413fadb32c",
        "name": "HazardPulse Tornado v3 (served product)",
        "description": "served product: EF2+ tornado within 60 min. P(an EF2+ tornado from THIS storm within 60 min). Event: an EF2+ tornado report starts within 10 km of THIS storm's tracked polygon within 60 min. LightGBM (371 trees) exported to a NumPy payload; Platt on leave-one-year-out scores; trained 2020-10-15..2024-12-31, fixed rounds chosen by early stopping on validation 2023; scored once on 2025.",
        "weights_uri": "hazardpulse://results/models/tornado_v3_w_ef2.json",
        "weights_path": "results/models/tornado_v3_w_ef2.json",
        "size_bytes": 565019,
        "blake3": "9d067f8b73f2069c86ba8705d077cfd0e3ce8a2c95f99ef81094d3926bb78f03",
        "sha256": "a4413fadb32cf904dfe3eb7bab0c64a666737be6083d0f3dc5cb6f396dbfd442",
        "framework": "hazardpulse_lgbm_payload/1",
        "format": "json",
        "input_schema": {
          "n_features": 30,
          "blocks": [
            "P",
            "W"
          ],
          "feature_names_path": "results/models/tornado_v3_w_ef2.json (feature_names)"
        },
        "output_schema": {
          "outputs": [
            "storm_60_ef2"
          ],
          "domain": "[0, 1]",
          "calibration": "Platt on leave-one-year-out scores; Venn-Abers band",
          "model_version": "tornado_v3-a4413fadb32c"
        },
        "benchmark": {
          "test_window": "every ProbSevere storm observation of 2025 (read once by the final pipeline)",
          "test_auc": 0.9942334680166941,
          "test_auc_ci": [
            0.9891313131300252,
            0.9970818818728813
          ],
          "test_bss": 0.060807432686797336,
          "test_pr_auc": 0.1512001064981734,
          "n_test_samples": 1469977,
          "n_test_positive": 284,
          "program": "docs/TORNADO_MODEL_PROGRAM.md"
        },
        "paper_doi": null,
        "paper_url": "https://github.com/coherence-energy-labs/hazardpulse",
        "license": "Apache-2.0",
        "publisher": "HazardPulse / Coherence Energy Labs",
        "publisher_url": "https://hazardpulse.com",
        "release_utc": "2026-10-10T11:05:01.663024Z",
        "rf_npe_compatible": false,
        "modality": "natural_hazard_prediction",
        "source": "hazardpulse_publish"
      },
      {
        "record_id": "weights_hazardpulse_tornado_gbt_v1",
        "name": "HazardPulse Tornado GBT v1 (definitive) -- SUPERSEDED by v3",
        "description": "Superseded by the v3 suite (served); kept as the legacy path and the v3 benchmark. Gradient-boosted trees for storm-object tornado probability over CONUS: P(tornado report within 40 km in the next 60 min | ProbSevere storm object). 41 features (Block P ProbSevere + Block E evolution + Block H HRRR atm + Block C coherence field theory). Train 2021-2022, validation/calibration 2023, test 2024 (1,004,531 storm objects, base rate 0.0032). Labels on absolute UTC instants.",
        "weights_uri": "hazardpulse://results/models/tornado_gbt_v1.json",
        "weights_path": "results/models/tornado_gbt_v1.json",
        "size_bytes": 531647,
        "blake3": "c96221fe270e2bde3f59ada02b937148c2e16ae8fd808ff9e29aa9120c78e1e8",
        "sha256": "48637c637e01e98a88d4d057ae9933d7f9baf859dfd8546408417000b5948118",
        "framework": "hazardpulse_gbt_v1",
        "format": "json",
        "input_schema": {
          "n_features": 41,
          "blocks": [
            "P (13 ProbSevere)",
            "E (6 evolution)",
            "H (12 HRRR)",
            "C (10 coherence)"
          ],
          "feature_names_path": "src/hazardpulse/tornado/definitive_model.py"
        },
        "output_schema": {
          "outputs": [
            "tornado_probability_60min_40km"
          ],
          "domain": "[0, 1]",
          "calibration": "Platt (sigmoid(a*F + b)) fitted on the full 2023 validation population"
        },
        "benchmark": {
          "test_auc": 0.939537523974802,
          "test_auc_ci": {
            "mean": 0.9392572984239143,
            "ci_lo": 0.9302765215782856,
            "ci_hi": 0.9474221754238894,
            "std": 0.004401175944373564,
            "unit": "day",
            "n_clusters": 197
          },
          "test_brier": 0.0030295057150957643,
          "test_bss": 0.056239715640696075,
          "test_pr_auc": 0.10806666819378413,
          "test_base_rate": 0.0032204083298574162,
          "test_window": "2024 SPC tornado reports",
          "n_test_samples": 1004531,
          "n_train_samples": 27810
        },
        "paper_doi": null,
        "paper_url": "https://github.com/coherence-energy-labs/hazardpulse",
        "license": "Apache-2.0",
        "publisher": "HazardPulse / Coherence Energy Labs",
        "publisher_url": "https://hazardpulse.com",
        "release_utc": "2026-10-10T11:05:01.683402Z",
        "rf_npe_compatible": false,
        "modality": "natural_hazard_prediction",
        "source": "hazardpulse_publish"
      },
      {
        "record_id": "weights_hazardpulse_eq_operational_C0_v1-d28c62a2e35b",
        "name": "HazardPulse Earthquake operational forecast v1 (candidate C0, base of the served S2)",
        "description": "P(at least one ComCat M6.0+ epicentre in the 2-degree cell within the next 30 days) for every cell of the global grid, from boosted trees (LightGBM, scored in NumPy) over its long-term smoothed-seismicity rate, an ETAS-style short-term clustering rate and recent catalog counts of ComCat M5+ events since 1973 strictly before the issue time. Parameters fitted by Bernoulli likelihood on weekly issue times 2005-2017; chosen on 2018-2020 by a pre-registered information-gain rule with a parsimony clause; scored once on 2023-2025 (docs/EARTHQUAKE_FORECAST_PROGRAM.md). The artifact holds the parameters and the frozen M5+ catalog; live events after its cutoff come from the scorer's USGS fetch.",
        "weights_uri": "hazardpulse://results/models/earthquake_operational_v1.json",
        "weights_path": "results/models/earthquake_operational_v1.json",
        "size_bytes": 3299794,
        "blake3": "4acde0da699c050e7996fc16fd315acf5c23cf6ff87c74bb81bab5b1da119744",
        "sha256": "d28c62a2e35b9e19decf157cacc7763d9ee7ebd14588d839e6c81eacc6b7fb31",
        "framework": "hazardpulse_eq_operational_v1",
        "format": "json",
        "input_schema": {
          "inputs": "ComCat events M>=5.0 with origin time strictly before the issue time (1973 onward)",
          "frozen_catalog_events": 89861,
          "frozen_catalog_cutoff": "2026-10-01T00:00:00Z",
          "feature_names_path": "src/hazardpulse/earthquake/operational_forecast.py"
        },
        "output_schema": {
          "outputs": [
            "m6_probability_30d_every_cell"
          ],
          "domain": "[0, 1]",
          "calibration": "none applied: the trees' log-loss fit over every FIT cell-time (negatives sampled 5% at weight 20)",
          "model_version": "eq_operational_C0_v1-d28c62a2e35b",
          "rate_model": {
            "name": "B",
            "long": {
              "kernel_km": 20,
              "declustered": false,
              "mu": 3.3183619687959984,
              "eps": 0.014908690984180734
            },
            "short": {
              "d0_km": 5,
              "K": 0.0009226757424746414,
              "alpha": 0.5334327923770236,
              "c_days": 0.010090892249896951,
              "p": 0.7773011016332287
            }
          },
          "trees": {
            "n_trees": 156,
            "features": [
              "log10_lambda_A",
              "log10_lambda_B",
              "log10_lambda_short",
              "n45_cell_7d",
              "n45_cell_30d",
              "n45_cell_365d",
              "n45_cell_5y",
              "n45_nbr3_30d",
              "n45_nbr3_365d",
              "n25_cell_30d",
              "n25_cell_365d",
              "maxmag_nbr3_30d",
              "maxmag_nbr3_365d",
              "log10_days_since_m6_nbr3",
              "mag_last_m6_nbr3",
              "log10_days_since_m7_nbr5",
              "mag_last_m7_nbr5",
              "mean_depth_cell_5y",
              "frac_deep70_cell_5y",
              "b_value_nbr3_10y",
              "active"
            ]
          }
        },
        "benchmark": {
          "benchmark_type": "operational forward test on every cell-time of the grid (not case-control)",
          "benchmark_bound_to_this_artifact": true,
          "test_window": "weekly issue times 2023-01-02 .. 2025-12-01, 30-day windows, read once",
          "test_information_gain_per_target_nats": 2.5931972184801944,
          "test_information_gain_ci95": [
            2.4686426560158417,
            2.711509870200592
          ],
          "test_auc": 0.9680856621300102,
          "test_auc_ci95": [
            0.9632623772723998,
            0.9723249868161139
          ],
          "test_brier": 0.0007563565589946233,
          "test_bss_vs_uniform": 0.020976418229227023,
          "test_bss_ci95": [
            0.013449773929628506,
            0.028250147408685755
          ],
          "test_auc_active_cells": 0.7669260522853114,
          "test_calibration_ratio_sum_p_over_sum_y": 1.1355167492486224,
          "reference_A_long_term_ig": 2.5326744779119363,
          "paired_this_minus_A": {
            "ig_per_target": {
              "diff": 0.060522740568258016,
              "ci95": [
                0.00033452812934928785,
                0.12004451304499845
              ],
              "frac_boot_le_0": 0.0245
            },
            "auc": {
              "diff": 0.0013012638125527998,
              "ci95": [
                0.00003471150494782916,
                0.002580636852037907
              ],
              "frac_boot_le_0": 0.021
            },
            "brier": {
              "diff": -0.0000029584178373490925,
              "ci95": [
                -0.000007570732172511866,
                0.0000013180625715066636
              ],
              "frac_boot_le_0": 0.909
            },
            "bss": {
              "diff": 0.0038293590411194733,
              "ci95": [
                -0.0017375226633299823,
                0.009638443958647304
              ],
              "frac_boot_le_0": 0.091
            }
          },
          "n_test_positive_cell_windows": 1384
        },
        "paper_doi": null,
        "paper_url": "https://github.com/coherence-energy-labs/hazardpulse",
        "license": "Apache-2.0",
        "publisher": "HazardPulse / Coherence Energy Labs",
        "publisher_url": "https://hazardpulse.com",
        "release_utc": "2026-10-10T11:05:02.190681Z",
        "rf_npe_compatible": false,
        "modality": "natural_hazard_prediction",
        "source": "hazardpulse_publish",
        "lineage": {
          "role": "base of the served S2",
          "program": "docs/EARTHQUAKE_FORECAST_PROGRAM.md",
          "amendment": "sections 1-9",
          "prereg_tag": null,
          "registration": "sections 1-8 frozen before the first fit; their SHA-256 is recorded in section 9",
          "selection_and_evaluation": [
            {
              "path": "results/earthquake_program/fit_ab.json",
              "sha256": "f35718489db93112d96c49faf4d7fc94f6d9de052c346fe3c361feef40627e50"
            },
            {
              "path": "results/earthquake_program/fit_c.json",
              "sha256": "0ffe269115f7a99f229e782cea82066b9128fdca756c53727ab6f07839c1644b"
            },
            {
              "path": "results/earthquake_program/choose.json",
              "sha256": "ee8c0e253ac22451331c8bc3e0ff02ad0d3061466d56f68459847cb9b51e417d"
            },
            {
              "path": "results/earthquake_program/dev.json",
              "sha256": "23d4c43bce97306fb205da957d78f6a8867cb55584d49c18ee9e16d984ce3fa9"
            },
            {
              "path": "results/earthquake_program/final.json",
              "sha256": "298bcd0dac33272de021fc7b61ca7aa31e8faad76ece91fd5d7bec4f7773d7a5"
            },
            {
              "path": "results/earthquake_program/artifact.json",
              "sha256": "50caf290e120f6db93acdb115dd23f7078aae29849bf7e7a09bc0300345047bc"
            }
          ],
          "live_records": {
            "replay": "dist/data/replay/eq_fcst_*.json (the full 11,700-cell grid)",
            "ledger": "dist/data/earthquake-ledger.jsonl",
            "prospective": "results/earthquake_prospective/"
          }
        }
      },
      {
        "record_id": "weights_hazardpulse_eq_operational_S2_gear1_v2-ecb87f020f99",
        "name": "HazardPulse Earthquake operational forecast S2 (C0 + GEAR1 weighted by the cell's activity, served)",
        "description": "P(at least one ComCat M6.0+ epicentre in the 2-degree cell within the next 30 days) for every cell: logit p = a + c logit(p_C0) + (b + d logit(p_C0)) log10 G, with p_C0 from eq_operational_C0_v1-d28c62a2e35b and G the GEAR1 long-term rate (Bird et al. 2015; geodetic strain + smoothed seismicity; CC-BY-4.0) on the grid. Weights fitted on 2018-2020, decided on 2021-2022 against S1, GEAR1 with one weight (docs/EARTHQUAKE_FORECAST_PROGRAM.md section 12); 2023-2025 is a declared second read.",
        "weights_uri": "hazardpulse://results/models/earthquake_gear1_stack_v2.json",
        "weights_path": "results/models/earthquake_gear1_stack_v2.json",
        "size_bytes": 225438,
        "blake3": "58a739db7daf796b878eef52dd6a659d597380fdddd9296cfcb8cbc72cd9b47d",
        "sha256": "ecb87f020f99abe272f1bd6dbc738f608c497c7b95e36de86bfad48d8cbfb393",
        "framework": "hazardpulse_eq_operational_stack_v2",
        "format": "json",
        "input_schema": {
          "base_model_version": "eq_operational_C0_v1-d28c62a2e35b",
          "gear1_sha256": "82f469ab88a75cf325f7eef8c5413ed10e103ef2e4db8c7032602f5524b63b9b",
          "gear1_source": "https://zenodo.org/api/records/7086053/files/GEAR1.dat/content"
        },
        "output_schema": {
          "outputs": [
            "m6_probability_30d_every_cell"
          ],
          "domain": "[0, 1]",
          "calibration": "the stack's logistic weights (fitted by Bernoulli likelihood on 2018-2020)",
          "model_version": "eq_operational_S2_gear1_v2-ecb87f020f99",
          "coefficients": {
            "a": -0.5386595234045181,
            "c": 0.7461788191936157,
            "b": -0.07815908648879437,
            "d": -0.07326573161498508
          }
        },
        "benchmark": {
          "benchmark_type": "operational forward test on every cell-time of the grid (not case-control)",
          "benchmark_bound_to_this_artifact": true,
          "decided_on": "weekly issue times 2021-2022",
          "dev_ig_vs_recalibrated_C0": {
            "diff": 0.02979048727441036,
            "ci95": [
              0.014148505935786138,
              0.0458881373232704
            ],
            "frac_boot_le_0": 0.0005
          },
          "dev_ig_vs_S1": {
            "diff": 0.0139073689160365,
            "ci95": [
              0.001516319789187848,
              0.025523650515839734
            ],
            "frac_boot_le_0": 0.015
          },
          "test_window": "weekly issue times 2023-2025, 30-day windows (a declared second read)",
          "test_information_gain_per_target_nats": 2.6133805581418295,
          "test_information_gain_ci95": [
            2.489305236978176,
            2.7320432697409816
          ],
          "test_auc": 0.968720390004432,
          "test_auc_ci95": [
            0.9644724677336102,
            0.9726253165027496
          ],
          "test_bss_vs_uniform": 0.021865496213490765,
          "paired_this_minus_C0": {
            "ig_per_target": {
              "diff": 0.020183339661636435,
              "ci95": [
                0.003202905439769244,
                0.036637854539457504
              ],
              "frac_boot_le_0": 0.008
            },
            "auc": {
              "diff": 0.0006347278744217588,
              "ci95": [
                -0.00009485846528573537,
                0.0014778571538368195
              ],
              "frac_boot_le_0": 0.0465
            },
            "brier": {
              "diff": -6.868679951909816e-7,
              "ci95": [
                -0.0000014791637655697911,
                9.757647058558824e-8
              ],
              "frac_boot_le_0": 0.9595
            },
            "bss": {
              "diff": 0.000889077984263742,
              "ci95": [
                -0.00012282310286806374,
                0.0020254572770575896
              ],
              "frac_boot_le_0": 0.0405
            }
          }
        },
        "paper_doi": null,
        "paper_url": "https://github.com/coherence-energy-labs/hazardpulse",
        "license": "Apache-2.0",
        "publisher": "HazardPulse / Coherence Energy Labs",
        "publisher_url": "https://hazardpulse.com",
        "release_utc": "2026-10-10T11:05:02.266971Z",
        "rf_npe_compatible": false,
        "modality": "natural_hazard_prediction",
        "source": "hazardpulse_publish",
        "lineage": {
          "role": "served",
          "program": "docs/EARTHQUAKE_FORECAST_PROGRAM.md",
          "amendment": "section 12 (E4)",
          "prereg_tag": "prereg-earthquake-e4",
          "selection_and_evaluation": [
            {
              "path": "results/earthquake_program/gear1_cells.json",
              "sha256": "1a6e04893eab8fd144c8b2f3421b3c7c68ad32b966596d3a5a3a7e7b71accfe2"
            },
            {
              "path": "results/earthquake_program/gear1_e4.json",
              "sha256": "fe257dc245988e8495c4a9f2aaa8c92f4b1b385190b5d38f9d66137d7cb93c2c"
            },
            {
              "path": "results/earthquake_program/gear1_served.json",
              "sha256": "7ec7a2687dab8805ee5274aad7a92bfbbbfe0445c65f14db5b8a419db49652bb"
            },
            {
              "path": "results/earthquake_program/stack_artifact.json",
              "sha256": "bd7ab1ef701418fe36b91321e08bdf609c5175ffc4554a995d2b5eb8e146449f"
            }
          ],
          "external_data": {
            "GEAR1": "Zenodo 7086053 GEAR1.dat (CC-BY-4.0), SHA-256 in gear1_cells.json"
          },
          "live_records": {
            "replay": "dist/data/replay/eq_fcst_*.json (the full 11,700-cell grid)",
            "ledger": "dist/data/earthquake-ledger.jsonl",
            "prospective": "results/earthquake_prospective/"
          }
        }
      },
      {
        "record_id": "weights_hazardpulse_hurricane_ri_v9-ce02551062e7",
        "name": "HazardPulse Hurricane RI v9.1 (shadow, in prospective verification)",
        "description": "LightGBM on the early intensity aids' 24-h changes, NOAA's RI probabilities at six thresholds and the official forecast; DTOPS where the early guidance is missing. Recorded on every live NHC cycle beside NOAA's published number, never instead of it; chosen by a pre-registered rule (docs/HURRICANE_RI_V9_PROGRAM.md, protocol + amendment 1).",
        "weights_uri": "hazardpulse://results/models/hurricane_ri_v9.json",
        "weights_path": "results/models/hurricane_ri_v9.json",
        "size_bytes": 137368,
        "blake3": "2238b671038468966d1aa8acb9d0fe332499c16953707f51ae296c0340a42929",
        "sha256": "ce02551062e720461fd408ec7218f3d06fa83e345f45d054e46249992e0a39e7",
        "framework": "hazardpulse_lgbm_payload",
        "format": "json",
        "input_schema": {
          "n_inputs": 49,
          "feature_names_path": "results/models/hurricane_ri_v9.json (feature_names)"
        },
        "output_schema": {
          "outputs": [
            "ri_probability_24h"
          ],
          "domain": "[0, 1]",
          "model_version": "hurricane_ri_v9-ce02551062e7"
        },
        "benchmark": {
          "dev_2022_2025_log_loss_30kt": null,
          "dev_auc": null,
          "dev_brier4": null,
          "claim": "the prospective test in docs/HURRICANE_RI_V9_PROGRAM.md (looks 2026-12-01, 2027-12-01)"
        },
        "paper_doi": null,
        "paper_url": "https://github.com/coherence-energy-labs/hazardpulse",
        "license": "Apache-2.0",
        "publisher": "HazardPulse / Coherence Energy Labs",
        "publisher_url": "https://hazardpulse.com",
        "release_utc": "2026-10-10T11:05:02.401542Z",
        "rf_npe_compatible": false,
        "modality": "natural_hazard_prediction",
        "source": "hazardpulse_publish",
        "lineage": {
          "role": "shadow",
          "shown_on_site": false,
          "program": "docs/HURRICANE_RI_V9_PROGRAM.md",
          "amendment": "protocol + amendment 1",
          "prereg_tag": "prereg-hurricane-ri-v9",
          "candidate": "D_gbt",
          "trained": "NHC cycles 2020-2025",
          "rounds": 166,
          "seeds": null,
          "selection_and_evaluation": [
            {
              "path": "results/calibration/hurricane_ri_v9_selection.json",
              "sha256": "14543da32f61f2d044f7a7531518d42149538bd6dcdfdc9aa5b276ef25eda7ce"
            },
            {
              "path": "results/calibration/hurricane_ri_v9_final.json",
              "sha256": "f092995367b789e61cac0f5eae0f2bb6fa57e02c4308890b42f266152261e930"
            }
          ],
          "live_records": {
            "replay": "dist/data/replay/hu_fcst_*.json",
            "key": "ri_v9_shadow",
            "ledger": "dist/data/hurricane-ledger.jsonl",
            "audit": "results/hurricane_prospective/record_audit.json"
          },
          "prospective": {
            "file": "results/hurricane_prospective/v9_shadow.json",
            "entrant": "v9_1"
          }
        }
      },
      {
        "record_id": "weights_hazardpulse_hurricane_ri_v10-8a5ba5896731",
        "name": "HazardPulse Hurricane RI v10.1 (shadow, in prospective verification)",
        "description": "one threshold-stacked exceedance curve P(dV24 >= k), k = 15-45 kt, on v9's inputs; shown on the site beside NOAA's published number (results/hurricane_prospective/shown_model.json). Recorded on every live NHC cycle beside NOAA's published number, never instead of it; chosen by a pre-registered rule (docs/HURRICANE_RI_V9_PROGRAM.md, amendment 2).",
        "weights_uri": "hazardpulse://results/models/hurricane_ri_v10.json",
        "weights_path": "results/models/hurricane_ri_v10.json",
        "size_bytes": 868335,
        "blake3": "53eff1a688ca9f97ef7465abaf8e782e73f69cc322e825ebbd204c48f40b5a9e",
        "sha256": "8a5ba5896731146ea061ba4ee794ccc1d5bbd7ca9f7df0e8c7c6278a77ab564a",
        "framework": "hazardpulse.hurricane_ri_v10/1",
        "format": "json",
        "input_schema": {
          "n_inputs": 49,
          "feature_names_path": "results/models/hurricane_ri_v10.json (feature_names)"
        },
        "output_schema": {
          "outputs": [
            "exceedance_curve_24h"
          ],
          "domain": "[0, 1]",
          "model_version": "hurricane_ri_v10-8a5ba5896731"
        },
        "benchmark": {
          "dev_2022_2025_log_loss_30kt": 0.1443435895033004,
          "dev_auc": 0.9304329655957001,
          "dev_brier4": null,
          "claim": "the prospective test in docs/HURRICANE_RI_V9_PROGRAM.md (looks 2026-12-01, 2027-12-01)"
        },
        "paper_doi": null,
        "paper_url": "https://github.com/coherence-energy-labs/hazardpulse",
        "license": "Apache-2.0",
        "publisher": "HazardPulse / Coherence Energy Labs",
        "publisher_url": "https://hazardpulse.com",
        "release_utc": "2026-10-10T11:05:02.435838Z",
        "rf_npe_compatible": false,
        "modality": "natural_hazard_prediction",
        "source": "hazardpulse_publish",
        "lineage": {
          "role": "shadow",
          "shown_on_site": true,
          "program": "docs/HURRICANE_RI_V9_PROGRAM.md",
          "amendment": "amendment 2",
          "prereg_tag": "prereg-hurricane-ri-v10",
          "candidate": "V2",
          "trained": "NHC cycles 2020-2025",
          "rounds": [
            170,
            212,
            222,
            196,
            224
          ],
          "seeds": [
            0,
            1,
            2,
            3,
            4
          ],
          "selection_and_evaluation": [
            {
              "path": "results/calibration/hurricane_ri_v10_selection.json",
              "sha256": "2a3218c8db0563bef8f2721fab8238571f4f5b701f89e9ec22edb97edae168a9"
            },
            {
              "path": "results/calibration/hurricane_ri_v10_2026_second_read.json",
              "sha256": "82fcbf4f0626738ed291ad3befd46ade585aad1168eef5ae5f0c777486974683"
            },
            {
              "path": "results/calibration/hurricane_ri_v10_vs_all.json",
              "sha256": "ae377654d1f1e23430df6ba35809d8da598768cfb9c668e739118b0b8799eefd"
            }
          ],
          "live_records": {
            "replay": "dist/data/replay/hu_fcst_*.json",
            "key": "ri_v10_shadow",
            "ledger": "dist/data/hurricane-ledger.jsonl",
            "audit": "results/hurricane_prospective/record_audit.json"
          },
          "prospective": {
            "file": "results/hurricane_prospective/v9_shadow.json",
            "entrant": "v10_1"
          }
        }
      },
      {
        "record_id": "weights_hazardpulse_hurricane_ri_v10_2-3e9c1b766454",
        "name": "HazardPulse Hurricane RI v10.2 (shadow, in prospective verification)",
        "description": "v10.1 with monotone constraints on the guidance and NOAA's probabilities. Recorded on every live NHC cycle beside NOAA's published number, never instead of it; chosen by a pre-registered rule (docs/HURRICANE_RI_V9_PROGRAM.md, amendments 3-4).",
        "weights_uri": "hazardpulse://results/models/hurricane_ri_v10_2.json",
        "weights_path": "results/models/hurricane_ri_v10_2.json",
        "size_bytes": 1028416,
        "blake3": "43567fb4cf1d84497b582b364b9d1b1d66094c5a22b447176ac0fa16e1f32187",
        "sha256": "3e9c1b766454695d07fb6ead9adaba4eaf915dea7ea0f8b572c267a238320ba8",
        "framework": "hazardpulse.hurricane_ri_v10/1",
        "format": "json",
        "input_schema": {
          "n_inputs": 49,
          "feature_names_path": "results/models/hurricane_ri_v10_2.json (feature_names)"
        },
        "output_schema": {
          "outputs": [
            "exceedance_curve_24h"
          ],
          "domain": "[0, 1]",
          "model_version": "hurricane_ri_v10_2-3e9c1b766454"
        },
        "benchmark": {
          "dev_2022_2025_log_loss_30kt": 0.14360848294226844,
          "dev_auc": 0.9322187697105953,
          "dev_brier4": 0.15438310753670495,
          "claim": "the prospective test in docs/HURRICANE_RI_V9_PROGRAM.md (looks 2026-12-01, 2027-12-01)"
        },
        "paper_doi": null,
        "paper_url": "https://github.com/coherence-energy-labs/hazardpulse",
        "license": "Apache-2.0",
        "publisher": "HazardPulse / Coherence Energy Labs",
        "publisher_url": "https://hazardpulse.com",
        "release_utc": "2026-10-10T11:05:02.478293Z",
        "rf_npe_compatible": false,
        "modality": "natural_hazard_prediction",
        "source": "hazardpulse_publish",
        "lineage": {
          "role": "shadow",
          "shown_on_site": false,
          "program": "docs/HURRICANE_RI_V9_PROGRAM.md",
          "amendment": "amendments 3-4",
          "prereg_tag": "prereg-hurricane-ri-amend3",
          "candidate": "V5",
          "trained": "NHC cycles 2020-2025",
          "rounds": [
            258,
            240,
            257,
            202,
            282
          ],
          "seeds": [
            0,
            1,
            2,
            3,
            4
          ],
          "selection_and_evaluation": [
            {
              "path": "results/calibration/hurricane_ri_v10_challengers.json",
              "sha256": "f7e81d5f4af54e1ea666698be33aeb8b351690124cdd6e8db03642dcb7220f06"
            }
          ],
          "live_records": {
            "replay": "dist/data/replay/hu_fcst_*.json",
            "key": "ri_v10_2_shadow",
            "ledger": "dist/data/hurricane-ledger.jsonl",
            "audit": "results/hurricane_prospective/record_audit.json"
          },
          "prospective": {
            "file": "results/hurricane_prospective/v9_shadow.json",
            "entrant": "v10_2"
          }
        }
      },
      {
        "record_id": "weights_hazardpulse_hurricane_ri_v10_3-f941a72e2682",
        "name": "HazardPulse Hurricane RI v10.3 (shadow, in prospective verification)",
        "description": "v10.2 plus 14 cloud-top structure features from NOAA GMGSI infrared (t+2 h and t-4 h). Recorded on every live NHC cycle beside NOAA's published number, never instead of it; chosen by a pre-registered rule (docs/HURRICANE_RI_V9_PROGRAM.md, amendments 5-6).",
        "weights_uri": "hazardpulse://results/models/hurricane_ri_v10_3.json",
        "weights_path": "results/models/hurricane_ri_v10_3.json",
        "size_bytes": 1855866,
        "blake3": "01e608ec2f17797a8426672f80bd4e9adb3a5891d21b45f815651114b43f9f45",
        "sha256": "f941a72e26825287eb6c42db013d8c3b62168d51408e73c5e5282b80c0aa97f8",
        "framework": "hazardpulse.hurricane_ri_v10/1",
        "format": "json",
        "input_schema": {
          "n_inputs": 63,
          "feature_names_path": "results/models/hurricane_ri_v10_3.json (feature_names)"
        },
        "output_schema": {
          "outputs": [
            "exceedance_curve_24h"
          ],
          "domain": "[0, 1]",
          "model_version": "hurricane_ri_v10_3-f941a72e2682"
        },
        "benchmark": {
          "dev_2022_2025_log_loss_30kt": 0.1417825586152726,
          "dev_auc": 0.9333796391243949,
          "dev_brier4": 0.15273506617382557,
          "claim": "the prospective test in docs/HURRICANE_RI_V9_PROGRAM.md (looks 2026-12-01, 2027-12-01)"
        },
        "paper_doi": null,
        "paper_url": "https://github.com/coherence-energy-labs/hazardpulse",
        "license": "Apache-2.0",
        "publisher": "HazardPulse / Coherence Energy Labs",
        "publisher_url": "https://hazardpulse.com",
        "release_utc": "2026-10-10T11:05:02.542752Z",
        "rf_npe_compatible": false,
        "modality": "natural_hazard_prediction",
        "source": "hazardpulse_publish",
        "lineage": {
          "role": "shadow",
          "shown_on_site": false,
          "program": "docs/HURRICANE_RI_V9_PROGRAM.md",
          "amendment": "amendments 5-6",
          "prereg_tag": "prereg-hurricane-ri-amend5",
          "candidate": "V8",
          "trained": "NHC cycles 2020-2025 (IR from 2021-07-12)",
          "rounds": [
            518,
            547,
            411,
            350,
            381
          ],
          "seeds": [
            0,
            1,
            2,
            3,
            4
          ],
          "selection_and_evaluation": [
            {
              "path": "results/calibration/hurricane_ri_v10_ir.json",
              "sha256": "882ec585c53125c054e5e1f27cb20eff579de8b6e1d2b71bee5cd57678ab61ad"
            }
          ],
          "live_records": {
            "replay": "dist/data/replay/hu_fcst_*.json",
            "key": "ri_v10_3_shadow",
            "ledger": "dist/data/hurricane-ledger.jsonl",
            "audit": "results/hurricane_prospective/record_audit.json"
          },
          "prospective": {
            "file": "results/hurricane_prospective/v9_shadow.json",
            "entrant": "v10_3"
          }
        }
      },
      {
        "record_id": "weights_hazardpulse_hurricane_ri_v10_4-9fd8cc8dcc7b",
        "name": "HazardPulse Hurricane RI v10.4 (shadow, in prospective verification)",
        "description": "v10.3 plus 4 balanced-response features: the coherence equation solved for the heating the vortex holds inside its local Rossby radius. Recorded on every live NHC cycle beside NOAA's published number, never instead of it; chosen by a pre-registered rule (docs/HURRICANE_RI_V9_PROGRAM.md, amendments 8-9).",
        "weights_uri": "hazardpulse://results/models/hurricane_ri_v10_4.json",
        "weights_path": "results/models/hurricane_ri_v10_4.json",
        "size_bytes": 2123918,
        "blake3": "46effabc71239af94d90ab1355730c0a7189c547d9d52ec296bf443c5a22eb0d",
        "sha256": "9fd8cc8dcc7bdc86945f4749e9146ae07f611183a7234ba698b5b4043c2aaa2e",
        "framework": "hazardpulse.hurricane_ri_v10/1",
        "format": "json",
        "input_schema": {
          "n_inputs": 67,
          "feature_names_path": "results/models/hurricane_ri_v10_4.json (feature_names)"
        },
        "output_schema": {
          "outputs": [
            "exceedance_curve_24h"
          ],
          "domain": "[0, 1]",
          "model_version": "hurricane_ri_v10_4-9fd8cc8dcc7b"
        },
        "benchmark": {
          "dev_2022_2025_log_loss_30kt": 0.14161766094567663,
          "dev_auc": 0.934031660778479,
          "dev_brier4": 0.1526066149741421,
          "claim": "the prospective test in docs/HURRICANE_RI_V9_PROGRAM.md (looks 2026-12-01, 2027-12-01)"
        },
        "paper_doi": null,
        "paper_url": "https://github.com/coherence-energy-labs/hazardpulse",
        "license": "Apache-2.0",
        "publisher": "HazardPulse / Coherence Energy Labs",
        "publisher_url": "https://hazardpulse.com",
        "release_utc": "2026-10-10T11:05:02.618758Z",
        "rf_npe_compatible": false,
        "modality": "natural_hazard_prediction",
        "source": "hazardpulse_publish",
        "lineage": {
          "role": "shadow",
          "shown_on_site": false,
          "program": "docs/HURRICANE_RI_V9_PROGRAM.md",
          "amendment": "amendments 8-9",
          "prereg_tag": "prereg-hurricane-ri-amend8",
          "candidate": "H8",
          "trained": "NHC cycles 2020-2025 (IR from 2021-07-12)",
          "rounds": [
            504,
            434,
            446,
            623,
            521
          ],
          "seeds": [
            0,
            1,
            2,
            3,
            4
          ],
          "selection_and_evaluation": [
            {
              "path": "results/calibration/hurricane_ri_h8.json",
              "sha256": "8566122fc0b5f30a885f63ac9abbb050a6decb60a8699bf41448cc5c52a6573a"
            }
          ],
          "live_records": {
            "replay": "dist/data/replay/hu_fcst_*.json",
            "key": "ri_v10_4_shadow",
            "ledger": "dist/data/hurricane-ledger.jsonl",
            "audit": "results/hurricane_prospective/record_audit.json"
          },
          "prospective": {
            "file": "results/hurricane_prospective/v9_shadow.json",
            "entrant": "v10_4"
          }
        }
      },
      {
        "record_id": "weights_hazardpulse_hurricane_ri_j1-6ffdec7356c1",
        "name": "HazardPulse Hurricane RI J1 (JTWC basins, shadow, in test against v8.2)",
        "description": "LightGBM (5 seeds, averaged) on v8.2's probability (as a logit), its 17 inputs, 14 NOAA GMGSI infrared cloud-top features and basin indicators; trained on storms of 2022-2025, all six basins (v8.2 is out of sample on every one). Registered hindcast 2024-2025, every JTWC cycle pooled with crops on best-track positions: log loss 0.13360 vs v8.2 0.14121, carried. Recorded on every live WP, IO, SH storm beside the published v8.3 (its comparator stays v8.2, the model it is built on and is fed live), never instead of it; shown on the site and judged only in its scope (WP, SI, results/calibration/hurricane_ri_j2.json). Its prospective test (scripts/score_hurricane_j1_prospective.py, looks 2026-12-01, 2027-12-01) decides whether it becomes the published number.",
        "weights_uri": "hazardpulse://results/models/hurricane_ri_j1.json",
        "weights_path": "results/models/hurricane_ri_j1.json",
        "size_bytes": 1807135,
        "blake3": "a95f1d6ff6af809b761354f091055cf787bb5c2d7f3dde01028722077ff9bb22",
        "sha256": "6ffdec7356c164b1cb8d6c52ae48ec83f1cfa5de34e6ffe8e95d9fff5470eb50",
        "framework": "hazardpulse.hurricane_ri_j1.v1",
        "format": "json",
        "input_schema": {
          "n_inputs": 36,
          "live_basins": [
            "WP",
            "IO",
            "SH"
          ],
          "feature_names_path": "results/models/hurricane_ri_j1.json (feature_names)"
        },
        "output_schema": {
          "outputs": [
            "ri_probability_24h"
          ],
          "domain": "[0, 1]",
          "model_version": "hurricane_ri_j1-6ffdec7356c1",
          "label": "J1"
        },
        "benchmark": {
          "dev_period": "2024-2025",
          "dev_cycles": 3546,
          "dev_events": 158,
          "dev_log_loss_30kt": 0.1336022890735818,
          "dev_brier": 0.0368584913428746,
          "dev_auc": 0.8982578123832439,
          "champion": "v8.2",
          "champion_log_loss": 0.14120859444760037,
          "champion_brier": 0.0376836428643025,
          "d_log_loss_vs_champion": -0.00760630537401859,
          "d_log_loss_vs_champion_ci": [
            -0.014721257403870333,
            -0.000335660678839095
          ],
          "interval_level": 0.95,
          "by_region_d_log_loss": {
            "WP": -0.009561283781011991,
            "NI": 0.004074205484222807,
            "SI": -0.01387850224427119,
            "SP": 0.016401481804157934
          },
          "further_read": {
            "season": "2026",
            "log_loss": 0.19530223835248706,
            "champion_log_loss": 0.21499544272395432,
            "declared": "2026 JTWC basins to date: a further read, no claim"
          },
          "claim": {
            "looks": [
              "2026-12-01",
              "2027-12-01"
            ],
            "level": 0.975,
            "scope": [
              "WP",
              "SI"
            ]
          }
        },
        "paper_doi": null,
        "paper_url": "https://github.com/coherence-energy-labs/hazardpulse",
        "license": "Apache-2.0",
        "publisher": "HazardPulse / Coherence Energy Labs",
        "publisher_url": "https://hazardpulse.com",
        "release_utc": "2026-10-10T11:05:02.824445Z",
        "rf_npe_compatible": false,
        "modality": "natural_hazard_prediction",
        "source": "hazardpulse_publish",
        "lineage": {
          "role": "shadow",
          "status": "in test (shadow)",
          "shown_on_site": true,
          "scope": [
            "WP",
            "SI"
          ],
          "program": "docs/HURRICANE_RI_V9_PROGRAM.md",
          "amendment": "amendments 13, 13a, 13b, 14",
          "prereg_tag": "prereg-hurricane-ri-amend13",
          "trained": "storms of 2022-2025, all six basins (v8.2 is out of sample on every one)",
          "rounds": [
            413,
            389,
            553,
            476,
            324
          ],
          "seeds": [
            0,
            1,
            2,
            3,
            4
          ],
          "selection_and_evaluation": [
            {
              "path": "results/calibration/hurricane_ri_j1.json",
              "sha256": "1ab81e7db81f2f6e5393c05d16f28f0d33dc4d192e96967e193554037beee239"
            },
            {
              "path": "results/calibration/hurricane_ri_j2.json",
              "sha256": "97e88257c90bf37175f2f0f00a7e3a276d4d931e3ad4e7bf7fa13ebf0637090c"
            }
          ],
          "live_records": {
            "replay": "dist/data/replay/hu_fcst_*.json",
            "key": "ri_j1_shadow",
            "ledger": "dist/data/hurricane-ledger.jsonl",
            "audit": "results/hurricane_prospective/record_audit.json"
          },
          "prospective": {
            "file": "results/hurricane_prospective/j1_shadow.json",
            "entrant": "J1"
          }
        }
      },
      {
        "record_id": "weights_hazardpulse_hurricane_tc1-589cd13ad9b6",
        "name": "HazardPulse TC1 track and intensity forecast (NHC areas, shown beside NHC's official forecast)",
        "description": "Track and intensity to 120 h for every storm the National Hurricane Center follows: a minimum-variance combination of NHC's real-time early aids, each weighted online by its verified errors (exponential forgetting, shrinkage toward the diagonal, non-negative weights). Each scorer run replays the season from the saved models (amendment 1). Settings chosen on 2021-2022, tested on 2023-2025 against NHC's official forecast; no claim against it was met.",
        "weights_uri": "hazardpulse://results/hurricane_tc1/state.json",
        "weights_path": "results/hurricane_tc1/state.json",
        "size_bytes": 703041,
        "blake3": "7f6a8e44e238058203d4fa4508d38074376f6afd3a72721c489e451e80a3f47e",
        "sha256": "020f51c3c731e034de9edf2fe7656a60f40e99b5daef6b74f2688ba129ca9161",
        "framework": "hazardpulse.hurricane.consensus (online minimum-variance combination)",
        "format": "json",
        "input_schema": {
          "track_members": [
            "AVNI",
            "AEMI",
            "HFAI",
            "HFBI",
            "HWFI",
            "HMNI",
            "CTCI",
            "UKXI",
            "CMCI",
            "CEMI",
            "NVGI",
            "GDMI",
            "TVCN",
            "HCCA"
          ],
          "intensity_members": [
            "DSHP",
            "LGEM",
            "NNIC",
            "NNIB",
            "HFAI",
            "HFBI",
            "HWFI",
            "HMNI",
            "CTCI",
            "GDMI",
            "IVCN",
            "HCCA"
          ],
          "official": "OFCL",
          "selection_sha256": "7ec1391e39963d2e94b360212cf70c23c96cc75736fd4a2957527302bfdd08a4",
          "season_end": 2025
        },
        "output_schema": {
          "outputs": [
            "track_position_by_lead",
            "vmax_kt_by_lead"
          ],
          "leads_h": [
            12,
            24,
            36,
            48,
            60,
            72,
            96,
            120
          ],
          "products": [
            "TC1",
            "TC1+O"
          ],
          "shown": "TC1",
          "model_version": "hurricane_tc1-589cd13ad9b6"
        },
        "benchmark": {
          "dev_seasons": [
            2023,
            2024,
            2025
          ],
          "scored_leads_h": [
            24,
            48,
            72,
            96,
            120
          ],
          "claim_level": 0.9875,
          "track_mean_error_nmi": {
            "TC1": 90.74255539685467,
            "TC1+O": 90.4690187011006,
            "OFCL": 92.08199962096657,
            "HCCA": 97.60730448062705,
            "TVCN": 97.5640061229858
          },
          "intensity_mean_error_kt": {
            "TC1": 12.832415751340367,
            "TC1+O": 12.598598126222143,
            "OFCL": 12.627135404724148,
            "HCCA": 13.223235086183493,
            "IVCN": 12.78091627615892
          },
          "track_vs_official": {
            "d": -2.759541134609024,
            "ci": [
              -8.179672746469437,
              1.9541883596160612
            ],
            "level": 0.9875,
            "claim": false
          },
          "intensity_vs_official": {
            "d": 0.24702658024156193,
            "ci": [
              -0.629124669818112,
              1.1101479554479572
            ],
            "level": 0.9875,
            "claim": false
          },
          "track_vs_hcca_descriptive": {
            "d": -6.235920312460119,
            "ci": [
              -11.137829812648409,
              -1.3597295566070906
            ],
            "level": 0.95,
            "claim": null
          },
          "tc1o_track_vs_official": {
            "d": -3.0533150779414404,
            "ci": [
              -8.220431950330632,
              1.4031741166866838
            ],
            "level": 0.9875,
            "claim": false
          },
          "season_2026_track_vs_official": {
            "d": -0.9039648824503187,
            "ci": [
              -3.9460705140091137,
              2.2212449704916715
            ],
            "level": 0.95,
            "claim": null
          }
        },
        "paper_doi": null,
        "paper_url": "https://github.com/coherence-energy-labs/hazardpulse",
        "license": "Apache-2.0",
        "publisher": "HazardPulse / Coherence Energy Labs",
        "publisher_url": "https://hazardpulse.com",
        "release_utc": "2026-10-10T11:05:02.905219Z",
        "rf_npe_compatible": false,
        "modality": "natural_hazard_prediction",
        "source": "hazardpulse_publish",
        "lineage": {
          "role": "shown beside NHC's official forecast",
          "program": "docs/HURRICANE_TRACK_INTENSITY_PROGRAM.md",
          "amendment": "protocol + amendment 1 (live)",
          "prereg_tag": "prereg-tc1",
          "selection_and_evaluation": [
            {
              "path": "results/hurricane_tc1/verifier_control.json",
              "sha256": "cbcb5f987b355a75d69568bf0ea2cade6bff61d6fe10ddda5c212c9037ffe712"
            },
            {
              "path": "results/hurricane_tc1/nhc_ofcl_published.json",
              "sha256": "4509b485510e2e6a02a060b2d93a5ad3e0f4dcaf81181f0424e5293387a55c85"
            },
            {
              "path": "results/hurricane_tc1/selection.json",
              "sha256": "35fa2da8fad7b5ea54ff9515232803fa6b4120c649f4f1dff38bcc7d209341bd"
            },
            {
              "path": "results/hurricane_tc1/dev.json",
              "sha256": "5942970c5fa773136662d2d885ab2e4ea2ef4851929d314c8fc887933ccae44c"
            },
            {
              "path": "results/hurricane_tc1/season_2026.json",
              "sha256": "51093ab5ff187a854af2ce3ee753ea4911ed33497ee4154af695e55da5fa1bde"
            }
          ],
          "live_records": {
            "replay": "dist/data/replay/hu_fcst_*.json",
            "key": "tc1",
            "ledger": "dist/data/hurricane-ledger.jsonl"
          }
        }
      },
      {
        "record_id": "weights_hazardpulse_earthquake_gbt_v1",
        "name": "HazardPulse Earthquake GBT v1 (plus_cft) -- NOT SERVED",
        "description": "Not served: the site's earthquake probability is the operational forecast entry (docs/EARTHQUAKE_FORECAST_PROGRAM.md). Gradient-boosted tree ensemble for global M6+ earthquake probability per 2-degree grid cell, 30-day forward window. 73 features = Block S (61 seismicity) + Block C (12 coherence field theory). Trained on declustered USGS catalog 2005-2017, validated 2018-2019, tested 2020-2024 (plus_cft variant of trained_models_v3). The benchmark below is a CASE-CONTROL NOWCAST (positives scored at the mainshock setting against controls); as an operational forecaster on a gridded forward test this model scored AUC 0.509 -- no skill (docs/earthquake_nowcast_validation.md).",
        "weights_uri": "hazardpulse://results/models/earthquake_gbt_v1.json",
        "weights_path": "results/models/earthquake_gbt_v1.json",
        "size_bytes": 495610,
        "blake3": "c7fc776069f06b860d2915ca0ff523e6bd0035ccefc4ea1ee6cbbacce450afbf",
        "sha256": "6cb770082c5c2c64b8c61549ba126c6ab3754429513d0df2d6b50d9067c3cab0",
        "framework": "hazardpulse_gbt_v1",
        "format": "json",
        "input_schema": {
          "n_features": 73,
          "blocks": [
            "S (61 seismicity)",
            "C (12 coherence)"
          ],
          "feature_names_path": "src/hazardpulse/earthquake/definitive_model.py:ALL_FEATURE_NAMES_ENHANCED"
        },
        "output_schema": {
          "outputs": [
            "m6_probability_30d"
          ],
          "domain": "[0, 1]",
          "calibration": "logit-link via boosted trees"
        },
        "benchmark": {
          "benchmark_type": "case-control nowcast, not an operational forecast",
          "test_auc_global_baseline": 0.9074433326526443,
          "test_auc_regional_ensemble": 0.8984718535157553,
          "test_brier": 0.11605939643081976,
          "test_bss": 0.3416581890180549,
          "test_window": "USGS M6+ events 2020-2024",
          "operational_auc_pooled": 0.509,
          "operational_source": "docs/earthquake_nowcast_validation.md (backtest_operational_grid.py)"
        },
        "paper_doi": null,
        "paper_url": "https://github.com/coherence-energy-labs/hazardpulse",
        "license": "Apache-2.0",
        "publisher": "HazardPulse / Coherence Energy Labs",
        "publisher_url": "https://hazardpulse.com",
        "release_utc": "2026-10-10T11:05:03.078638Z",
        "rf_npe_compatible": false,
        "modality": "natural_hazard_prediction",
        "source": "hazardpulse_publish"
      },
      {
        "record_id": "weights_hazardpulse_hurricane_ri_v8_3",
        "name": "HazardPulse Hurricane RI v8.3 (ensemble, pinned, served)",
        "description": "v8.2's recipe exactly (histogram-GBT depth 3 + depth 4 + L2 logistic + bagged logistic, members on storms first seen 2000-2021, a converged Newton logistic calibration on 2022-2024), fitted on its training rows with the 5950 byte-identical copies of basin-crossing storms removed. Adopted by amendment 15's registered non-inferiority rule (docs/HURRICANE_RI_V9_PROGRAM.md): on 2967 cycles of storms first seen 2025-2026 in the JTWC basins, none used to fit it, log loss 0.16586 vs v8.2 0.16560, difference +0.00027 [-0.00070, +0.00137] (95%, storms resampled), upper end at most +0.002. It serves the JTWC basins and any NHC cycle without NOAA's SHIPS text; NHC-basin cycles with it are served the NOAA aid entry below.",
        "weights_uri": "hazardpulse://results/models/hurricane_ri_v8_3.json",
        "weights_path": "results/models/hurricane_ri_v8_3.json",
        "size_bytes": 487930,
        "blake3": "fb58c2d6c55776a62cc44045684e2ab75d9ccf5dd15fe56880ecde7bc18acf1d",
        "sha256": "2caff7541eb0d98dabdde778a8d4e7ac6b0e00b930e8e28cf66bf6966935e7da",
        "framework": "hazardpulse_ri_ensemble_v8_2",
        "format": "json",
        "input_schema": {
          "n_features_select": 17,
          "feature_names_path": "src/hazardpulse/hurricane/operational_ri.py"
        },
        "output_schema": {
          "outputs": [
            "ri_probability_24h"
          ],
          "domain": "[0, 1]",
          "calibration": "logistic_on_logit_newton fitted on held-out seasons"
        },
        "benchmark": {
          "test_auc": 0.8517310994047163,
          "test_log_loss_30kt": 0.1658645871778799,
          "test_brier": 0.04555909835794632,
          "n_test_rows": 2967,
          "n_test_events": 158,
          "n_test_storms": 130,
          "test_window": "storms first seen 2025-2026, JTWC basins (bootstrap by storm)",
          "replaced": "hurricane_ri_v8_2",
          "replaced_log_loss_30kt": 0.16559736538976674,
          "d_log_loss_vs_replaced": 0.0002672217881131645,
          "d_log_loss_vs_replaced_ci95": [
            -0.0006971967652468524,
            0.0013714885115692589
          ],
          "d_brier_vs_replaced": 0.00012991118619067358,
          "d_brier_vs_replaced_ci95": [
            -0.00011912412932767398,
            0.0003828126486319044
          ],
          "rule": {
            "margin": 0.002,
            "upper": 0.0013714885115692589,
            "met": true
          }
        },
        "paper_doi": null,
        "paper_url": "https://github.com/coherence-energy-labs/hazardpulse",
        "license": "Apache-2.0",
        "publisher": "HazardPulse / Coherence Energy Labs",
        "publisher_url": "https://hazardpulse.com",
        "release_utc": "2026-10-10T11:05:03.131062Z",
        "rf_npe_compatible": false,
        "modality": "natural_hazard_prediction",
        "source": "hazardpulse_publish",
        "lineage": {
          "role": "served",
          "program": "docs/HURRICANE_RI_V9_PROGRAM.md",
          "amendment": "amendment 15",
          "prereg_tag": "prereg-hurricane-ri-amend15",
          "selection_and_evaluation": [
            {
              "path": "results/calibration/hurricane_ri_v8_3.json",
              "sha256": "bacf474a58d8f55096099c726313486307bf98d727e5bb2a0b42845b7d4740ed"
            },
            {
              "path": "results/calibration/hurricane_ri_v8_3_test_composition.json",
              "sha256": "b48078a3b1b00a2f369e19265240d0fc70cc57dbcefa24af2006a90e102c35a7"
            }
          ],
          "training_data": [
            {
              "path": "results/hurricane_operational_ri_v8_3_2000_2024.jsonl",
              "sha256": "35a4d875e503acc2f7d3d49c026676d0be2d89b325cbdf4a810fe015aac96881",
              "role": "members"
            },
            {
              "path": "results/hurricane_operational_ri_v8_3_2000_2024.jsonl",
              "sha256": "35a4d875e503acc2f7d3d49c026676d0be2d89b325cbdf4a810fe015aac96881",
              "role": "calibration"
            }
          ]
        }
      },
      {
        "record_id": "weights_hazardpulse_hurricane_ri_v8_2",
        "name": "HazardPulse Hurricane RI v8.2 (ensemble, pinned; replaced as the published model by v8.3)",
        "description": "Rapid-intensification ensemble (histogram-GBT depth 3 + depth 4 + L2 logistic + bagged logistic) predicting a >= 30 kt wind increase in the next 24 h, on true synoptic timestamps. Served from a pinned file bound to its training-data hash; calibrated by a converged Newton logistic fit on seasons the members never trained on. Held-out test: 298 storms first seen 2022-2024, 507 RI events. It served the JTWC basins and NHC cycles without NOAA's SHIPS text from 2026-10-02 until amendment 15 (docs/HURRICANE_RI_V9_PROGRAM.md) replaced it with v8.3, its recipe on de-duplicated rows. It is still loaded live: J1 is built on it and tested against it.",
        "weights_uri": "hazardpulse://results/models/hurricane_ri_v8_2.json",
        "weights_path": "results/models/hurricane_ri_v8_2.json",
        "size_bytes": 489071,
        "blake3": "79713dcde33ca147fdd1c64bfa4f9bbb9deb94cbce61fe18e174118ba6ce8882",
        "sha256": "b9b640a7ffc53c5b8e70a08fbc9b98b11f6954768dad0cee5f723030f70ecdd4",
        "framework": "hazardpulse_ri_ensemble_v8_2",
        "format": "json",
        "input_schema": {
          "n_features_select": 17,
          "feature_names_path": "src/hazardpulse/hurricane/operational_ri.py"
        },
        "output_schema": {
          "outputs": [
            "ri_probability_24h"
          ],
          "domain": "[0, 1]",
          "calibration": "logistic_on_logit_newton fitted on held-out seasons"
        },
        "benchmark": {
          "test_auc": 0.8474428424590938,
          "test_auc_ci95": [
            0.820925948197543,
            0.8740213279606002
          ],
          "test_brier": 0.04892222915271466,
          "test_bss_vs_climatology": 0.14538319828600288,
          "test_bss_ci95": [
            0.10035063975313893,
            0.18781644388079763
          ],
          "calibration_slope": 0.8794374712589407,
          "persistence_auc": 0.768276775589885,
          "n_test_rows": 8317,
          "test_window": "storms first seen 2022-2024 (bootstrap by storm)"
        },
        "paper_doi": null,
        "paper_url": "https://github.com/coherence-energy-labs/hazardpulse",
        "license": "Apache-2.0",
        "publisher": "HazardPulse / Coherence Energy Labs",
        "publisher_url": "https://hazardpulse.com",
        "release_utc": "2026-10-10T11:05:03.164871Z",
        "rf_npe_compatible": false,
        "modality": "natural_hazard_prediction",
        "source": "hazardpulse_publish"
      },
      {
        "record_id": "weights_hazardpulse_hurricane_ri_stack_v1-35938d6c09b7",
        "name": "HazardPulse Hurricane RI, NHC basins: NOAA aid stack v1 (candidate A)",
        "description": "P(>= 30 kt wind increase in 24 h) for Atlantic, East and Central Pacific storms from NOAA's operational RI guidance: DTOPS raw (SHIPS-RII where DTOPS is missing: Amendment 1, item 1). Read live from NHC's SHIPS text for the storm's cycle; chosen among six pre-registered candidates (DTOPS, SHIPS-RII, RI consensus, and three logistic stacks of the NOAA aids, one with HazardPulse v8.2) by forward chaining on 2020-2024 under a parsimony rule (docs/HURRICANE_RI_PROGRAM.md); scored once on the 2025 season.",
        "weights_uri": "hazardpulse://results/models/hurricane_ri_stack_v1.json",
        "weights_path": "results/models/hurricane_ri_stack_v1.json",
        "size_bytes": 900,
        "blake3": "7ed8606d7c555d847253a331c3dd1d3a5b70ab6231298e8f60e4ed8f88412ffb",
        "sha256": "35938d6c09b7f340317751ba2cc9847ff46a8c8f26da4e6dc71247eae9a17805",
        "framework": "hazardpulse_noaa_ri_aid_stack_v1",
        "format": "json",
        "input_schema": {
          "source": "NHC SHIPS text 'Matrix of RI probabilities', column 30/24 (ATCF e-deck RI records in training)",
          "ships_text_rows": {
            "DTOP": "DTOPS",
            "RIOB": "Bayesian",
            "RIOC": "Consensus",
            "RIOD": "SHIPS-RII",
            "RIOL": "Logistic",
            "SDCN": "SDCON"
          },
          "aid": "DTOP",
          "fallback": "RIOD",
          "pool_inputs": null,
          "representation": "ATCF e-deck whole percent; live SHIPS text: SHIPS-RII from SHIPS's own whole-percent line, every other row rounded half-up (hazardpulse.hurricane.ships_text)",
          "feature_names_path": "src/hazardpulse/hurricane/ri_stack.py"
        },
        "output_schema": {
          "outputs": [
            "ri_probability_24h"
          ],
          "domain": "[0, 1]",
          "calibration": "none: NOAA's probability as issued",
          "model_version": "hurricane_ri_stack_v1-35938d6c09b7"
        },
        "benchmark": {
          "benchmark_bound_to_this_artifact": true,
          "test_window": "2025 season, NHC-basin cycles with a SHIPS-RII record, read once",
          "test_auc": 0.9283907295576954,
          "test_auc_ci95": [
            0.8899862208309819,
            0.9658622420660833
          ],
          "test_brier": 0.04691114808652246,
          "test_brier_ci95": [
            0.02723118116550418,
            0.06890315125684501
          ],
          "test_bss_vs_fit_season_climatology": 0.31091516449946055,
          "test_bss_ci95": [
            0.18304950856631877,
            0.3977842999673146
          ],
          "test_log_loss": 0.15785073493165874,
          "test_log_loss_ci95": [
            0.10236097106908831,
            0.2172195885160013
          ],
          "calibration_slope": 1.3084170793435637,
          "n_test_cycles": 601,
          "n_test_events": 44,
          "n_test_storms": 33,
          "paired_this_minus": {
            "B": {
              "delta_log_loss": -0.05887158464310835,
              "delta_brier": -0.012715307820299504,
              "delta_auc": 0.06965072629345515,
              "ci95": {
                "delta_auc": [
                  0.022731097463278636,
                  0.14239789523677135
                ],
                "delta_brier": [
                  -0.01862402709073655,
                  -0.007012795398902491
                ],
                "delta_log_loss": [
                  -0.07956028826673069,
                  -0.035770975762275274
                ]
              }
            },
            "C": {
              "delta_log_loss": -0.03830918348475151,
              "delta_brier": -0.009259567387687191,
              "delta_auc": 0.05418638811816545,
              "ci95": {
                "delta_auc": [
                  0.005565432839671055,
                  0.13245588662996327
                ],
                "delta_brier": [
                  -0.015885154246891044,
                  -0.002047285531971603
                ],
                "delta_log_loss": [
                  -0.058730401522548416,
                  -0.016104979445747722
                ]
              }
            },
            "v8_2_on_v82_subset": {
              "n": 601,
              "delta_log_loss": -0.048420370801767476,
              "delta_brier": -0.013298275020354959,
              "delta_auc": 0.07956585604700506,
              "ci95": {
                "delta_auc": [
                  0.025140377600702087,
                  0.14479220785084004
                ],
                "delta_brier": [
                  -0.022370459913846796,
                  -0.005273356905305748
                ],
                "delta_log_loss": [
                  -0.08125669325735518,
                  -0.019074508576535358
                ]
              }
            }
          },
          "selection_pooled_dev": {
            "log_loss": 0.16653508144384657,
            "auc": 0.8988684582743989,
            "brier": 0.048325462555066076,
            "bss": 0.2144389464285663
          }
        },
        "paper_doi": null,
        "paper_url": "https://github.com/coherence-energy-labs/hazardpulse",
        "license": "Apache-2.0",
        "publisher": "HazardPulse / Coherence Energy Labs",
        "publisher_url": "https://hazardpulse.com",
        "release_utc": "2026-10-10T11:05:03.180008Z",
        "rf_npe_compatible": false,
        "modality": "natural_hazard_prediction",
        "source": "hazardpulse_publish"
      }
    ],
    "models": [
      {
        "record_id": "weights_hazardpulse_tornado_v3-05a06c843c87",
        "name": "HazardPulse Tornado v3 (served)",
        "description": "served: 60-min probability (inputs include the live NWS warning state). P(a tornado from THIS storm within 60 min); inputs include NWS warning state. Event: a tornado report starts within 10 km of THIS storm's tracked polygon within 60 min. LightGBM (339 trees) exported to a NumPy payload; Platt on leave-one-year-out scores; trained 2020-10-15..2024-12-31, fixed rounds chosen by early stopping on validation 2023; scored once on 2025.",
        "weights_uri": "hazardpulse://results/models/tornado_v3_w.json",
        "weights_path": "results/models/tornado_v3_w.json",
        "size_bytes": 1073406,
        "blake3": "04ccabd09ce82c0a057f5a272e11110e7746c9b6853fdd5b01208b575a9cbf1b",
        "sha256": "05a06c843c87c99e10e95bfea8f7d542b9d9e5ec14151cfe4dc1252715b3a4ba",
        "framework": "hazardpulse_lgbm_payload/1",
        "format": "json",
        "input_schema": {
          "n_features": 30,
          "blocks": [
            "P",
            "W"
          ],
          "feature_names_path": "results/models/tornado_v3_w.json (feature_names)"
        },
        "output_schema": {
          "outputs": [
            "storm_60"
          ],
          "domain": "[0, 1]",
          "calibration": "Platt on leave-one-year-out scores; Venn-Abers band",
          "model_version": "tornado_v3-05a06c843c87"
        },
        "benchmark": {
          "test_window": "every ProbSevere storm observation of 2025 (read once by the final pipeline)",
          "test_auc": 0.970247810812761,
          "test_auc_ci": [
            0.9635708817450787,
            0.975789228589924
          ],
          "test_bss": 0.10670600619258641,
          "test_pr_auc": 0.1749710817781056,
          "n_test_samples": 1469977,
          "n_test_positive": 1579,
          "program": "docs/TORNADO_MODEL_PROGRAM.md"
        },
        "paper_doi": null,
        "paper_url": "https://github.com/coherence-energy-labs/hazardpulse",
        "license": "Apache-2.0",
        "publisher": "HazardPulse / Coherence Energy Labs",
        "publisher_url": "https://hazardpulse.com",
        "release_utc": "2026-10-10T11:05:01.535424Z",
        "rf_npe_compatible": false,
        "modality": "natural_hazard_prediction",
        "source": "hazardpulse_publish"
      },
      {
        "record_id": "weights_hazardpulse_tornado_v3-9005905f08b7",
        "name": "HazardPulse Tornado v3 (served fallback when the NWS warnings feed is down)",
        "description": "served fallback when the NWS warnings feed is down. P(a tornado from THIS storm within 60 min); no NWS input (fallback). Event: a tornado report starts within 10 km of THIS storm's tracked polygon within 60 min. LightGBM (339 trees) exported to a NumPy payload; Platt on leave-one-year-out scores; trained 2020-10-15..2024-12-31, fixed rounds chosen by early stopping on validation 2023; scored once on 2025.",
        "weights_uri": "hazardpulse://results/models/tornado_v3.json",
        "weights_path": "results/models/tornado_v3.json",
        "size_bytes": 1116027,
        "blake3": "3de2986a283901616582b629aea1aacc25eb812c5af419c81e2e9fe5780df2db",
        "sha256": "9005905f08b71b640a8e9dfe143be93e9ecee2606740c9a361f6c1999f75ac79",
        "framework": "hazardpulse_lgbm_payload/1",
        "format": "json",
        "input_schema": {
          "n_features": 28,
          "blocks": [
            "P"
          ],
          "feature_names_path": "results/models/tornado_v3.json (feature_names)"
        },
        "output_schema": {
          "outputs": [
            "storm_60"
          ],
          "domain": "[0, 1]",
          "calibration": "Platt on leave-one-year-out scores; Venn-Abers band",
          "model_version": "tornado_v3-9005905f08b7"
        },
        "benchmark": {
          "test_window": "every ProbSevere storm observation of 2025 (read once by the final pipeline)",
          "test_auc": 0.9693152081267481,
          "test_auc_ci": [
            0.9627864751426389,
            0.974832537374192
          ],
          "test_bss": 0.09659971609617568,
          "test_pr_auc": 0.1664243994006584,
          "n_test_samples": 1469977,
          "n_test_positive": 1579,
          "program": "docs/TORNADO_MODEL_PROGRAM.md"
        },
        "paper_doi": null,
        "paper_url": "https://github.com/coherence-energy-labs/hazardpulse",
        "license": "Apache-2.0",
        "publisher": "HazardPulse / Coherence Energy Labs",
        "publisher_url": "https://hazardpulse.com",
        "release_utc": "2026-10-10T11:05:01.572540Z",
        "rf_npe_compatible": false,
        "modality": "natural_hazard_prediction",
        "source": "hazardpulse_publish"
      },
      {
        "record_id": "weights_hazardpulse_tornado_v3-c45167a49056",
        "name": "HazardPulse Tornado v3 (served product)",
        "description": "served product: 30-min probability. P(a tornado from THIS storm within 30 min). Event: a tornado report starts within 10 km of THIS storm's tracked polygon within 30 min. LightGBM (301 trees) exported to a NumPy payload; Platt on leave-one-year-out scores; trained 2020-10-15..2024-12-31, fixed rounds chosen by early stopping on validation 2023; scored once on 2025.",
        "weights_uri": "hazardpulse://results/models/tornado_v3_w_30.json",
        "weights_path": "results/models/tornado_v3_w_30.json",
        "size_bytes": 837238,
        "blake3": "b0630f58e90c318bb522d2d517d51f03834736dc107427beef27763481a199ed",
        "sha256": "c45167a49056eb64fe01c1eecfb8acd8e35f2cae95d9e4f84a01913782864676",
        "framework": "hazardpulse_lgbm_payload/1",
        "format": "json",
        "input_schema": {
          "n_features": 30,
          "blocks": [
            "P",
            "W"
          ],
          "feature_names_path": "results/models/tornado_v3_w_30.json (feature_names)"
        },
        "output_schema": {
          "outputs": [
            "storm_30"
          ],
          "domain": "[0, 1]",
          "calibration": "Platt on leave-one-year-out scores; Venn-Abers band",
          "model_version": "tornado_v3-c45167a49056"
        },
        "benchmark": {
          "test_window": "every ProbSevere storm observation of 2025 (read once by the final pipeline)",
          "test_auc": 0.9743128937913959,
          "test_auc_ci": [
            0.9675163768823757,
            0.9794856976195109
          ],
          "test_bss": 0.08395941995147549,
          "test_pr_auc": 0.1393515628960252,
          "n_test_samples": 1469977,
          "n_test_positive": 978,
          "program": "docs/TORNADO_MODEL_PROGRAM.md"
        },
        "paper_doi": null,
        "paper_url": "https://github.com/coherence-energy-labs/hazardpulse",
        "license": "Apache-2.0",
        "publisher": "HazardPulse / Coherence Energy Labs",
        "publisher_url": "https://hazardpulse.com",
        "release_utc": "2026-10-10T11:05:01.602091Z",
        "rf_npe_compatible": false,
        "modality": "natural_hazard_prediction",
        "source": "hazardpulse_publish"
      },
      {
        "record_id": "weights_hazardpulse_tornado_v3-58208efc4bb4",
        "name": "HazardPulse Tornado v3 (served product)",
        "description": "served product: 90-min probability. P(a tornado from THIS storm within 90 min). Event: a tornado report starts within 10 km of THIS storm's tracked polygon within 90 min. LightGBM (312 trees) exported to a NumPy payload; Platt on leave-one-year-out scores; trained 2020-10-15..2024-12-31, fixed rounds chosen by early stopping on validation 2023; scored once on 2025.",
        "weights_uri": "hazardpulse://results/models/tornado_v3_w_90.json",
        "weights_path": "results/models/tornado_v3_w_90.json",
        "size_bytes": 1014707,
        "blake3": "a91c7ece6a0faea87fb1f316b352824edced56995b50e621dba0e7e85a481093",
        "sha256": "58208efc4bb403bb62f6fe630581588c1342eeaf0ccde867c180bafbadca74fa",
        "framework": "hazardpulse_lgbm_payload/1",
        "format": "json",
        "input_schema": {
          "n_features": 30,
          "blocks": [
            "P",
            "W"
          ],
          "feature_names_path": "results/models/tornado_v3_w_90.json (feature_names)"
        },
        "output_schema": {
          "outputs": [
            "storm_90"
          ],
          "domain": "[0, 1]",
          "calibration": "Platt on leave-one-year-out scores; Venn-Abers band",
          "model_version": "tornado_v3-58208efc4bb4"
        },
        "benchmark": {
          "test_window": "every ProbSevere storm observation of 2025 (read once by the final pipeline)",
          "test_auc": 0.9681260954912128,
          "test_auc_ci": [
            0.9613780960495075,
            0.9735512104408639
          ],
          "test_bss": 0.11136491727407305,
          "test_pr_auc": 0.18940639304030257,
          "n_test_samples": 1469977,
          "n_test_positive": 1993,
          "program": "docs/TORNADO_MODEL_PROGRAM.md"
        },
        "paper_doi": null,
        "paper_url": "https://github.com/coherence-energy-labs/hazardpulse",
        "license": "Apache-2.0",
        "publisher": "HazardPulse / Coherence Energy Labs",
        "publisher_url": "https://hazardpulse.com",
        "release_utc": "2026-10-10T11:05:01.638269Z",
        "rf_npe_compatible": false,
        "modality": "natural_hazard_prediction",
        "source": "hazardpulse_publish"
      },
      {
        "record_id": "weights_hazardpulse_tornado_v3-a4413fadb32c",
        "name": "HazardPulse Tornado v3 (served product)",
        "description": "served product: EF2+ tornado within 60 min. P(an EF2+ tornado from THIS storm within 60 min). Event: an EF2+ tornado report starts within 10 km of THIS storm's tracked polygon within 60 min. LightGBM (371 trees) exported to a NumPy payload; Platt on leave-one-year-out scores; trained 2020-10-15..2024-12-31, fixed rounds chosen by early stopping on validation 2023; scored once on 2025.",
        "weights_uri": "hazardpulse://results/models/tornado_v3_w_ef2.json",
        "weights_path": "results/models/tornado_v3_w_ef2.json",
        "size_bytes": 565019,
        "blake3": "9d067f8b73f2069c86ba8705d077cfd0e3ce8a2c95f99ef81094d3926bb78f03",
        "sha256": "a4413fadb32cf904dfe3eb7bab0c64a666737be6083d0f3dc5cb6f396dbfd442",
        "framework": "hazardpulse_lgbm_payload/1",
        "format": "json",
        "input_schema": {
          "n_features": 30,
          "blocks": [
            "P",
            "W"
          ],
          "feature_names_path": "results/models/tornado_v3_w_ef2.json (feature_names)"
        },
        "output_schema": {
          "outputs": [
            "storm_60_ef2"
          ],
          "domain": "[0, 1]",
          "calibration": "Platt on leave-one-year-out scores; Venn-Abers band",
          "model_version": "tornado_v3-a4413fadb32c"
        },
        "benchmark": {
          "test_window": "every ProbSevere storm observation of 2025 (read once by the final pipeline)",
          "test_auc": 0.9942334680166941,
          "test_auc_ci": [
            0.9891313131300252,
            0.9970818818728813
          ],
          "test_bss": 0.060807432686797336,
          "test_pr_auc": 0.1512001064981734,
          "n_test_samples": 1469977,
          "n_test_positive": 284,
          "program": "docs/TORNADO_MODEL_PROGRAM.md"
        },
        "paper_doi": null,
        "paper_url": "https://github.com/coherence-energy-labs/hazardpulse",
        "license": "Apache-2.0",
        "publisher": "HazardPulse / Coherence Energy Labs",
        "publisher_url": "https://hazardpulse.com",
        "release_utc": "2026-10-10T11:05:01.663024Z",
        "rf_npe_compatible": false,
        "modality": "natural_hazard_prediction",
        "source": "hazardpulse_publish"
      },
      {
        "record_id": "weights_hazardpulse_tornado_gbt_v1",
        "name": "HazardPulse Tornado GBT v1 (definitive) -- SUPERSEDED by v3",
        "description": "Superseded by the v3 suite (served); kept as the legacy path and the v3 benchmark. Gradient-boosted trees for storm-object tornado probability over CONUS: P(tornado report within 40 km in the next 60 min | ProbSevere storm object). 41 features (Block P ProbSevere + Block E evolution + Block H HRRR atm + Block C coherence field theory). Train 2021-2022, validation/calibration 2023, test 2024 (1,004,531 storm objects, base rate 0.0032). Labels on absolute UTC instants.",
        "weights_uri": "hazardpulse://results/models/tornado_gbt_v1.json",
        "weights_path": "results/models/tornado_gbt_v1.json",
        "size_bytes": 531647,
        "blake3": "c96221fe270e2bde3f59ada02b937148c2e16ae8fd808ff9e29aa9120c78e1e8",
        "sha256": "48637c637e01e98a88d4d057ae9933d7f9baf859dfd8546408417000b5948118",
        "framework": "hazardpulse_gbt_v1",
        "format": "json",
        "input_schema": {
          "n_features": 41,
          "blocks": [
            "P (13 ProbSevere)",
            "E (6 evolution)",
            "H (12 HRRR)",
            "C (10 coherence)"
          ],
          "feature_names_path": "src/hazardpulse/tornado/definitive_model.py"
        },
        "output_schema": {
          "outputs": [
            "tornado_probability_60min_40km"
          ],
          "domain": "[0, 1]",
          "calibration": "Platt (sigmoid(a*F + b)) fitted on the full 2023 validation population"
        },
        "benchmark": {
          "test_auc": 0.939537523974802,
          "test_auc_ci": {
            "mean": 0.9392572984239143,
            "ci_lo": 0.9302765215782856,
            "ci_hi": 0.9474221754238894,
            "std": 0.004401175944373564,
            "unit": "day",
            "n_clusters": 197
          },
          "test_brier": 0.0030295057150957643,
          "test_bss": 0.056239715640696075,
          "test_pr_auc": 0.10806666819378413,
          "test_base_rate": 0.0032204083298574162,
          "test_window": "2024 SPC tornado reports",
          "n_test_samples": 1004531,
          "n_train_samples": 27810
        },
        "paper_doi": null,
        "paper_url": "https://github.com/coherence-energy-labs/hazardpulse",
        "license": "Apache-2.0",
        "publisher": "HazardPulse / Coherence Energy Labs",
        "publisher_url": "https://hazardpulse.com",
        "release_utc": "2026-10-10T11:05:01.683402Z",
        "rf_npe_compatible": false,
        "modality": "natural_hazard_prediction",
        "source": "hazardpulse_publish"
      },
      {
        "record_id": "weights_hazardpulse_eq_operational_C0_v1-d28c62a2e35b",
        "name": "HazardPulse Earthquake operational forecast v1 (candidate C0, base of the served S2)",
        "description": "P(at least one ComCat M6.0+ epicentre in the 2-degree cell within the next 30 days) for every cell of the global grid, from boosted trees (LightGBM, scored in NumPy) over its long-term smoothed-seismicity rate, an ETAS-style short-term clustering rate and recent catalog counts of ComCat M5+ events since 1973 strictly before the issue time. Parameters fitted by Bernoulli likelihood on weekly issue times 2005-2017; chosen on 2018-2020 by a pre-registered information-gain rule with a parsimony clause; scored once on 2023-2025 (docs/EARTHQUAKE_FORECAST_PROGRAM.md). The artifact holds the parameters and the frozen M5+ catalog; live events after its cutoff come from the scorer's USGS fetch.",
        "weights_uri": "hazardpulse://results/models/earthquake_operational_v1.json",
        "weights_path": "results/models/earthquake_operational_v1.json",
        "size_bytes": 3299794,
        "blake3": "4acde0da699c050e7996fc16fd315acf5c23cf6ff87c74bb81bab5b1da119744",
        "sha256": "d28c62a2e35b9e19decf157cacc7763d9ee7ebd14588d839e6c81eacc6b7fb31",
        "framework": "hazardpulse_eq_operational_v1",
        "format": "json",
        "input_schema": {
          "inputs": "ComCat events M>=5.0 with origin time strictly before the issue time (1973 onward)",
          "frozen_catalog_events": 89861,
          "frozen_catalog_cutoff": "2026-10-01T00:00:00Z",
          "feature_names_path": "src/hazardpulse/earthquake/operational_forecast.py"
        },
        "output_schema": {
          "outputs": [
            "m6_probability_30d_every_cell"
          ],
          "domain": "[0, 1]",
          "calibration": "none applied: the trees' log-loss fit over every FIT cell-time (negatives sampled 5% at weight 20)",
          "model_version": "eq_operational_C0_v1-d28c62a2e35b",
          "rate_model": {
            "name": "B",
            "long": {
              "kernel_km": 20,
              "declustered": false,
              "mu": 3.3183619687959984,
              "eps": 0.014908690984180734
            },
            "short": {
              "d0_km": 5,
              "K": 0.0009226757424746414,
              "alpha": 0.5334327923770236,
              "c_days": 0.010090892249896951,
              "p": 0.7773011016332287
            }
          },
          "trees": {
            "n_trees": 156,
            "features": [
              "log10_lambda_A",
              "log10_lambda_B",
              "log10_lambda_short",
              "n45_cell_7d",
              "n45_cell_30d",
              "n45_cell_365d",
              "n45_cell_5y",
              "n45_nbr3_30d",
              "n45_nbr3_365d",
              "n25_cell_30d",
              "n25_cell_365d",
              "maxmag_nbr3_30d",
              "maxmag_nbr3_365d",
              "log10_days_since_m6_nbr3",
              "mag_last_m6_nbr3",
              "log10_days_since_m7_nbr5",
              "mag_last_m7_nbr5",
              "mean_depth_cell_5y",
              "frac_deep70_cell_5y",
              "b_value_nbr3_10y",
              "active"
            ]
          }
        },
        "benchmark": {
          "benchmark_type": "operational forward test on every cell-time of the grid (not case-control)",
          "benchmark_bound_to_this_artifact": true,
          "test_window": "weekly issue times 2023-01-02 .. 2025-12-01, 30-day windows, read once",
          "test_information_gain_per_target_nats": 2.5931972184801944,
          "test_information_gain_ci95": [
            2.4686426560158417,
            2.711509870200592
          ],
          "test_auc": 0.9680856621300102,
          "test_auc_ci95": [
            0.9632623772723998,
            0.9723249868161139
          ],
          "test_brier": 0.0007563565589946233,
          "test_bss_vs_uniform": 0.020976418229227023,
          "test_bss_ci95": [
            0.013449773929628506,
            0.028250147408685755
          ],
          "test_auc_active_cells": 0.7669260522853114,
          "test_calibration_ratio_sum_p_over_sum_y": 1.1355167492486224,
          "reference_A_long_term_ig": 2.5326744779119363,
          "paired_this_minus_A": {
            "ig_per_target": {
              "diff": 0.060522740568258016,
              "ci95": [
                0.00033452812934928785,
                0.12004451304499845
              ],
              "frac_boot_le_0": 0.0245
            },
            "auc": {
              "diff": 0.0013012638125527998,
              "ci95": [
                0.00003471150494782916,
                0.002580636852037907
              ],
              "frac_boot_le_0": 0.021
            },
            "brier": {
              "diff": -0.0000029584178373490925,
              "ci95": [
                -0.000007570732172511866,
                0.0000013180625715066636
              ],
              "frac_boot_le_0": 0.909
            },
            "bss": {
              "diff": 0.0038293590411194733,
              "ci95": [
                -0.0017375226633299823,
                0.009638443958647304
              ],
              "frac_boot_le_0": 0.091
            }
          },
          "n_test_positive_cell_windows": 1384
        },
        "paper_doi": null,
        "paper_url": "https://github.com/coherence-energy-labs/hazardpulse",
        "license": "Apache-2.0",
        "publisher": "HazardPulse / Coherence Energy Labs",
        "publisher_url": "https://hazardpulse.com",
        "release_utc": "2026-10-10T11:05:02.190681Z",
        "rf_npe_compatible": false,
        "modality": "natural_hazard_prediction",
        "source": "hazardpulse_publish",
        "lineage": {
          "role": "base of the served S2",
          "program": "docs/EARTHQUAKE_FORECAST_PROGRAM.md",
          "amendment": "sections 1-9",
          "prereg_tag": null,
          "registration": "sections 1-8 frozen before the first fit; their SHA-256 is recorded in section 9",
          "selection_and_evaluation": [
            {
              "path": "results/earthquake_program/fit_ab.json",
              "sha256": "f35718489db93112d96c49faf4d7fc94f6d9de052c346fe3c361feef40627e50"
            },
            {
              "path": "results/earthquake_program/fit_c.json",
              "sha256": "0ffe269115f7a99f229e782cea82066b9128fdca756c53727ab6f07839c1644b"
            },
            {
              "path": "results/earthquake_program/choose.json",
              "sha256": "ee8c0e253ac22451331c8bc3e0ff02ad0d3061466d56f68459847cb9b51e417d"
            },
            {
              "path": "results/earthquake_program/dev.json",
              "sha256": "23d4c43bce97306fb205da957d78f6a8867cb55584d49c18ee9e16d984ce3fa9"
            },
            {
              "path": "results/earthquake_program/final.json",
              "sha256": "298bcd0dac33272de021fc7b61ca7aa31e8faad76ece91fd5d7bec4f7773d7a5"
            },
            {
              "path": "results/earthquake_program/artifact.json",
              "sha256": "50caf290e120f6db93acdb115dd23f7078aae29849bf7e7a09bc0300345047bc"
            }
          ],
          "live_records": {
            "replay": "dist/data/replay/eq_fcst_*.json (the full 11,700-cell grid)",
            "ledger": "dist/data/earthquake-ledger.jsonl",
            "prospective": "results/earthquake_prospective/"
          }
        }
      },
      {
        "record_id": "weights_hazardpulse_eq_operational_S2_gear1_v2-ecb87f020f99",
        "name": "HazardPulse Earthquake operational forecast S2 (C0 + GEAR1 weighted by the cell's activity, served)",
        "description": "P(at least one ComCat M6.0+ epicentre in the 2-degree cell within the next 30 days) for every cell: logit p = a + c logit(p_C0) + (b + d logit(p_C0)) log10 G, with p_C0 from eq_operational_C0_v1-d28c62a2e35b and G the GEAR1 long-term rate (Bird et al. 2015; geodetic strain + smoothed seismicity; CC-BY-4.0) on the grid. Weights fitted on 2018-2020, decided on 2021-2022 against S1, GEAR1 with one weight (docs/EARTHQUAKE_FORECAST_PROGRAM.md section 12); 2023-2025 is a declared second read.",
        "weights_uri": "hazardpulse://results/models/earthquake_gear1_stack_v2.json",
        "weights_path": "results/models/earthquake_gear1_stack_v2.json",
        "size_bytes": 225438,
        "blake3": "58a739db7daf796b878eef52dd6a659d597380fdddd9296cfcb8cbc72cd9b47d",
        "sha256": "ecb87f020f99abe272f1bd6dbc738f608c497c7b95e36de86bfad48d8cbfb393",
        "framework": "hazardpulse_eq_operational_stack_v2",
        "format": "json",
        "input_schema": {
          "base_model_version": "eq_operational_C0_v1-d28c62a2e35b",
          "gear1_sha256": "82f469ab88a75cf325f7eef8c5413ed10e103ef2e4db8c7032602f5524b63b9b",
          "gear1_source": "https://zenodo.org/api/records/7086053/files/GEAR1.dat/content"
        },
        "output_schema": {
          "outputs": [
            "m6_probability_30d_every_cell"
          ],
          "domain": "[0, 1]",
          "calibration": "the stack's logistic weights (fitted by Bernoulli likelihood on 2018-2020)",
          "model_version": "eq_operational_S2_gear1_v2-ecb87f020f99",
          "coefficients": {
            "a": -0.5386595234045181,
            "c": 0.7461788191936157,
            "b": -0.07815908648879437,
            "d": -0.07326573161498508
          }
        },
        "benchmark": {
          "benchmark_type": "operational forward test on every cell-time of the grid (not case-control)",
          "benchmark_bound_to_this_artifact": true,
          "decided_on": "weekly issue times 2021-2022",
          "dev_ig_vs_recalibrated_C0": {
            "diff": 0.02979048727441036,
            "ci95": [
              0.014148505935786138,
              0.0458881373232704
            ],
            "frac_boot_le_0": 0.0005
          },
          "dev_ig_vs_S1": {
            "diff": 0.0139073689160365,
            "ci95": [
              0.001516319789187848,
              0.025523650515839734
            ],
            "frac_boot_le_0": 0.015
          },
          "test_window": "weekly issue times 2023-2025, 30-day windows (a declared second read)",
          "test_information_gain_per_target_nats": 2.6133805581418295,
          "test_information_gain_ci95": [
            2.489305236978176,
            2.7320432697409816
          ],
          "test_auc": 0.968720390004432,
          "test_auc_ci95": [
            0.9644724677336102,
            0.9726253165027496
          ],
          "test_bss_vs_uniform": 0.021865496213490765,
          "paired_this_minus_C0": {
            "ig_per_target": {
              "diff": 0.020183339661636435,
              "ci95": [
                0.003202905439769244,
                0.036637854539457504
              ],
              "frac_boot_le_0": 0.008
            },
            "auc": {
              "diff": 0.0006347278744217588,
              "ci95": [
                -0.00009485846528573537,
                0.0014778571538368195
              ],
              "frac_boot_le_0": 0.0465
            },
            "brier": {
              "diff": -6.868679951909816e-7,
              "ci95": [
                -0.0000014791637655697911,
                9.757647058558824e-8
              ],
              "frac_boot_le_0": 0.9595
            },
            "bss": {
              "diff": 0.000889077984263742,
              "ci95": [
                -0.00012282310286806374,
                0.0020254572770575896
              ],
              "frac_boot_le_0": 0.0405
            }
          }
        },
        "paper_doi": null,
        "paper_url": "https://github.com/coherence-energy-labs/hazardpulse",
        "license": "Apache-2.0",
        "publisher": "HazardPulse / Coherence Energy Labs",
        "publisher_url": "https://hazardpulse.com",
        "release_utc": "2026-10-10T11:05:02.266971Z",
        "rf_npe_compatible": false,
        "modality": "natural_hazard_prediction",
        "source": "hazardpulse_publish",
        "lineage": {
          "role": "served",
          "program": "docs/EARTHQUAKE_FORECAST_PROGRAM.md",
          "amendment": "section 12 (E4)",
          "prereg_tag": "prereg-earthquake-e4",
          "selection_and_evaluation": [
            {
              "path": "results/earthquake_program/gear1_cells.json",
              "sha256": "1a6e04893eab8fd144c8b2f3421b3c7c68ad32b966596d3a5a3a7e7b71accfe2"
            },
            {
              "path": "results/earthquake_program/gear1_e4.json",
              "sha256": "fe257dc245988e8495c4a9f2aaa8c92f4b1b385190b5d38f9d66137d7cb93c2c"
            },
            {
              "path": "results/earthquake_program/gear1_served.json",
              "sha256": "7ec7a2687dab8805ee5274aad7a92bfbbbfe0445c65f14db5b8a419db49652bb"
            },
            {
              "path": "results/earthquake_program/stack_artifact.json",
              "sha256": "bd7ab1ef701418fe36b91321e08bdf609c5175ffc4554a995d2b5eb8e146449f"
            }
          ],
          "external_data": {
            "GEAR1": "Zenodo 7086053 GEAR1.dat (CC-BY-4.0), SHA-256 in gear1_cells.json"
          },
          "live_records": {
            "replay": "dist/data/replay/eq_fcst_*.json (the full 11,700-cell grid)",
            "ledger": "dist/data/earthquake-ledger.jsonl",
            "prospective": "results/earthquake_prospective/"
          }
        }
      },
      {
        "record_id": "weights_hazardpulse_hurricane_ri_v9-ce02551062e7",
        "name": "HazardPulse Hurricane RI v9.1 (shadow, in prospective verification)",
        "description": "LightGBM on the early intensity aids' 24-h changes, NOAA's RI probabilities at six thresholds and the official forecast; DTOPS where the early guidance is missing. Recorded on every live NHC cycle beside NOAA's published number, never instead of it; chosen by a pre-registered rule (docs/HURRICANE_RI_V9_PROGRAM.md, protocol + amendment 1).",
        "weights_uri": "hazardpulse://results/models/hurricane_ri_v9.json",
        "weights_path": "results/models/hurricane_ri_v9.json",
        "size_bytes": 137368,
        "blake3": "2238b671038468966d1aa8acb9d0fe332499c16953707f51ae296c0340a42929",
        "sha256": "ce02551062e720461fd408ec7218f3d06fa83e345f45d054e46249992e0a39e7",
        "framework": "hazardpulse_lgbm_payload",
        "format": "json",
        "input_schema": {
          "n_inputs": 49,
          "feature_names_path": "results/models/hurricane_ri_v9.json (feature_names)"
        },
        "output_schema": {
          "outputs": [
            "ri_probability_24h"
          ],
          "domain": "[0, 1]",
          "model_version": "hurricane_ri_v9-ce02551062e7"
        },
        "benchmark": {
          "dev_2022_2025_log_loss_30kt": null,
          "dev_auc": null,
          "dev_brier4": null,
          "claim": "the prospective test in docs/HURRICANE_RI_V9_PROGRAM.md (looks 2026-12-01, 2027-12-01)"
        },
        "paper_doi": null,
        "paper_url": "https://github.com/coherence-energy-labs/hazardpulse",
        "license": "Apache-2.0",
        "publisher": "HazardPulse / Coherence Energy Labs",
        "publisher_url": "https://hazardpulse.com",
        "release_utc": "2026-10-10T11:05:02.401542Z",
        "rf_npe_compatible": false,
        "modality": "natural_hazard_prediction",
        "source": "hazardpulse_publish",
        "lineage": {
          "role": "shadow",
          "shown_on_site": false,
          "program": "docs/HURRICANE_RI_V9_PROGRAM.md",
          "amendment": "protocol + amendment 1",
          "prereg_tag": "prereg-hurricane-ri-v9",
          "candidate": "D_gbt",
          "trained": "NHC cycles 2020-2025",
          "rounds": 166,
          "seeds": null,
          "selection_and_evaluation": [
            {
              "path": "results/calibration/hurricane_ri_v9_selection.json",
              "sha256": "14543da32f61f2d044f7a7531518d42149538bd6dcdfdc9aa5b276ef25eda7ce"
            },
            {
              "path": "results/calibration/hurricane_ri_v9_final.json",
              "sha256": "f092995367b789e61cac0f5eae0f2bb6fa57e02c4308890b42f266152261e930"
            }
          ],
          "live_records": {
            "replay": "dist/data/replay/hu_fcst_*.json",
            "key": "ri_v9_shadow",
            "ledger": "dist/data/hurricane-ledger.jsonl",
            "audit": "results/hurricane_prospective/record_audit.json"
          },
          "prospective": {
            "file": "results/hurricane_prospective/v9_shadow.json",
            "entrant": "v9_1"
          }
        }
      },
      {
        "record_id": "weights_hazardpulse_hurricane_ri_v10-8a5ba5896731",
        "name": "HazardPulse Hurricane RI v10.1 (shadow, in prospective verification)",
        "description": "one threshold-stacked exceedance curve P(dV24 >= k), k = 15-45 kt, on v9's inputs; shown on the site beside NOAA's published number (results/hurricane_prospective/shown_model.json). Recorded on every live NHC cycle beside NOAA's published number, never instead of it; chosen by a pre-registered rule (docs/HURRICANE_RI_V9_PROGRAM.md, amendment 2).",
        "weights_uri": "hazardpulse://results/models/hurricane_ri_v10.json",
        "weights_path": "results/models/hurricane_ri_v10.json",
        "size_bytes": 868335,
        "blake3": "53eff1a688ca9f97ef7465abaf8e782e73f69cc322e825ebbd204c48f40b5a9e",
        "sha256": "8a5ba5896731146ea061ba4ee794ccc1d5bbd7ca9f7df0e8c7c6278a77ab564a",
        "framework": "hazardpulse.hurricane_ri_v10/1",
        "format": "json",
        "input_schema": {
          "n_inputs": 49,
          "feature_names_path": "results/models/hurricane_ri_v10.json (feature_names)"
        },
        "output_schema": {
          "outputs": [
            "exceedance_curve_24h"
          ],
          "domain": "[0, 1]",
          "model_version": "hurricane_ri_v10-8a5ba5896731"
        },
        "benchmark": {
          "dev_2022_2025_log_loss_30kt": 0.1443435895033004,
          "dev_auc": 0.9304329655957001,
          "dev_brier4": null,
          "claim": "the prospective test in docs/HURRICANE_RI_V9_PROGRAM.md (looks 2026-12-01, 2027-12-01)"
        },
        "paper_doi": null,
        "paper_url": "https://github.com/coherence-energy-labs/hazardpulse",
        "license": "Apache-2.0",
        "publisher": "HazardPulse / Coherence Energy Labs",
        "publisher_url": "https://hazardpulse.com",
        "release_utc": "2026-10-10T11:05:02.435838Z",
        "rf_npe_compatible": false,
        "modality": "natural_hazard_prediction",
        "source": "hazardpulse_publish",
        "lineage": {
          "role": "shadow",
          "shown_on_site": true,
          "program": "docs/HURRICANE_RI_V9_PROGRAM.md",
          "amendment": "amendment 2",
          "prereg_tag": "prereg-hurricane-ri-v10",
          "candidate": "V2",
          "trained": "NHC cycles 2020-2025",
          "rounds": [
            170,
            212,
            222,
            196,
            224
          ],
          "seeds": [
            0,
            1,
            2,
            3,
            4
          ],
          "selection_and_evaluation": [
            {
              "path": "results/calibration/hurricane_ri_v10_selection.json",
              "sha256": "2a3218c8db0563bef8f2721fab8238571f4f5b701f89e9ec22edb97edae168a9"
            },
            {
              "path": "results/calibration/hurricane_ri_v10_2026_second_read.json",
              "sha256": "82fcbf4f0626738ed291ad3befd46ade585aad1168eef5ae5f0c777486974683"
            },
            {
              "path": "results/calibration/hurricane_ri_v10_vs_all.json",
              "sha256": "ae377654d1f1e23430df6ba35809d8da598768cfb9c668e739118b0b8799eefd"
            }
          ],
          "live_records": {
            "replay": "dist/data/replay/hu_fcst_*.json",
            "key": "ri_v10_shadow",
            "ledger": "dist/data/hurricane-ledger.jsonl",
            "audit": "results/hurricane_prospective/record_audit.json"
          },
          "prospective": {
            "file": "results/hurricane_prospective/v9_shadow.json",
            "entrant": "v10_1"
          }
        }
      },
      {
        "record_id": "weights_hazardpulse_hurricane_ri_v10_2-3e9c1b766454",
        "name": "HazardPulse Hurricane RI v10.2 (shadow, in prospective verification)",
        "description": "v10.1 with monotone constraints on the guidance and NOAA's probabilities. Recorded on every live NHC cycle beside NOAA's published number, never instead of it; chosen by a pre-registered rule (docs/HURRICANE_RI_V9_PROGRAM.md, amendments 3-4).",
        "weights_uri": "hazardpulse://results/models/hurricane_ri_v10_2.json",
        "weights_path": "results/models/hurricane_ri_v10_2.json",
        "size_bytes": 1028416,
        "blake3": "43567fb4cf1d84497b582b364b9d1b1d66094c5a22b447176ac0fa16e1f32187",
        "sha256": "3e9c1b766454695d07fb6ead9adaba4eaf915dea7ea0f8b572c267a238320ba8",
        "framework": "hazardpulse.hurricane_ri_v10/1",
        "format": "json",
        "input_schema": {
          "n_inputs": 49,
          "feature_names_path": "results/models/hurricane_ri_v10_2.json (feature_names)"
        },
        "output_schema": {
          "outputs": [
            "exceedance_curve_24h"
          ],
          "domain": "[0, 1]",
          "model_version": "hurricane_ri_v10_2-3e9c1b766454"
        },
        "benchmark": {
          "dev_2022_2025_log_loss_30kt": 0.14360848294226844,
          "dev_auc": 0.9322187697105953,
          "dev_brier4": 0.15438310753670495,
          "claim": "the prospective test in docs/HURRICANE_RI_V9_PROGRAM.md (looks 2026-12-01, 2027-12-01)"
        },
        "paper_doi": null,
        "paper_url": "https://github.com/coherence-energy-labs/hazardpulse",
        "license": "Apache-2.0",
        "publisher": "HazardPulse / Coherence Energy Labs",
        "publisher_url": "https://hazardpulse.com",
        "release_utc": "2026-10-10T11:05:02.478293Z",
        "rf_npe_compatible": false,
        "modality": "natural_hazard_prediction",
        "source": "hazardpulse_publish",
        "lineage": {
          "role": "shadow",
          "shown_on_site": false,
          "program": "docs/HURRICANE_RI_V9_PROGRAM.md",
          "amendment": "amendments 3-4",
          "prereg_tag": "prereg-hurricane-ri-amend3",
          "candidate": "V5",
          "trained": "NHC cycles 2020-2025",
          "rounds": [
            258,
            240,
            257,
            202,
            282
          ],
          "seeds": [
            0,
            1,
            2,
            3,
            4
          ],
          "selection_and_evaluation": [
            {
              "path": "results/calibration/hurricane_ri_v10_challengers.json",
              "sha256": "f7e81d5f4af54e1ea666698be33aeb8b351690124cdd6e8db03642dcb7220f06"
            }
          ],
          "live_records": {
            "replay": "dist/data/replay/hu_fcst_*.json",
            "key": "ri_v10_2_shadow",
            "ledger": "dist/data/hurricane-ledger.jsonl",
            "audit": "results/hurricane_prospective/record_audit.json"
          },
          "prospective": {
            "file": "results/hurricane_prospective/v9_shadow.json",
            "entrant": "v10_2"
          }
        }
      },
      {
        "record_id": "weights_hazardpulse_hurricane_ri_v10_3-f941a72e2682",
        "name": "HazardPulse Hurricane RI v10.3 (shadow, in prospective verification)",
        "description": "v10.2 plus 14 cloud-top structure features from NOAA GMGSI infrared (t+2 h and t-4 h). Recorded on every live NHC cycle beside NOAA's published number, never instead of it; chosen by a pre-registered rule (docs/HURRICANE_RI_V9_PROGRAM.md, amendments 5-6).",
        "weights_uri": "hazardpulse://results/models/hurricane_ri_v10_3.json",
        "weights_path": "results/models/hurricane_ri_v10_3.json",
        "size_bytes": 1855866,
        "blake3": "01e608ec2f17797a8426672f80bd4e9adb3a5891d21b45f815651114b43f9f45",
        "sha256": "f941a72e26825287eb6c42db013d8c3b62168d51408e73c5e5282b80c0aa97f8",
        "framework": "hazardpulse.hurricane_ri_v10/1",
        "format": "json",
        "input_schema": {
          "n_inputs": 63,
          "feature_names_path": "results/models/hurricane_ri_v10_3.json (feature_names)"
        },
        "output_schema": {
          "outputs": [
            "exceedance_curve_24h"
          ],
          "domain": "[0, 1]",
          "model_version": "hurricane_ri_v10_3-f941a72e2682"
        },
        "benchmark": {
          "dev_2022_2025_log_loss_30kt": 0.1417825586152726,
          "dev_auc": 0.9333796391243949,
          "dev_brier4": 0.15273506617382557,
          "claim": "the prospective test in docs/HURRICANE_RI_V9_PROGRAM.md (looks 2026-12-01, 2027-12-01)"
        },
        "paper_doi": null,
        "paper_url": "https://github.com/coherence-energy-labs/hazardpulse",
        "license": "Apache-2.0",
        "publisher": "HazardPulse / Coherence Energy Labs",
        "publisher_url": "https://hazardpulse.com",
        "release_utc": "2026-10-10T11:05:02.542752Z",
        "rf_npe_compatible": false,
        "modality": "natural_hazard_prediction",
        "source": "hazardpulse_publish",
        "lineage": {
          "role": "shadow",
          "shown_on_site": false,
          "program": "docs/HURRICANE_RI_V9_PROGRAM.md",
          "amendment": "amendments 5-6",
          "prereg_tag": "prereg-hurricane-ri-amend5",
          "candidate": "V8",
          "trained": "NHC cycles 2020-2025 (IR from 2021-07-12)",
          "rounds": [
            518,
            547,
            411,
            350,
            381
          ],
          "seeds": [
            0,
            1,
            2,
            3,
            4
          ],
          "selection_and_evaluation": [
            {
              "path": "results/calibration/hurricane_ri_v10_ir.json",
              "sha256": "882ec585c53125c054e5e1f27cb20eff579de8b6e1d2b71bee5cd57678ab61ad"
            }
          ],
          "live_records": {
            "replay": "dist/data/replay/hu_fcst_*.json",
            "key": "ri_v10_3_shadow",
            "ledger": "dist/data/hurricane-ledger.jsonl",
            "audit": "results/hurricane_prospective/record_audit.json"
          },
          "prospective": {
            "file": "results/hurricane_prospective/v9_shadow.json",
            "entrant": "v10_3"
          }
        }
      },
      {
        "record_id": "weights_hazardpulse_hurricane_ri_v10_4-9fd8cc8dcc7b",
        "name": "HazardPulse Hurricane RI v10.4 (shadow, in prospective verification)",
        "description": "v10.3 plus 4 balanced-response features: the coherence equation solved for the heating the vortex holds inside its local Rossby radius. Recorded on every live NHC cycle beside NOAA's published number, never instead of it; chosen by a pre-registered rule (docs/HURRICANE_RI_V9_PROGRAM.md, amendments 8-9).",
        "weights_uri": "hazardpulse://results/models/hurricane_ri_v10_4.json",
        "weights_path": "results/models/hurricane_ri_v10_4.json",
        "size_bytes": 2123918,
        "blake3": "46effabc71239af94d90ab1355730c0a7189c547d9d52ec296bf443c5a22eb0d",
        "sha256": "9fd8cc8dcc7bdc86945f4749e9146ae07f611183a7234ba698b5b4043c2aaa2e",
        "framework": "hazardpulse.hurricane_ri_v10/1",
        "format": "json",
        "input_schema": {
          "n_inputs": 67,
          "feature_names_path": "results/models/hurricane_ri_v10_4.json (feature_names)"
        },
        "output_schema": {
          "outputs": [
            "exceedance_curve_24h"
          ],
          "domain": "[0, 1]",
          "model_version": "hurricane_ri_v10_4-9fd8cc8dcc7b"
        },
        "benchmark": {
          "dev_2022_2025_log_loss_30kt": 0.14161766094567663,
          "dev_auc": 0.934031660778479,
          "dev_brier4": 0.1526066149741421,
          "claim": "the prospective test in docs/HURRICANE_RI_V9_PROGRAM.md (looks 2026-12-01, 2027-12-01)"
        },
        "paper_doi": null,
        "paper_url": "https://github.com/coherence-energy-labs/hazardpulse",
        "license": "Apache-2.0",
        "publisher": "HazardPulse / Coherence Energy Labs",
        "publisher_url": "https://hazardpulse.com",
        "release_utc": "2026-10-10T11:05:02.618758Z",
        "rf_npe_compatible": false,
        "modality": "natural_hazard_prediction",
        "source": "hazardpulse_publish",
        "lineage": {
          "role": "shadow",
          "shown_on_site": false,
          "program": "docs/HURRICANE_RI_V9_PROGRAM.md",
          "amendment": "amendments 8-9",
          "prereg_tag": "prereg-hurricane-ri-amend8",
          "candidate": "H8",
          "trained": "NHC cycles 2020-2025 (IR from 2021-07-12)",
          "rounds": [
            504,
            434,
            446,
            623,
            521
          ],
          "seeds": [
            0,
            1,
            2,
            3,
            4
          ],
          "selection_and_evaluation": [
            {
              "path": "results/calibration/hurricane_ri_h8.json",
              "sha256": "8566122fc0b5f30a885f63ac9abbb050a6decb60a8699bf41448cc5c52a6573a"
            }
          ],
          "live_records": {
            "replay": "dist/data/replay/hu_fcst_*.json",
            "key": "ri_v10_4_shadow",
            "ledger": "dist/data/hurricane-ledger.jsonl",
            "audit": "results/hurricane_prospective/record_audit.json"
          },
          "prospective": {
            "file": "results/hurricane_prospective/v9_shadow.json",
            "entrant": "v10_4"
          }
        }
      },
      {
        "record_id": "weights_hazardpulse_hurricane_ri_j1-6ffdec7356c1",
        "name": "HazardPulse Hurricane RI J1 (JTWC basins, shadow, in test against v8.2)",
        "description": "LightGBM (5 seeds, averaged) on v8.2's probability (as a logit), its 17 inputs, 14 NOAA GMGSI infrared cloud-top features and basin indicators; trained on storms of 2022-2025, all six basins (v8.2 is out of sample on every one). Registered hindcast 2024-2025, every JTWC cycle pooled with crops on best-track positions: log loss 0.13360 vs v8.2 0.14121, carried. Recorded on every live WP, IO, SH storm beside the published v8.3 (its comparator stays v8.2, the model it is built on and is fed live), never instead of it; shown on the site and judged only in its scope (WP, SI, results/calibration/hurricane_ri_j2.json). Its prospective test (scripts/score_hurricane_j1_prospective.py, looks 2026-12-01, 2027-12-01) decides whether it becomes the published number.",
        "weights_uri": "hazardpulse://results/models/hurricane_ri_j1.json",
        "weights_path": "results/models/hurricane_ri_j1.json",
        "size_bytes": 1807135,
        "blake3": "a95f1d6ff6af809b761354f091055cf787bb5c2d7f3dde01028722077ff9bb22",
        "sha256": "6ffdec7356c164b1cb8d6c52ae48ec83f1cfa5de34e6ffe8e95d9fff5470eb50",
        "framework": "hazardpulse.hurricane_ri_j1.v1",
        "format": "json",
        "input_schema": {
          "n_inputs": 36,
          "live_basins": [
            "WP",
            "IO",
            "SH"
          ],
          "feature_names_path": "results/models/hurricane_ri_j1.json (feature_names)"
        },
        "output_schema": {
          "outputs": [
            "ri_probability_24h"
          ],
          "domain": "[0, 1]",
          "model_version": "hurricane_ri_j1-6ffdec7356c1",
          "label": "J1"
        },
        "benchmark": {
          "dev_period": "2024-2025",
          "dev_cycles": 3546,
          "dev_events": 158,
          "dev_log_loss_30kt": 0.1336022890735818,
          "dev_brier": 0.0368584913428746,
          "dev_auc": 0.8982578123832439,
          "champion": "v8.2",
          "champion_log_loss": 0.14120859444760037,
          "champion_brier": 0.0376836428643025,
          "d_log_loss_vs_champion": -0.00760630537401859,
          "d_log_loss_vs_champion_ci": [
            -0.014721257403870333,
            -0.000335660678839095
          ],
          "interval_level": 0.95,
          "by_region_d_log_loss": {
            "WP": -0.009561283781011991,
            "NI": 0.004074205484222807,
            "SI": -0.01387850224427119,
            "SP": 0.016401481804157934
          },
          "further_read": {
            "season": "2026",
            "log_loss": 0.19530223835248706,
            "champion_log_loss": 0.21499544272395432,
            "declared": "2026 JTWC basins to date: a further read, no claim"
          },
          "claim": {
            "looks": [
              "2026-12-01",
              "2027-12-01"
            ],
            "level": 0.975,
            "scope": [
              "WP",
              "SI"
            ]
          }
        },
        "paper_doi": null,
        "paper_url": "https://github.com/coherence-energy-labs/hazardpulse",
        "license": "Apache-2.0",
        "publisher": "HazardPulse / Coherence Energy Labs",
        "publisher_url": "https://hazardpulse.com",
        "release_utc": "2026-10-10T11:05:02.824445Z",
        "rf_npe_compatible": false,
        "modality": "natural_hazard_prediction",
        "source": "hazardpulse_publish",
        "lineage": {
          "role": "shadow",
          "status": "in test (shadow)",
          "shown_on_site": true,
          "scope": [
            "WP",
            "SI"
          ],
          "program": "docs/HURRICANE_RI_V9_PROGRAM.md",
          "amendment": "amendments 13, 13a, 13b, 14",
          "prereg_tag": "prereg-hurricane-ri-amend13",
          "trained": "storms of 2022-2025, all six basins (v8.2 is out of sample on every one)",
          "rounds": [
            413,
            389,
            553,
            476,
            324
          ],
          "seeds": [
            0,
            1,
            2,
            3,
            4
          ],
          "selection_and_evaluation": [
            {
              "path": "results/calibration/hurricane_ri_j1.json",
              "sha256": "1ab81e7db81f2f6e5393c05d16f28f0d33dc4d192e96967e193554037beee239"
            },
            {
              "path": "results/calibration/hurricane_ri_j2.json",
              "sha256": "97e88257c90bf37175f2f0f00a7e3a276d4d931e3ad4e7bf7fa13ebf0637090c"
            }
          ],
          "live_records": {
            "replay": "dist/data/replay/hu_fcst_*.json",
            "key": "ri_j1_shadow",
            "ledger": "dist/data/hurricane-ledger.jsonl",
            "audit": "results/hurricane_prospective/record_audit.json"
          },
          "prospective": {
            "file": "results/hurricane_prospective/j1_shadow.json",
            "entrant": "J1"
          }
        }
      },
      {
        "record_id": "weights_hazardpulse_hurricane_tc1-589cd13ad9b6",
        "name": "HazardPulse TC1 track and intensity forecast (NHC areas, shown beside NHC's official forecast)",
        "description": "Track and intensity to 120 h for every storm the National Hurricane Center follows: a minimum-variance combination of NHC's real-time early aids, each weighted online by its verified errors (exponential forgetting, shrinkage toward the diagonal, non-negative weights). Each scorer run replays the season from the saved models (amendment 1). Settings chosen on 2021-2022, tested on 2023-2025 against NHC's official forecast; no claim against it was met.",
        "weights_uri": "hazardpulse://results/hurricane_tc1/state.json",
        "weights_path": "results/hurricane_tc1/state.json",
        "size_bytes": 703041,
        "blake3": "7f6a8e44e238058203d4fa4508d38074376f6afd3a72721c489e451e80a3f47e",
        "sha256": "020f51c3c731e034de9edf2fe7656a60f40e99b5daef6b74f2688ba129ca9161",
        "framework": "hazardpulse.hurricane.consensus (online minimum-variance combination)",
        "format": "json",
        "input_schema": {
          "track_members": [
            "AVNI",
            "AEMI",
            "HFAI",
            "HFBI",
            "HWFI",
            "HMNI",
            "CTCI",
            "UKXI",
            "CMCI",
            "CEMI",
            "NVGI",
            "GDMI",
            "TVCN",
            "HCCA"
          ],
          "intensity_members": [
            "DSHP",
            "LGEM",
            "NNIC",
            "NNIB",
            "HFAI",
            "HFBI",
            "HWFI",
            "HMNI",
            "CTCI",
            "GDMI",
            "IVCN",
            "HCCA"
          ],
          "official": "OFCL",
          "selection_sha256": "7ec1391e39963d2e94b360212cf70c23c96cc75736fd4a2957527302bfdd08a4",
          "season_end": 2025
        },
        "output_schema": {
          "outputs": [
            "track_position_by_lead",
            "vmax_kt_by_lead"
          ],
          "leads_h": [
            12,
            24,
            36,
            48,
            60,
            72,
            96,
            120
          ],
          "products": [
            "TC1",
            "TC1+O"
          ],
          "shown": "TC1",
          "model_version": "hurricane_tc1-589cd13ad9b6"
        },
        "benchmark": {
          "dev_seasons": [
            2023,
            2024,
            2025
          ],
          "scored_leads_h": [
            24,
            48,
            72,
            96,
            120
          ],
          "claim_level": 0.9875,
          "track_mean_error_nmi": {
            "TC1": 90.74255539685467,
            "TC1+O": 90.4690187011006,
            "OFCL": 92.08199962096657,
            "HCCA": 97.60730448062705,
            "TVCN": 97.5640061229858
          },
          "intensity_mean_error_kt": {
            "TC1": 12.832415751340367,
            "TC1+O": 12.598598126222143,
            "OFCL": 12.627135404724148,
            "HCCA": 13.223235086183493,
            "IVCN": 12.78091627615892
          },
          "track_vs_official": {
            "d": -2.759541134609024,
            "ci": [
              -8.179672746469437,
              1.9541883596160612
            ],
            "level": 0.9875,
            "claim": false
          },
          "intensity_vs_official": {
            "d": 0.24702658024156193,
            "ci": [
              -0.629124669818112,
              1.1101479554479572
            ],
            "level": 0.9875,
            "claim": false
          },
          "track_vs_hcca_descriptive": {
            "d": -6.235920312460119,
            "ci": [
              -11.137829812648409,
              -1.3597295566070906
            ],
            "level": 0.95,
            "claim": null
          },
          "tc1o_track_vs_official": {
            "d": -3.0533150779414404,
            "ci": [
              -8.220431950330632,
              1.4031741166866838
            ],
            "level": 0.9875,
            "claim": false
          },
          "season_2026_track_vs_official": {
            "d": -0.9039648824503187,
            "ci": [
              -3.9460705140091137,
              2.2212449704916715
            ],
            "level": 0.95,
            "claim": null
          }
        },
        "paper_doi": null,
        "paper_url": "https://github.com/coherence-energy-labs/hazardpulse",
        "license": "Apache-2.0",
        "publisher": "HazardPulse / Coherence Energy Labs",
        "publisher_url": "https://hazardpulse.com",
        "release_utc": "2026-10-10T11:05:02.905219Z",
        "rf_npe_compatible": false,
        "modality": "natural_hazard_prediction",
        "source": "hazardpulse_publish",
        "lineage": {
          "role": "shown beside NHC's official forecast",
          "program": "docs/HURRICANE_TRACK_INTENSITY_PROGRAM.md",
          "amendment": "protocol + amendment 1 (live)",
          "prereg_tag": "prereg-tc1",
          "selection_and_evaluation": [
            {
              "path": "results/hurricane_tc1/verifier_control.json",
              "sha256": "cbcb5f987b355a75d69568bf0ea2cade6bff61d6fe10ddda5c212c9037ffe712"
            },
            {
              "path": "results/hurricane_tc1/nhc_ofcl_published.json",
              "sha256": "4509b485510e2e6a02a060b2d93a5ad3e0f4dcaf81181f0424e5293387a55c85"
            },
            {
              "path": "results/hurricane_tc1/selection.json",
              "sha256": "35fa2da8fad7b5ea54ff9515232803fa6b4120c649f4f1dff38bcc7d209341bd"
            },
            {
              "path": "results/hurricane_tc1/dev.json",
              "sha256": "5942970c5fa773136662d2d885ab2e4ea2ef4851929d314c8fc887933ccae44c"
            },
            {
              "path": "results/hurricane_tc1/season_2026.json",
              "sha256": "51093ab5ff187a854af2ce3ee753ea4911ed33497ee4154af695e55da5fa1bde"
            }
          ],
          "live_records": {
            "replay": "dist/data/replay/hu_fcst_*.json",
            "key": "tc1",
            "ledger": "dist/data/hurricane-ledger.jsonl"
          }
        }
      },
      {
        "record_id": "weights_hazardpulse_earthquake_gbt_v1",
        "name": "HazardPulse Earthquake GBT v1 (plus_cft) -- NOT SERVED",
        "description": "Not served: the site's earthquake probability is the operational forecast entry (docs/EARTHQUAKE_FORECAST_PROGRAM.md). Gradient-boosted tree ensemble for global M6+ earthquake probability per 2-degree grid cell, 30-day forward window. 73 features = Block S (61 seismicity) + Block C (12 coherence field theory). Trained on declustered USGS catalog 2005-2017, validated 2018-2019, tested 2020-2024 (plus_cft variant of trained_models_v3). The benchmark below is a CASE-CONTROL NOWCAST (positives scored at the mainshock setting against controls); as an operational forecaster on a gridded forward test this model scored AUC 0.509 -- no skill (docs/earthquake_nowcast_validation.md).",
        "weights_uri": "hazardpulse://results/models/earthquake_gbt_v1.json",
        "weights_path": "results/models/earthquake_gbt_v1.json",
        "size_bytes": 495610,
        "blake3": "c7fc776069f06b860d2915ca0ff523e6bd0035ccefc4ea1ee6cbbacce450afbf",
        "sha256": "6cb770082c5c2c64b8c61549ba126c6ab3754429513d0df2d6b50d9067c3cab0",
        "framework": "hazardpulse_gbt_v1",
        "format": "json",
        "input_schema": {
          "n_features": 73,
          "blocks": [
            "S (61 seismicity)",
            "C (12 coherence)"
          ],
          "feature_names_path": "src/hazardpulse/earthquake/definitive_model.py:ALL_FEATURE_NAMES_ENHANCED"
        },
        "output_schema": {
          "outputs": [
            "m6_probability_30d"
          ],
          "domain": "[0, 1]",
          "calibration": "logit-link via boosted trees"
        },
        "benchmark": {
          "benchmark_type": "case-control nowcast, not an operational forecast",
          "test_auc_global_baseline": 0.9074433326526443,
          "test_auc_regional_ensemble": 0.8984718535157553,
          "test_brier": 0.11605939643081976,
          "test_bss": 0.3416581890180549,
          "test_window": "USGS M6+ events 2020-2024",
          "operational_auc_pooled": 0.509,
          "operational_source": "docs/earthquake_nowcast_validation.md (backtest_operational_grid.py)"
        },
        "paper_doi": null,
        "paper_url": "https://github.com/coherence-energy-labs/hazardpulse",
        "license": "Apache-2.0",
        "publisher": "HazardPulse / Coherence Energy Labs",
        "publisher_url": "https://hazardpulse.com",
        "release_utc": "2026-10-10T11:05:03.078638Z",
        "rf_npe_compatible": false,
        "modality": "natural_hazard_prediction",
        "source": "hazardpulse_publish"
      },
      {
        "record_id": "weights_hazardpulse_hurricane_ri_v8_3",
        "name": "HazardPulse Hurricane RI v8.3 (ensemble, pinned, served)",
        "description": "v8.2's recipe exactly (histogram-GBT depth 3 + depth 4 + L2 logistic + bagged logistic, members on storms first seen 2000-2021, a converged Newton logistic calibration on 2022-2024), fitted on its training rows with the 5950 byte-identical copies of basin-crossing storms removed. Adopted by amendment 15's registered non-inferiority rule (docs/HURRICANE_RI_V9_PROGRAM.md): on 2967 cycles of storms first seen 2025-2026 in the JTWC basins, none used to fit it, log loss 0.16586 vs v8.2 0.16560, difference +0.00027 [-0.00070, +0.00137] (95%, storms resampled), upper end at most +0.002. It serves the JTWC basins and any NHC cycle without NOAA's SHIPS text; NHC-basin cycles with it are served the NOAA aid entry below.",
        "weights_uri": "hazardpulse://results/models/hurricane_ri_v8_3.json",
        "weights_path": "results/models/hurricane_ri_v8_3.json",
        "size_bytes": 487930,
        "blake3": "fb58c2d6c55776a62cc44045684e2ab75d9ccf5dd15fe56880ecde7bc18acf1d",
        "sha256": "2caff7541eb0d98dabdde778a8d4e7ac6b0e00b930e8e28cf66bf6966935e7da",
        "framework": "hazardpulse_ri_ensemble_v8_2",
        "format": "json",
        "input_schema": {
          "n_features_select": 17,
          "feature_names_path": "src/hazardpulse/hurricane/operational_ri.py"
        },
        "output_schema": {
          "outputs": [
            "ri_probability_24h"
          ],
          "domain": "[0, 1]",
          "calibration": "logistic_on_logit_newton fitted on held-out seasons"
        },
        "benchmark": {
          "test_auc": 0.8517310994047163,
          "test_log_loss_30kt": 0.1658645871778799,
          "test_brier": 0.04555909835794632,
          "n_test_rows": 2967,
          "n_test_events": 158,
          "n_test_storms": 130,
          "test_window": "storms first seen 2025-2026, JTWC basins (bootstrap by storm)",
          "replaced": "hurricane_ri_v8_2",
          "replaced_log_loss_30kt": 0.16559736538976674,
          "d_log_loss_vs_replaced": 0.0002672217881131645,
          "d_log_loss_vs_replaced_ci95": [
            -0.0006971967652468524,
            0.0013714885115692589
          ],
          "d_brier_vs_replaced": 0.00012991118619067358,
          "d_brier_vs_replaced_ci95": [
            -0.00011912412932767398,
            0.0003828126486319044
          ],
          "rule": {
            "margin": 0.002,
            "upper": 0.0013714885115692589,
            "met": true
          }
        },
        "paper_doi": null,
        "paper_url": "https://github.com/coherence-energy-labs/hazardpulse",
        "license": "Apache-2.0",
        "publisher": "HazardPulse / Coherence Energy Labs",
        "publisher_url": "https://hazardpulse.com",
        "release_utc": "2026-10-10T11:05:03.131062Z",
        "rf_npe_compatible": false,
        "modality": "natural_hazard_prediction",
        "source": "hazardpulse_publish",
        "lineage": {
          "role": "served",
          "program": "docs/HURRICANE_RI_V9_PROGRAM.md",
          "amendment": "amendment 15",
          "prereg_tag": "prereg-hurricane-ri-amend15",
          "selection_and_evaluation": [
            {
              "path": "results/calibration/hurricane_ri_v8_3.json",
              "sha256": "bacf474a58d8f55096099c726313486307bf98d727e5bb2a0b42845b7d4740ed"
            },
            {
              "path": "results/calibration/hurricane_ri_v8_3_test_composition.json",
              "sha256": "b48078a3b1b00a2f369e19265240d0fc70cc57dbcefa24af2006a90e102c35a7"
            }
          ],
          "training_data": [
            {
              "path": "results/hurricane_operational_ri_v8_3_2000_2024.jsonl",
              "sha256": "35a4d875e503acc2f7d3d49c026676d0be2d89b325cbdf4a810fe015aac96881",
              "role": "members"
            },
            {
              "path": "results/hurricane_operational_ri_v8_3_2000_2024.jsonl",
              "sha256": "35a4d875e503acc2f7d3d49c026676d0be2d89b325cbdf4a810fe015aac96881",
              "role": "calibration"
            }
          ]
        }
      },
      {
        "record_id": "weights_hazardpulse_hurricane_ri_v8_2",
        "name": "HazardPulse Hurricane RI v8.2 (ensemble, pinned; replaced as the published model by v8.3)",
        "description": "Rapid-intensification ensemble (histogram-GBT depth 3 + depth 4 + L2 logistic + bagged logistic) predicting a >= 30 kt wind increase in the next 24 h, on true synoptic timestamps. Served from a pinned file bound to its training-data hash; calibrated by a converged Newton logistic fit on seasons the members never trained on. Held-out test: 298 storms first seen 2022-2024, 507 RI events. It served the JTWC basins and NHC cycles without NOAA's SHIPS text from 2026-10-02 until amendment 15 (docs/HURRICANE_RI_V9_PROGRAM.md) replaced it with v8.3, its recipe on de-duplicated rows. It is still loaded live: J1 is built on it and tested against it.",
        "weights_uri": "hazardpulse://results/models/hurricane_ri_v8_2.json",
        "weights_path": "results/models/hurricane_ri_v8_2.json",
        "size_bytes": 489071,
        "blake3": "79713dcde33ca147fdd1c64bfa4f9bbb9deb94cbce61fe18e174118ba6ce8882",
        "sha256": "b9b640a7ffc53c5b8e70a08fbc9b98b11f6954768dad0cee5f723030f70ecdd4",
        "framework": "hazardpulse_ri_ensemble_v8_2",
        "format": "json",
        "input_schema": {
          "n_features_select": 17,
          "feature_names_path": "src/hazardpulse/hurricane/operational_ri.py"
        },
        "output_schema": {
          "outputs": [
            "ri_probability_24h"
          ],
          "domain": "[0, 1]",
          "calibration": "logistic_on_logit_newton fitted on held-out seasons"
        },
        "benchmark": {
          "test_auc": 0.8474428424590938,
          "test_auc_ci95": [
            0.820925948197543,
            0.8740213279606002
          ],
          "test_brier": 0.04892222915271466,
          "test_bss_vs_climatology": 0.14538319828600288,
          "test_bss_ci95": [
            0.10035063975313893,
            0.18781644388079763
          ],
          "calibration_slope": 0.8794374712589407,
          "persistence_auc": 0.768276775589885,
          "n_test_rows": 8317,
          "test_window": "storms first seen 2022-2024 (bootstrap by storm)"
        },
        "paper_doi": null,
        "paper_url": "https://github.com/coherence-energy-labs/hazardpulse",
        "license": "Apache-2.0",
        "publisher": "HazardPulse / Coherence Energy Labs",
        "publisher_url": "https://hazardpulse.com",
        "release_utc": "2026-10-10T11:05:03.164871Z",
        "rf_npe_compatible": false,
        "modality": "natural_hazard_prediction",
        "source": "hazardpulse_publish"
      },
      {
        "record_id": "weights_hazardpulse_hurricane_ri_stack_v1-35938d6c09b7",
        "name": "HazardPulse Hurricane RI, NHC basins: NOAA aid stack v1 (candidate A)",
        "description": "P(>= 30 kt wind increase in 24 h) for Atlantic, East and Central Pacific storms from NOAA's operational RI guidance: DTOPS raw (SHIPS-RII where DTOPS is missing: Amendment 1, item 1). Read live from NHC's SHIPS text for the storm's cycle; chosen among six pre-registered candidates (DTOPS, SHIPS-RII, RI consensus, and three logistic stacks of the NOAA aids, one with HazardPulse v8.2) by forward chaining on 2020-2024 under a parsimony rule (docs/HURRICANE_RI_PROGRAM.md); scored once on the 2025 season.",
        "weights_uri": "hazardpulse://results/models/hurricane_ri_stack_v1.json",
        "weights_path": "results/models/hurricane_ri_stack_v1.json",
        "size_bytes": 900,
        "blake3": "7ed8606d7c555d847253a331c3dd1d3a5b70ab6231298e8f60e4ed8f88412ffb",
        "sha256": "35938d6c09b7f340317751ba2cc9847ff46a8c8f26da4e6dc71247eae9a17805",
        "framework": "hazardpulse_noaa_ri_aid_stack_v1",
        "format": "json",
        "input_schema": {
          "source": "NHC SHIPS text 'Matrix of RI probabilities', column 30/24 (ATCF e-deck RI records in training)",
          "ships_text_rows": {
            "DTOP": "DTOPS",
            "RIOB": "Bayesian",
            "RIOC": "Consensus",
            "RIOD": "SHIPS-RII",
            "RIOL": "Logistic",
            "SDCN": "SDCON"
          },
          "aid": "DTOP",
          "fallback": "RIOD",
          "pool_inputs": null,
          "representation": "ATCF e-deck whole percent; live SHIPS text: SHIPS-RII from SHIPS's own whole-percent line, every other row rounded half-up (hazardpulse.hurricane.ships_text)",
          "feature_names_path": "src/hazardpulse/hurricane/ri_stack.py"
        },
        "output_schema": {
          "outputs": [
            "ri_probability_24h"
          ],
          "domain": "[0, 1]",
          "calibration": "none: NOAA's probability as issued",
          "model_version": "hurricane_ri_stack_v1-35938d6c09b7"
        },
        "benchmark": {
          "benchmark_bound_to_this_artifact": true,
          "test_window": "2025 season, NHC-basin cycles with a SHIPS-RII record, read once",
          "test_auc": 0.9283907295576954,
          "test_auc_ci95": [
            0.8899862208309819,
            0.9658622420660833
          ],
          "test_brier": 0.04691114808652246,
          "test_brier_ci95": [
            0.02723118116550418,
            0.06890315125684501
          ],
          "test_bss_vs_fit_season_climatology": 0.31091516449946055,
          "test_bss_ci95": [
            0.18304950856631877,
            0.3977842999673146
          ],
          "test_log_loss": 0.15785073493165874,
          "test_log_loss_ci95": [
            0.10236097106908831,
            0.2172195885160013
          ],
          "calibration_slope": 1.3084170793435637,
          "n_test_cycles": 601,
          "n_test_events": 44,
          "n_test_storms": 33,
          "paired_this_minus": {
            "B": {
              "delta_log_loss": -0.05887158464310835,
              "delta_brier": -0.012715307820299504,
              "delta_auc": 0.06965072629345515,
              "ci95": {
                "delta_auc": [
                  0.022731097463278636,
                  0.14239789523677135
                ],
                "delta_brier": [
                  -0.01862402709073655,
                  -0.007012795398902491
                ],
                "delta_log_loss": [
                  -0.07956028826673069,
                  -0.035770975762275274
                ]
              }
            },
            "C": {
              "delta_log_loss": -0.03830918348475151,
              "delta_brier": -0.009259567387687191,
              "delta_auc": 0.05418638811816545,
              "ci95": {
                "delta_auc": [
                  0.005565432839671055,
                  0.13245588662996327
                ],
                "delta_brier": [
                  -0.015885154246891044,
                  -0.002047285531971603
                ],
                "delta_log_loss": [
                  -0.058730401522548416,
                  -0.016104979445747722
                ]
              }
            },
            "v8_2_on_v82_subset": {
              "n": 601,
              "delta_log_loss": -0.048420370801767476,
              "delta_brier": -0.013298275020354959,
              "delta_auc": 0.07956585604700506,
              "ci95": {
                "delta_auc": [
                  0.025140377600702087,
                  0.14479220785084004
                ],
                "delta_brier": [
                  -0.022370459913846796,
                  -0.005273356905305748
                ],
                "delta_log_loss": [
                  -0.08125669325735518,
                  -0.019074508576535358
                ]
              }
            }
          },
          "selection_pooled_dev": {
            "log_loss": 0.16653508144384657,
            "auc": 0.8988684582743989,
            "brier": 0.048325462555066076,
            "bss": 0.2144389464285663
          }
        },
        "paper_doi": null,
        "paper_url": "https://github.com/coherence-energy-labs/hazardpulse",
        "license": "Apache-2.0",
        "publisher": "HazardPulse / Coherence Energy Labs",
        "publisher_url": "https://hazardpulse.com",
        "release_utc": "2026-10-10T11:05:03.180008Z",
        "rf_npe_compatible": false,
        "modality": "natural_hazard_prediction",
        "source": "hazardpulse_publish"
      }
    ]
  }
}