Catalog ›Public data ›Mobility
Fuel — the cheapest fill-up near you
The cheapest station near you, with the official prices Italy's Ministry of Enterprise collects from every fuel station and republishes every morning. Pick your fuel and province: see where it costs less, on the map and in a table.
What it records
- Province code
How it works
This is a Reactive app: a plain text document that your browser turns into a working app — forms, live data, tables, statistics and even charts, with nothing to install or configure.
- Use it right away. Hit “Use this app”: it opens right in your browser, ready to go, with data saved only on your device.
- Your data stays yours. Everything is stored locally on your device, kept separate for each app: no account, no server, nothing to set up.
- Make it your own. The text below is the entire app: copy it, tweak fields, views and words, and your changes become interactive instantly.
- Share it as a file. An app is a simple file: save it, export it or share it with a link; and with encrypted collaboration several people edit the same data in real time.
The app’s source
# ⛽ Fuel
The cheapest station near you, with the official prices Italy's Ministry of
Enterprise collects from every fuel station and republishes every morning.
Pick your fuel and province: see where it costs less, on the map and in a table.
## What you need
Choose the fuel type:
::radio{id="carb-benzina" name="carburante" value="Benzina" label="Petrol" checked="true"}
::radio{id="carb-gasolio" name="carburante" value="Gasolio" label="Diesel"}
::radio{id="carb-gpl" name="carburante" value="GPL" label="LPG"}
::radio{id="carb-metano" name="carburante" value="Metano" label="Methane"}
And your province (two-letter code, e.g. `MI`, `TO`, `NA`):
::input[prov]{value="MI" placeholder="Province code"}
## The cheapest
The ten stations where **self-service** :value[c]{ref="#carburante"} costs least in
province :value[p]{ref="#prov"}. The price is the latest reported by each operator.
::od-query{into="distributori" sql="SELECT i.bandiera AS brand, i.comune AS town, i.indirizzo AS address, p.prezzo AS price, i.latitudine AS latitudine, i.longitudine AS longitudine FROM carb_prezzi p JOIN carb_impianti i USING (id_impianto) WHERE p.carburante = '{#carburante}' AND i.provincia = upper(trim('{#prov}')) AND p.self AND p.prezzo > 0 ORDER BY p.prezzo LIMIT 10" limit="10"}
:::table{path="distributori" headers="Brand,Town,Address,€/litre" search="false"}
{brand} | {town} | {address} | {price}
:::
## On the map
Each pin is a station: tap for brand and price. The map centres itself on the
results.
:::map{path="distributori" lat="latitudine" lon="longitudine" height="24rem"}
**{brand}** · {price} €/litre
{town} — {address}
:::
---
Prices are the open data of the **fuel price observatory** run by Italy's Ministry
of Enterprise and Made in Italy (IODL 2.0 licence), updated daily. It is a
snapshot, not a history: what you see is the latest price each operator reported.
None of your data leaves the device.