How this tracker works
Short version: it only ever shows numbers the Electoral Commission of Zambia has announced, and it is explicit about which numbers are estimates.
Where the figures come from
Every figure originates in an ECZ announcement. Each announcement is stored as its own file with a timestamp and, where available, a link to the source. Files are added, never edited — which is why the announcement log can show exactly what changed and when.
What is measured, and what is estimated
- Measured: votes per candidate, constituencies declared, rejected ballots, province totals. Straight from the announcement.
- Estimated: the outstanding vote pool, from two estimators blended by how much has been counted. One multiplies the undeclared constituencies by the average size of a declared one; the other takes the register and a plausible turnout band and subtracts what is already counted. Early in a count the first is near worthless — a handful of constituencies is far too small a sample, and if they happen to be small ones it understates the pool several times over, which would make the run-off arithmetic look far more settled than it is. Late in a count the turnout assumption in the second becomes the weak link. So the estimate hands over from one to the other as declarations come in, and it is never allowed to exceed the number of registered voters not yet counted. Treat it as an order of magnitude, not a forecast.
- Derived arithmetic: the “share of remaining votes needed” figure solves
(V + x·R) / (T + R) = 50%forx. It is arithmetic on the estimate above, not a model of voter behaviour.
What this tracker will not do
No projections, no probability of victory, no calling races. Zambian presidential results are declared by the ECZ and nobody else. The possibility band shows what is still arithmetically available — it says nothing about what is likely.
Colour carries no politics
Every candidate is given a colour so that lines on a chart and provinces on a map can be told apart. The palette is deliberately muted and deliberately not party colours — no candidate here wears their campaign colour, and party red and party green are avoided entirely. The heat map uses a single hue at varying strength, so a wide margin cannot look like a stronger colour for one side. If a colour on this site appears to say something about a party, that is an accident of the palette, not an editorial position.
Numbers that must reconcile
Before any page is generated, the data is checked and the build is stopped outright if a figure does not add up. The checks are: province subtotals must equal the national total; the declared count must equal the sum of provinces; totals may never fall between announcements; the declared count may never exceed 226; and votes cast may never exceed the 8,786,300 registered voters. A wrong number published quickly is worse than a right number published slowly, so the site simply refuses to build rather than warn.
The 50% + 1 rule
A presidential candidate must win more than 50% of valid votes cast. If nobody clears the line, the top two go to a run-off within 37 days.
Open data
The full computed state is published at /data/state.json and the raw
announcement files at /data/live.json, both CORS-open. Use them, cite the ECZ.
Corrections
If a figure here does not match the official announcement, the official announcement is right. Corrections are published as a new entry in the log rather than a silent edit.