labs.gasbu.app

AI that knows when fuel prices move — before they do.

0+stations tracked across Europe
0.0Mmarket prices recorded since 2024
0.00AUC of the per-station model (Spain)
0 %of live 'fill up today' calls came true (Spain, Sep 2026)
Explore the research

GasBu Labs · AI research

We predict fuel prices before they move

GasBu watches more than 73,000 gas stations across Europe in real time. Right now our models focus on three markets — Spain, France and Italy — turning that firehose of 21 million recorded prices into the one answer that matters: fill up today, or wait.

Wholesale diesel (ULSD) EUR/lBrent crude EUR/lSpain diesel (net of tax)
0.240.550.861.181.4911/242/255/258/2511/252/265/268/26
 

Real data: Brent crude vs. the Spanish national diesel average, October 2024 – today. The shaded band is the Strait of Hormuz crisis of 2026. Since March, wholesale diesel (green) has pulled away from crude — that gap is what v0.0.2 learned to read.

EXP-01The FuelCast model

Will this station raise its price within 3 days?

For every station, every day, a gradient-boosted model reads 23 signals — the station's own pricing rhythm, what its neighbours are doing, the momentum of Brent crude and wholesale diesel — and outputs one probability. When we act only on the top 10 % most confident calls, they come true in 74–95 % of cases. Random guessing would get 25–59 %.

Spain · Jan–Feb 2026
86,0 %
Spain · May–Jun 2026
73,8 %
Spain · Jul–Aug 2026
95,0 %
France · Jul–Aug 2026
87,7 %
Italy · Jul–Aug 2026
94,7 %

Each bar: how often stations flagged by the model actually raised their price (walk-forward test, the model never sees its test period). The tick is the base rate — what blind guessing achieves.

EXP-02A natural experiment

Then the Strait of Hormuz closed

On 2 March 2026 the world's most important oil chokepoint shut down and Brent jumped 65 % in a month. Governments scrambled — and every country reacted differently. For a prediction model this was a gift: a live stress test you could never design.

2 Mar 2026Hormuz closes

Brent rockets from $71 to a peak near $118. Pump prices follow within days — we measured the pass-through at ~0.90 and a 3:1 'rockets & feathers' asymmetry: price rises travel three times more willingly than drops.

19–22 Mar 2026Spain and Italy cut taxes overnight

Spain drops fuel VAT to 10 % and excise to the EU minimum (−23.5 c/l overnight — our data matched the legal theory to within 0.3 cents). Italy cuts excise by 20 c/l. France does nothing — a clean control group.

May – Sep 2026The quiet phase-out

Both countries unwind their cuts in steps too small to spot by eye. We reconstructed the full tax calendar from legislation, subtracted VAT and excise from every price, and train all models on the clean, tax-free series.

Italy pump pricenet of taxexcise cut windows
0.560.991.431.862.3012/252/264/266/268/26+4.05 c−20 cend
 

Italy, diesel: three tax steps in one year (excise realignment in January, a 20-cent crisis cut in March, phased out by June). The dashed net-of-tax series — what our models actually see — has no artificial jumps left.

EXP-03Method

Honest numbers or nothing

01Walk-forward only

Models are always tested on days they have never seen, exactly as they would run in production. No random splits, no leakage, no grading your own homework.

02Taxes removed at the source

Every price is stripped of VAT and excise using the verified legislative calendar of each country. Models learn markets, not decrees.

03Baselines must lose

Every model has to beat both a 'nothing changes' forecast and the simple heuristic already running in the app. When it doesn't win, we say so — and ship the simple one.

EXP-04National forecasts

Where a 3-day forecast lands within a cent

Alongside the per-station model, an asymmetric error-correction model tracks each national average. On a 3-day horizon its mean error is 0.77 cents per litre in Spain (driven by wholesale diesel since v0.0.2) — and it calls the direction of the market correctly almost 9 times out of 10.

