Following the public money: a citizen's toolkit for procurement

Published: 2026-06-20

The expanded public-procurement module — set against АОП/ЦАИС ЕОП, SIGMA and the international tools (opentender.eu, DOZORRO, OCDS). An explainable Corruption Risk Index, money-flow diagrams, a politician scanner, a per-oblast choropleth and a red-flag feed — with worked examples of what you can actually find (single bidding, concentration, MP- and official-connected firms).

Bulgaria signs tens of thousands of public-procurement contracts a year. The records are public — and almost unusable. They live as thousands of files on data.egov.bg and inside the ЦАИС ЕОП system, with no way to ask the questions that matter: Who keeps winning without competition? Which companies are tied to the people who run the state? Where does my município's money go?

The Public Procurement module answers those questions. It holds 301,012 contracts and amendments worth €80.0 billion, from 4,390 contracting authorities to 26,160 companies, covering 2011 through 2026 — and it layers an explainable risk score, money-flow diagrams, a person scanner, a geographic view, sector (CPV) breakdowns, a contracts browser with sector/procedure/value/EU-funding filters, and a red-flag feed on top. This piece sets it against what exists in Bulgaria and abroad, walks through each tool, and ends with what you can actually find with it.

1. The landscape: Bulgaria and abroad

In Bulgaria, the primary source is the Public Procurement Agency (АОП) and the ЦАИС ЕОП platform, republished as open data on data.egov.bg. It is comprehensive and authoritative — and raw: no analytics, no risk scoring, and crucially no link between a contract and the people behind the winning company. In June 2026 the Ministry of Innovation and Digital Transformation launched СИГМА (sigma.midt.bg), a government analytics layer over the same АОП data. It has a clean interface and ships a working browser of authorities, companies and contracts — with filters by sector (CPV), procedure type, year, value and EU funding, search by name, EIK or contract number, sector-level money-flow diagrams, and CSV download of any list (and JSON for a single contract) — from day one, a solid base to build on. The more ambitious features it announced (an AI assistant, a green/yellow/red risk index, red-flag signals and a beneficial-owner layer) are, for now, slated for a later stage.

Beyond the official registers, Bulgaria has accumulated civic and commercial efforts around procurement — from investigative journalism to business services:

PlatformWhat it isFocusStatus
BIRD / Bivolinvestigative journalism + searchPEPs, public spending, companies, procurement, EU funds — search by nameactive
IME — Open Public Procurementopen-data analysis + a dedicated site (oop.ime.bg)spending efficiency, indicatorsthe dedicated site is no longer maintained
Anti-Corruption Fundinvestigative NGOspecific procurement schemes — reports, not a databaseactive
BILIlegal-initiatives NGOintegrity, declarations, judicial transparency (not a procurement tool)active
aop-baza.bg, targove.infocommercial alert servicessubscription: filtered BG+EU notices, daily email (free trial)active · paid
ZOP Plusspecialist magazine + "ZOP+ Assistant"expert consulting, training, documentationactive · paid

Abroad, the reference standard is the Open Contracting Data Standard (OCDS), which makes procurement comparable across countries. The EU-wide opentender.eu project (DIGIWHIST) pioneered a quantitative Corruption Risk Index — the work of Mihály Fazekas and the Government Transparency Institute — built on objective red flags: single bidding, short tender windows, non-open procedures, supplier concentration. Ukraine pairs its ProZorro procurement system with the civil-society DOZORRO layer, which monitors risk and lets anyone follow a buyer or supplier. Commercial platforms (Spend Network and Tussell in the UK, GovSpend in the US) sell buyer/supplier dashboards and alerts; the US USAspending.gov offers a drill-down explorer with geographic maps.

Where this module fits: it borrows the international playbook — the explainable Fazekas-style risk index, the DOZORRO "follow an entity" idea, OCDS-grade structure — and adds the one thing none of the others localise: the political-accountability cross-join. Every contract is checked against the Bulgarian political class — MPs, ministers, agency heads, governors, mayors, deputy-mayors and councillors — via their declarations to the Audit Office and the Commerce Registry. The table below compares feature by feature.

FeatureАОП / ЦАИС ЕОПSIGMAopentender.euProZorro / DOZORRONaiasno
Coverageall PPA contracts2020–EU, incl. BGUkraineBG, 2011–2026
Open standard (OCDS)yesnoyesyesyes
Explainable risk indexnoannouncedyesyesyes
Single-bidder flagnopartialyesyesyes
Other red flagsnoannouncedyesyesyes
Money-flow diagramsnoyesnopartialyes
Filter by sector / value / procedurenoyesyesyesyes
Links to politicians / ownersnoannouncednopartialyes
Map by region / municipalitynonopartialyesyes
Search by person / companypartialyesyesyesyes
Follow / watchlistnononoyesyes
AI assistant (natural language)noannouncednopartialyes
Local-government procurementnopartialpartialyesyes
Accessfree · statefree · statefree · academicfree · state + civicfree · Bulgarian · independent

