Italian public spending, with its limits attached.
Trasparenza.ai aggregates Italian public spending data, free for anyone to read and to reuse. Below: the numbers with their coverage dates, the caveats you should print alongside them, story angles built only on measured data, and how to reach us.
📊 Key numbers
All measured in our database on 2 September 2026. Each one carries the date its data stops at, which is not the date we last ran the import.
Before adding anything up. 13.7% of the contracts are attributed to no municipality and 53.5% carry no supplier, so the municipal pages do not add up to the national total and any view of who gets paid covers less than half of the archive. On the PNRR: Due viste diverse, non sommabili: "gestiti" conta i progetti di cui il Comune e soggetto attuatore, "localizzati" i progetti di qualsiasi ente sul territorio. Sommarle conterebbe due volte le stesse opere.
🎯 Story angles
Five angles, each built only on figures we have measured and can show you the query for. None of them names a private company: with more than half of the contracts carrying no supplier, a ranking of named companies would say more about the gaps in the source than about the companies. Regional cuts on request.
206,306 statistical signals across 7,894 municipalities
Four detectors, and only four: a high share of direct awards, contracts bunched on the same date, recurring amounts or amounts just below a tender threshold, and concentration on a single supplier. A signal is a point to check, not an offence, and each has a lawful explanation as often as not. The full rules and thresholds are published on the methodology page.
Where the PNRR money sits, in two views that must never be added
€24.64 billion in projects municipalities run as implementing body, and €92.26 billion in projects located inside their territories, from the ReGiS extraction of 13 June 2026. Due viste diverse, non sommabili: "gestiti" conta i progetti di cui il Comune e soggetto attuatore, "localizzati" i progetti di qualsiasi ente sul territorio. Sommarle conterebbe due volte le stesse opere. 7,707 municipalities are the implementing body of at least one project.
Mayors' pay, computed by law rather than declared
The indemnity comes from the brackets in the Italian Budget Law 2022 (L. 234/2021), not from a self-declared figure: population tier, plus 25% for a regional capital and 12% for a provincial one. Two caveats we state ourselves: 7,832 of the 7,894 municipalities have a mayor in the DAIT registry and 62 do not, and the value shown is the full-time maximum, halved by law for a mayor who keeps their job.
The billion-euro typos inside the national contract database
149 contracts are registered above one billion euro and the single largest record is €22.4 billion, measured on 2 September 2026. Across the whole archive 516 contracts are flagged as implausible amounts, and they are still inside the euro totals published today, ours included. The story is the data quality of the national source, and how much any ranking built on those amounts can be trusted.
One person, 7,894 municipality pages, no runtime
Tech behind the scenes: a single developer in Goiânia, Brazil, building a statically generated site over scheduled database jobs, with an SQL scoring function anyone can recompute by hand, on a handful of low-cost services. What it does not have is as documented as what it does.
🔍 Sample pages (Italian)
Each of the 7,894 municipality pages is in Italian, the language of the source data. Browse a few:
💬 Pull quotes (founder)
Approved for direct quotation. Attribution: Gianluca Ferro, founder of Trasparenza.ai.
"Lo Stato sa tutto di te. Tu non sai quasi niente di lui. Trasparenza esiste sulla carta, non sullo schermo."
(English: The State knows everything about you. You know almost nothing about it. Transparency exists on paper, not on screen.)
"I dati esistono. Bastava metterli insieme."
(English: The data exists. Just had to put it together.)
📦 Data access (free)
There are three ways in, and one that does not exist yet: we do not publish a REST API of our own, and the endpoints this page used to list never returned data.
- Read the public tables directly via the Supabase PostgREST layer with the public anon key, read-only and with no signup. Working examples, table by table, are on the data access page (in Italian). Table and column names can change without notice, which is precisely why we do not call it an API.
- The two CSV files that exist: beni-confiscati.csv (assets seized and confiscated from organised crime, source ANBSC) and olimpiadi-milano-cortina.csv (contracts linked to the 2026 Games). Until 2 September 2026 this page promised more files than that; the ones that returned a 404 were removed rather than left pending.
- A custom cut on request: write to contato@trasparenza.ai for a regional or topical extract as CSV or JSON.
Licence: the data is CC-BY 4.0, free to reuse with attribution to Trasparenza.ai and to the primary source. The source code is not public: the repository is private, and while it stays private we do not call ourselves open source. The data is open, the code is not.
🧾 How to cite us
- Trasparenza.ai. (2026). [dataset title]. Retrieved from https://www.trasparenza.ai
- Always cite the primary source as well (ANAC, Italia Domani / ReGiS, ISTAT, ENTSO-E)
- Print the coverage date next to the figure: a recent import does not mean recent data
- The data is CC-BY 4.0, free for journalistic use with attribution