HORMUZ SIGNALescalation risk monitor

A live gauge of Iran-conflict risk for oil markets — built from shipping, insurance, and energy data, not headlines.

Watch the strait, not the statements

Methodology

What Hormuz Signal measures and how the 0–100 score is built: the thesis behind the data choices, the normalization math, the indicator weights, and the caveats. No background knowledge assumed.

The thesis

Presidential rhetoric and diplomatic headlines are noisy signals — they are cheap to produce and often decoupled from what the parties actually do. Hormuz Signal instead watches the physical and financial plumbing of the conflict: whether commercial shipping still moves through the Strait of Hormuz and the Red Sea, whether China keeps buying discounted Iranian crude, and whether global oil and refined-product inventories keep tightening. These are costly signals — shippers, underwriters, and refiners reveal real expectations through where they send hulls and how they price risk.

How the score is computed

  1. Each indicator's latest value is converted to a raw stress reading relative to a peacetime baseline. For up-bad indicators (prices, rates, premiums, event counts) stress is (value − baseline) / span; for down-bad indicators (transits, imports, inventories) it is (baseline − value) / span.
  2. Raw stress passes through a saturating curve n = 100·s/(s+0.5): 0 means calm, and 100 is an asymptote that is never reached — so even unprecedented stress keeps some headroom (see "Model v2" below).
  3. The composite score is the weighted average of the normalized stresses. Indicators with no current data are excluded and the remaining weights are renormalized to sum to 1, so a missing feed never silently drags the score toward zero.
  4. The result is rounded to one decimal and mapped to a risk level.

Model v2 (September 2026)

The original model mapped stress linearly onto 0–100 with a hard cap at 100. During the 2026 blockade several indicators hit that cap simultaneously, so the composite could no longer distinguish "severe disruption" from "unprecedented" — an active blockade read within a few points of open exchanges of fire. On 27 September 2026 the normalization was changed to a saturating curve, n = 100·s/(s+0.5), over unbounded stress, and the level thresholds were recalibrated (15 / 30 / 50 / 70).

  • Nothing else changed: the indicator set, weights, baselines, spans, and staleness rules are identical.
  • Under the new curve 100 is an asymptote — reserved, in effect, for genuinely unprecedented combinations. Everyday severe regimes sit lower, which restores separation between "bad" and "unprecedented".
  • Scores before and after this date are not directly comparable: a given situation reads roughly 10 points lower on the v2 scale. The level bands (Low…Severe) were recalibrated so that the meaning of each band carries over.

Model v2.3 (October 2026)

The composite gained a force-posture cluster: US carrier strike groups and amphibious ready groups in Iran-relevant waters (weekly USNI Fleet & Marine Tracker as ground truth, with movement news flipping per-hull state between weekly posts), and military tanker/airlift tempo from open ADS-B. The model previously had no visibility into military pre-positioning — yet posture is escalation risk independent of intent: miscalculation and accident risk scale with forces in theater, and deployments are observable physical facts, not rhetoric. Existing weights were re-carved to fund the cluster (0.16 of the composite) and now sum to exactly 1.

Risk levels

LevelScore rangeInterpretation
Low0 – 14.9Shipping, energy flows, and event tempo near peacetime norms.
Guarded15 – 29.9Isolated stress in one or two series; the system retains ample buffer.
Elevated30 – 49.9Multiple series under stress; markets are pricing a meaningful risk premium.
High50 – 69.9Shipping constrained and inventories tightening; escalation is materially likely.
Severe70 – 100Broad-based disruption across shipping, energy, and conflict indicators.

Indicators

13 series, weighted by how directly they measure escalation pressure. Baseline is the peacetime reference value; a move of one span in the direction of risk maps to 66.7 stress. Larger moves approach 100 without reaching it.

