What actually moved oil prices
Every major event, pinned to Brent crude and daily transit data. Hover any marker to preview; click to jump to the feed.
Filters
Analysis
Findings computed from the timeline data — the interpretation is ours, the numbers are not.
An independent, data-first record of the 2026 Strait of Hormuz crisis: every number on this site is computed from public sources and rebuilt weekly, with methods and caveats published alongside.
Questions, corrections, or data we're missing: [email protected].
Fast sources refresh hourly. Prediction-market odds, Iranian state-media statements (IRNA, Tasnim, Mehr), and the public Truth Social archive are pulled every hour and every number on the site recomputes from them. Transit counts refresh weekly — IMF PortWatch publishes Tuesday mornings (snapshotted, so their retroactive revisions stay visible) — alongside FRED Brent. Each refresh commits and the site deploys itself. Nothing is edited by hand between the raw data and what you read.
Breaking events, by hand. Major events are curated and source-verified manually and pushed as they happen, which reruns the same computation — that push is what feeds the Atom feed and subscriber alerts.
Daily analysis, with a kill gate. Once a day an automated analyst checks whether the data actually moved — a new major event, an odds swing, an outsized Brent move, a burst of statements. If nothing cleared the bar, it writes nothing; most days should be silent. When it does draft a piece, every number is computed from the same JSON the charts read, and a human reviews it before it publishes.
Freshness is visible. The footer on every page states when the site was last built and the exact date each dataset runs through. If a number looks stale, that's why — we'd rather show a dated truth than a fresh guess.
Everything on this site is computed from JSON you can fetch directly — no key, no rate-limit games. If you're wiring up an agent (a Claude Code or Codex job, a cron, a GitHub Action) to react when something breaking happens here:
Poll the feed. feed.xml is an Atom feed with one entry per major event and analysis piece, stable ids for deduping, and computed reactions in the summary. New entry → trigger your job.
Read the data. The full datasets behind the charts: timeline.json (Brent, transits, events with computed reactions), markets.json (prediction-market series), incidents.json, iran_statements.json, truths.json, analysis.json and calibration.json. Updated with each data refresh; please keep the source citations if you republish.
What we collect. If you subscribe: your email address and the time you subscribed. That is the complete list. The site sets no cookies, runs no analytics, and uses no trackers. The subscribe form is protected by Cloudflare Turnstile, which may process connection data to distinguish humans from bots under Cloudflare's privacy terms.
Where it lives. Addresses are stored in Cloudflare Workers KV and used for exactly one purpose: sending breaking-event updates. They are never shared, sold, or used for anything else.
Your rights. Unsubscribe instantly via the subscribe dialog ("unsubscribe instead") — this deletes your address outright, not just a flag. For anything else, including data questions: [email protected].
Method & caveats
Transits are AIS-observed daily transit calls for the Strait of Hormuz from IMF PortWatch (sources: Kpler; UN Global Platform; IMF PortWatch), published weekly with a several-day lag. During this crisis, GPS jamming, AIS spoofing and dark sailings mean every count is a lower bound on real traffic — PortWatch itself flags this. Iran-linked dark-fleet movements have always been largely invisible to AIS.
Brent is the daily Europe Brent spot price (FOB) from FRED (DCOILBRENTEU), which lags a few business days. Reactions: “+1d” compares the last close before the event with the first close on or after it; “+7d” with the last close within seven calendar days. Transit deltas compare mean daily transits in the seven days before the event against the seven days from the event day onward. With events this clustered, single-event attribution is genuinely hard — treat reactions as descriptive, not causal proof.
Events are hand-curated with sources; the seed archive is straits.live’s CC0 event data, independently re-verified.
Prediction markets: YES-probability histories from the public Polymarket and Kalshi market-data APIs (daily closes; Kalshi no-trade days use the bid–ask midpoint). The Kalshi closure market resolved YES on Mar 10, 2026 and is no longer listed in their current API; its history is recovered from their legacy v1 endpoints. Market prices are traders’ probabilities, not ours.
Trump posts are Truth Social statuses from CNN’s public archive (millisecond UTC timestamps), filtered to strait-related keywords; markers cluster nearby posts (the badge is the count) and link to the original post. Portrait: official White House photo, public domain. Nothing here is investment advice.
Breaking-event alerts
When something breaking happens in the strait, we compute what it actually did and send one update linking to the analysis here. No schedule, no filler. Unsubscribe any time.