Methodology: prices, routes and savings
We compare official per-station prices (France, Spain, Portugal) and route every detour by road on OpenStreetMap; the saving is the price gap on 50 litres minus the fuel burnt on the detour (6.5 L/100 km).
Prices
France: the official feed “Prix des carburants en France — flux instantané v2” (Ministry of the Economy), each station's own prices; we use the latest price if it is at most 7 days old. French petrol 95 is E10, or SP95 where E10 is missing. Spain: MITECO data (Gasóleo A, Gasolina 95 E5) for every public station. Portugal: DGEG (gasóleo simples, gasolina simples 95); stations usually change prices on Mondays. French and Spanish prices are reloaded daily, Portuguese prices weekly.
Places and routes
Every French commune whose town hall is within 50 km of Spain (straight line) and every Portuguese concelho whose seat is within 50 km. Distances and times are routed by road, there and back, with the Valhalla engine on OpenStreetMap data (fastest car route).
Driving times
Valhalla's car times assume free-flowing traffic and come out about a fifth shorter than real driving times. Every time on this site — and the one-hour and 45-minute limits in the verdict — is therefore Valhalla's time multiplied by 1.275. The factor was fitted on Germany's Deutschlandatlas (the official car driving time from each municipality to the nearest hospital with an emergency department) for 8,566 municipalities and checked on 2,162 others left out of the fit: median 1.4% below the atlas, 82% of municipalities within ±25%, mean gap 2.5 minutes (without the correction: 23% below, 56%, 4.3 minutes). France, Spain and Portugal have no such atlas, so the transfer was checked against two other route planners, OSRM and OpenRouteService, on 50 routes in France and Spain. Before the correction Valhalla gave 0.82 of OSRM's time and 0.78 of OpenRouteService's; after it, 1.04 and 1.00 — the same picture as in Germany, on short and long trips alike. Distances are not changed.
How the saving is calculated
A 50-litre fill-up, 6.5 L/100 km, a round trip by road from the town hall (fastest route, OpenStreetMap). The detour is the extra distance compared with the cheapest station within 10 km; its fuel is costed at the local price. Wear, time and tolls are not counted. French E10 is compared with Spanish unleaded 95 E5. Saving at a Spanish station = (local price − Spanish price) × 50 L − detour × 6.5 L/100 km × local price. Only stations within an hour's drive (one way) count. Verdict: “worth the drive” from €10 when the round-trip detour takes 45 min at most (longer: “only if you're passing”, and the best station within 45 min is named too), “small gain” from €3 to €10, otherwise “not worth it”; “too far” when no Spanish station is within an hour.
French motorway services
Stations flagged “motorway” in the French feed that sit on a real OpenStreetMap motorway (within 250 m, or 800 m when the address names the services or the motorway). A 50-litre fill-up, 6.5 L/100 km. The detour is routed by road: exit, station, back onto the same motorway in the same direction, compared with staying on it (OpenStreetMap). Detour fuel is costed at the services price. Tolls are not counted: on closed-ticket motorways leaving and re-entering often costs about the same, but not always, and open toll tables do not cover every network.
France–Germany border
Every French commune whose town hall is within 50 km of Germany (straight line; 1,797 with a result) is compared with German stations under the same rules as for Spain: local station within 10 km, German stations within an hour's drive, saving on 50 litres and verdict. German prices: each station reports them to the Markttransparenzstelle für Kraftstoffe (MTS-K), part of Germany's Federal Cartel Office; we take them from Tankerkönig's free API (licence CC BY 4.0). That API only returns stations within a circle of at most 25 km, so we took a single snapshot of a 35 km strip on the German side of the border with 21 circles (1,065 stations, 1,049 of them with a price) on 7 November 2026, 16:33–16:57 (CET), at no more than one request per minute as the API terms ask. French prices on these pages come from the official feed taken the same day. Petrol is compared as E10 on both sides (German Super E5 where a station has no E10). German prices change several times a day, so the result holds for the hour of the snapshot. Luxembourg and Switzerland are not compared.
Limits
Andorra is not covered (no open per-station prices). Waits at police checks on the border are not counted. Opening hours are not checked. Portuguese prices come from DGEG, whose licence is not published; we credit the source and do not redistribute them as files.
Verification (2026-11-05)
- Random pages checked: 20.
- Prices matching the source API: 38 / 78.
- Distances vs OpenRouteService (median difference): 1.1% (20).
- Times vs OpenRouteService (median ratio, trip to the best station): 0.97 (without the correction 0.76), 14.
Sources and licences
| Source | Publisher | Data date | Licence |
|---|---|---|---|
| Fuel prices in France — instant feed v2 Prices reported by each station; we keep prices at most 7 days old. pop = A marks motorway stations. | French Ministry of the Economy (data.economie.gouv.fr) | 3 November 2026 | Licence Ouverte 2.0 French station prices: Ministry of the Economy, “Prix des carburants en France — flux instantané v2”, Licence Ouverte 2.0. |
| Fuel prices at Spanish service stations (Geoportal Gasolineras) Daily snapshot of all public stations (Gasóleo A, Gasolina 95 E5). | Ministry for the Ecological Transition (MITECO), Spain | 3 November 2026 | Reuse permitted with attribution (MITECO legal notice) Spanish station prices: Ministerio para la Transición Ecológica y el Reto Demográfico (MITECO), Geoportal Gasolineras. |
| Fuel prices in Portugal (Preços dos combustíveis online) Gasóleo simples and gasolina simples 95; stations usually change prices on Mondays. | Directorate-General for Energy and Geology (DGEG), Portugal | 3 November 2026 | Licence not published — source credited Portuguese station prices: Direção-Geral de Energia e Geologia (DGEG), precoscombustiveis.dgeg.gov.pt. |
| Fuel prices in Germany — Tankerkönig free API (MTS-K data) One snapshot of the stations in a 35 km strip along the France–Germany border (radius search, at most one request per minute); Super E10 (else E5) and diesel. | Tankerkönig (tankerkoenig.de); data: Markttransparenzstelle für Kraftstoffe (MTS-K), Bundeskartellamt | 7 November 2026 | CC BY 4.0 German station prices: Tankerkönig (www.tankerkoenig.de), data of the Markttransparenzstelle für Kraftstoffe (MTS-K), CC BY 4.0. |
| OpenStreetMap Europe extract by Geofabrik; derived road distances are a Produced Work. | OpenStreetMap contributors | — | ODbL 1.0 Road distances, times and motorways: © OpenStreetMap contributors, ODbL; routed with Valhalla. |
| French communes: API Découpage administratif and INSEE COG | Etalab / INSEE | — | Licence Ouverte 2.0 Communes, town-hall coordinates and population: geo.api.gouv.fr and INSEE, Licence Ouverte 2.0. |
| GeoNames gazetteer (Portugal) | GeoNames | — | CC BY 4.0 Concelhos and their seats: GeoNames (geonames.org), CC BY 4.0. |
| GISCO countries 2024 | Eurostat | — | Eurostat/GISCO terms, © EuroGeographics Distance to the border: © EuroGeographics for the administrative boundaries. |