IndicatorWeightDirectionBaselineSpanSource
Hormuz vessel transits
Daily commercial vessel transits through the Strait of Hormuz, all vessel types. A sustained drop means shipping is being constrained — the single most direct escalation signal. Baseline reflects the observed pre-war normal (~78/day, Feb 2026 PortWatch mean). PortWatch undercounts during GPS jamming, so the live AIS geofence is primary.
transits/day
18%↓ worse78.039.0AIS geofence (live, primary) · IMF PortWatch (fallback)
Red Sea / Bab el-Mandeb transits
Daily commercial transits through the Bab el-Mandeb strait, all vessel types. Constraints here signal a widening regional shipping crisis (Houthi attacks, rerouting around the Cape). Baseline reflects the observed pre-war normal (~37/day, Feb 2026 PortWatch mean).
transits/day
10%↓ worse37.020.0IMF PortWatch (satellite AIS)
East-West pipeline outlet (Yanbu loadings)
Crude tanker loadings at Yanbu (King Fahd Port) — the Red Sea outlet of Saudi Arabia's East-West pipeline (Petroline, ~5M bpd capacity), the main crude bypass around Hormuz. Pipeline flows are not published, so the terminal IS the measurement: when Hormuz is constrained this ramps toward capacity (observed ~4.8 mb/d, Jun 2026); a collapse means the bypass itself is offline. Terminal-level proxy — also reacts to Red Sea shipping avoidance.
kb/d
6%↓ worse960.0730.0IMF PortWatch Daily Ports (satellite AIS)
China imports of Iranian crude
Chinese purchases of discounted Iranian crude, estimated monthly from UANI Tanker Tracker AIS monitoring of Iranian export loadings (direct China–Iran customs reporting stopped in 2021). If Beijing keeps buying, Tehran retains its revenue lifeline; a collapse signals severe pressure and raises escalation risk. Pre-2025 history uses the UN Comtrade Malaysia relabelling proxy; UANI export figures are scaled 0.9× to a delivered-imports basis.
kb/d
8%↓ worse1,400700.0UANI Tanker Tracker (AIS estimate; UN Comtrade archive pre-2025)
US commercial crude stocks (excl. SPR)
US commercial crude inventories. Tightening inventories mean the market has less buffer against a Gulf supply shock.
mbbl
8%↓ worse450.060.0EIA Weekly Petroleum Status Report
US distillate fuel oil stocks
US distillate (diesel/heating oil) inventories. Refined-product tightness amplifies any crude disruption.
mbbl
4%↓ worse118.030.0EIA Weekly Petroleum Status Report
Brent crude front month
Brent front-month price. A geopolitical risk premium building into prices reflects trader expectations of supply disruption. Span widened Sep 2026 ($120 → $150 cap) so a full-scale-war price regime still has headroom.
USD/bbl
11%↑ worse78.072.0Yahoo Finance (BZ=F)
VLCC rate TD3C (MEG to China)
Very Large Crude Carrier earnings on the Middle East Gulf to China route, from the CME-listed TD3C Baltic freight future (front month, Worldscale converted to USD/day). Spiking rates reflect scarcity of willing tonnage and rising risk.
USD/day
6%↑ worse45,00055,000CME TD3C Baltic freight future (NYMEX:TL via TradingView scanner)
Gulf war-risk insurance premium
Additional war-risk premium charged for transiting the Gulf, as % of hull value. No public price series exists (quotes are bilateral), so the level is estimated from the Lloyd's Joint War Committee listed-areas status and war-risk coverage tempo, calibrated to press-reported quotes. Underwriters price danger before headlines do. Recalibrated Aug 2026 to the post-escalation market (quotes of 3–10%).
% hull value
8%↑ worse0.259.75Lloyd's JWC listed areas + GDELT coverage tempo (modelled estimate)
Conflict coverage tempo, Gulf (7d)
Trailing 7-day count of English-language conflict-related articles about the Gulf / Hormuz / Red Sea (GDELT timelinevolraw). A media-tempo proxy for conflict intensity, not an event count — used because it reacts within hours. Recalibrated Sep 2026 to the measured range (~1.9k calm-week floor, ~8.9k peak, Aug 2026); the original 25/55 calibration pinned the indicator at maximum stress permanently.
articles
5%↑ worse1,5006,500GDELT
US carrier strike groups in theater
US aircraft carriers (CVN hulls) operating in Iran-relevant waters — Arabian Sea, Red Sea, Gulf of Oman/Aden, Persian Gulf, Mediterranean — as positioned in the weekly USNI Fleet & Marine Tracker. Force posture is escalation risk independent of intent: every additional deck in theater adds strike capacity and enlarges the surface for miscalculation or accident. Baseline is the standing one-carrier presence; the Oct 2026 concentration (three carriers ordered) is the largest since 2003. Carriers in transit count only once positioned — in-theater posture, not announcements.
CSGs
9%↑ worse1.002.00USNI News Fleet & Marine Tracker (weekly, via WordPress API)
US amphibious ready groups in theater
Big-deck amphibious assault ships (LHA/LHD hulls — each the flagship of an Amphibious Ready Group embarking a ~2,200-strong Marine Expeditionary Unit) in the same Iran-relevant waters, from the weekly USNI Fleet & Marine Tracker. An ARG/MEU afloat gives Washington ground-force options short of invasion; Marines moving to the region are both a signal and another accident surface. Calm normal is zero in theater.
ARGs
3%↑ worse0.002.00USNI News Fleet & Marine Tracker (weekly, via WordPress API)
Military tanker/airlift tempo (24h)
Unique military tanker and strategic-airlift aircraft (KC-135/KC-46/KC-10, C-17, C-5) tracked over the trailing 24h via the adsb.lol open ADS-B feed, sampled on each ingest tick. Sustained tanker and airlift surges precede and sustain air campaigns — the "tankers rerouting east" signal. Coverage is partial (many military flights do not broadcast a position), so this reads tempo, not census. INTERIM CALIBRATION (Oct 2026): baseline/span set from first samples; recalibrate after ~30 days of collection.
aircraft/24h
4%↑ worse60.0120.0adsb.lol open ADS-B feed (military filter)

Caveats

  • Several series (tanker rates, war-risk premiums, Chinese imports of Iranian crude) have no free real-time public feed; they rely on proxies or periodic reporting and may lag events by days.
  • Weights, baselines, and spans are analytical judgments, not fitted parameters. The score is a structured way to read the data, not a forecast.
  • A 0–100 score implies false precision. Treat the level band and the trend of the components as the signal, not the decimal.