How we turn live market and reserve data into the supply health index, the price build-up from crude barrel to bowser, and the trigger thresholds behind the homepage status.
Built from live feeds and totalling about $1.98/L: crude from Brent and the AUD/USD rate, the refining, freight and wholesale block measured from the AIP wholesale price, the retail margin from the pump-to-wholesale gap, and excise and GST from the legislated rates. Prices vary by location and cycle. Open any layer for the full story.
How this is sourced: crude, excise and GST come from official feeds and the legislated rates. The combined refining, freight and wholesale margin is measured as the AIP wholesale terminal gate price (GST and excise removed) minus crude, and the retail margin as the pump average minus that wholesale price. Only the split of the wholesale block into refining, freight and wholesale is our editorial estimate, as no public feed separates them daily.
GST is 10 per cent of the pre-GST total including excise (ATO mechanism), so the GST line moves with both crude prices and excise policy.
The bottom line: Only 82c of every litre is the actual oil. Government taxes (excise plus GST) account for roughly 28 per cent of today's pump price. When politicians talk about "high oil prices", that's only part of the picture.
The supply health index is a composite score that combines six indicators into a single 0 to 100 measure of Australia's fuel supply security. It appears on the homepage and on /fuel-supply.
Each component publishes its explicit weight, cadence, and primary-source URL. Weights mirror the live computation in the health index engine and sum to 100 per cent.
| Score | Band |
|---|---|
| 0 to 20 | Critical |
| 21 to 40 | Strained |
| 41 to 60 | Tight |
| 61 to 80 | Adequate |
| 81 to 100 | Secure |
Five bands, worst to best: Critical, Strained, Tight, Adequate, Secure. The thresholds are calibrated against historical Australian fuel security events. Before June 2026 the upper bands were published as Severe, Elevated and Healthy; the scale and cutoffs are unchanged, only the labels were renamed so no band shares a word with the separate trigger-tone taxonomy documented below.
The exact scoring curve and calibration for each derived component is set out below. Open a row for the formula and worked examples.
The refinery output component is a 0 to 100 score representing actual domestic throughput as a percentage of combined nameplate capacity at Lytton (Ampol, Brisbane) and Geelong (Viva Energy, Victoria). It is an editorial assessment reviewed against the AIP Weekly Petrol Prices Report and the DCCEEW Australian Petroleum Statistics release.
The six components combine into the 0 to 100 supply health index using a weighted average. Weights reflect each component's load-bearing role in crisis forecasting, not equal importance. Their relative weighting, heaviest to lightest, is set out below.
When a component has no data, it is dropped and the rest are re-weighted in proportion rather than being scored zero or held at a default. That is the honest treatment of a missing feed, but it has a consequence worth stating: a dropped component does not leave the index neutral, it increases the influence of every component that remains. An index computed without crude, for example, gives more weight to the two editorially assessed components than the published weights suggest.
A correction, 29 July 2026, which puts a visible step in the index history. Until this date the crude component was excluded whenever its latest observation was more than five days old. That test was borrowed from a display label and was wrong for the underlying data: the Brent spot series we read is a daily series that is published weekly, so its newest observation is routinely eight or nine days old by the end of each cycle through no fault of the feed. The effect was that crude was dropped from the index on most days, and the remaining components were silently re-weighted upward. The test is now whether the data pipeline itself is still running, which is the question that was always meant to be asked. The index is more stable and slightly different from this date onward; earlier values in the history are not restated, because the figures published at the time are what readers saw.
The inbound supply component has two paths, depending on whether a live tanker feed is connected.
The price stress component converts the national average retail ULP price into a 0 to 100 score on a linear scale between two anchors: a pre-crisis baseline and a sustained-crisis ceiling. It is clamped to the 0 to 100 band, so a price at or below the baseline reads as no stress and a price at or above the ceiling reads as maximum stress.
If the national average settles into a sustained new normal, the anchors are recalibrated so the score continues to discriminate. The current anchors are fit for crisis forecasting, not structural post-crisis pricing.
The reserves component converts the average days of cover across petrol, diesel, and jet fuel into a 0 to 100 score using a piecewise-linear curve. The curve is steepest in the critical band and flattens as cover approaches the IEA target.
A structural note: the curve tops out at the IEA 90-day net-import target, and Australia holds well below 90 days (it has for years). So this component is structurally capped below 100, and that caps the overall index too. Read the score as movement within Australia's normal range, not as distance from a perfect 100.
Minimum Stockholding Obligation relief temporarily eases the per-importer holding requirement during the supply crunch, letting suppliers hold 20 per cent less petrol and diesel if they commit to delivering more fuel into the domestic and regional market. In force since March 2026, the relief was extended on 30 May 2026 for a further three months to 30 September 2026, after which the standard obligation is scheduled to resume.
The curve is continuous at every band boundary. It replaced an earlier straight-line formula that flattened the critical-band steepness operators react to in practice; the change created a one-time step in the composite series, documented in CHANGELOG.md.
The geopolitical risk, inbound supply, and refinery output components are Editorial assessment assessments reviewed weekly. The other three are derived from official data sources. Full component-level current scores are on the supply and reserves page.
Four live inputs feed the crisis-banner derivation. Each input has an elevated trigger floor and a crisis trigger floor; when any input crosses its elevated floor the conditional banner appears above the hero, and when any input crosses its crisis floor the banner escalates to crisis red. Trigger states are a separate taxonomy from the five supply-health bands documented above. The numeric thresholds below are imported directly from the live codebase so this published table cannot drift from the live derivation.
| Input | Elevated trigger | Crisis trigger | Source |
|---|---|---|---|
| National ULP 91 averagec/L | at or above 200 | at or above 220 | AIP weekly retail tracking, DCCEEW retail averages |
| Aggregate fuel reserve daysdays | at or below 45 | at or below 30 | DCCEEW Australian Petroleum Statistics, weekly |
| Supply health index0 to 100 composite | at or below 60 | at or below 40 | Derived (six-component composite, see Supply health index above) |
| Combined refinery utilisationper cent of nameplate | at or below 60 | at or below 50 | Editorial REFINERY_UTILISATION constant, monthly review |
The hero status row reads as Crisis when any crisis trigger is active, Elevated when any elevated trigger is active and no crisis trigger is active, Stable when all four inputs are confirmed below their elevated thresholds, and Data pending when any input is unavailable. The Stable claim requires every feed to have confirmed an in-band reading; a single missing feed routes the hero to Data pending and lists which feeds are absent. Tone, icon, title, and detail text all regenerate automatically; no manual string edits are required when the live feeds move.
We will notify you when we add new government data sources, refine our calculations, or issue corrections. Full transparency, no surprises. For specific verification requests, email info@fuelcrisis.com.au.
For developers: the internal codebase identifiers behind each formula and data source are documented in docs/ABOUT-DATA.md on GitHub.