Start here
This tracks one thing: places where people cannot get fuel. Jet fuel, petrol, diesel, and heating oil, anywhere in the world.Expensive is not the same as unavailable
A price spike is not a shortage. Prices rise for many reasons, most of them unremarkable, and treating every jump as a supply emergency produces a feed nobody can act on. So the trigger is always physical: flights cancelled for lack of fuel, filling stations closed, formal rationing announced, imports cut. Something has to have actually stopped.Two tiers, and the difference between them
Moving a row from
watch to confirmed needs corroboration from genuinely
separate outlets — two outlets plus a regulator, three outlets, or a regulator
plus a hard operational signal like a cancelled flight. Ten stories rewriting one
wire report do not add up to confirmation.
What we track
Four product categories, two severity tiers, global coverage:
Price spikes alone are not shortage signals. We key on physical supply constraints: flight cancellations, station closures, formal rationing, import cuts.
The evidence standard for each tier
These are the thresholds a row must meet to carry each severity. They are the curation contract — the bar applied when the registry is edited — and they are what the planned classifier will enforce once it ships. Nothing below is currently checked by code.Watch tier
One credible source:- A regulator announcement (EPRA, NMDPRA, OGRA, CAA UK, DGCA), or
- An airline / airport operational bulletin, or
- A national wire story with ≥ 1 corroborating observation
Confirmed tier (stricter bar)
Movingwatch → confirmed requires:
- Two distinct outlets + one regulator, or
- Three distinct outlets, or
- One regulator + a direct operational-impact signal (flight cancellation in an airline feed, formal rationing announcement, station-closure list)
watch when it disagrees. That check is part of the planned classifier and is not running today.
Decay policy — designed, not yet enforced
confirmedwithout a new corroborating signal in 7 days → demote towatchwatchwithout a new signal in 14 days → remove
/corrections for the designed audit-surface shape and current status.
Evidence transparency
Every public shortage row exposes itsevidenceSources[] inline — you can read the sources the row was built from and judge it yourself. That is what makes the registry defensible: not that a machine graded it, but that the grading is shown.
For any confirmed row, the panel surfaces:
- Outlet / regulator names
- Source dates
- Classifier version + confidence
ListFuelShortages RPC — every FuelShortageEntry in the response includes the full evidence.evidenceSources[] array, matching what the UI drawer renders.
Root-cause attribution
Every shortage row carries a cause chain, not just a severity:chokepoint— physical supply constraint traced to a chokepoint status changepipeline_disruption— specific pipeline in the registry is offlinesanction— new sanctions authority list triggered an import cutupstream_refinery— refinery turnaround or outagelogistics— port / rail / truck bottleneckpolicy— deliberate government restriction
Break-glass overrides (planned)
Anenergy_asset_overrides persistence layer is the designed break-glass
surface for the rare case where a reader flags a demonstrably wrong
classification. Writes would be admin-only and off the critical path —
the default flow would stay untouched, and every override would emit
an override-trigger entry to the revision log.
Status (v1 launch): the override persistence layer is not yet
implemented. Reader-flagged corrections are handled manually today via
GitHub issues; they
flow through the automated override path once that layer ships
alongside the classifier. See /corrections for the
planned shape of override entries.
Known limits
- Non-English regulator feeds surface with some lag; we’re adding them incrementally.
- “Watch” tier in a politically-noisy country can churn — that’s intentional; readers can filter to
confirmedonly if they want the stricter view. - Heating-oil shortages are seasonal and under-reported in wire coverage; winter months have higher signal.
Corrections
See/corrections for the planned revision-log shape
(every tier change will ship with its trigger — classifier / source
/ decay / override — and the sources used). The classifier that
writes entries ships post-launch; corrections are handled manually
today via GitHub issues.