One road
Malawi's infrastructure portal holds a record for the Upgrading of M12 to Ludzi Road, project id oc4ids-iuq5r5_13. The record is confident. It states a scope: six kilometres, upgraded to bituminous standard. It states a price: 1.3 billion kwacha. It states a status: complete. On those three lines, the system is fluent.
Now try to check it. Ask for the completion certificate. Ask for the contract. Ask for a single photograph of the finished surface. Ask who signed it off, and on what date. The record has none of these. Documents attached: none. Completion certificate: none. Photo of the road: none. The record can tell you the road was finished and what it cost. It cannot show you the road, or the proof that anyone confirmed it. A final value is a claim. A document is how the public checks it.
Then the whole window
One thin record could be a clerical accident, not a pattern. So the whole window was queried: every infrastructure project in Malawi's portal for 2021 and 2022. The endpoint answered with 162 of them, each a real entry, not a sample. The same questions were then asked of all 162.
The questions get harder as you go, the way verifying a road does. Start with the easy ones.
Can we see the budget? All 162 can answer, 100 percent. Does it say what stage it is at? Again all 162, 100 percent. Do we know what kind of project it is? 136 of 162, or 84 percent; twenty-six projects carry no sector, the first small gap. Can we see who is involved? 116 of 162, or 71.6 percent.
Then the light starts to fail. Does the record carry a contracting record, an entry showing how the work was procured and awarded? Only 51 of 162, or 31.5 percent. That is not the same as an accessible contract document; a contracting record says a process happened, not what the contract says. Does the record carry any document at all? 46 of 162, or 28.4 percent. That is the Ludzi gap, at scale.
Two more. Does the record state a final value and scope? 75 of 162, or 46.3 percent. And does it carry a measured progress metric, a structured measurement of physical progress? Zero of 162. Not most of them missing. Every one.
The fair test: the projects that claim completion
There is an honest narrowing to make here. It would be easy, and wrong, to say the data goes dark after award. Some of those 162 projects are still under construction. For them, a missing completion record is correct, not a failure. You cannot file proof of a finished road that is not finished.
So the fair test is the seventy projects the record itself calls complete, where the proof should already exist. There, the final value is almost always present: 98.6 percent. A document of any kind: 34.3 percent, and a tender notice counts as a document, so even that overstates the real evidence. A contracting record: 37.1 percent. A measured record of physical progress: never, 0 percent.
Where a monitor would look first
The same 162 projects, read in the portal's own red-flag language, show where a monitor would look first:
- 116 projects with no document of any kind attached.
- 100 contracted projects with no contracting process recorded.
- 73 still in implementation though the recorded end date has passed.
- 72 in implementation but not updated in more than eighteen months.
- 49 where a supplier is recorded but one or no distinct tenderers appear.
These are warning signs for investigation, not findings of wrongdoing.
What this is not
The portal tells you the road was finished. It rarely lets you check. This is not a verdict on the Ludzi road. It may be finished, six clean kilometres of bitumen. It is a verdict on the record: from what is published, no one outside the project can confirm it. Every absence claim here is bounded to these 162 records, retrieved on 25 June 2026, for the window 1 January 2021 to 31 December 2022, in this one portal. It says nothing about projects outside that window, and nothing about records changed since.
The honest end of this story is not an accusation. It is an open request, addressed to whoever holds the certificate. Without the receipt, "complete" is a claim the public cannot check. You have been handed this record. Would you sign it off?
- Budget and status visibleThe record states the scope, price and completion status.
- Contract and documents weakenThe contracting record, completion certificate and supporting records are largely absent.
- Measured progress reaches zeroWithout a certificate, contract or photograph, the public cannot verify the finished road.
The data
Field completeness across all 162 projects in Malawi's portal, window 2021-01-01 to 2022-12-31, pulled 2026-06-25. Each field counts as present only when it is non-empty.
| Question | OC4IDS field | Can answer | Share |
|---|---|---|---|
| Can we see the budget? | budget | 162 of 162 | 100% |
| Does it say what stage it is at? | status | 162 of 162 | 100% |
| Do we know what kind of project? | sector | 136 of 162 | 84% |
| Can we see who is involved? | parties | 116 of 162 | 71.6% |
| Does it carry a contracting record? | contracting processes | 51 of 162 | 31.5% |
| Does it carry any document? | documents | 46 of 162 | 28.4% |
| Does it record a final value and scope? | completion | 75 of 162 | 46.3% |
| Does it carry a measured progress metric? | metrics | 0 of 162 | 0% |
Among the 70 projects marked complete, where the proof should already exist:
| Field | Share of the 70 completed |
|---|---|
| Completion record (final value and scope) | 98.6% |
| Documents | 34.3% |
| Contracting record | 37.1% |
| Measured progress metrics | 0% |
Red flags counted from the same 162 projects, in the portal's own catalogue language:
| Red flag | Projects |
|---|---|
| No documents attached | 116 |
| Missing contracting record | 100 |
| Overdue delivery | 73 |
| Stale implementation record | 72 |
| Limited competition | 49 |
Use the data
The derived data behind every figure is published alongside this essay:
- scanner_data.json: field completeness, the among-completed figures, status distribution, party counts, budgets by currency, sector summary, and red-flag counts.
- projects_index.csv: all 162 projects, one row each.
Every figure above is computed directly from that response and is reproducible from these two files. The source is the Malawi Infrastructure Projects Portal, run by the Construction Industry Regulatory Authority. The extract came from a single POST to console.ippi.mw/api/projects/query for the window 2021-01-01 to 2022-12-31. You can re-run the eight questions: pull the same window, count each field as present only when it is non-empty, and compare your counts to the tables above.
Evidence register
Sources
- Malawi Infrastructure Projects Portal (IPPI), Construction Industry Regulatory Authority (CIRA). Data licensed CC BY 4.0: https://creativecommons.org/licenses/by/4.0/
- Query: a single POST to console.ippi.mw/api/projects/query on 2026-06-25. Project window: 2021-01-01 to 2022-12-31. The endpoint returned 162 projects in OC4IDS structure, and every figure on this page is computed directly from that response. The Ludzi record was last updated November 2021; "pulled" describes when the data was retrieved, not how current each project is.
- Standard: OC4IDS (Open Contracting for Infrastructure Data Standard).
- Method: field completeness counts a field as present only when it is non-empty. Headline-vs-proof figures (final value 98.6 percent, documents 34.3 percent, contracting 37.1 percent, metrics 0 percent) are measured among the 70 projects with status completion, so that work still in progress is not counted as a gap. Party counts are unique organisations, deduplicated by name; role-mention totals are higher. The budget total excludes one sentinel placeholder value (999,999,999,999.99 MWK). No currency conversion is asserted; figures are reported per currency.
- Red flags follow the portal's published catalogue (limited competition, missing documents, missing contracting record, overdue delivery, stale implementation record). They are warning signs for investigation, not findings of wrongdoing.
Start a conversation
If this piece names a decision you own, tell me what you are hoping to achieve and where I could help.
Start an enquiry →