"Announced" means a feature stated on the roadmap but not yet shipped (as of June 2026).

A second group sits outside this comparison: commercial market-intelligence platforms and public-spending portals. They solve a different problem — helping vendors win customers, or making one government's spending visible — so they don't score corruption risk or link contracts to politicians:

PlatformWhat it isFor whom / focusAccess
Spend Networkglobal procurement database (160+ countries)suppliers & analystspaid
TussellUK contract & framework datasupplier market intelligencepaid
GovSpendUS procurement & spend dataselling to the public sectorpaid
USAspending.govofficial US federal spending portalgovernment-spending transparencyfree · state

2. The tools

An explainable risk index, not a black box

Every contract carries a Corruption Risk Index from 0 to 100 — the share of the applicable red-flag checks that fired, in the Fazekas/Government-Transparency-Institute tradition. It is deliberately transparent: the page shows which checks fired and how many were even applicable ("3 of 7 risk checks"), so you can judge it yourself rather than trust a colour.

A contract page with the explainable Corruption Risk Index meter and red-flag chips

See it live: an example contract →

The checks: a single bidder (read from the bid count the OCDS feed actually publishes, and suppressed in markets that are structurally single-bid so it doesn't cry wolf[^cpv]), a non-open procedure, a short tender window, an amendment that revises the original deal, a contractor on the АОП debarment register, a buyer whose spending is concentrated on one supplier, a contractor tied to an MP, and one tied to a non-MP public official.

Every contract, sortable and searchable

That same risk index sits next to every row of the full table too — 300,000+ contracts you can filter by sector, procedure, value and EU funding, sort on any column, and export. The flags show up without opening each contract one by one: sort by risk, or keep only the flagged rows. A summary line above the table tracks the current filter — count, total value, share EU-funded and share flagged.

The Contracts table with its filters, summary line and the risk index next to each row

See it live: all contracts →

Scope switches as it does everywhere in the module — this parliament (only the contracts from the selected National Assembly's term) or all years. In "all years" the text search spans the whole period rather than the selected year alone: type a company name and you get its contracts from 2011 to today. Click the subject to open the contract itself; the star saves it to your watchlist.

Where the money flows

A buyer's spending fans out to its suppliers as a Sankey diagram — on every authority page and on the dedicated money-flow view, with companies tied to a parliamentarian highlighted. A company (supplier) page turns the question around: because all its income funnels to a single recipient, it shows instead how dependent the firm is on one buyer — the top buyer's share, the top-three share and how many buyers it has in all.

The buyer-dependency lens on a company page

See it live: a company page →

A treemap lays out the same revenue-by-buyer composition by size, so concentration is visible at a glance.

A treemap of a company's procurement revenue by buyer

See it live: a company page →

The people behind the companies

The module surfaces, on each company page, the politicians tied to it — and not only MPs. Mayors, deputy-mayors, councillors, ministers, governors and agency heads are matched to the companies they declared a stake in or appear as an officer of in the Commerce Registry.

The "connected officials" section on a company page

See it live: a company page →

Or start from the person: the public money scanner lets you type a politician and see the procurement reachable through their connected companies.

The public money scanner, searching a politician by procurement ties

See it live: the public money scanner →

A link here is a declared tie from a public register, not an accusation. Bulgarian law lets officials own shares; it forbids sitting MPs from management roles but not past business or ownership. The tool surfaces the relationship and cites the source — the judgement is yours.

Your own município

Local procurement surfaces on every place dashboard: what the município, its schools and its hospitals spent, and on whom.

The local-procurement tile on a place dashboard

See it live: the Plovdiv dashboard →

And the maps show every oblast three ways at once — total, per capita (so they don't just redraw the population map) and average contract value. Click any oblast on any of the maps to filter the settlement table beneath them.

Choropleth maps of procurement by oblast — total, per capita and average contract value

See it live: the oblast maps →

The red-flag feed

The red-flag feed collects the signals worth a second look in one place — buyers concentrated on a single supplier, active debarments, and the largest politically-connected contractors. And, DOZORRO-style, you can follow any buyer, supplier or politician and keep them on your own watchlist.

The procurement red-flag feed

See it live: the red-flag feed →

3. What you can find

Single-supplier concentration. Across the corpus, 44% of contracts whose bid count is published had a single bidder — Bulgaria's well-documented competition problem. The feed surfaces the extreme cases: buyers that have sent 100% of their procurement to one company — often small schools and community centres. And sometimes the scale surprises: a secondary school in the village of Ribnovo placed a single €2.5 million contract with one Blagoevgrad firm — roughly 95% of everything it has ever awarded. Even if each award was lawful, that degree of concentration warrants closer scrutiny.

The political class as contractors. The module records 61 MPs tied to 64 companies that have won contracts worth €1.4 billion over the full period, and 82 non-MP officials tied to 81 contractor companies. The largest ties run through state-owned enterprises: an MP registered as a director of the state road-builder Avtomagistrali — €602 million in contracts; another MP at Bulgarian Posts at €182 million; a state-agency head registered at the IT company Informatsionno Obsluzhvane at €315 million. Alongside them are municipal councillors with a directly declared stake — e.g. in Global Cleaner (cleaning, €25 million) and Etropal Trade (medical supplies, €13 million). None of this is itself wrongdoing — it is exactly the map of declared interest that was, until now, scattered across thousands of filings.

Per-município reality. Because every local buyer is pinned to its settlement, you can read a município like Plovdiv directly: €3.9 billion awarded across 15,312 contracts, led by the university hospital, the regional electricity distributor and the municipality itself.

4. Method and limits

All of these features rest on the same open АОП / ЦАИС ЕОП data — no private source. The links to politicians add only two further official public registers: the asset-and-interest declarations to the Court of Audit and the Commerce Registry. The single-bidder signal reads the realised bid count the OCDS feed publishes; it is gated against a per-sector competition baseline so structurally single-bid markets aren't falsely flagged. Person links use only high-confidence matches — a declared stake or a unique-name Commerce-Registry record — and are dropped where a common Bulgarian name would create false positives. Out of scope: contracts below the Public Procurement Act thresholds, in-house awards, and foreign suppliers. Coverage runs from 2011 to today, with one gap at the source — АОП published no usable 2018 contract file, so that year is absent, and 2020–2021 carry fewer contracts than the years around them. The risk index is a sorting and screening aid, not legal evidence; every figure links back to its source on data.egov.bg so you can check it yourself.

Open the Public Procurement module, or ask the assistant a question like "show the procurement red flags" — and follow the money.

Sources

Bulgarian data and registers

  • Public Procurement Agency (АОП) — open data: data.egov.bg
  • ЦАИС ЕОП (Central Automated Information System for e-Procurement): app.eop.bg
  • СИГМА (Ministry of Innovation and Digital Transformation): sigma.midt.bg
  • Audit Office — asset & interest declarations: register.cacbg.bg
  • Commerce Registry (Registry Agency): portal.registryagency.bg/CR

Standards and methodology

  • Open Contracting Data Standard / Open Contracting Partnership: standard.open-contracting.org
  • Government Transparency Institute: govtransparency.eu
  • Fazekas, Tóth & King — Anatomy of Grand Corruption: A Composite Corruption Risk Index Based on Objective Data (SSRN): papers.ssrn.com/abstract=2331980

International tools

  • opentender.eu (DIGIWHIST): opentender.eu
  • ProZorro (Ukraine): prozorro.gov.ua
  • DOZORRO (Transparency International Ukraine): dozorro.org
  • Spend Network: spendnetwork.com
  • Tussell: tussell.com
  • GovSpend: govspend.com
  • USAspending.gov: usaspending.gov

[^cpv]: We decide this per sector, from the data — no hand-picked list. For each two-digit CPV division (the EU's Common Procurement Vocabulary) we measure the share of contracts with a published bid count that had only one bidder; if that share is 80% or more, we treat the division as structurally single-bid and suppress the flag there. The thresholds are recomputed from the corpus on every update. Currently 7 of 45 divisions qualify — among them water supply, electricity/gas/water distribution, postal and telecom services, real estate, R&D services, and printed matter.

Explore the data

  • Home
  • Governance
  • National Assembly
  • Roll-call votes
  • Governments
  • MP business connections
  • Public procurement
  • State budget
  • EU funds
  • Indicators
  • Consumption
  • Prices
  • Party financing
  • Opinion polls
  • Seat simulator
  • Parties
  • Results by region
  • Extraordinary local elections
  • Local-elections reconciliation
  • Sofia
  • About the project

Recent analysis

  • Following the public money: a citizen's toolkit for procurement
  • How the budget simulator works: data and model
  • The BNB reserve after the euro: can it be spent?