What IReV gave us this year
Every election INEC ran in 2026, counted sheet by sheet from its own portal. The number that should worry you is from 2023.
Since February we have watched INEC's results portal through the elections it ran: the FCT area councils on 21 February, Ekiti and six by-elections on 20 June, Osun on 15 August, and five more seats on 19 September. A walker checked the portal every few minutes, logged every sheet that arrived, every sheet that was replaced, and the time of each. What follows is only what that record says, counted at one cut, 8 October 2026.
The scorecard
Did INEC's portal give us a result sheet for every polling unit in every race it ran this year? No. Across the fifteen contests we tracked, 19,265 unit results were due, one per polling unit per race, with the FCT's 2,822 units counted once for each of its two races; the portal produced a sheet for 17,520 of them, 90.9 percent, and nothing at all for 1,745. One race in fifteen was complete: Dawakin Kudu, Kano, 303 of 303. Seven more were within three percent of complete. Four were not close: Enugu North 66 percent, Sakwa 65, Nasarawa North 62, Disina 55. The FCT councils in February sat between, at 90 and 85 percent.
Ranked by what arrived:
| Race | Date | Units | With a sheet | Share |
|---|---|---|---|---|
| Dawakin Kudu state assembly, Kano | 19 Sep | 303 | 303 | 100.0% |
| Dawakin Kudu/Warawa, Reps | 20 Jun | 446 | 445 | 99.8% |
| Osun governorship | 15 Aug | 3,763 | 3,752 | 99.7% |
| Gombe/Kwami/Funakaye, Reps | 19 Sep | 903 | 898 | 99.4% |
| Ondo South senatorial | 20 Jun | 1,354 | 1,329 | 98.2% |
| Udu state assembly, Delta | 19 Sep | 265 | 260 | 98.1% |
| Zuru state assembly, Kebbi | 20 Jun | 200 | 196 | 98.0% |
| Ekiti governorship | 20 Jun | 2,445 | 2,387 | 97.6% |
| Rivers South-East senatorial | 20 Jun | 1,629 | 1,522 | 93.4% |
| FCT chairmanship, six councils | 21 Feb | 2,822 | 2,536 | 89.9% |
| FCT councillorship, 62 wards | 21 Feb | 2,822 | 2,395 | 84.9% |
| Enugu North senatorial | 20 Jun | 1,488 | 988 | 66.4% |
| Sakwa state assembly, Bauchi | 19 Sep | 147 | 95 | 64.6% |
| Nasarawa North senatorial | 20 Jun | 583 | 362 | 62.1% |
| Disina state assembly, Bauchi | 19 Sep | 95 | 52 | 54.7% |
Is it getting better? Not in the way that matters. The best race of the year and the worst were both on 19 September. The portal is reliable where it was always reliable, in governorship elections with the whole machinery of a state behind them, and unreliable in the same kind of place it was unreliable in June: a single senatorial district or assembly seat, where a third to a half of the units simply never appear, and nothing on the portal says whether they voted. Those four races and the FCT councils account for 1,529 of the 1,745 missing results.
Four contests are not in this table, because we were not watching them: the Khana II and Ahoada East II assembly by-elections in Rivers and the Kano Municipal and Ungogo assembly by-elections in Kano, all on 21 February, the same day as the FCT councils, before we were tracking anything but the FCT. We hold no record of them. For what it is worth, INEC's own counter on the portal, read on 9 October, shows Khana II at 151 of 155 units, Ahoada East II 87 of 87, Kano Municipal 588 of 630 and Ungogo 384 of 384; those are INEC's figures, not ours, and we have not checked a single sheet behind them.
What arrived
For the governorship elections, nearly everything. Ekiti: a result sheet for 2,387 of 2,445 polling units. Osun: 3,752 of 3,763, with the 11 we never got listed by code on our Osun page as gaps. On the night in Osun the public portal stopped at 87 percent for two hours and fifty-four minutes, by INEC's own timestamps, and then resumed; four Osun sheets were replaced by INEC after upload, and we hold both versions of each.
For the by-elections, it depended entirely on where you were. Dawakin Kudu, Kano, 19 September: 303 of 303 units, every sheet. Gombe/Kwami/Funakaye: 898 of 903. Udu, Delta: 260 of 265. Ondo South senatorial in June: 1,329 of 1,354. Then the other kind. Sakwa, Bauchi: a sheet for 95 of 147 units. Disina, Bauchi: 52 of 95. Nasarawa North senatorial: 362 of 583. Enugu North senatorial: 988 of 1,488. In those four contests, between a third and a half of the polling units never had a sheet we could obtain from the portal, and nothing on the portal said why.
The FCT area councils in February: a sheet for 2,536 of 2,822 units for chairmanship and 2,395 for councillorship, the gaps 286 and 427 units.
What arrived late
The 2026 elections were small. The general election is not, and the only general election the portal has run is 2023. We hold every page INEC uploaded for the 2023 presidential election, 167,443 documents for 176,846 polling units. For the National Assembly sheets of the same day, where our copies still carry the phone's capture time and INEC's own upload time, the record says this: across 31,913 sheets from 147 constituencies, the typical sheet reached the portal 3.4 hours after it was photographed for House of Representatives races and 8.1 hours for Senate races, and about one sheet in four arrived more than a day later. Same day, same devices, same portal. The presidential copies we hold were stripped of their timestamps before they reached us, so we will not quote a presidential figure until we have re-fetched the originals. What Osun already shows is enough for the design: a portal that stops for nearly three hours on the night of a single state's election is a portal that will be slower, not faster, on the night of thirty-six.
That is the whole design of what we have built: capacity sized for the night, people staffed for a tail of weeks, and a second channel, from citizens standing at the wall where the sheet is posted, that does not wait for a portal.
What arrived instead of a sheet
Among the 2023 Rivers uploads we have read so far, 6,051 pages covering 6,008 polling units, 100 are result sheets marked cancelled, 15 are not result sheets at all, and in 88 units the page carries a sentence in the presiding officer's own hand instead of, or on top of, the figures. "The Unit was held down and boys went away with the results from the P.O." "No election held in this unit due to insecurity," eight units in one ward uploading the same words. "There was no election in Unit 25 of Abissa due to the Unit people where demanding for money before they vote." Nine units reporting that the result booklet went missing before it reached them, so voting happened and the result was cancelled for lack of a form to write it on. One officer's letter runs a full page and includes, at the end, the login details for the accreditation device, uploaded to a public portal where they still sit.
Each of these is a polling unit where people may have voted and no number exists anywhere. The portal does not count them. We do, by code, as units with no result, and from this week we are showing one a day.
What was not on the form
On 20 June in Nasarawa North, the printed result sheet carried four party lines, APC, LP, NNPP and PDP, while ADC and NDC were on the ballot. Presiding officers wrote the missing two in by hand, and those handwritten lines carry 1,641 votes for ADC and 848 for NDC on our board. The Dawakin Kudu/Warawa Reps by-election the same day had three printed lines and four parties written in, 85 votes between them. A party's entire count existed only as handwriting on a form that had no row for it.
On 19 September in Gombe/Kwami/Funakaye, INEC's published list of candidates named NNPP; the result sheets carried NDP and no NNPP. We added NDP from the sheet on the morning of the vote.
What was never published
For three of the five seats on 19 September, INEC had not published the names of the candidates by election morning, and for the fourth it published parties without names. We seeded our board from the parties printed on the first sheet of each race and filled the names in afterwards from INEC's declarations and the press. Today, three weeks later, ten of the party rows in those four races still carry a placeholder on our board, "APP Candidate", "PRP Candidate" and so on, because INEC has never published a name for them and we will not invent one. For 2027, the presidential and National Assembly lists are out, published in the second week of September; the governorship and state assembly lists are not.
What this changes
Nothing about who we are. We do not call winners; only INEC declares, and that is the law. What the year tells us is what to expect from the portal on 16 January: most sheets, eventually; some units with nothing, in places nobody is looking; a tail of days, not hours; and pages that are not sheets. Everything we built this year assumes exactly that. The record is open now at app.edonkast.com, every figure traces to a photographed sheet, and the gaps are listed by code rather than filled in.
The full table, with the route for every number and the cut time, is on file and available on request.
Femi Olamijulo
Founder, E Don Kast
