{
  "name": "Warconomy promotion dry run",
  "asOf": "2026-06-05",
  "note": "A dry run of the promotion pipeline for the gated candidates — how each would move from data-needs to a frozen release, with NO value added. The primary example is CREA May 2026. Static documentation.",
  "page": "https://warconomy.com/methodology/promotion-dry-run",
  "count": 5,
  "primary": "crea-may-2026",
  "runs": [
    {
      "candidateId": "crea-may-2026",
      "title": "CREA May 2026 Russian fossil-fuel export revenue",
      "primary": true,
      "currentState": "Waiting for source publication — CREA's May 2026 monthly analysis is not yet published (April 2026 at EUR 734 mn/day is current).",
      "expectedSource": "CREA — Monthly analysis of Russian fossil fuel exports and sanctions (May 2026 HTML page), headline stated in text.",
      "fieldsNeeded": [
        "headline value (EUR mn/day)",
        "month-on-month % change",
        "reporting month (May 2026)",
        "sourceId (crea-russia-fossil-tracker)",
        "confidence",
        "asOf",
        "lastReviewed"
      ],
      "verificationSteps": [
        "Open the CREA May 2026 monthly-analysis page once live.",
        "Read the 'EUR X mn per day' headline and the m/m % change verbatim.",
        "Confirm the reporting month is May 2026 and the figure is in text (not chart-only).",
        "Second-pass re-read to confirm transcription."
      ],
      "observationFields": [
        "id (new monthly obs or updated obs-sanctions-export-revenue)",
        "metricId: russia-fossil-export-revenue",
        "value",
        "unit: EUR million/day",
        "asOf",
        "periodLabel",
        "lastReviewed",
        "sourceId: crea-russia-fossil-tracker",
        "confidence: medium",
        "dataMode: live",
        "note (cautious, associative)"
      ],
      "provenanceFields": [
        "recordId",
        "sourceId",
        "sourceName/publisher/url",
        "sourceAuthority (academic_research)",
        "citationReadiness",
        "asOf",
        "relatedPath",
        "caveats"
      ],
      "affectedPages": [
        "/sanctions/russia-energy-trade/economic-impact",
        "/data-coverage",
        "/freshness",
        "/source-health",
        "/data-needs"
      ],
      "testsAudits": [
        "obs value/asOf updated test",
        "provenance covers the obs",
        "no-overclaim audit",
        "data-coverage live counts"
      ],
      "versioningSteps": [
        "Batch the DATASET_EXPORT_VERSION bump (one per 5–10 promotions)",
        "Append the snapshot ladder entry with the new counts",
        "Freeze the payload + regenerate the manifest",
        "Run validate:snapshots"
      ],
      "hostedVerificationSteps": [
        "After push, curl the sanctions topic page and the new versioned data/diff/provenance routes",
        "Confirm the live export version and the new value"
      ]
    },
    {
      "candidateId": "pink-sheet",
      "title": "World Bank Pink Sheet — wheat / fertilizer / gas",
      "primary": false,
      "currentState": "Blocked — exact levels are XLSX/PDF-only (HTML shows only index % changes).",
      "expectedSource": "World Bank Pink Sheet monthly XLSX/PDF; a human reads the exact cell.",
      "fieldsNeeded": [
        "commodity",
        "sheet/row/column",
        "displayed value",
        "unit",
        "month"
      ],
      "verificationSteps": [
        "Open the Pink Sheet XLSX/PDF",
        "Record sheet/cell, value, unit, month",
        "Second-pass verification"
      ],
      "observationFields": [
        "value",
        "unit",
        "asOf",
        "periodLabel",
        "sourceId (new World Bank source)",
        "confidence",
        "dataMode: live",
        "note (nominal benchmark, not causal)"
      ],
      "provenanceFields": [
        "recordId",
        "sourceId",
        "sourceName/publisher/url",
        "asOf",
        "relatedPath",
        "caveats"
      ],
      "affectedPages": [
        "/commodities/dashboard",
        "/commodities/oil-benchmarks/economic-impact",
        "/data-needs"
      ],
      "testsAudits": [
        "unit/basis explicit",
        "provenance added",
        "no causal overclaim"
      ],
      "versioningSteps": [
        "Batch version bump + freeze + validate:snapshots"
      ],
      "hostedVerificationSteps": [
        "Curl the commodities pages and the new versioned routes"
      ]
    },
    {
      "candidateId": "suez-transit",
      "title": "Suez / Red Sea PDF table",
      "primary": false,
      "currentState": "Blocked — UNCTAD review page returns 403; SCA statistics are downloadable PDFs.",
      "expectedSource": "SCA navigation report PDF / UNCTAD publication; a human reads the exact table value.",
      "fieldsNeeded": [
        "metric kind (transits/tonnage/revenue)",
        "value",
        "unit",
        "period",
        "page/table reference"
      ],
      "verificationSteps": [
        "Open the official PDF",
        "Record the exact metric, value, unit, period, page",
        "Second-pass verification"
      ],
      "observationFields": [
        "value",
        "unit",
        "asOf",
        "periodLabel",
        "sourceId",
        "confidence",
        "dataMode: live",
        "note (one metric kind only)"
      ],
      "provenanceFields": [
        "recordId",
        "sourceId",
        "sourceName/publisher/url",
        "asOf",
        "relatedPath",
        "caveats"
      ],
      "affectedPages": [
        "/chokepoints/red-sea-shipping/economic-impact",
        "/chokepoints/dashboard",
        "/data-needs"
      ],
      "testsAudits": [
        "metric-kind explicit",
        "provenance added",
        "no-overclaim audit"
      ],
      "versioningSteps": [
        "Batch version bump + freeze + validate:snapshots"
      ],
      "hostedVerificationSteps": [
        "Curl the chokepoint pages and the new versioned routes"
      ]
    },
    {
      "candidateId": "eu-21st-package",
      "title": "EU vessel package count",
      "primary": false,
      "currentState": "Blocked — no 21st package yet (632 vessels @ 20th package is current).",
      "expectedSource": "EU sanctions-package press release; the cumulative total stated in text.",
      "fieldsNeeded": [
        "cumulative listed-vessel total",
        "+added / -delisted",
        "package number",
        "adoption date",
        "source URL"
      ],
      "verificationSteps": [
        "Open the EU press release once adopted",
        "Read the cumulative total and +/- counts verbatim",
        "Second-pass verification"
      ],
      "observationFields": [
        "value",
        "unit: vessels",
        "asOf",
        "periodLabel",
        "sourceId (new EU source)",
        "confidence",
        "dataMode: live",
        "note (cumulative, enforcement indicator)"
      ],
      "provenanceFields": [
        "recordId",
        "sourceId",
        "sourceName/publisher/url",
        "asOf",
        "relatedPath",
        "caveats"
      ],
      "affectedPages": [
        "/sanctions/shadow-fleet-shipping-insurance/economic-impact",
        "/sanctions/dashboard",
        "/data-needs"
      ],
      "testsAudits": [
        "vessel count updated",
        "source + provenance added",
        "no-overclaim audit"
      ],
      "versioningSteps": [
        "Batch version bump + freeze + validate:snapshots"
      ],
      "hostedVerificationSteps": [
        "Curl the sanctions pages and the new versioned routes"
      ]
    },
    {
      "candidateId": "fao-next",
      "title": "FAO next release after May 2026",
      "primary": false,
      "currentState": "Blocked — June release not out yet (May 2026 is the latest).",
      "expectedSource": "FAO Food Price Index monthly HTML release; values stated in text.",
      "fieldsNeeded": [
        "FFPI value",
        "sub-index values (cereal, veg oil, dairy, meat, sugar)",
        "month",
        "index basis (2014–2016 = 100)"
      ],
      "verificationSteps": [
        "Open the FAO page after the next release",
        "Read FFPI + sub-index values with the month",
        "Second-pass verification"
      ],
      "observationFields": [
        "value",
        "unit: index",
        "asOf",
        "periodLabel",
        "sourceId: fao-fpi",
        "confidence: high",
        "dataMode: live",
        "note (associative, not causal)"
      ],
      "provenanceFields": [
        "recordId",
        "sourceId",
        "sourceName/publisher/url",
        "asOf",
        "relatedPath",
        "caveats"
      ],
      "affectedPages": [
        "/commodities/food-prices/economic-impact",
        "/conflicts/russia-ukraine/economic-impact",
        "/data-coverage"
      ],
      "testsAudits": [
        "values/asOf updated",
        "index basis explicit",
        "no-overclaim audit"
      ],
      "versioningSteps": [
        "Batch version bump + freeze + validate:snapshots"
      ],
      "hostedVerificationSteps": [
        "Curl the commodities/food pages and the new versioned routes"
      ]
    }
  ]
}