About 774.ng

774.ng is a public, provenance-first archive of official Nigerian election results. Every number is mapped down to the ward and polling unit, and links back to the official result sheet it came from — so results can be read, checked, and trusted, not just taken on faith.

Where the numbers come from

Results are sourced from the EC8A sheets published on INEC’s IReV portal. We archive each sheet, extract its vote tallies, and validate the arithmetic. Every figure shown links back to the original scan, so you can verify it yourself at the polling unit level.

How complete is the data?

Coverage is honest about its limits. Each race carries a tier:

  • ExplorableFull polling-unit results extracted and browsable.
  • ArchivingSheets are being collected; results not fully extracted yet.
  • CataloguedIndexed from the INEC catalog; no sheets archived yet.

Honesty over polish

Where data is missing we say so rather than guess. Wards we can’t match to a GRID3 boundary are listed instead of dropped — their votes still count in the totals. Candidate names show as “not verified” until confirmed against an authoritative source. The maps shade only what we actually have.

Reading the maps

Areas are shaded by the active encoding mode — winning party, Margin, competitiveness, Turnout, or coverage. Deeper color means a stronger signal (a bigger margin, higher turnout, fuller reporting). Switch modes with the shading toggle on any results map.

Provenance: check any sheet yourself

Every archived EC8A sheet is fingerprinted with a SHA-256 hash of its untouched original. All those fingerprints are combined into a single Merkle root and stamped by an independent timestamp authority — so anyone can confirm the archive has not been altered since, without having to trust 774.ng.

Current anchor

Sheets covered
133,541
Timestamp authority
freetsa.org
Anchor built
Wed, 08 Jul 2026 12:08:15 GMT
Status
tsa
Merkle root
31792854bb73281c2fc0f18e1445886b37988999e367869cc3952b2f78efbbcf

Look up a sheet

Enter a source document ID to see its recorded fingerprint and the anchor that covers it.

Verify it without us

Fetch the anchor at /api/manifest/anchor, rebuild the Merkle root from the published leaves, and check the RFC-3161 token attests it. The open verifier (scripts/verify-manifest.mjs) does all three and confirms any sheet’s inclusion — trusting nothing on this server.

Glossary

EC8A
The official INEC result sheet filled in at a single polling unit. It records each party’s votes plus the accredited/registered voter counts, and is the source every number here links back to.
IReV
INEC’s Result Viewing portal, where polling-unit result sheets are published. Our archive is sourced from it.
Polling unit
The smallest voting location — where people actually cast ballots. Nigeria has ~176,000 of them, grouped into wards.
Ward
A group of polling units; the smallest electoral division above the polling unit.
LGA
Local Government Area — the administrative tier between ward and state.
Registered voters
Everyone enrolled to vote at a polling unit, whether or not they showed up.
Accredited voters
Registered voters who were verified (biometrically) at the polling unit on election day. The basis for turnout.
Accreditation
The check that confirms a registered voter at the polling unit before they vote.
Turnout
Accredited voters as a share of registered voters.
Margin
The winner’s lead over the runner-up, as a share of the votes cast.
Minor discrepancy
A sheet whose only flag is an arithmetic mismatch of a vote or two — almost always a single misread digit. Low priority for review.
GRID3
The geospatial dataset our ward/LGA boundary polygons are derived from. Wards we couldn’t match to a GRID3 boundary are listed honestly rather than dropped.
AI extraction confidence
How sure the AI is that it read this sheet correctly — not a measure of vote accuracy. Low-confidence sheets are queued for a human to verify against the original EC8A.