Italian public spending, with its limits attached.
Trasparenza.ai aggregates Italian public spending data, free for anyone to read. To cite a result, include the page, primary source, coverage and access date; for reuse, check the terms of the original material and our contributions. 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 attribuiti al Comune come attuatore dai collegamenti in archivio, "localizzati" quelli attribuiti al territorio, anche di altri enti. I collegamenti hanno limiti di verifica. Sommare le viste 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 in a catalogue with 7,894 pages marked active
Four signal types: a high share of direct awards, contracts on the same date, recurring amounts or amounts near fixed numerical references, and concentration on a single supplier. These rules do not select each contract’s applicable legal regime or estimate the probability of an offence. Possible explanations and the exact rules 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 attribuiti al Comune come attuatore dai collegamenti in archivio, "localizzati" quelli attribuiti al territorio, anche di altri enti. I collegamenti hanno limiti di verifica. Sommare le viste conterebbe due volte le stesse opere. 7,707 municipalities are the implementing body of at least one project.
Mayors' indemnities, estimates by population bracket
The site estimates indemnities by population bracket using a formula based on the Italian Budget Law 2022 (L. 234/2021). These figures do not establish the amount actually paid or the legally applicable amount for an individual mayor. The population used for the bracket is separate from the ISTAT 2024 resident series and must be checked against the municipality's own act. In the archive, 7,832 of 7,894 pages have a mayor from the DAIT registry and 62 do not.
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 catalogue pages marked active, no runtime
Tech behind the scenes: a single developer in Goiânia, Brazil, building a statically generated site over scheduled database jobs, with a documented SQL formula for an experimental archive index. Reproducing a historical result also requires the input data and components from the same run; a versioned package is not yet published. The site runs on a handful of low-cost services. What it does not have is as documented as what it does.
🔍 Sample pages (Italian)
The catalogue contains 7,894 municipal pages marked active, written in Italian, the language of the source data. This count does not establish complete coverage of current municipalities. 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: our original contributions are offered under CC-BY 4.0 to the extent that we can grant those rights. Cite Trasparenza.ai and the primary source. Third-party material retains its own terms, including CC BY-NC 4.0 for data processed by OpenSanctions. Check the terms for the material you reuse. 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. [Page or dataset title]. [Exact page or query URL]. Accessed [YYYY-MM-DD]. Primary source: [organisation and dataset]. Coverage: [stated period].
- 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
- Include the version or extraction date when stated. Keep the file and query you used: the live database changes and does not yet offer immutable public snapshots.
- CC-BY 4.0 applies to original contributions for which Trasparenza.ai can grant rights. Third-party material retains its own terms, including CC BY-NC 4.0 for data processed by OpenSanctions.
Before citing a publication, check the corrections register for documented withdrawals (in Italian).