{
  "title": "H04_E_PROSPECTIVE_PROTOCOL_SKETCH_v0_1",
  "created_at_utc": "2026-09-13T23:12:01Z",
  "hub_job": "77356229-193e-4693-a90c-cae8dcb0bc4a",
  "status_fields": {
    "STATUS": "DESIGN_ONLY",
    "OUTCOMES": "NONE \u2014 no targets opened, no predictions scored",
    "CLAIM_STRENGTH": "LOW",
    "CAPITAL_USE": "PROHIBITED",
    "MODEL_CHANGE": "NO",
    "REAL_CAPITAL": "PROHIBITED"
  },
  "context": {
    "h04e_disposition_original": "EXPLORATORY_PROMOTE",
    "confound_disposition": "MECHANICAL",
    "confound_freeze_sha256": "bcd6867f5c4fdac9ad26d3ab1daf5b4de0bb311aac0efff3e255f21a238c274d",
    "confound_result_sha256": "c91e7e426c6d26621779d41df5f64d037db26562f3920b3dd13ed2cbc2cd697b",
    "implication": "Any prospective recipe must treat WPSR\u2192STEO inventory updating as the null; incremental claim requires beating a mechanical weekly-stock baseline, not A0 alone."
  },
  "purpose": "Exact current/future release recipe (EIA weekly + STEO) \u2014 design only. Timestamp/hash/source/prediction/frozen model/future target fields. No outcomes.",
  "release_recipe": {
    "sources": [
      {
        "id": "EIA_WPSR_WCESTUS1",
        "name": "EIA Weekly Petroleum Status Report \u2014 U.S. commercial crude stocks (WCESTUS1)",
        "cadence": "weekly (typically Wednesday release for prior Friday week-ending)",
        "access": "EIA Open Data / PET workbook hist XLS or series API",
        "release_proxy_rule": "week_ending + 5 calendar days (H04-E lock) OR official WPSR release timestamp when first-print available",
        "vintage_note": "prefer first-print capture; current hist XLS is revised (UNVERIFIED)",
        "fields_recorded_each_release": [
          "series_id",
          "week_ending_date",
          "stocks_kb_reported",
          "delta_kb_vs_prior_week",
          "retrieval_timestamp_utc",
          "source_url",
          "response_or_file_sha256"
        ]
      },
      {
        "id": "EIA_STEO_COSXPUS",
        "name": "EIA Short-Term Energy Outlook \u2014 COSXPUS (crude oil stocks)",
        "cadence": "monthly STEO issue (approx first Tuesday after first Thursday)",
        "access": "STEO *_base.xlsx archives (eia.gov/outlooks/steo/data)",
        "fields_recorded_each_issue": [
          "issue_id (YYYY-MM)",
          "filename",
          "file_sha256",
          "retrieval_timestamp_utc",
          "forecast_date_calendar",
          "forecast_date_source (PARSED | SCHEDULE_PROXY)",
          "COSXPUS map for all available months (mmbbl)",
          "target_month_M = destination year-month cell used for adjacent-pair revision"
        ]
      }
    ],
    "pair_construction": {
      "unit_key": "origin_issue_id|destination_issue_id",
      "eligibility": "adjacent calendar-consecutive STEO issues",
      "predictor_window": "origin_forecast_date < weekly_release_proxy <= destination_forecast_date",
      "mechanical_null_feature": "wcestus1_mean_raw_delta_kb (or net sum) over admitted weeks",
      "optional_tested_feature": "only if a NEW freeze authorizes a non-mechanical claim; default after C1 is MECHANICAL null",
      "target_definition": "y = COSXPUS_dest[M] - COSXPUS_origin[M], M = destination year-month",
      "target_open_rule": "record prediction BEFORE destination STEO file bytes are opened for COSXPUS[M]"
    },
    "prediction_record_schema_each_future_unit": {
      "unit_key": "string",
      "prediction_timestamp_utc": "ISO-8601",
      "sources_hashes": {
        "wcest_snapshot_sha256": "hash of weekly series bytes used",
        "steo_origin_file_sha256": "hash",
        "steo_destination_unavailable_at_prediction": true
      },
      "features_at_prediction": {
        "wcestus1_mean_raw_delta_kb": "float",
        "n_weeks_admitted": "int",
        "latest_wcest_stocks_kb": "float (optional diagnostic)"
      },
      "frozen_model_id": "string \u2014 must reference a predeclared freeze; after C1 default is mechanical-null documentation only, not a trading model",
      "frozen_model_sha256": "hash of model artifact / coef freeze",
      "prediction": {
        "yhat_revision_mmbbl": "float OR null if protocol is observe-only",
        "mechanical_null_yhat": "float from A_mech-style mapping if used"
      },
      "future_target": {
        "destination_issue_id_expected": "YYYY-MM",
        "target_month": "YYYY-MM",
        "target_status": "CLOSED_UNTIL_DEST_RELEASE",
        "scoring_rule": "RMSE/MAE vs realized COSXPUS revision; also report beat-mechanical-null flag"
      },
      "claim_guards": {
        "CAPITAL_USE": "PROHIBITED",
        "CLAIM_STRENGTH": "LOW until multi-period prospective log + confound-clear incremental evidence",
        "not_validated_edge": true
      }
    },
    "logging_cadence": [
      "On each WPSR weekly release: append weekly snapshot row (hash + timestamp)",
      "On each STEO issue publication: close prior unit target (if predicted), open next prediction record before reading dest COSXPUS",
      "Never backfill predictions after destination COSXPUS known"
    ]
  },
  "what_this_is_not": [
    "Not authorization to trade",
    "Not a MODEL_CHANGE",
    "Not a claim that H04-E surprise is incremental (C1 = MECHANICAL)",
    "Not first-print vintage certification"
  ],
  "plain_english": "Design-only recipe: each week hash the EIA weekly crude stocks print; each month, before opening the new STEO, write down the mechanical weekly-stock change between STEO issues and (only if newly frozen) any incremental feature; after STEO publishes, score the revision. After the confound screen, the default null is 'STEO copied weekly stocks' \u2014 not a blank baseline."
}
