NSW Petrol vs Diesel — 80 Day Weekly Average
Current FuelCheck Snapshot
NSW onlyDL — Diesel NSW only
P95 — Premium 95 NSW only
P98 — Premium 98 NSW only
Related News Context (last 14 days) NSW overview
Price Spread — Cheapest vs Dearest Right Now NSW only
Petrol — ULP Weekly Average
Diesel — Weekly Average
Latest Published Week
Price Over Time — Top Stations
Geopolitical news Stage 3All Stations — Latest Prices
Average Price by Brand
Brand Station Count
Brand Avg Price Over Time (30 days)
Dashed lines = news eventsBrand League Table (30 days)
Price Spike Events
Day-of-Week Price Pattern
Average price by day of week (AEST). Unlike Perth's strict 7-day cycle, Sydney/NSW prices follow a multi-week rhythm (~5 weeks). Day-of-week variation here reflects patterns within that longer cycle, not a predictable weekly schedule.
Brand Price Premium
How many cents per litre each brand charges above the cheapest brand on average. Zero means at-or-below the floor; higher = more expensive.
NSW Price Cycle Phase (U91 — Sydney avg ~5-week cycle)
Methodology & Transparency
FuelWatchX automatically monitors station-level petrol and diesel prices across New South Wales using the NSW Government's mandatory FuelCheck reporting scheme, and imports published weekly state averages from the Australian Institute of Petroleum for interstate comparison. This page explains exactly how data is collected, how price spikes are detected, and what every number on this site means — so that journalists, policy researchers, and the public can evaluate the information with full context.
Data Source & Coverage
Where does the NSW station data come from?
Station prices, brands, maps, postcode analysis, spikes, and most Overview analytics
are sourced from the NSW Government FuelCheck API
(api.onegov.nsw.gov.au).
Under NSW law, every petrol station is legally required to report a price change
to FuelCheck within 30 minutes of it taking effect at the bowser.
This makes the data both timely and comprehensive.
Where do the state averages come from?
The Overview's selectable 80-day chart and the State Comparison page use weekly retail averages published by the Australian Institute of Petroleum (AIP). FuelWatchX imports the complete history exposed by the AIP chart service into its own database, then serves dashboard requests from that local copy rather than querying AIP live. The series cover ULP petrol and diesel for NSW, QLD, VIC, NT, WA, SA, and TAS. For ACT, AIP publishes a Canberra series, not an ACT-wide average.
What region is covered in each dataset?
Station-level tools cover all of New South Wales. The FuelCheck API returns data for NSW and Tasmania; FuelWatchX includes every NSW station with reported price data and excludes Tasmanian stations. You can use the postcode filter to narrow NSW results to a particular area. The separate weekly AIP dataset provides jurisdiction-level comparison only; it does not add interstate stations, brands, maps, or postcodes.
How often is data refreshed?
The scraper fetches a full price snapshot every 2.5 hours. Dashboard reports are rebuilt after each successful snapshot. News monitoring runs every 30 minutes; spike detection is also checked on that schedule and processes new price snapshots when they are available. There is an inherent lag of up to 2.5 hours between a station changing its price and that change appearing here. Published AIP history is checked every six hours, although its observations are weekly rather than live bowser prices.
Fuel Types & Units
What fuel types are tracked?
- DL — Diesel
- PDL — Premium Diesel
- U91 — Unleaded 91
- E10 — Ethanol-blended 10%
- E85 — High-ethanol blend 85%
- P95 — Premium Unleaded 95
- P98 — Premium Unleaded 98
- LPG — Liquefied Petroleum Gas
What unit are prices in?
All prices are in Australian cents per litre (c/L), which is the standard unit used by FuelCheck and Australian fuel industry reporting. A price of 180.0 means $1.80 per litre.
Why is EV not listed?
FuelCheck includes EV charging stations. FuelWatchX currently excludes EV from its displays because EV prices (priced in kWh, not c/L) are not comparable with liquid fuels on the same scale.
Spike Detection — Full Algorithm
What is a "price spike"?
A price spike is recorded whenever a fuel price at a station (or across a postcode or state average) changes significantly between two consecutive snapshots. Not every price change qualifies — small fluctuations are filtered out as noise. Spikes have a direction (up or down) and a severity (normal, elevated, or abnormal).
Step 1 — The Noise Gate (±2%)
If the price change between two consecutive readings is less than ±2% in either direction, it is discarded entirely and no spike is recorded. This prevents ordinary micro-fluctuations from being flagged as events.
If |delta_pct| < 2.0 → ignored (noise gate). No spike recorded.
Step 2 — Baseline & Z-Score Calculation
For changes that pass the noise gate, the algorithm looks at the past 14 days of price history for that specific station and fuel type. It calculates:
- Baseline average (μ) — the mean price over the 14-day window
- Baseline standard deviation (σ) — how much prices typically varied day-to-day
-
Z-score — how many standard deviations the current price is above or below the average:
sigma = (current_price − baseline_avg) / baseline_std
A z-score of 0 means the price is exactly at the 14-day average. A z-score of +2.5 means it is 2.5 standard deviations above average — an unusual event that would occur less than 1% of the time if prices were normally distributed. Z-scores complement the raw percentage change: a station with highly volatile prices will need a larger move to reach an elevated z-score than a consistently stable station.
Step 3 — Severity Classification
Each spike is classified using whichever criterion — percentage delta or z-score — is more severe:
| Severity | % Delta criterion | Z-score criterion | Meaning |
|---|---|---|---|
| Normal | ≥2% but <4% | <1.5σ | A real change that passed the noise gate, but within historical norms for this location. |
| Elevated | ≥4% or | ≥1.5σ | A notable move. Prices are shifting more than usual — worth monitoring. |
| Abnormal | ≥8% or | ≥2.5σ | A significant outlier, well outside recent historical patterns. Rare and newsworthy. |
A single spike can meet either criterion — for example, an 10% jump at a normally-stable station would qualify as abnormal on both the percentage and z-score criteria. Only the highest applicable severity is recorded.
Detection Scopes
What are the three scopes?
Spike detection runs at three levels of aggregation for every snapshot:
- Station — An individual petrol station's price for a specific fuel type. E.g. "BP Wollongong's P95 rose 12c/L."
- Postcode — The average price across all stations within a postcode, for a specific fuel type. E.g. "Average Diesel across 2527 rose 6%."
- State (NSW) — The average price across all monitored stations in the state. This is the broadest, most policy-relevant signal.
Why aggregate scopes?
A station-level spike might reflect a single operator's decision. A postcode-level or state-level spike suggests a coordinated or market-wide move — a more meaningful signal for consumer advocacy and policy purposes.
News Intelligence
What news sources are monitored?
FuelWatchX checks five major Australian news RSS feeds every 30 minutes:
- ABC News
- The Guardian Australia
- SBS News
- The Sydney Morning Herald
- 9News
How are articles categorised?
Articles are tagged by matching their title and summary against keyword lists. An article can receive multiple tags. The four categories are:
- Fuel Price — Direct reporting on petrol or diesel prices at the pump (e.g. "petrol price", "bowser price").
- Geopolitical — Global oil market events: crude oil, OPEC, Strait of Hormuz, Brent crude, Iran sanctions.
- Stage 3 — National fuel security stories: refineries, strategic reserves, fuel shortages, supply disruption.
- NSW Local — NSW-specific coverage, including regional and metropolitan reporting, NRMA reports, and ACCC petrol inquiries.
News events are overlaid on price charts as dashed vertical lines, allowing visual correlation between market events and local price movements.
Limitations & Caveats
- Data lag: There is an inherent lag of up to 2.5 hours between a station changing its price and that change appearing in FuelWatchX.
- Station compliance: FuelCheck accuracy depends on stations reporting their prices within the legally required 30 minutes. Late reporting will delay spike detection.
- Algorithm context: Statistical detection identifies unusual moves; it cannot determine why a price changed. Human judgement is required before drawing conclusions about pricing behaviour.
- News matching: Article categorisation is automated via keyword lists and may occasionally misclassify or miss articles.
- Different scopes: FuelCheck supplies detailed NSW station observations; AIP supplies weekly jurisdiction-level averages. Interstate selection changes only charts explicitly labelled as AIP data. Station lists, maps, brands, spikes, news overlays, and other Overview analytics remain NSW-only.
- ACT coverage: The AIP ACT option represents Canberra, not a territory-wide average. It is labelled accordingly throughout FuelWatchX.
- Publication timing: AIP observations are weekly published averages and may be revised upstream. They should not be interpreted as current individual bowser prices.
- Short history: Z-scores are less reliable in the first two weeks of operation when the 14-day baseline window is not yet fully populated.
About This Project
Who runs FuelWatchX?
FuelWatchX is an independent project built and maintained by TheDancingDeveloper. It is not affiliated with or endorsed by the NSW Government, FuelCheck, fuel retailers, or the news organisations referenced on the site.
Does the site collect personal information?
No account or sign-in is required, and FuelWatchX has no forms that ask visitors to submit personal information. Like most websites, its hosting infrastructure may retain limited operational request logs for security and reliability. Links to external services are governed by those services' own privacy policies.
Where can I see what changed?
The FuelWatchX changelog records every visitor-visible update to the site.
Sydney / NSW Price Cycles
Why do petrol prices spike then gradually fall?
Australian petrol retailers use a deliberate "rocket and feather" pricing strategy: prices rise sharply over a short period, then drift down slowly before the cycle repeats. The ACCC documents this pattern for all five major cities.
How long is the Sydney cycle?
The ACCC reports a 5.5-week average for Sydney (28–39 days across recent cycles). Prices typically reach their peak around days 12–16 into the cycle, then fall gradually for the remaining 3–4 weeks.
How does this differ from other cities?
- Perth — strict 7-day weekly cycle, peaks on Wednesdays
- Adelaide — 2.5-week avg, highly variable
- Melbourne / Brisbane — 6–6.5 week cycles, similar to Sydney
This is why the day-of-week chart on the Patterns tab shows within-cycle variation for NSW, not a predictable weekly "buy on Tuesday" pattern.