Project case study
Expected Edge
Probabilistic soccer modeling, evidence governance, and portfolio risk
Status Private soccer research application
Expected Edge began as a soccer forecasting application and developed into a broader decision-governance system. It ingests source-tracked data, generates versioned probability distributions, evaluates whether stated probabilities match observed outcomes (calibration), compares forecasts with market prices, and reviews candidates as a portfolio rather than as isolated picks. Its defining design choice is restraint: a prediction does not become an action merely because it exists. A historically promising model is not promoted when final, previously unseen holdout evidence or bias and uncertainty gates fail. The platform includes a Python command-line system, DuckDB analytical storage, Streamlit review surfaces, model cards, paper workflows, and offline portfolio-risk tools. It does not automate betting or claim a durable financial edge.
Thesis
Expected Edge is a probabilistic soccer decision system that treats data source history, calibration, market price, uncertainty, and portfolio survival as part of the model rather than as checks performed after a prediction is produced.
Representative artifact
A local daily review surface built from synthetic fixtures and model outputs.
- Maturity
- Synthetic demonstration
- Disclosure
- Synthetic reconstruction based on implemented read-only application accessors. Not an authenticated live dashboard screenshot.
The problem
Most sports-prediction products are organized around a visible answer: a projected winner, a score, a confidence percentage, or a suggested ticket. Expected Edge is organized around a more difficult question: what would have to be true for a model output to deserve action?
A likely outcome can still be badly priced. A positive single-number estimate (a point estimate) can disappear after calibration or uncertainty adjustments. Several individually plausible positions can depend on the same hidden match script. A model that looks promising during development can deteriorate on final holdout data reserved from training and tuning. Prediction, accuracy, and historical improvement are therefore incomplete evidence. None establishes action eligibility or financial performance on its own.
The system must preserve what was knowable before an event and produce a defensible probability distribution from that evidence. It must compare the distribution with an actual supplied price, then ask whether any exposure remains justified after model error, correlation, concentration, and capital constraints. It must also be able to complete that process without manufacturing an action.
The system
Expected Edge is a local-first soccer forecasting and decision-research system. Its baseline uses Elo ratings as a running estimate of team strength, converts relative strength into expected goals, and applies a Poisson model for goal-count probabilities to produce a normalized scoreline distribution. From that distribution it derives home-win, draw, and away-win probabilities (1X2), totals, both-teams-to-score, correct-score, and fair-odds outputs.
The baseline is intentionally transparent and explicitly uncalibrated. Forecast generation is separated from evidence classification, price comparison, candidate eligibility, portfolio construction, and exposure review. A probability can exist while the model remains experimental. A market can exist while comparison readiness is blocked. A candidate can exist while portfolio review rejects the combined exposure.
The decision flow is therefore not prediction to action. It is source evidence, versioned probability, evaluation, evidence classification, price comparison, portfolio review, bounded paper or manual consideration, and later learning. Missing or stale evidence, leakage risk, insufficient calibration, unavailable price, failed promotion, or unacceptable concentration can all end the flow in abstention.
How it works
Data that preserves what was knowable
DuckDB is the primary analytical store. CSV and manifest-based ingestion, deterministic snapshots, checksums, source identities, capture times, and acceptance states preserve provenance. Sensitive historical work uses copied databases or external immutable bundles rather than silently mutating accepted evidence. Provider paths are dry-run-first and remain behind explicit authority gates.
Temporal truth is treated as part of model validity. Pre-match research must not allow final lineups, corrected results, later ratings, or post-event facts to leak backward into a historical feature set. As-of selection, source version, mapping version, transformation version, and policy identity remain visible so an evaluation can be reproduced and challenged.
A provider workflow can stop before access when the available interface cannot prove that it respects the required source boundary. In that state, typed contracts and synthetic verification may still be useful engineering results, but no data access, model authority, prediction, or recommendation follows from them.
Evaluation before promotion
The evaluation layer tests both prediction error and whether stated probabilities match observed frequencies. It uses Brier score, log loss, probability-bucket calibration, expected calibration error, historical backtesting summaries, resampled uncertainty ranges (bootstrap intervals), model cards, and end-of-day learning reports. Evidence tiers carry reason codes and eligibility flags that control what stronger behavior is permitted. The existence of a strong tier does not imply that a current model occupies it.
A frozen historical study produced a challenger that improved on comparison models during development. It was still rejected when holdout degradation, goals bias, and uncertainty-coverage gates failed. The result was preserved as research evidence, but promotion and downstream authority remained false. This negative outcome is central to the system: favorable development evidence is not allowed to become a production claim when final gates do not clear.
Portfolio review and abstention
Manual or fixture-backed candidates can be reviewed for price value, nominal and cash exposure, payout distribution, variance, next-slate capital, and risk of ruin—the chance of depleting the available capital. A script taxonomy groups positions by shared match assumptions so that several tickets cannot masquerade as diversification when they depend on the same underlying game state.
Review packets, builder preflights, draft candidates, and score/rooting matrices remain offline and review-oriented. The rooting matrix evaluates manually supplied scenarios; it does not forecast a score. Some downside calculations depend on supplied probabilities and simplified independence assumptions, so correlation review remains a separate requirement.
Ready for review is not betting approval. No bet, no valid slip, blocked, and unavailable are successful governed outcomes. The application does not connect to sportsbooks, place wagers, automate cash-out decisions, or publish current picks.
Architecture
Expected Edge is built in Python around a large Typer command-line application, DuckDB analytical storage, and a private Streamlit review interface. Numerical and data work uses typed models and established scientific Python libraries. The operator surface covers ingestion, diagnostics, baseline prediction, market comparison, model evidence, model cards, learning reports, paper review, portfolio exposure, correlation, payout, variance, ruin, candidate, and scenario analysis.
The private dashboard includes daily-match and match-detail views alongside proposals, paper testing, model performance, model cards, ledger, slate, portfolio, and bankroll review. Access, owner identity, kill-switch, and data-source checks run before the broader interface is rendered. A bounded read-only hosted bridge may support one review surface, while the fuller analytical application remains local.
Reproducibility is carried through model-version identifiers, as-of timestamps, deterministic hashes, canonical structured reports, immutable evidence bundles, copied-database ingestion, lifecycle flags, and explicit authority states. Automated quality controls include deterministic fixtures, regression shards, linting, strict typing, repository-hygiene checks, and focused task reports. Those engineering controls demonstrate review discipline, not profitability or accepted forecasting authority.
Decisions and tradeoffs
A transparent Elo and Poisson baseline is easier to inspect and reproduce than a more opaque model, but its simplicity and lack of accepted calibration sharply limit what can be inferred from its output. Keeping forecasts visible while authority remains blocked creates more states in the product, yet prevents a generated number from acquiring permission merely by existing.
Paper-first progression slows operational use. New capabilities move through synthetic, historical, shadow, paper, and only then bounded manual stages. The latest accepted state has no production-grade calibrated champion, and development improvements do not establish promotion. Scouting and joint-event research remain governed research lanes rather than operationally accepted inputs.
Portfolio review adds assumptions of its own. Script taxonomies approximate shared failure modes, and some ruin calculations simplify dependence. Making those assumptions explicit is preferable to presenting false precision. The system therefore separates exposure, correlation, and capital questions and retains human review instead of claiming an autonomous optimizer.
Treating abstention as a first-class result makes the product quieter and sometimes leaves capital unallocated. That is an intentional cost. Expected Edge does not claim profitability or a durable financial edge; its authority is bounded by the evidence, price, provenance, and portfolio conditions that can actually be defended.
Evidence and current status
-
Implemented analytical platform
Core ingestion, the Elo and Poisson baseline, evaluation, evidence gating, private dashboard surfaces, paper review, and offline portfolio-risk workflows are implemented.
Qualification Software maturity does not establish production forecasting authority or financial performance.
-
Historical model rejection
A historical challenger showed development improvements but was rejected after holdout, bias, and uncertainty-coverage gates failed.
Qualification This is historical research evidence, not a current forecast, current recommendation, or financial-performance claim.
-
Abstention and authority
Evidence, price, provenance, and portfolio gates can produce blocked, unavailable, no bet, or no valid slip states.
Qualification The application does not connect to sportsbooks or automate betting execution.
Current status
Expected Edge is a private soccer research application with an implemented V1/RC1 analytical platform and active experimental research. The baseline, dashboards, evidence gates, paper review, and offline portfolio-risk workflows are functional. No production-grade calibrated champion is accepted, no current recommendation is published, and no profitability or durable edge is claimed.
Responsibility and limits
Uncertainty, refusal, and responsible use
The project is presented as analytical research and decision-support software, not gambling advice or a betting service. Historical metrics remain research evidence, portfolio calculations depend on supplied probabilities and explicit assumptions, and the system treats insufficient evidence and abstention as valid results.
Artifact record
Selected project artifacts
Architecture
Expected Edge separates forecast generation from evidence, price, and portfolio eligibility.
- Maturity
- Architecture diagram
Evidence classification
Model evidence controls permitted behavior; it does not guarantee profit.
- Maturity
- Research-only evidence
- Disclosure
- Synthetic or fixture-backed evaluation state; not a current forecast or financial-performance claim.
Decisions and tradeoffs
A promising historical challenger was rejected when final evidence gates failed.
- Maturity
- Historical research result — candidate rejected
- Disclosure
- Historical research result — candidate rejected; not a current forecast or financial-performance claim.
Portfolio reasoning
Candidates are reviewed as a portfolio, including shared downside and capital constraints.
- Maturity
- Synthetic demonstration
- Disclosure
- Synthetic reconstruction based on implemented read-only application accessors. Not an authenticated live dashboard screenshot.
Abstention
No valid slip is a successful decision when evidence or risk gates do not clear.
- Maturity
- Synthetic demonstration
- Disclosure
- Synthetic reconstruction based on implemented read-only application accessors. Not an authenticated live dashboard screenshot.
What the project demonstrates
Expected Edge demonstrates how probabilistic modeling can be embedded inside a disciplined decision institution. Responsible analytical engineering is defined not only by what a system can calculate, but by what it refuses to claim.