# H04_E_PROSPECTIVE_PROTOCOL_SKETCH_v0_1

**Created:** 2026-09-13T23:12:01Z  
**JSON sha256:** `ae9335ee7271bf94415e4a0dd733db2276d7f3819dffa8c829e40b080aa03bb0`  
**Hub job:** `77356229-193e-4693-a90c-cae8dcb0bc4a`  
**Outcomes:** NONE (design only)

## STATUS
DESIGN_ONLY · CLAIM_STRENGTH LOW · CAPITAL_USE PROHIBITED · MODEL_CHANGE NO

## Context
H04-E originally EXPLORATORY_PROMOTE (~34% holdout RMSE). Confound C1 disposition **MECHANICAL**: surprise added nothing (slightly negative) once raw weekly Δstocks was in the baseline; raw Δ alone ≈35.7% vs A0. Prospective work must beat a **mechanical WPSR null**, not A0.

## Release recipe (exact fields)

### 1. EIA weekly (WCESTUS1 / WPSR)
Each weekly release record:
- series_id, week_ending_date, stocks_kb, delta_kb
- retrieval_timestamp_utc, source_url, file/response **sha256**
- release_proxy = week_ending + 5d (H04-E lock) or official WPSR timestamp if first-print exists
- vintage note (hist XLS = revised / UNVERIFIED)

### 2. EIA STEO (COSXPUS)
Each monthly issue record:
- issue_id, filename, **file_sha256**, retrieval_timestamp_utc
- forecast_date_calendar + source (PARSED | SCHEDULE_PROXY)
- full COSXPUS month map (mmbbl)

### 3. Pair / prediction record (before destination COSXPUS opened)
| Field | Content |
|-------|---------|
| unit_key | origin\|destination issue ids |
| prediction_timestamp_utc | when prediction logged |
| sources_hashes | weekly snapshot + origin STEO sha256; destination marked unavailable |
| features | `wcestus1_mean_raw_delta_kb`, n_weeks, optional latest level |
| frozen_model_id + sha256 | predeclared freeze only |
| prediction | yhat and/or mechanical_null_yhat |
| future_target | expected dest issue, month M, CLOSED_UNTIL_DEST_RELEASE |
| guards | CAPITAL PROHIBITED; not validated edge |

### 4. Cadence
1. Weekly WPSR → append hashed snapshot  
2. New STEO → **first** close prior scored unit (if any), **then** write next prediction **before** reading dest COSXPUS[M]  
3. Never backfill after destination known  

## Scoring (future; not run here)
RMSE/MAE vs realized revision; primary incremental test = beat mechanical-null baseline.

## What this is not
Not trading authority · not MODEL_CHANGE · not an incremental-edge claim · not vintage certification.
