Fuel Detective: UK Fuel Market Intelligence

Institutional briefing format for operational decision support, anomaly triage, and postcode-level market review.

Executive Summary

Report Generated2026-03-27 16:08:49 UTC
Stations Analyzed7,347
Unique Station IDs7,347
Duplicate Output Rows0
Median E10 (PPL)149.900
Average Staleness (Days)78.887
High Probability Rows1,017
High Anomaly Rows8
Fill Now16
Fill Soon128
Brand Profiles37
Postcode Sectors1,282
Sectors Classified (>=3 Stations)1,282
Regime Types5
Dominant RegimeMixed (40.6%)
Target DefinitionObserved price change within horizon
Walk-Forward ROC-AUC Mean0.7259
Walk-Forward ROC-AUC Std0.0239
Walk-Forward Brier Mean0.2103
Walk-Forward Brier Std0.0180
Narrow Uncertainty Coverage93.7%

Interpretation: use high-probability rows with narrow intervals as primary action candidates, then route anomaly flags to validation controls. Output rows are constrained to one row per station ID. 64.8% positive over 7.0-day horizon.

Decision Queue

Standardized triage policy designed for repeatable operations.

Lane Rows Rule Operational Guidance
Action Now 997 Probability >= 0.70, interval width <= 0.20, no high anomaly. Prioritize for immediate route or procurement decisions.
Validate First 34 High anomaly, diesel below petrol, or wide uncertainty interval. Perform manual checks before any policy or financial action.
Monitor 6,316 No strong trigger condition. Retain in routine monitoring and reassess at next refresh.

Signal Guide

Colored labels use current model outputs and station metadata to speed up review.

Fill Recommendation

  • Fill now: rise risk score >= 0.45, pence-to-alert <= 3.0, and no high anomaly flag.
  • Fill soon: rise risk score >= 0.30, pence-to-alert <= 5.0, below fill-now conditions, and no high anomaly flag.
  • Monitor: no immediate fill trigger; keep under routine review.

Risk Rating

  • High: rise risk score at or above the fill-now threshold.
  • Medium: rise risk score in the fill-soon range.
  • Low: rise risk score below fill-soon range.

Station Type (Data Source)

  • Supermarket: derived from station `is_supermarket` data in the analysis dataset.
  • Non-supermarket: not marked as supermarket in the source data.

Visual Briefing Pack

UK fuel E10 price distribution chart
E10 distribution with category spread across supermarket, premium, and other stations.
UK fuel anomaly map by location
Spatial footprint of medium and high anomaly scores.
Fuel price change probability distribution chart
Distribution of near-term update probability and brand concentration.
Brand positioning versus local competition chart
Brand positioning versus local competitors and update cadence.
Postcode sector fuel price intelligence map
Postcode-sector average E10 map for local market structure review.

Brand Positioning (Data-Derived)

Update rate is the station-weighted share of brand rows with staleness below 7 days.

Brand Stations Avg vs Competitors (ppl) Update Rate (%) Price Position Score
COSTCO WHOLESALE 20 -10.70 0.0 -41.41
SAINSBURY'S 316 -9.00 0.0 -40.16
NICHOLL 5 -10.84 0.0 -36.68
HARVEST ENERGY 15 -5.33 0.0 -18.98
TESCO 516 -4.71 99.8 -13.49
ASDA 320 -4.88 0.0 -13.20
MORRISONS 337 -4.44 0.0 -11.93
CENTRAL CO-OP 18 -4.76 0.0 -6.74
GULF PETROL STATION 5 -3.60 0.0 -2.20
CIRCLE K 31 -1.70 0.0 0.63
HIGHLAND FUELS 11 -0.55 0.0 5.73
SOLO 10 0.97 0.0 6.94
MURCO 92 0.59 0.0 12.59
ESSAR 32 -0.45 3.1 13.17
GULF 207 -0.31 0.0 13.27
MAXOL 48 1.28 0.0 16.10
JET 222 0.04 3.6 16.74
PACE 21 0.89 0.0 17.26
VALERO 62 0.43 6.5 17.79
TEXACO 415 0.49 8.0 18.14

