Nigeria Premier Football League · Season 2026/27

NPFLFantasy

A fantasy football game for Nigeria's top flight, modelled on FPL and retuned for how the NPFL actually plays. Free to enter, non-cash rewards. The league has no official fantasy game — and a fanbase that already knows the format by heart.

Clubs
20
Matchdays
38
Budget
100.0 ₦m
Squad
15
Title prize
1.0 ₦bn
Engine tests
129
The opportunity

Format literacy is high. Domestic supply is zero.

Nigeria has one of the world's most engaged Fantasy Premier League communities. The audience needs no education — it understands squads, captains, wildcards and price rises completely, and spends that fluency entirely on English football.

Meanwhile there is no official NPFL fantasy game. A league partnership announced around 2018 appears never to have shipped. That is the whole thesis, and 2026/27 is the season to act on it: a new sponsorship worth about $2.5m a year has lifted the title prize to ₦1 billion, five times last season's. The league has more money and more attention than it has had in years.

The central risk

There is no NPFL player-statistics feed

This belongs first, because it inverts the usual build. FPL is straightforward to construct because Opta hands it clean per-player event data. Every fantasy game you have used is downstream of a data contract. For the NPFL, no such contract exists.

What is actually obtainable for an NPFL fixture
DataAvailabilityConsequence
Fixtures, results, tableGoodCovered by Sofascore, Soccerway, Flashscore
GoalscorersUsuallyReliable enough to score on
Minutes playedApproximateCannot safely infer the 60-minute threshold
AssistsFrequently absentMust be recorded as unknown, not zero
Saves and finer detailEffectively unavailableRules out an FPL-style 30-category BPS

The data pipeline is the product. The app is the easy half.

Any plan that assumes "we integrate an API" fails on contact with reality. Two rules follow from this and run through every decision in the build: scoring must be honest about gaps, and scoring must be re-runnable when corrections arrive.

Verified league data

The twenty clubs of 2026/27

Established two independent ways that agree exactly. Composition: the 2025/26 top flight minus the four relegated — Wikki Tourists, Bayelsa United, El-Kanemi Warriors, and the season's real story, defending champions Remo Stars — plus four promoted from the National League. Corroboration: the published Matchday 1 fixture list names ten ties, and its twenty clubs are exactly the twenty derived above.

Rangers are homeless

The champions play every 2026/27 home fixture at the MKO Abiola Sports Arena in Abeokuta — some 600km from Enugu — while Nnamdi Azikiwe Stadium is renovated. A home tie that far from your support is not a home tie, so the difficulty model halves their home advantage rather than misleading managers all season.

Squads could not be verified

No public NPFL squad database exists and the first window closed on 14 September. The seeded player pool is generated placeholder data, flagged in the database and never shown as real. Inventing five hundred plausible Nigerian footballers would have made the demo look better and the product worse.

Game design

FPL's structure, retuned on two measured facts

The NPFL is low-scoring

It runs materially below the Premier League's ~2.8 goals per game. Goals are scarcer, so they are worth more. Clean sheets are commoner, so they are worth less. Porting FPL's values unchanged would make defenders dominant and attacking picks feel like a tax.

Home advantage is extreme

The NPFL home-win rate sits far above European norms. Under flat scoring the optimal strategy collapses into "only ever field home players" — a solved game, and therefore a boring one.

Points by position. Goal values raised, clean sheets lowered, against FPL.
EventGKDEF MIDFWD
Playing 1–59 minutes1111
Playing 60+ minutes2222
Goal10765
Assist3333
Clean sheet (60+ min)431—
Every 3 saves1———
Penalty saved5———
Every 2 goals conceded−1−1——
Yellow card−1−1−1−1
Red card−3−3−3−3
Own goal−2−2−2−2
The away performance bonus

The mechanic that makes this the NPFL's game

A goal scored away is worth +1, and an away clean sheet earns a keeper or defender +1. Backing an away player becomes a real, rewarded risk instead of a mistake — and knowing which NPFL sides genuinely travel well becomes an edge you cannot get from watching English football. Same defender, same match, different ground:

The product principle

Say what you don't know

Gameweek 354
Data note Assists were not recorded for Ikorodu City v Sporting Lagos. Bonus points are unavailable for that fixture.

A manager who watched their striker lay one on, and sees no assist point, will conclude the game is broken. On the available evidence they would be right.

So every score carries the list of categories its match did not record, and the app shows them plainly. A missing assist is unknown, never silently scored as zero. Where a fixture lacks the data to rank players meaningfully, no bonus is awarded and the app says why — because bonus points ranked on a third of the picture are quietly wrong, and quietly wrong is worse than visibly absent.

Corrections, not scandals

Scores are a pure function of stored inputs, never accumulated in place. When a steward corrects a stat the gameweek is re-scored, a new version is written and the diff is kept, so a manager can see exactly which line moved and why. NPFL data is corrected after publication far more often than European data is; the system is built for that rather than surprised by it.

Operations

Dual entry, independently verified

No feed exists, so data is entered by people — and the system assumes people make mistakes. Dual entry is the standard control for manual data capture, and it is precisely what the league itself would need to run a credible fantasy product. Building it is not overhead; it is the asset.

Step 1 Steward A enters

Events captured from the fixture. State: provisional.

Step 2 Steward B enters blind

A different person, enforced in code, records the same fixture without seeing entry A.

If they agree Verified

The system diffs both submissions. Points go live, then lock to final after the challenge window.

If they differ Disputed

Routed to a reviewer. Nothing goes live on a disagreement.

