{
  "causal_cascade": {
    "conditional_asset_watchlist": [
      {
        "dir": "up",
        "name": "Brent crude",
        "sym": "BRENT"
      },
      {
        "dir": "up",
        "name": "Energy sector",
        "sym": "XLE"
      },
      {
        "dir": "up",
        "name": "Gold",
        "sym": "XAU"
      },
      {
        "dir": "down",
        "name": "Delta / airlines",
        "sym": "DAL"
      }
    ],
    "first_order_edges": [],
    "limitation": "The asset list is a conditional watchlist. Causal edge order and expected move ranges are not claimed by this receipt unless separately measured.",
    "scenario": {
      "id": 5591,
      "scenario_probability_pct": 9,
      "stance": "RISK-OFF",
      "title": "Naval clash in Hormuz spikes the war premium",
      "url": "/scenario/what-if-naval-clash-in-hormuz-spikes-the-war-premium"
    },
    "second_order_edges": [],
    "status": "linked_scenario_and_conditional_watchlist"
  },
  "data_url": "https://macroguru.app/data/decision-receipts/hormuz-stays-disrupted.json",
  "decision": {
    "activation_condition": null,
    "activation_status": "not_registered",
    "claimed_edge": "The edge is separating a political de-escalation headline from verified shipping normalization.",
    "invalidation_status": "bound_to_false_resolution_not_separately_registered",
    "next_proof_points": [
      {
        "due_at": "2026-07-31T23:59:00+00:00",
        "question": null,
        "type": "registered_resolver"
      }
    ],
    "now_what": "Keep the chokepoint on the front page. Normalization—not another headline ceasefire—is the evidence that retires the risk premium.",
    "research_boundary": "Scenario-conditional research framing only; not personalized investment advice.",
    "status": "research_monitor_only"
  },
  "decision_snapshot_sha256": "3dde389b10f328bbf1b5737ab1f7b0f9397adf2bc8529cfe9a22090c19956e73",
  "divergence": {
    "history_receipt_sha256": "42a961d8db6bbe625df94c68cca87f4e1a3a6cf31f832a353da1b55340ad8fe0",
    "history_receipt_url": "/data/forecast-divergence/hormuz-stays-disrupted.json",
    "interpretation": "No matched market lane is available for comparison.",
    "published_minus_market_probability_points": null,
    "range_overlap": null,
    "shadow_history": {
      "edge_status": "not_measured",
      "model_range_vs_executable_interval": null,
      "published_minus_latest_midpoint_points": null,
      "published_vs_executable_interval": null,
      "status": "not_available"
    },
    "status": "not_measured"
  },
  "evidence": {
    "effective_independent_source_count": 0,
    "evidence_pipeline_sha256": "c2270bf08cb6e34a3f06f4d1e52cc40d91c1803656a20d99cf94c9fd13dd1de7",
    "evidence_snapshot_sha256": "1e0fab18736630ae078289048f3449d7fa8518add14fdbeec8a3fe56d6726168",
    "limitation": "Short claim-to-span citations are frozen and lineage-clustered, but captured_at is after the forecast lock. They cannot be treated as evidence used by the original decision.",
    "source_clusters": [
      {
        "cluster_id": "host:117ba1588458",
        "host": "apnews.com",
        "lineage_status": "host_only_pending_common_origin_analysis",
        "source_count": 1
      },
      {
        "cluster_id": "host:0510f936217f",
        "host": "www.iea.org",
        "lineage_status": "host_only_pending_common_origin_analysis",
        "source_count": 1
      },
      {
        "cluster_id": "host:a88db00cf0cb",
        "host": "www.imo.org",
        "lineage_status": "host_only_pending_common_origin_analysis",
        "source_count": 1
      },
      {
        "cluster_id": "host:a50ac24d1f8a",
        "host": "www.kpler.com",
        "lineage_status": "host_only_pending_common_origin_analysis",
        "source_count": 1
      }
    ],
    "sources": [
      {
        "host_cluster_id": "host:117ba1588458",
        "independence_status": "not_verified",
        "name": "AP — renewed strikes and oil at $100",
        "origin_cluster_id": null,
        "passage_status": "not_frozen",
        "source_class": "external_research_source",
        "syndication_cluster_id": null,
        "url": "https://apnews.com/article/60d46bf8c83c43a8f2268b7b87627c55"
      },
      {
        "host_cluster_id": "host:0510f936217f",
        "independence_status": "not_verified",
        "name": "IEA — Middle East maritime chokepoints monitor",
        "origin_cluster_id": null,
        "passage_status": "not_frozen",
        "source_class": "intergovernmental_primary_source",
        "syndication_cluster_id": null,
        "url": "https://www.iea.org/data-and-statistics/data-tools/middle-east-maritime-chokepoints-shipping-monitor"
      },
      {
        "host_cluster_id": "host:a88db00cf0cb",
        "independence_status": "lineage_clustered_not_decision_eligible",
        "name": "IMO — protection of vital shipping lanes",
        "origin_cluster_id": "origin:imo",
        "passage_status": "frozen_retrospective_not_decision_eligible",
        "source_class": "intergovernmental_primary_source",
        "syndication_cluster_id": "syndication:imo-hormuz-council-july-2026",
        "url": "https://www.imo.org/en/mediacentre/secretarygeneral/pages/update-to-council-137.aspx"
      },
      {
        "host_cluster_id": "host:a50ac24d1f8a",
        "independence_status": "lineage_clustered_not_decision_eligible",
        "name": "Kpler — Hormuz crossings down 70%",
        "origin_cluster_id": "origin:kpler",
        "passage_status": "frozen_retrospective_not_decision_eligible",
        "source_class": "external_research_source",
        "syndication_cluster_id": "syndication:kpler-hormuz-july-23-2026",
        "url": "https://www.kpler.com/blog/strait-of-hormuz-crossings-drop-70-as-tanker-traffic-shifts-almost-entirely-to-the-iranian-route"
      }
    ],
    "status": "retrospective_passages_verified_not_decision_eligible",
    "verified_passages": [
      {
        "capture_status": "retrospective_backfill",
        "captured_at": "2026-07-24T09:35:14Z",
        "char_end": 106,
        "char_start": 0,
        "decision_eligible": false,
        "decision_exclusion_reasons": [
          "captured_after_forecast_lock"
        ],
        "host_cluster_id": "host:imo.org",
        "name": "IMO — protection of vital shipping lanes",
        "origin_cluster_id": "origin:imo",
        "passage_id": "passage:imo-evacuation-paused",
        "passage_sha256": "fa41ec88c40cdbc8399e0c85e0ecf6f75539f75ab366b22f394ade7d37d13d25",
        "published_at": "2026-07-08T00:00:00Z",
        "relevance_status": "verified",
        "retrieval_score": 0.856818,
        "source_class": "intergovernmental_primary_source",
        "source_id": "imo-hormuz-council-july-2026",
        "source_locator": "The evacuation plan",
        "stance": "supports",
        "syndication_cluster_id": "syndication:imo-hormuz-council-july-2026",
        "temporal_class": "current_state",
        "text": "The evacuation process has been paused, as the safety of vessels and seafarers could no longer be assured.",
        "text_kind": "normalized_source_extract",
        "url": "https://www.imo.org/en/mediacentre/secretarygeneral/pages/update-to-council-137.aspx"
      },
      {
        "capture_status": "retrospective_backfill",
        "captured_at": "2026-07-24T09:35:14Z",
        "char_end": 121,
        "char_start": 0,
        "decision_eligible": false,
        "decision_exclusion_reasons": [
          "captured_after_forecast_lock"
        ],
        "host_cluster_id": "host:kpler.com",
        "name": "Kpler — Hormuz crossings down 70%",
        "origin_cluster_id": "origin:kpler",
        "passage_id": "passage:kpler-crossings-down-70",
        "passage_sha256": "ef9acace7fe312a3b7d2c8a253961444026bab673a5e1ac9a3ac186ab9cbe351",
        "published_at": "2026-07-23T00:00:00Z",
        "relevance_status": "verified",
        "retrieval_score": 0.856818,
        "source_class": "external_research_source",
        "source_id": "kpler-hormuz-july-23-2026",
        "source_locator": "Opening and traffic comparison",
        "stance": "supports",
        "syndication_cluster_id": "syndication:kpler-hormuz-july-23-2026",
        "temporal_class": "current_state",
        "text": "After the return to conflict, average Strait of Hormuz crossings fell from roughly 45 to 13 per day, a drop of about 70%.",
        "text_kind": "normalized_source_extract",
        "url": "https://www.kpler.com/blog/strait-of-hormuz-crossings-drop-70-as-tanker-traffic-shifts-almost-entirely-to-the-iranian-route"
      }
    ],
    "what_changed_status": "passage_backfill_added_after_forecast_lock"
  },
  "hypothesis": {
    "category": "oil_gas",
    "claim": "Shipping remains materially below pre-war traffic through July 31, and Brent records at least one daily close above $90.",
    "horizon_seconds": 685641,
    "horizon_status": "exact_timestamp",
    "hypothesis_id": "hyp_7771ec75c61113c32575176e",
    "published_at": "2026-07-24T01:31:38.194794+00:00",
    "resolution_criteria": "TRUE if Strait of Hormuz commercial traffic has not durably returned to pre-war levels by July 31, 2026 AND Brent records at least one daily close above $90 between July 24 and July 31; FALSE if either condition fails.",
    "resolver": {
      "end": "2026-07-31",
      "gdelt_query": "(Strait of Hormuz) AND (shipping OR tanker OR traffic)",
      "kind": "price_threshold_hold",
      "news_and": "Commercial shipping traffic through the Strait of Hormuz had NOT durably returned to pre-war levels by July 31, 2026.",
      "news_query": "Strait of Hormuz shipping traffic return to normal July 31 2026",
      "op": "max_close_gt",
      "start": "2026-07-24",
      "threshold": 90,
      "ticker": "BRENT"
    },
    "resolves_at": "2026-07-31T23:59:00+00:00",
    "scheduled_certain": false,
    "title": "Hormuz does not normalize in seven days"
  },
  "lanes": {
    "combined": {
      "learned_market_weight": null,
      "limitation": "No combined estimate is published until weights are learned on prior matched, prequential resolutions.",
      "production_probability": null,
      "sensitivity_only": [],
      "status": "withheld_no_performance_learned_weight"
    },
    "human": {
      "limitation": "No separately frozen analyst estimate exists apart from the published MacroGuru call.",
      "probability": null,
      "rationale_reference": null,
      "status": "not_separately_submitted"
    },
    "market": {
      "contract_cluster_count": 0,
      "executable_probability_interval": null,
      "fees": null,
      "history_observation_count": 0,
      "history_receipt_sha256": "42a961d8db6bbe625df94c68cca87f4e1a3a6cf31f832a353da1b55340ad8fe0",
      "history_status": "no_matched_market_contract",
      "history_url": "/data/forecast-divergence/hormuz-stays-disrupted.json",
      "latest_observation": null,
      "limitation": "No matched prediction-market measurement is registered.",
      "liquidity": null,
      "probability": null,
      "source_url": null,
      "status": "not_available",
      "underlying_event_family_count": 0,
      "unresolved_weight_eligibility": false
    },
    "narrative": {
      "agreement_index": null,
      "agreement_index_90_interval": null,
      "agreement_probability": null,
      "disagreement_probability": null,
      "effective_independent_source_count": 0,
      "limitation": "The current source spans were frozen after the forecast lock, so they are published as retrospective citations but cannot influence or score the original decision. No narrative probability is inferred.",
      "method_version": "registered-concept-evidence-v1",
      "opposing_passages": [],
      "public_claims": [
        {
          "citation_passage_ids": [
            "passage:imo-evacuation-paused"
          ],
          "citation_status": "verified_retrospective_span",
          "claim_id": "imo-safety-pause",
          "missing_citation_passage_ids": [],
          "text": "The IMO said its evacuation process was paused because vessel and seafarer safety could no longer be assured."
        },
        {
          "citation_passage_ids": [
            "passage:kpler-crossings-down-70"
          ],
          "citation_status": "verified_retrospective_span",
          "claim_id": "kpler-traffic-drop",
          "missing_citation_passage_ids": [],
          "text": "Kpler reported average Hormuz crossings falling about 70%, from roughly 45 to 13 per day after conflict resumed."
        }
      ],
      "retrospective_passages": [
        {
          "capture_status": "retrospective_backfill",
          "captured_at": "2026-07-24T09:35:14Z",
          "char_end": 106,
          "char_start": 0,
          "decision_eligible": false,
          "decision_exclusion_reasons": [
            "captured_after_forecast_lock"
          ],
          "host_cluster_id": "host:imo.org",
          "name": "IMO — protection of vital shipping lanes",
          "origin_cluster_id": "origin:imo",
          "passage_id": "passage:imo-evacuation-paused",
          "passage_sha256": "fa41ec88c40cdbc8399e0c85e0ecf6f75539f75ab366b22f394ade7d37d13d25",
          "published_at": "2026-07-08T00:00:00Z",
          "relevance_status": "verified",
          "retrieval_score": 0.856818,
          "source_class": "intergovernmental_primary_source",
          "source_id": "imo-hormuz-council-july-2026",
          "source_locator": "The evacuation plan",
          "stance": "supports",
          "syndication_cluster_id": "syndication:imo-hormuz-council-july-2026",
          "temporal_class": "current_state",
          "text": "The evacuation process has been paused, as the safety of vessels and seafarers could no longer be assured.",
          "text_kind": "normalized_source_extract",
          "url": "https://www.imo.org/en/mediacentre/secretarygeneral/pages/update-to-council-137.aspx"
        },
        {
          "capture_status": "retrospective_backfill",
          "captured_at": "2026-07-24T09:35:14Z",
          "char_end": 121,
          "char_start": 0,
          "decision_eligible": false,
          "decision_exclusion_reasons": [
            "captured_after_forecast_lock"
          ],
          "host_cluster_id": "host:kpler.com",
          "name": "Kpler — Hormuz crossings down 70%",
          "origin_cluster_id": "origin:kpler",
          "passage_id": "passage:kpler-crossings-down-70",
          "passage_sha256": "ef9acace7fe312a3b7d2c8a253961444026bab673a5e1ac9a3ac186ab9cbe351",
          "published_at": "2026-07-23T00:00:00Z",
          "relevance_status": "verified",
          "retrieval_score": 0.856818,
          "source_class": "external_research_source",
          "source_id": "kpler-hormuz-july-23-2026",
          "source_locator": "Opening and traffic comparison",
          "stance": "supports",
          "syndication_cluster_id": "syndication:kpler-hormuz-july-23-2026",
          "temporal_class": "current_state",
          "text": "After the return to conflict, average Strait of Hormuz crossings fell from roughly 45 to 13 per day, a drop of about 70%.",
          "text_kind": "normalized_source_extract",
          "url": "https://www.kpler.com/blog/strait-of-hormuz-crossings-drop-70-as-tanker-traffic-shifts-almost-entirely-to-the-iranian-route"
        }
      ],
      "stage_receipt_sha256": "c2270bf08cb6e34a3f06f4d1e52cc40d91c1803656a20d99cf94c9fd13dd1de7",
      "stage_receipt_url": "/data/narrative-evidence/hormuz-stays-disrupted.json",
      "status": "abstained_no_prepublication_directional_passages",
      "supporting_passages": []
    },
    "statistical_model": {
      "limitation": "The published forecast is not relabeled as a statistical-model output. A separate frozen model receipt is unavailable for this claim.",
      "method_version": null,
      "probability": null,
      "probability_interval": null,
      "scalar_publishable": false,
      "status": "not_independently_measured"
    }
  },
  "public_url": "https://macroguru.app/decision-receipts/hormuz-stays-disrupted",
  "publication_integrity": {
    "chain_body_sha256": "1417d6145c8846f01e4b8f8fd7beb946439c65deddac85c02d0c5024d8a1e691",
    "chain_entry_sha256": "1156517a37c80a3f996cc30c56b682562c7924ffc0ba49ead07e12ec1f26b10b",
    "chain_sequence": 21,
    "chain_url": "/data/predictions_chain.jsonl",
    "forecast_divergence_receipt_sha256": "42a961d8db6bbe625df94c68cca87f4e1a3a6cf31f832a353da1b55340ad8fe0",
    "forecast_divergence_receipt_url": "/data/forecast-divergence/hormuz-stays-disrupted.json",
    "ledger_id": "2026-07-24__hormuz-stays-disrupted",
    "narrative_stage_receipt_sha256": "c2270bf08cb6e34a3f06f4d1e52cc40d91c1803656a20d99cf94c9fd13dd1de7",
    "narrative_stage_receipt_url": "/data/narrative-evidence/hormuz-stays-disrupted.json",
    "scientific_receipt_sha256": null,
    "scientific_receipt_url": null
  },
  "published_forecast": {
    "basis": "regime",
    "basis_label": "Macro regime",
    "honesty_note": "This is the immutable published call. It is not silently relabeled as a narrative-only, model-only, or market-only estimate.",
    "probability": 0.96,
    "rationale_summary": "Fresh strikes pushed Brent near $100, Kpler reported crossings down roughly 70%, and the IMO still lacked safe-passage guarantees. A full normalization inside one week would require a sharp regime break.",
    "status": "frozen_for_scoring"
  },
  "receipt_id": "2026-07-24__hormuz-stays-disrupted",
  "receipt_sha256": "a2202efd8806f63af614d1a7154c45072b5b96deb7f57d85e328470d91da8966",
  "receipt_version": 3,
  "resolution": {
    "evidence": {
      "amended": true,
      "amendment_reason": "The terminal receipt encoded the Yahoo query separators as data; this append-only amendment supplies the working price URL plus a stable EIA/FRED series reference and preserves the original receipt.",
      "basis": "official_source",
      "note": "Brent futures closed above $90 on July 24, 29, and 31 (maximum $96.78); Kpler and Lloyd’s List data showed Hormuz traffic remained far below pre-war levels through the deadline.",
      "supersedes_resolution_entry_hash": "7fcea846e36a5e22cfcaa851172d039b726ab1fecf4fe80cbf91352be9510d1c",
      "url": "https://fred.stlouisfed.org/series/DCOILBRENTEU",
      "urls": [
        "https://fred.stlouisfed.org/series/DCOILBRENTEU",
        "https://query1.finance.yahoo.com/v8/finance/chart/BZ=F?period1=1784851200&period2=1785715200&interval=1d",
        "https://www.kpler.com/blog/strait-of-hormuz-crossings-drop-70-as-tanker-traffic-shifts-almost-entirely-to-the-iranian-route",
        "https://apnews.com/article/8dc77ed6a65f389ea4af84635d2473bd"
      ]
    },
    "outcome": true,
    "resolved_on": "2026-07-31",
    "status": "resolved"
  },
  "schema_version": "1.2.0",
  "scoring_contract": {
    "benchmarks": [
      "no_skill_0.50"
    ],
    "outcome_domain": "binary",
    "primary_score": "brier",
    "primary_score_formula": "(published_probability - binary_outcome)^2",
    "resolution_criteria": "TRUE if Strait of Hormuz commercial traffic has not durably returned to pre-war levels by July 31, 2026 AND Brent records at least one daily close above $90 between July 24 and July 31; FALSE if either condition fails.",
    "resolver": {
      "end": "2026-07-31",
      "gdelt_query": "(Strait of Hormuz) AND (shipping OR tanker OR traffic)",
      "kind": "price_threshold_hold",
      "news_and": "Commercial shipping traffic through the Strait of Hormuz had NOT durably returned to pre-war levels by July 31, 2026.",
      "news_query": "Strait of Hormuz shipping traffic return to normal July 31 2026",
      "op": "max_close_gt",
      "start": "2026-07-24",
      "threshold": 90,
      "ticker": "BRENT"
    },
    "resolves_at": "2026-07-31T23:59:00+00:00",
    "secondary_scores": [
      "log_score",
      "hit_rate"
    ],
    "status": "registered"
  },
  "uncertainty": {
    "data": "Passage spans are frozen retrospectively; none were captured before the current forecast lock.",
    "market": "No matched prediction-market measurement is registered.",
    "model": "The published forecast is not relabeled as a statistical-model output. A separate frozen model receipt is unavailable for this claim.",
    "narrative": "The stage pipeline abstained from a narrative score to prevent hindsight.",
    "source": "Lineage is registered, but effective original-decision breadth is zero because all captured spans are post-lock.",
    "specification": "No separate model specification receipt."
  }
}