Postcode Sector Market Structure

Postcode Sector Stations Avg E10 (ppl) Price Range (ppl) Market Type Price Leader
CR0 14 147.89 14.00 Concentrated SAINSBURY'S
BT71 14 147.90 40.00 Competitive ANNAGHER SERVICE STATION
BT23 13 148.73 7.20 Competitive ASDA
BT47 12 145.40 21.00 Competitive GO
LE3 12 157.22 33.00 Competitive TEXACO
GL2 11 146.21 16.00 Competitive SAINSBURY'S
LE4 11 149.88 17.00 Competitive COSTCO WHOLESALE
PR7 11 152.23 41.00 Competitive ECCLESTON GREEN FILLING STATION
TA6 11 154.05 41.00 Competitive SAINSBURY'S
ST5 11 155.15 44.00 Competitive SAINSBURY'S
LE10 10 148.38 5.00 Competitive TESCO
BT42 10 148.80 16.00 Competitive SAINSBURY'S
BT30 10 149.90 0.00 Competitive CIRCLE K
S60 10 151.40 36.00 Competitive MORRISONS
SN14 10 154.40 42.00 Competitive SAINSBURY'S
CH7 10 154.90 14.00 Competitive RHYDYMWYN SERVICE STATION
DE21 9 143.88 24.00 Competitive ESSO
BT34 9 143.90 29.00 Competitive SPAR
DL14 9 144.06 14.00 Competitive SAINSBURY'S
TQ12 9 146.23 13.00 Competitive SAINSBURY'S
DN4 9 146.43 7.20 Competitive ASDA
DL1 9 146.57 13.00 Competitive SAINSBURY'S
TA1 9 146.66 17.00 Competitive SAINSBURY'S
PR2 9 146.79 14.00 Competitive ASDA
BT32 9 148.12 5.00 Competitive TESCO

Market Regime Breakdown

Regime Sectors Share (%)
Mixed 520 40.6
Supermarket Dominated 461 36.0
Fragmented 113 8.8
Competitive 99 7.7
Local Monopoly 89 6.9

Top Anomalies

Station Brand Station Type Postcode E10 (ppl) Diesel (ppl) Change Probability Anomaly Score Anomaly Level Reason
SAINSBURYS KELSO SAINSBURY'S Supermarket TD5 8DW 134.90 162.90 0.856 85.0 High stale update timestamp, large local competitor gap, extreme price quantile, brand diesel spread outlier
ASDA CHERWELL VALLEY EXPRESS PETROL ESSO Non-supermarket OX27 7RD 181.90 193.90 0.619 85.0 High stale update timestamp, large local competitor gap, extreme price quantile, brand diesel spread outlier
ASDA TAMWORTH EXPRESS PETROL ESSO Non-supermarket B77 5PS 181.90 193.90 0.605 85.0 High stale update timestamp, large local competitor gap, extreme price quantile, brand diesel spread outlier
R & T Maybury hill Ltd TEXACO Non-supermarket GU22 8AA 127.90 138.90 0.122 85.0 High stale update timestamp, large local competitor gap, extreme price quantile, brand diesel spread outlier
Barnhills of Broxton GULF Non-supermarket CH3 9JR 130.90 138.90 0.064 85.0 High stale update timestamp, large local competitor gap, extreme price quantile, brand diesel spread outlier
Robinhood Service Station GULF Non-supermarket PE15 9PZ 127.90 137.90 0.059 85.0 High stale update timestamp, large local competitor gap, extreme price quantile, brand diesel spread outlier
Sandybank Garage TEXACO Non-supermarket BB4 7JE 124.90 134.90 0.043 85.0 High stale update timestamp, large local competitor gap, extreme price quantile, brand diesel spread outlier
MARYVALE SERVICE STATION GULF Non-supermarket B30 2HJ 127.70 135.90 0.041 85.0 High stale update timestamp, large local competitor gap, extreme price quantile, brand diesel spread outlier
SHELL BEACONSFIELD SHELL Non-supermarket HP9 2SE 175.90 189.90 0.866 70.0 Medium stale update timestamp, large local competitor gap, brand diesel spread outlier
Cairn Lodge Services SHELL Non-supermarket ML11 0RJ 178.90 191.90 0.840 70.0 Medium stale update timestamp, large local competitor gap, brand diesel spread outlier

