BetEdge
Data-driven bet analyser · parlay suggestions, best odds, probability math, not guesswork.
Web UI and API: pick a sport, and the system analyses the matches, builds the best parlay, and shows which book has the best odds. It correlates data · it doesn't guess.
ListenTwenty matches at once. Built a sports-prediction tool. The math behind every tip is visible, no more guessing in Excel.
BetEdge analyses matches across multiple sports books, builds parlay recommendations on probability math, and surfaces the best odds per outcome in one view. The studio shipped the multi-book ingest, the parlay-building heuristics, and the web + API surfaces.
We were copying odds across four browser tabs and getting parlays wrong in Excel, embarrassing. BetEdge puts twenty matches on one screen and shows the actual math behind each prediction, including why one is better than another. The only thing left to do is decide whether to place the bet. Our hit rate doubled.
What's on screen
Frame breakdown
- 01User surface
The whole experience the user sees
This frame shows the live product: data-driven bet analyser · parlay suggestions, best odds, probability math, not guesswork. Every component is ours · scope, design, code, deploy.
- 02Stack behind the screen
What's powering it: Flask, FastAPI, SQLite
4 stack components run behind this frame · Flask, FastAPI, SQLite drive the visible UI; the rest sit in the data layer. All studio-owned.
- 03What we shipped
Match and parlay analysis in one place
Data-backed betting decisions
- 04Status
Private deploy · under NDA.
Per the client's request the URL stays private · the build, architecture, and lessons can be shared in a scoping call.
How it shipped
Timeline- 01 · BRIEF
Why random picks lose long-term.
Pinned the value-thesis: positive expected value comes from cross-book odds arbitrage + correlated-bet sizing. Spec'd a tool that ranks parlays by EV, not by 'looks good'.
- 02 · ARCHITECTURE
Stack decisions before any code.
Decision doc captured the data flow, Flask, FastAPI, SQLite, Python role split, and the failure modes we'd handle in v1 vs defer. Cross-service boundaries (where AI ends and the web app begins) were drawn here so neither side leaked into the other later.
- 02 · BUILD
Flask front + FastAPI worker + SQLite store.
Flask serves the user surface, a FastAPI worker pulls odds across books on a cron, SQLite persists the historical odds for backtest. Parlay builder runs probability composition with correlation adjustment.
- 04 · POLISH
Performance, accessibility, and observability.
PSI / a11y / coverage budgets enforced as launch gates. Logging + metrics wired before cut-over · the team can answer 'is it working?' from a dashboard, not a Slack thread. Threat-model checklist signed off before traffic hits the box.
- 03 · SHIP
Web + API · explanations on by default.
Every recommendation comes with a one-line rationale (which odds, which book, why this combo) · the user knows why before placing.
What shipped
04- 01Ingest
Cross-book odds crawler
Pulls odds from multiple books on a cron · normalises to common markets before comparison.
- 02Parlay
Probability-composed parlays
Builder evaluates correlation between legs · doesn't pretend independent events stay independent.
- 03Best odds
Per-outcome book pick
For each leg, the recommendation surfaces the book with the best odds · easy to follow at the time of placement.
- 04Explainer
One-line rationale per pick
Why this combination, why this book, what the EV looks like · transparent default.
From the video
Frame by frame
01FrameElo Ratings · empty state, builds itself
Empty-state honesty · 'No Elo data yet. Ratings are built automatically as games complete. Run Refresh to start populating.' No fake placeholder rows, no demo data masquerading as real.
02FrameBest Bets · live analysis + confidence-tiered picks
'Run Analysis' button polls for results in real time. Four KPI tiles (Games Analysed 2, Value Bets 3, High Confidence 1, Medium Confidence 2) sit above the Top 5 Bets of the Day · a visitor sees the funnel without scrolling.
03FrameValue bet · 4-cell maths visible
Per-bet card opens up the maths: Edge 161.2%, our model probability 22.5%, the book's implied 8.6%, Kelly fraction 7.6% · plus form context. The user sees the value calculation, not just a recommendation.
04FrameParlays · Bold (103×) + Longshot (295×) built by model
Two pre-built parlays scoped to risk appetite: Bold (103.78× · 1.3% combined probability) for the disciplined bettor, Longshot (295.11× · 0.9% combined probability) for the lottery-ticket player · stake-to-payout shown for each.
THE PROBLEM
- −One person can't analyse 20 matches at once
- −Best odds are spread across books
- −Random betting doesn't hold up over time
WHAT THE CLIENT GOT
- Data-backed betting decisions
- Best odds in one view
- Parlays built on math, not feel
WHAT WE DELIVERED
- +Match and parlay analysis in one place
- +Best odds across every book
- +A reason behind every suggestion
- +Web UI and API both available
STACK
- Flask
- FastAPI
- SQLite
- Python
RELATED READING
- AI solutions · Websites, web apps & online shops · Cybersecurity · Custom software · everything elseQ3 2026 roundup: what shifted, what we shipped, what brokeThree months in. SZEP 2.0 live, NAV v3 cutover, AI Act enforcement, OWASP LLM Top 10 v2. Hard numbers, one strong opinion on the consulting tier.
- AI solutions · Websites, web apps & online shops · Custom software · everything elseQ2 2026 roundup: what shifted, what we shipped, what brokeFour months in. Eleven shipped projects, real before/after numbers, one strong opinion on what the consulting tier got wrong this quarter.
- Custom software · everything else · AI solutionsn8n vs Make vs custom code: 2026 automation stackNo-code automation is brilliant until it isn't. Here's the line where n8n / Make stop saving money and custom code starts - and how to tell which side you're on.
- AI solutionsAI agent pricing 2026: what an autonomous agent costsAn AI agent is not a chatbot with extra steps - it takes actions, and that changes the bill. Here are the real 2026 ranges and what drives them.