Skip to content
Data coverage

How deep the data actually goes.

Coverage claims are easy to inflate, so we compute them from the database and show them here. The numbers below are live counts of what we hold, and — more importantly — exactly which integrity detectors can run on it. A detector is only ever counted as “live” where its input data is actually present.

86,517
Notices ingested
141,480
Awards ingested
3,708
Awards w/ bidder count

These are three different measures, not one. 141,480 is every award we hold; the repeat-winner and award-vs-estimate detectors run across all of it. The single-bidder detector needs a disclosed bidder count, which only some sources publish — today 3,708awards carry one (chiefly Prozorro's OCDS records; Colombia SECOP II is being ingested to grow this). We show the small number plainly rather than imply the flagship signal runs on the whole corpus.

What each detector can run on

Threshold avoidance Live
75,748 notices carry a contract value
Short bidding window Live
3,168 notices carry a submission deadline
Repeat-winner concentration Live
141,480 awards ingested (IADB + Prozorro)
Single / no competitive bid Live
3,708 awards disclose a bidder count
Award-vs-estimate gap Live
runs where an award links back to its tender's estimate

By source

SourceTypeRecords
IADB — project procurement awardsAwards9,909
Prozorro (Ukraine) — OCDS awardsAwards403
Colombia SECOP II — awards w/ bidder countsAwards3,750
Tender notices (World Bank, UNGM, EU TED, national portals)Notices86,517

A jurisdiction with notices but no award history can run window and threshold detectors, but not repeat-winner or single-bidder — coverage is a capability question, not just a country count. We’d rather show a source as lightly populated than pretend depth we don’t have.

Connector reachability

We run many source connectors, but not all of them return usable data on every cycle. This is the last probe result for each, straight from the monitor — so you can see exactly which sources are ingesting today and which are merely reachable. We’d rather show a connector as idle than imply depth we aren’t pulling.

ConnectorStatusRows last runLast checked
adbUnreachable02 days ago
afdbUnreachable0yesterday
aiibReachable, no ingest08 days ago
auReachable, no ingest09 days ago
badeaUnreachable013 days ago
cafUnreachable06 days ago
canadabuysIngesting0today
caribankReachable, no ingest015 days ago
eabrReachable, no ingest012 days ago
ebrdReachable, no ingest03 days ago
iadbIngesting04 days ago
isdbReachable, no ingest014 days ago
mccReachable, no ingest011 days ago
ndbReachable, no ingest07 days ago
oasReachable, no ingest010 days ago
worldbankIngesting05 days ago

How fresh the data is

A detector running on a stale snapshot is a weaker claim than one running on this week’s records, so we show the age of each source’s most recent ingest — computed live from the database, not asserted.

Tender notices
Notices
Fresh
last ingest 7 days ago
IADB — project procurement awards
Awards
Fresh
last ingest yesterday
Prozorro (Ukraine) — OCDS awards
Awards
Fresh
last ingest today
PIRS methodology →Security & trust →