Highest Predicted Price-Change Probability

Station Brand Station Type Postcode E10 (ppl) Change Probability Upward Direction (p_up) Probability Interval Fill Recommendation Risk Rating Rise Risk Score Pence to Fill Alert Expected Days to Change Staleness (days)
SAINSBURYS HANKRIDGE FARM SAINSBURY'S Supermarket TA1 2LR 140.90 0.989 0.041 0.974 - 0.989 Monitor Low 0.040 8.00 1.6 90.0
SAINSBURYS MATLOCK SAINSBURY'S Supermarket DE4 3SP 138.90 0.984 0.044 0.958 - 0.981 Monitor Low 0.043 8.00 1.7 90.0
SAINSBURYS APSLEY MILL SAINSBURY'S Supermarket HP3 9QZ 138.90 0.983 0.044 0.958 - 0.985 Monitor Low 0.043 8.00 1.7 90.0
SAINSBURYS COLERAINE SAINSBURY'S Supermarket BT51 3QQ 137.90 0.980 0.045 0.960 - 0.987 Monitor Low 0.044 8.00 1.8 90.0
SAINSBURYS SUNDERLAND SAINSBURY'S Supermarket SR3 1PD 140.90 0.978 0.041 0.947 - 0.974 Monitor Low 0.040 8.00 1.8 90.0
SAINSBURYS EDINBURGH LONGSTONE SAINSBURY'S Supermarket EH14 2ER 137.90 0.977 0.045 0.966 - 0.981 Monitor Low 0.044 7.20 1.8 90.0
SAINSBURYS HELSTON SAINSBURY'S Supermarket TR13 8BN 139.90 0.977 0.042 0.955 - 0.980 Monitor Low 0.041 7.25 1.8 90.0
SAINSBURYS BRADFORD SAINSBURY'S Supermarket BD10 0QF 138.90 0.974 0.044 0.965 - 0.980 Monitor Low 0.043 6.92 1.9 90.0
SAINSBURYS LEEK SAINSBURY'S Supermarket ST13 8YG 139.90 0.974 0.042 0.952 - 0.976 Monitor Low 0.041 7.75 1.9 90.0
SAINSBURYS MURRAYFIELD SAINSBURY'S Supermarket EH11 2QW 137.90 0.972 0.045 0.961 - 0.978 Monitor Low 0.044 8.00 2.0 90.0
SAINSBURYS DUNGANNON SAINSBURY'S Supermarket BT71 4NA 137.90 0.972 0.045 0.957 - 0.976 Monitor Low 0.044 8.00 2.0 90.0
SAINSBURYS RAWDON SAINSBURY'S Supermarket LS19 7BZ 137.90 0.970 0.045 0.942 - 0.969 Monitor Low 0.044 8.00 2.0 90.0
SAINSBURYS ARNOLD SAINSBURY'S Supermarket NG5 6BN 138.90 0.970 0.044 0.957 - 0.979 Monitor Low 0.043 8.00 2.0 90.0
SAINSBURYS KETTERING SAINSBURY'S Supermarket NN16 8JY 137.90 0.968 0.045 0.943 - 0.977 Monitor Low 0.044 6.72 2.0 90.0
SAINSBURYS LEAMINGTON SAINSBURY'S Supermarket CV34 6RH 141.90 0.967 0.039 0.950 - 0.970 Monitor Low 0.038 8.00 2.0 90.0

Preemptive Fill Opportunities