Market · horizonModel errorNaive forecastDirection hit rate
Spain · 3 days0.77 c/l1.04 c/l86 %
France · 3 days1.19 c/l1.81 c/l77 %
Italy · 14 days5.63 c/l7.13 c/l77 %

EXP-05Model v0.0.2 · September 2026

Crude oil stopped being the story

Since Hormuz, refinery margins on diesel have tripled: crude is up 50 %, wholesale diesel 100 %. Brent explained only half of what pumps did. Version 0.0.2 changes what the models look at, how a recommendation is made — and puts the whole thing on a nightly schedule that grades itself.

01Wholesale diesel, not crude

The national model now follows wholesale diesel (NY Harbor ULSD) instead of Brent. Its 3-day error in Spain fell from 0.98 to 0.77 c/l and direction accuracy rose from 65 to 86 %; in France from 65 to 77 %. Wholesale diesel now feeds the station model too.

02The market picks the day, the model picks the station

The station model ranks stations well, but its probabilities drift by up to 30 points from one day to the next — and textbook calibration made it worse. What works: the national model decides whether today is a 'prices go up' day, the station model decides which stations. Live 'fill up today' calls went from 77 % to 92 % correct.

03Running every night

Since 10 September 2026 the model scores 40,000 stations in Spain, France and Italy every night. Four days later every call is checked against what the pump actually did — precision, savings per litre, direction. The results live in the GasBu admin, not in a slide deck.

We also testedResult
Weather · 797 met stations × 11,700 pumpsno effect — upper bound hundredths of a cent
Brent futures curve · 12-month spreadwithin noise
Implied oil volatility (OVX)within noise
Isotonic probability calibrationworse — learns one regime, applied to another

One lesson cost three days: on 1 September Spain's safeguard clause doubled the diesel tax cut, and the model recommended filling up right before a legislated 12 c/l drop. Since then a known tax change overrides the model. The whitepaper below describes v0.0.1; this section is what changed.

EXP-06Model v0.0.3 · September 2026

Now it also says: wait

Until now the model only spoke when prices were about to rise. Version 0.0.3 adds the mirror image: a second station model trained on "will this station cut its price within 3 days?", gated by the national model expecting a drop. Same 23 signals, same walk-forward test — and the quiet days are no longer quiet.

01A second model, the same eyes

Trained on the same 6.5 million station-days in Spain, only with the target flipped. It ranks stations as well as the 'up' model does: AUC 0.80–0.82 in Spain, 0.78–0.81 in France — no new features, no tuning.

02The gate flips too

A 'wait' call is made only on days the national model expects the market to fall. On those days the top 10 % of 'will cut' stations really cut in 79–94 % of cases in Spain and 74–88 % in France. On days the market rises, the same list would be right just 37–47 % of the time — which is exactly why the gate exists.

0325 August: the day v0.0.2 was silent

Wholesale diesel had turned, the national model expected −1.2 c/l, and v0.0.2 had nothing to say. Replayed with v0.0.3: 1,048 stations flagged 'wait', 94 % of them cut within three days, and waiting saved 1.43 c/l on average.

Market · foldStations that cut'Wait' calls correctRank quality (AUC)
Spain · Jan–Feb 202630 %79 %0.82
Spain · May–Jun 202668 %94 %0.80
Spain · Jul–Aug 202652 %92 %0.82
France · May–Jun 202658 %88 %0.78
France · Jul–Aug 202644 %74 %0.81
Italy · Jun–Aug 202616–59 %27–73 %0.74–0.77

Walk-forward, on days when the national model expected a drop. Italy stays observation-only, as it does for price rises. The old worry that pumps cut prices slowly — 'rockets and feathers' — did not hold the model back: when the market turns down, 44–68 % of stations cut within three days, and the model picks them out. Both directions now run nightly and are graded four days later.

This research ships in the GasBu app

Since 10 September 2026 the model runs every night for 40,000 stations, and since 12 September it calls both directions — 'fill up today' and 'wait'. Every call is checked against what the pump actually did four days later. Next up in the app: the push notification.

Get GasBu