Where Our Numbers Come From, and What We Do When We Cannot Verify Them
Every figure on this platform should trace back to a document or to a named person who entered it.
That is a stricter rule than it sounds, and it is the reason some columns on some pages are empty rather than full of plausible numbers. This post is about where the data comes from, how it gets in, and what happens when it cannot.
Boundaries, wards and polling stations
The administrative structure comes from published boundary data, imported level by level.
Counties, constituencies and wards each have their own geometry, and the files are very different sizes, so they are imported separately rather than in one attempt that either all works or all fails. A county map is small and lands quickly. Ward geometry for the whole country is large enough that loading it is a deliberate operation somebody runs and watches.
Polling centres and stations come from the published station data. This is the messiest part of Kenyan electoral data by a distance. Codes get transcribed, centres split, names are recorded differently in different files, and some records arrive damaged. Where the platform can identify a broken code with certainty it repairs it and records that it did. Where it cannot, it leaves the record alone rather than guessing, because a guessed station code is worse than a missing one: it is wrong in a way nobody will ever check.
Census and register figures
Two different numbers that are often confused.
The census figure is population. The register figure is registered voters. A ward's register can only ever be a subset of its adult population, and the difference between them is the most actionable number in local campaigning, which is why both are shown on the same page rather than one standing in for the other. Neither is ours. Both come from the published sources that produce them.
Results, and what is still being extracted
Declared results are the backbone of the elected officials index.
A winner is derived from published results rather than asserted. Where a contest is complicated by a name spelled differently across two documents, or by a candidate who appears twice, that is a real problem in the source material and it is handled as a matching problem with a recorded outcome, not by picking whichever row looks tidier.
Some things are genuinely not there yet. Per-station tallies for archived elections come from reading the declarations on the forms themselves, and that work is not finished. The pages affected say so, in place of the figure, rather than showing a blank cell that a reader would reasonably take for a zero. An admitted gap is honest. An empty column that looks like data is not.
What happens when an import fails
It says so, loudly, and refuses to record itself as having worked.
This sounds obvious and is the failure mode that actually bites. An import that cannot find its source file, logs a warning and reports success will leave a system serving a fraction of the country's boundaries indefinitely, and it will look completely correct to whoever built it, because their machine had the file. That exact thing happened here. The fix was to make every import return its outcome, make it safe to run again, and have the system report at startup which datasets are missing and the command that loads them.
We are describing this because a platform that talks about verification should be able to say how it verifies itself.
The gaps we will tell you about
Three, stated plainly.
Historical results for some seats are less complete than for others, and the further back you go the thinner the published material gets. Polling station names and register figures for some centres are known to be imperfect, and local knowledge beats our files. And a campaign's own records are only as good as the people entering them, which is why submissions carry an author and a timestamp and go through review, as described in why the second record is the point.
Tell us when something is wrong
The most valuable correction we receive is from somebody who lives in the ward.
Open your own ward, your own constituency and your own county in 2026, read the station list and the elected names, and check them against what you know. If a centre is missing, if a name is wrong, if a figure looks impossible, report it with the specifics: the ward, the centre, what is shown and what it should be.
That is worth more than another automated pass over the same file, and there is time to act on it now in a way there will not be in the weeks before 10 August 2027.
Frequently Asked Questions
Does BallotWinners get results directly from the IEBC systems?
No. The platform works from published results and published data rather than from any privileged feed. The IEBC transmits and declares results through its own systems, and its declaration is the official one. Anything a campaign records here is a parallel record kept alongside that, not a substitute for it.
Why do some pages show no vote figures at all?
Because the figures for those contests have not yet been extracted from the archived forms. Rather than render an empty column that a reader would take for a zero, the page states that the figures are not available. It is a deliberate choice to make a gap visible instead of letting it be mistaken for data.
How can I report an error in the data for my area?
Report it with specifics: the county, constituency or ward, the centre or station in question, what the page currently shows and what it should say. Corrections from people who live in an area are the most reliable source of fixes for polling station names and local details, because that information often exists nowhere in any published file.