EDGE/ANALYTICS Start the trial
Sport by sport

How a projection is made.

Each model ingests its sport's raw data, produces a projected result, and converts it into a win probability. The engines differ by sport — and where a model is simple, or where the numbers are not ours at all, we say so rather than dress it up.

NRL · Match projections Gradient boosting

Data in. Match results from 2015 to the present, nrl.com fixtures, and a consensus of Australian bookmaker head-to-head odds.

Model. A gradient-boosted classifier for the win probability — with Elo ratings among its input features — plus separate boosted regressors for margin and score. The classifier's output is probability-calibrated (Platt scaling) as part of training.

Probability. The published probability is the model's own. Market consensus is used only as a reference: a projection is flagged VALUE when the model diverges from the de-vigged consensus by 10 points or more.

AFL · Player-stat signals Distributional

Data in. AFL Tables player statistics, the Footywire injury list plus manual late-out overrides, venue weather, and sportsbook prop odds.

Model. A projection blend of prior-season and current-season rates with recent-form windows, opponent pace, and tagger-matchup adjustments. Single-leg probabilities come from Poisson or Normal distributions per stat type; correlated multi-leg prices share one simulated game state.

Probability. Every win probability is passed through a calibration fitted on settled signals before any edge is computed — no raw model probability reaches the site.

An important caveat. AFL match-winner probabilities on this site are derived from de-vigged bookmaker odds, not from a model of ours. The graded pick and the market favourite are therefore the same side by construction. We label that market-derived everywhere it appears, and we do not present it as evidence of an AFL model.

NRL · Try-scorer signals Historical rates

Data in. Try-by-try match records since 2023, nrl.com team lists, and try-location data.

Model. Deliberately not a predictive model — it is a matchup tool. Player try rates are weighted 70% last six rounds / 30% full season and set against the opponent's positional defensive record.

Output. Signals are graded A/B/C by fixed threshold rules on rate and opponent rank. They are rankings of historical matchup strength, not win probabilities, and they are not presented as either.

MLB · Game projections Monte Carlo

Data in. Statcast pitch-level data, FanGraphs advanced metrics, MLB Stats API schedules, lineups and results, and sportsbook lines.

Model. A 20,000-run game simulation: expected runs from park factors, starting pitcher and bullpen quality, and weather; player props from per-plate-appearance rates and matchup adjustments.

Probability. Raw simulator probabilities are never published. Each market's win probability passes through a calibration fitted on hundreds of settled finals, and the published totals and margins carry fitted bias corrections. Games without a pre-game market are excluded from the slate entirely.

NBA · Player projections Monte Carlo

Data in. Official NBA box-score feeds, ESPN injury reports, defence-vs-position splits, and sportsbook player-prop lines.

Model. A full game simulation (10,000 runs per slate by default): possessions and pace, projected minutes from recent rotations and injuries, and per-minute player rates adjusted for matchup and form.

Probability. The simulated mean is deliberately anchored halfway to the bookmaker's line before over/under probabilities are computed, and book odds are de-vigged to fair probabilities. Signals that fail sanity checks — a projection implausibly far from the line, a degenerate simulation, invalid odds — are dropped or downgraded to PASS.

EPL & International · Match probabilities Dixon-Coles

Data in. Understat expected-goals data, player availability from the FPL API, and confirmed line-ups shortly before kickoff. International football fits the same engine on goals.

Model. A Dixon-Coles Poisson model — the standard academic football model — fitted with recency weighting.

Status. Both are marked tracking: no settled rows are graded yet, and no market odds are stored, so there is no baseline to measure against.

Keeping it honest

A methodology is only as credible as the machinery that stops it quietly failing.

Four mechanisms run without human discretion.

Projections are locked before kickoff

Round projections are snapshotted to a versioned, committed file only while every kickoff is still in the future. A snapshot that cannot be proven pre-match is voided and excluded from every statistic on the site.

Settled against official results

Outcomes come from official sources — nrl.com final scores, MLB and NBA box-score feeds, Squiggle for AFL — matched back to the locked projection. Losses are stored and shown alongside wins; nothing is backfilled.

Failing markets get suspended

When a market's settled results show the model losing its edge there, it is suspended in config and stops being published — as AFL goal and tackle props, AFL game totals and MLB home-run props are today. Suspensions are code, not judgement calls made after the fact.

A calibration gate blocks bad publishes

Before AFL and MLB signals reach the site, an automated check re-scores calibration on settled results. If stated probabilities drift more than 10 points from reality in any bucket, or the model scores worse than a no-skill baseline, the publish fails and nothing ships that day.

What this is — and isn't

Edge Analytics is a decision-support projection tool. It shows what calibrated models expect and how those expectations have scored historically. It is not gambling advice, and no probability on this site is a guarantee of anything: a 70% favourite loses three times in ten, and past model performance does not guarantee future results. Sports without enough settled history show their live sample count instead of a record — we would rather show you tracking than a number that means nothing yet.

The rest of the site is one page.

This section lives there too — you were sent a direct link to it.