Understanding how Nigeria votes and what changed between 2019 and 2023
Nigeria is Africa's most populous country and one of its most complex democracies. Presidential elections here are not just contests between candidates, they are reflections of ethnic geography, regional loyalty, voter mobilisation, and shifting political winds across 36 states and the FCT.
This project analyses two consecutive presidential elections (2019 and 2023) using official data from INEC, population projections from the National Bureau of Statistics (NBS), and voter registration records. The focus is on the top 4 parties per election — the only parties for whom complete, verifiable state-level data is available.
The central questions: How did voter participation change? Who won where, and why? And what do the patterns suggest about 2027?
Where the data came from
This analysis draws from four primary official sources, supplemented with publicly available candidate biographies:
-
1
INEC 2023 General Election Report (Official)
The Independent National Electoral Commission's official published report on the 2023 presidential election. Source for all 2023 state-level vote counts, accredited voters, and election administration data.
-
2
NBS Demographic Statistics Bulletin 2020
Published by the National Bureau of Statistics. Used for population projections relevant to the 2019 election cycle and voter registration rate calculations by state.
-
3
NBS Demographic Bulletin 2023
The most recent NBS demographic publication. Provided the 2023 projected population of 221.25 million and state-level breakdowns used in the demographics dashboard.
-
4
INEC Voter Registration Records (2019 & 2023)
State-level registered voter counts, PVC collection figures, and gender breakdown of registrants. Some supplementary figures verified against reputable news sources including Vanguard Nigeria.
Cleaning, structuring, and modelling the data
Raw election and demographic data was collected from multiple sources and required significant cleaning and restructuring before it could be loaded into Power BI. All preparation was done in Microsoft Excel and shaped further using Power Query (M language) within Power BI Desktop.
-
1
Excel Consolidation
Multiple source tables were built in Excel: a Main Table combining election results with registration and population data for both years, an Age Distribution table, a PVC Collection table, a Party Details table with candidate biographies, and a Population Projections table.
-
2
Power Query — Unpivot & Join
The Party Votes Table was created by unpivoting party columns from the Main Table, transforming a wide format into a long format where each row = one state × one party × one year. This enabled clean party-level filtering in Power BI. A left join was then used to append the Country column from the Main Table.
-
3
Power Query — Age & Biography Tables
Blank rows and null columns were removed from the Age sheet before promoting headers and setting column types. The Biography table was loaded and renamed for consistency.
-
4
Data Model & Relationships
Six tables were related in the Power BI data model: Main Table, Party Votes Table, Dim Party, Dim Year, Age, and Biography. Year and State served as the primary join keys across tables.
Data Model Overview
Key DAX Measures
The following are some of the DAX measures written to power the dashboard visuals and KPI cards:
-- Dynamically identifies the winning party per state/year Winning Party = VAR APCVotes = SUM('Main Table'[APC]) VAR PDPVotes = SUM('Main Table'[PDP]) VAR LPVotes = SUM('Main Table'[LP]) VAR NNPPVotes = SUM('Main Table'[NNPP]) VAR MaxVotes = MAXX({APCVotes, PDPVotes, LPVotes, NNPPVotes}, [Value]) RETURN SWITCH(TRUE(), APCVotes = MaxVotes, "APC", PDPVotes = MaxVotes, "PDP", LPVotes = MaxVotes, "LP", NNPPVotes = MaxVotes, "NNPP" )
-- Calculates the winning margin between top 2 parties Winning Margin = VAR PartyTable = ADDCOLUMNS(VALUES('Party Votes Table'[Party]), "TotalVotes", CALCULATE(SUM('Party Votes Table'[Votes]))) VAR TopTwo = TOPN(2, PartyTable, [TotalVotes], DESC) VAR WinnerVotes = MAXX(TopTwo, [TotalVotes]) VAR RunnerUpVotes = MINX(TopTwo, [TotalVotes]) RETURN IF(COUNTROWS(TopTwo) < 2, BLANK(), WinnerVotes - RunnerUpVotes)
-- Uncollected PVC percentage Uncollected PVC % = DIVIDE( SUM('Main Table'[PVC Uncollected]), SUM('Main Table'[Total Reg.]) )
How the dashboard works
The Power BI dashboard is built across four pages — Overview, Participation, Party Analysis, and Demographics. Each page shares the same slicer panel, allowing you to slice the entire report by year, state, or zone simultaneously.
Slicers Available
APC wins a fragmented election
The 2023 presidential election was the most competitive in Nigeria's recent democratic history. For the first time, a third-party candidate (Peter Obi of LP) won multiple states, and no party crossed 50% of the total votes cast across the top 4 parties.
Bola Tinubu won with 8.8M votes, down significantly from Buhari's 15.2M in 2019, reflecting a more fragmented electorate.
APC held under 48% of the top-4-party vote share. The ruling party won, but without a dominant mandate.
APC beat PDP by approximately 1.8 million votes, smaller than the 2019 margin of 3.9M over PDP.
Only 11.8% of Nigeria's total population actually cast a vote, a stark illustration of the participation gap from registration to ballot.
2023 Vote Share (Top 4 Parties)
Percentages below are calculated as a share of the top 4 parties' combined votes (23.4M).
2019 Vote Share (Top 4 Parties)
Percentages below are calculated as a share of the top 4 parties' combined votes (26.7M). The 2019 race was essentially a two-party contest as APC and PDP together held over 99% of the top 4 vote. PCP and ADC were included as the only other parties with complete verified state-level data, but their share was negligible.
2019 Candidates at a Glance
2023 Candidates at a Glance
Geography still shapes voting patterns
The zonal vote data reveals how deeply regional the 2023 outcome was. North West delivered the most total votes. South East was almost entirely captured by LP. South West went to APC's home territory.
North West — 6.6M votes
North Central — 4.4M votes
South West — 4.1M votes
North East — 3.4M votes
South South — 2.75M votes
South East — 2.19M votes
The electorate shifted, so did the parties
Between 2019 and 2023, Nigeria's registered voter base grew substantially, yet total votes cast actually fell. This paradox tells an unignorable story about participation, trust, and the fragmentation of the political landscape.
| Metric | 2019 | 2023 | Change |
|---|---|---|---|
| Registered Voters | 84.0M | 93.5M | +11.3% |
| Total Votes Cast (Top 4) | 26.7M | 23.4M | −12.4% |
| Winning Party | APC (Buhari) | APC (Tinubu) | — |
| Winner's Votes | 15.2M | 8.8M | −42% |
| Winner's Vote Share | 56.9% | 47.9% | −9pp |
| 2nd Place Party | PDP — 11.3M | PDP — 7.0M | −38% |
| New Entrant | — | LP (6.1M) / NNPP (1.5M) | 🆕 Significant |
| Young Adults Share of Registrants | 81.1% | 75.4% | −5.7pp (absolute growth) |
| PVC Collection Rate (National) | ~90.1% | ~90.1% | Stable |
Registration is rising. Turnout is not.
One of the most striking findings of this analysis is the persistent gap between how many Nigerians are registered to vote and how many actually do. Across both elections, only a fraction of eligible citizens translated registration into a ballot.
Nearly 1 in 10 registered voters did not collect their Permanent Voter Card in 2023 — a direct barrier to participation.
Men make up the slight majority of registered voters. Female registration (47.34%) has been growing election-over-election.
North West dominates both population and total votes cast, driven largely by Kano State, Nigeria's most populous state.
In 2023, three-quarters of all registered voters were young adults, confirming that youth demographic holds the democratic key to Nigeria's future.
What the data suggests about 2027
2027 Election Projection
Based on the trends observed across 2019 and 2023, and factoring in current political developments in Nigeria, the following patterns are likely to shape the 2027 contest:
APC remains the incumbent advantage, but Tinubu's government faces significant pressure from economic hardship, fuel subsidy removal fallout, and currency depreciation. A weakened APC could lose its North West stronghold if NNPP or PDP consolidates. His recent primary election win margin speaks volume though.
Labour Party Peter Obi's trajectory is uncertain. LP's 2023 performance (6.1M votes, 12 states) was remarkable for a party that barely existed nationally four years prior. If Peter Obi runs again or LP builds a national structure, it could become a genuine second-place force. Without that consolidation, the movement may fragment.
PDP must confront internal reform. Two consecutive presidential losses with the same candidate (Atiku Abubakar) and declining vote totals — signal that the party's traditional coalition is eroding. A new, younger candidate from the South could reinvigorate the party's competitiveness. Reports are suggesting Goodluck Jonathan may run, but nothing official yet
Youth mobilisation is the wildcard. With 75%+ of registrants under 50 years old, whoever successfully energises the youth vote, as the Obidient movement showed is possible, will have a decisive advantage. BVAS improvements and IREV transparency are expected to increase voter confidence.
South East remains the battleground to watch. LP's near-total sweep of the South East in 2023 (90%+ in the zone) was unprecedented. Whether this becomes a permanent political realignment or a one-election phenomenon depends heavily on Nigeria's federal resource distribution policy over the next 4 years. With Tinubu, Atiku, Kwankwaso, Obi, and Makinde all in the picture, the big question remains: will Nigeria witness another multi-way split in votes at the next election, or will some of the parties undergo coalition to weave a stronger force?
Prediction is based on observed data trends and publicly reported political developments. It represents analytical inference, not a definitive forecast.
Explore the full analysis
Access the interactive dashboard, download the dataset, or explore the source files below.