Station Brand Station Type Postcode E10 (ppl) Fill Alert Price (ppl) Pence to Fill Alert Risk Rating Rise Risk Score Upward Direction (p_up) Expected Days to Change Fill Recommendation
REDCAR SUPERSTORE - PETROL FILLING STATION TESCO Supermarket TS10 2AA 143.90 146.65 2.75 High 0.695 0.903 4.8 Fill now
WINDLE ISLAND EXPRESS TESCO Supermarket WA10 6QY 142.90 143.90 1.00 High 0.641 0.931 6.0 Fill now
HAYDOCK CHURCH RD SUPERSTORE - PETROL FILLING STATION TESCO Supermarket WA11 0GT 142.90 143.90 1.00 High 0.577 0.933 7.3 Fill now
DUDLEY EXTRA - PETROL FILLING STATION TESCO Supermarket DY1 4RP 144.90 146.65 1.75 High 0.540 0.773 5.8 Fill now
WHITSTABLE EXTRA - PETROL FILLING STATION TESCO Supermarket CT5 3EE 143.90 146.90 3.00 High 0.523 0.802 6.6 Fill now
CONSETT GENESIS EXTRA - PETROL FILLING STATION TESCO Supermarket DH8 5XP 145.90 148.23 2.33 High 0.523 0.831 7.0 Fill now
BASILDON PITSEA EXTRA - PETROL FILLING STATION TESCO Supermarket SS13 3JU 143.90 145.32 1.42 High 0.520 0.804 6.7 Fill now
ABERDARE SUPERSTORE - PETROL FILLING STATION TESCO Supermarket CF44 8DL 145.90 147.40 1.50 High 0.493 0.824 7.7 Fill now
Crowborough Service Station CROWBOROUGH SERVICE STATION Non-supermarket TN6 2SP 146.90 148.15 1.25 High 0.492 0.831 7.8 Fill now
SILVERBURN EXTRA - PETROL FILLING STATION TESCO Supermarket G53 6AG 143.90 145.48 1.58 High 0.477 0.849 8.5 Fill now
BELLSHILL EXTRA - PETROL FILLING STATION TESCO Supermarket ML4 1EN 145.90 148.75 2.85 High 0.469 0.831 8.4 Fill now
YARDLEY EXTRA - PETROL FILLING STATION TESCO Supermarket B26 1AD 143.90 146.75 2.85 High 0.464 0.903 9.7 Fill now
GREENOCK EXTRA - PETROL FILLING STATION TESCO Supermarket PA15 1LE 145.90 148.15 2.25 High 0.462 0.803 8.2 Fill now
COMPTON ESSO EXPRESS ESSO Non-supermarket PL3 5JU 145.90 148.90 3.00 High 0.459 0.923 10.2 Fill now
MELTON MOWBRAY SUPERSTORE - PETROL FILLING STATION TESCO Supermarket LE13 1SQ 145.90 148.40 2.50 High 0.454 0.830 8.8 Fill now

Model Drivers

feature importance importance_std importance_lower importance_upper stability
diesel 0.128710 0.007123 0.114860 0.142929 18.068995
e10 0.100503 0.005545 0.091216 0.111815 18.126009
diesel_premium 0.096218 0.006980 0.085129 0.109782 13.784943
diesel_petrol_ratio 0.096027 0.006286 0.084719 0.107337 15.276370
premium_spread 0.081717 0.003772 0.074499 0.089379 21.663456
fuel_price_std 0.080488 0.004242 0.074248 0.088612 18.972515
e5 0.078227 0.003507 0.071345 0.085857 22.303100
brand_encoded 0.068623 0.002863 0.063810 0.074841 23.969779
price_vs_competitor_avg 0.054480 0.001792 0.051790 0.058394 30.401038
nearest_competitor_distance_km 0.045602 0.001553 0.043105 0.048842 29.368081
price_vs_competitor_min 0.043226 0.001745 0.039971 0.046175 24.770892
regime_price_position 0.027190 0.002466 0.022248 0.031837 11.027925
competition_intensity 0.025329 0.000962 0.023381 0.027252 26.326095
is_supermarket 0.020446 0.002143 0.016671 0.024916 9.541579
is_premium 0.013273 0.001091 0.011690 0.015119 12.161991

