Work → Portfolio → Personal Projects

Edge Model

A real-time sports championship prediction tool — owned end-to-end, from the statistical model to the deployment pipeline. Live at edgemodel.tech.

End-to-End PM Solo Operator Live Product v0.7.8 Oct 2026

The problem

Most tools that cover sports championships show you standings. Standings tell you who has won the most points so far — not who is most likely to win from here. Those are often the same answer, but not always, and the difference matters a great deal to anyone trying to think clearly about what is actually going to happen.

The tools that do attempt predictions tend to treat the current leader as nearly certain and everyone else as a footnote. That is not how uncertainty works. And for fans following leagues in Africa — the Botswana Premier League, the SA Betway Premiership — there was no tool at all.

Edge Model was built to answer one question well: given what has happened so far, which team is most likely to win? It gives every team a probability — however small — and updates those probabilities in real time as results come in.

11
Live competitions
60+
Features & fixes shipped
0.7.8
Current version

Product decisions

Product thinking shows up most clearly in trade-offs. Here are the ones that shaped Edge Model.

Focus

One question, answered well

The product does not try to be an all-purpose sports dashboard. It answers one question — who is most likely to win? — and builds every feature in service of that. Keeping the question narrow made it possible to answer it honestly.

Honesty

Uncertainty is the feature

Most prediction tools hide their uncertainty to look more confident. Edge Model does the opposite: every team always has a probability, and the model's track record is public at /metrics. A Brier score and calibration chart hold it accountable. Users deserve to know how much to trust what they are reading.

Operations

No framework, minimal ops burden

As a solo operator, every dependency is something that can break at an inconvenient time. Choosing vanilla JS and Python's standard library over a framework was not an engineering statement — it was an ops decision. The surface area that can fail is deliberately small.

Engagement

Group Picks — a social layer

Friends competing against each other and the model creates a reason to return to the product daily, not just after big results. Picks are hidden until kick-off so no one can game the leaderboard. The feature was built because early users wanted a stake in the predictions, not just a view of them.

Market

Africa-first presets

The Botswana Premier League and SA Betway Premiership were not added as an afterthought. They were part of the original motivation. The same product quality available to EPL fans should be available to fans following African football. That required building an ingestion pipeline that could extend beyond the well-supported European leagues.

Automation

Eliminating manual data entry

Early versions of the tool required manually entering each result. That was the biggest friction point in the product. Auto-ingestion for the five major European leagues — running daily on weekdays and every three hours on weekends — removed that friction entirely and made the product feel live rather than maintained.

How the product is run

Roadmap and bug discipline

Every feature and bug fix is tracked in Linear, logged in a versioned changelog, and shipped with a structured commit message. Version 0.7.8 represents over 60 iterations since launch — not a big-bang release, but a product that has been continuously improved in response to real use.

Working with AI

Claude has been a collaborator throughout the build — writing features from implementation plans, diagnosing bugs with structured reports before touching code, maintaining changelog entries, filing Linear tickets, and sending Slack notifications on ship. This is not a side note: it is a deliberate working methodology. Edge Model is a proof of concept for what a solo PM-builder can ship when paired with a structured human-AI engineering process.

Accountability to users

The /metrics page is public. Brier score, calibration decile chart, and market comparison are visible to anyone. The model's uncertainty is honest and documented — because a prediction tool that cannot be held accountable is not a product, it is just noise.

"I grew up in Botswana, and I left in pursuit of better educational opportunities in the hope that one day I would use the education in the service of my country and continent."

The Botswana Premier League preset is the product remembering why it was built.

The stack

Every layer chosen for a reason, not a habit.

FrontendVanilla JS, single-fileNo build step, no upgrade cycles
BackendPython stdlib HTTP serverZero runtime dependencies
Real-timeServer-Sent EventsAll tabs update on every result write
PersistenceJSON on a cloud volumeScale doesn't require a database yet
AuthHMAC-signed session tokensStateless, no session store to manage
Odds dataThe Odds APIMarket edge detection
Results datafootball-data.orgFree tier covers all 5 EU leagues
Testspytest + PlaywrightUnit, API, and E2E coverage
Bug trackingLinearStructured tickets, not mental overhead
Visit edgemodel.tech → ← Return to Portfolio