Each fixture also records which event categories were actually captured. That single field is what makes the honesty rules above possible at all.

Provenance

Four tiers, and what each is allowed to overwrite

Data arrives from places of very different quality. Recording the number but not its origin throws away the thing that decides conflicts — so every stat carries its tier, and the tier decides what it may overwrite.

Authority is per category, not one linear ranking
TierSourceRoleWrites stats?
1 · Official LMC register, matchday teamsheet Authoritative on appearances and minutes Yes, narrowly
2 · Live Steward capture during the match Primary source for in-play events Yes
3 · Signal Club social media Raises a task to check the register Never
4 · Video Post-match review of footage Adjudicates disputes only On appeal

A teamsheet is authoritative, and narrow

It outranks a live steward — but only about who played and for how long. It has nothing to say about assists and must not be permitted to blank them. So writes merge field by field: an official correction overwrites minutes, leaves goals untouched, and reports the refusal rather than swallowing it.

Social media cannot become data

Clubs announce arrivals loudly and departures quietly or never, so a pipeline that trusted their posts would accumulate players who had already left. A signal therefore carries no field describing the change to apply, and closing one requires recording what the official register showed.

Why video adjudicates rather than captures

Highlights invert the value: they show goals — the one thing already reliably available — and omit minutes, substitutions, late cards and saves, which is what we lack. And the labour arithmetic decides it. Across ten fixtures a matchday:

ApproachAnalyst-hours / matchdayPoints settle
Video review, dual entry~7524–48h later
Live capture, dual entry~30at the whistle

There is also a hole, and it isn't random: StarTimes holds exclusive rights to 8 matches per round, not 10. A video-first pipeline would leave the smaller and promoted clubs unscored — compounding the same bias as the social route.

The route that beats all four

The NPFL has signed a ₦2.14bn five-year agreement with Inview Technologies and AS Production Hub covering broadcasting and data management. Production crews are already at those grounds and teamsheets are already being generated. It is not that no data operation exists — one is being stood up commercially, and there is a counterparty.

One teamsheet settles appearances, minutes and substitutions: the bulk of what 3.75 hours of video review would extract, at roughly one percent of the cost. The dual-entry pipeline is what makes that a partnership conversation rather than a request for a favour — it is the verification layer a league data operation needs and rarely has.

Rewards and the law

A deliberately narrow envelope

Since the Supreme Court's November 2024 ruling, lotteries, betting and gaming are residual matters reserved to the states. The federal National Lottery Act framework no longer supplies a national licence. Licensing runs state by state — in Lagos via the LSLGA's Promotional Permit, with a Universal Reciprocity Certificate reaching 20+ states. Lagos defines gaming by reference to "money or money's worth", and that bites whether or not the entrant staked anything. No confirmed carve-out exists for free entry or non-cash prizes, and no Nigerian case law addresses fantasy sports by name.

Positions taken for v1, enforced in code rather than in policy documents
DecisionCallWhy
Free entry, alwaysShipThe user never stakes. Paid entry is not implementable without a schema change — which is the point.
Non-cash prizes onlyShipAirtime, data, jerseys, tickets. Cash is modelled but locked behind two independent gates.
LSLGA Promotional PermitObtainDo not assume an exemption. Permit reference recorded against every award.
Cash prizesDeferredAdds AML and payments-KYC complexity for no v1 benefit.
Paid-entry prize poolsExcludedFull state gaming licence, fees cited at ₦50–150m+, plus responsible-gambling infrastructure.

The 18+ gate sits at signup, not at redemption

This is the most consequential line in the build. It resolves two separate exposures at once: the gaming statute expressly reaches promotional competitions and makes it an offence to knowingly let a minor take part; and independently, NDPA/GAID treats under-18s as children, with the 13–17 band an acknowledged unresolved grey area.

A "minors may play but not win" split does not help — it still leaves the product processing a child's data under an unsettled consent regime. So the gate is on the front door, and it fails closed: a missing, malformed or future date of birth is a refusal. An age gate that waves through bad input is not an age gate.

The v1 reward schedule. Small and frequent beats large and rare — on a data-metered market, an airtime top-up directly offsets the cost of playing.
CadenceRankPrize
Gameweek15GB data bundle
Gameweek2–10₦2,000 airtime
Gameweek11–100₦500 airtime
Month1Official club jersey
Month2–5Two tickets to an NPFL fixture
Season1NPFL matchday experience, travel included

Awards are written to an append-only ledger recording the permit reference and the basis for each award; a reversal is a compensating entry, never an edit. When a regulator or sponsor asks what was given to whom and why, "we changed the row" is not an answer. None of this is legal advice — Nigerian gaming counsel must confirm the permit position before any prize is awarded.

Honest scope

What the MVP is not

A scope list that contains only wins is not a scope list.

Left out on purpose

  • Real 2026/27 squads. Placeholder pool, flagged. The admin console is the path to real data.
  • Cash prizes and paid entry. Modelled, locked, awaiting a licence decision.
  • Live in-play scoring. Points settle after fixtures, not minute by minute.
  • Scraper pre-fill. Legally grey and fragile; a post-launch efficiency, never a replacement for verification.
  • iOS tuning. Same codebase, but Android is the priority market.

The critical path is not software

  • Legal. Gaming counsel, LSLGA permit, NDPC registration and a DPO.
  • Data. Recruit and train stewards; enter real squads; run dual entry against live matchdays before any public opening.
  • Pilot. A closed beta over 3–4 gameweeks, to prove the pipeline rather than the app.
  • Launch. Public release on the sponsor-funded schedule.

The software is the part that is already largely done.