Our own Elo power ratings — built from real game results, then measured against the live betting market. Where they disagree is the signal. what do these numbers mean?
Our model's home-team win probability, next to the market's true probability. The market number isn't the sportsbook's posted line — we strip out the vig (the book's built-in margin, usually ~4–5%) so you see the real implied odds, not the padded ones. Each market cell shows the raw book line and the exact vig we removed. On the gap between them: a modest disagreement (2.5–5%) is the model's real read — that band has been our best. But a wide gap (5%+) is a warning sign, not a green light — when our number is that far off the market's, it almost always means the market knows something we don't (a scratch, an injury, a lineup we haven't priced), and our own record proves it: those picks are barely a coin flip. So we flag the wide gaps as a caution, never a play (why). Not advice — just the honest math, with our work shown.
| matchup | model (home) | market (home) | edge | model lean |
|---|---|---|---|---|
| loading today's board… | ||||
Our model's projected total runs, next to the market's over/under line. This is analysis, not a wager. Our totals model predicts about as well as the market but doesn't beat it — so we show where our math sits relative to the line as context, never as a pick. The honest write-up is in the ledger.
| matchup | our projection | market line | lean |
|---|---|---|---|
| loading totals… | |||
The luck column is how a team's actual win% compares to what it deserved from what it scored and allowed (Pythagorean expectation). Unlucky means winning less than the scoring implies — that tends to bounce back; lucky means riding fortune that usually regresses. It's a mean-reversion lens, not a pick — we don't fold it into the model until it's backtested (our rule), and it only appears once a team has 10+ games.
| # | team | elo | rating | gp | luck |
|---|---|---|---|---|---|
| loading ratings… | |||||