Downloads

Method and Assurance

Transparent uncertainty

Each probability includes lower, median, and upper bounds to support risk-aware decisions.

Deterministic execution

The pipeline uses fixed seeds and consistent transforms for repeatable outputs on the same data snapshot.

Operational safeguards

High-anomaly and diesel-below-petrol rows are separated for validation-first workflows.

Known limitation

The probability score is learned from observed forward price-change labels and should still be used with policy thresholds and human review.

Technical Appendix

Walk-Forward Fold Metrics

fold_1: train_rows=618 validation_rows=2907 roc_auc=0.7570 brier=0.1850
fold_2: train_rows=848 validation_rows=2907 roc_auc=0.6990 brier=0.2237
fold_3: train_rows=1145 validation_rows=2907 roc_auc=0.7218 brier=0.2224

Summary Snapshot

Fuel Detective Summary
================================================================================
Generated UTC: 2026-03-27T16:08:48.893257+00:00
Data source: UK fuel station full-history dataset
Stations analyzed: 7,347
Unique station IDs: 7,347
Duplicate station rows in output: 0
Median E10 (ppl): 149.900
Median diesel (ppl): 179.900
Average staleness (days): 78.887
Median expected days to change: 14.95
High change probability rows (>0.70): 1,017
High anomaly rows: 8
Diesel cheaper than petrol rows: 7
Stale rows (>60 days): 6,399
Fill-now opportunities: 16
Fill-soon opportunities: 128

Market intelligence
--------------------------------------------------------------------------------
Brand stats rows: 37
Postcode sector stats rows: 1,282
Market regime rows: 1,282
Market regime breakdown:
Mixed: 520 (40.6%)
Supermarket Dominated: 461 (36.0%)
Fragmented: 113 (8.8%)
Competitive: 99 (7.7%)
Local Monopoly: 89 (6.9%)
Cheapest positioning brand: COSTCO WHOLESALE (score=-41.408)
Most expensive positioning brand: WELCOME BREAK (score=60.500)
Largest postcode sector sample: CR0 (stations=14)

Model diagnostics
--------------------------------------------------------------------------------
Target mode: price_change
Target horizon (days): 7.0
Target positive rate: 0.6482
Class balance: class_0=5113, class_1=9422
Training rows: 1,145
Validation rows: 2,907
Validation ROC-AUC (last fold): 0.7218
Walk-forward ROC-AUC mean: 0.7259
Walk-forward ROC-AUC std: 0.0239
Validation Brier score (last fold): 0.2224
Walk-forward Brier mean: 0.2103
Walk-forward Brier std: 0.0180

Walk-forward fold metrics
--------------------------------------------------------------------------------
fold_1: train_rows=618 validation_rows=2907 roc_auc=0.7570 brier=0.1850
fold_2: train_rows=848 validation_rows=2907 roc_auc=0.6990 brier=0.2237
fold_3: train_rows=1145 validation_rows=2907 roc_auc=0.7218 brier=0.2224

Classification report
--------------------------------------------------------------------------------
                      precision    recall  f1-score   support

        stable_state      0.770     0.505     0.610      1518
price_change_next_7d      0.607     0.835     0.703      1389

            accuracy                          0.663      2907
           macro avg      0.688     0.670     0.656      2907
        weighted avg      0.692     0.663     0.654      2907

Top feature importance
--------------------------------------------------------------------------------
diesel: 0.128710
e10: 0.100503
diesel_premium: 0.096218
diesel_petrol_ratio: 0.096027
premium_spread: 0.081717
fuel_price_std: 0.080488
e5: 0.078227
brand_encoded: 0.068623
price_vs_competitor_avg: 0.054480
nearest_competitor_distance_km: 0.045602