Methodology
Landfall reads a handful of public data feeds every 15 minutes and turns them into two simple 0–100 gauges. This page explains exactly how — what goes in, how a raw number becomes a score, and where we draw the line between measuring and guessing. The short version: we make the hazard visible; we never predict a crash or tell you what to do about it.
The two gauges
Strait Pressure answers “is the Strait of Hormuz in trouble right now?” It blends three independent kinds of evidence, weighted by how directly each speaks to a disruption:
- Physical flow (40%) — how many ships (tankers and other vessels) are actually moving through the strait versus a normal week, from satellite-tracked transit data.
- Conflict & jamming (25%) — GPS interference in the region, a measurable side-effect of military activity near the shipping lanes.
- Oil market (35%) — what oil’s own price signals say: the level of Brent crude (the main international oil price), and the gap between Brent and U.S. crude that widens when trouble is centered on the Middle East specifically.
Market Transmission answers “has that stress reached markets and your wallet?” It’s built from financial indicators no maritime tracker surfaces — a broad financial-stress index (35%, the St. Louis Fed’s gauge of overall strain across credit and funding markets, built from 18 readings, which climbs when the financial system tightens up), the VIX “fear gauge” for stocks (25%), the Sahm rule (20%, a well-known rule of thumb that flags a probable recession when unemployment rises past a set amount), and how much of the shock has passed through to gas and diesel prices (20%).
We weight by independent kind of evidence, not by number of indicators. Transits, freight, and oil price all encode the same oil story — averaging them together would count it three times. Within each group, indicators are weighted equally.
How a raw number becomes a 0–100 score
Every indicator is anchored to two real reference points: a pre-crisis normal (scores 0) and a historical crisis extreme (scores 100). A reading in between is placed proportionally. Brent crude, for example, anchors at roughly $70 (its recent multi-year normal) and $150 (near its all-time 2008 high). This is deliberately not a rolling percentile: a percentile quietly redefines “normal” as a crisis drags on, so a months-long disruption starts scoring as calm. Fixed anchors don’t drift.
The 0–100 scale maps to four bands: Calm (0–25), Elevated (25–50), High (50–75), and Severe (75–100). In a genuine tail event, indicators can read above 100 — we show that as an off-the-chart state rather than flattening the gauge at its maximum.
A few indicators aren’t a straight line and would be misread by anchoring — the yield curve (the pattern of interest rates across short- and long-term government loans) is the classic example, where the warning sign is short-term rates rising above long-term ones and then reversing, not any single value. Those are shown as background context and never fold into a gauge.
The physical-closure floor
An actual closure of the strait is the fact that matters, so the headline can’t be averaged down by a quiet news week elsewhere. When physical flow collapses into the “high” zone, Strait Pressure is floored to high and scales toward severe as it approaches a full closure — even if oil prices and conflict signals are momentarily calm. If those other signals are pushing the score higher, the normal blend still wins.
Divergence — the gap between reality and the market
This is the idea the whole page is built around. We score reality (what’s happening on the ground — ships, conflict, oil’s own signals) and the market (what financial prices have actually reacted to) on the same 0–100 scale, then watch the gap between them.
When they agree, there’s nothing to see. The case worth noticing is when the ground looks stressed but markets look calm — a gap that says the two sides are telling different stories right now. We show you the gap; we don’t predict which side moves, or when. We only flag a divergence once it has persisted (not on a single noisy reading), and if either side’s data is too stale to judge, we say so instead of implying agreement.
The supply buffer
Separately from the gauges, we show the U.S. crude oil “days of supply” — the national stockpile divided by how fast refineries use it, published weekly by the U.S. Energy Information Administration. It’s a measure of slack: how much cushion exists before a real disruption would start showing up in prices. The dashed projection simply extends the recent trend a few weeks forward as a reasonable estimate — it is not a forecast.
When data is missing or stale
Feeds lag, and some publish slowly by nature. Each indicator has its own staleness window — by default about twice its expected update interval, but wider for feeds with known publish delays (the ship-transit backbone, for instance, is kept for up to about two weeks). Past that window we drop the reading rather than pretend it’s current, and the gauge re-balances across the indicators that are still fresh. If too much of a gauge goes dark — under half its weight — we mark it “low-confidence” instead of showing a falsely precise band. Every card carries its own “as of” time so you can see exactly how fresh each piece is. This honesty is a feature, not a footnote.
What we deliberately leave out
There is no free data source that reliably tracks individual ships inside the Persian Gulf — the free public feeds of ship-transponder signals (called AIS, the system vessels use to broadcast their position) have no coverage there — so we don’t render fake ship positions. The vessels on the map are an illustration scaled to the real transit count, clearly labeled as such; the jamming heatmap, by contrast, is real per-location GPS-interference data.
We also leave out anything that would make this a forecast or a trading signal: no price targets, no “buy/sell,” no crash predictions. Jamming is used as a published proxy for conflict intensity, not a precise measure. Where a signal cuts both ways or can’t be cleanly measured for free, we show it as context or not at all.
The exact anchor values are tuned against live data and may be refined over time; the logic above is fixed. For where every number comes from and how each source may be used, see the sources page.