Methodology
How the numbers are made
The mathematics behind every alert, projection and grade. Tunable parameters, weights and the exact feature set are kept private; everything else is here.
Overview
TenKSims is a drive-level Monte Carlo engine. Every game is simulated 10,000 times, one possession at a time, and the collection of final scores forms a full distribution of margins and totals rather than a single point estimate.
Inputs come from play-by-play data covering the 2015 season to the present. The team ratings and the simulation are rebuilt every week once the previous week's games are final.
Team strength inputs
Each team is described by efficiency per play split by pass and rush, success rate, explosiveness, turnover rates, red zone finishing and pace. Offense and defense are rated separately.
All inputs are opponent adjusted, so a strong week against a weak defense counts for less than the same week against a strong one. Current-season numbers are blended with a shrunk prior carried over from the previous season. Early in the season the prior carries more weight; as the sample grows, shrinkage decreases and the current season takes over.
Signal Score measures how far our simulation sits from the market. It is a disagreement meter, not a confidence rating. Across 61 graded games A/B grades have not outperformed C/D.
Injuries and quarterbacks
Starters are identified from snap share rather than depth charts. Each listed injury status is mapped to an expected availability, and a team's inputs are adjusted by the expected contribution of the players likely to miss time.
Quarterback changes get their own treatment. The starter's passing efficiency is replaced with the replacement's own sample, shrunk toward a league backup baseline so that a handful of good or bad snaps does not dominate. News that breaks after a slate is published is reflected at the next update.
Simulation
Each run plays the game drive by drive: possession outcomes are drawn from the two teams' adjusted rates, field position and clock carry forward, and scoring follows from how each drive ends.
The outputs are a score distribution, a margin histogram that preserves the mass on key numbers (3, 7, 6 and 10), win probability, and cover and total probabilities against the market line. The histogram on every game page is drawn directly from these runs.
Calibration
Raw simulation probabilities are overconfident, and we say so. A 2021 to 2025 walk-forward backtest showed that the raw share of covering runs overstates how often that side actually covers.
The main probability on each card is therefore shrunk toward 50 percent based on that backtest. The raw figure is still shown, smaller, as "model-implied" for transparency. The calibration chart on the results page tracks how well the shrunk numbers hold up live.
Market data
We take hourly snapshots of every regulated US sportsbook we can reach, plus Pinnacle as a sharp reference. Pinnacle is used to read the market, never as a book we alert on.
The consensus line is the modal line across regulated books at that snapshot. The opening line is the earliest snapshot we hold for the game.
Best-number valuation
A half point is valued by the historical probability that the final margin lands on the number being crossed. Among games lined near 3, 9.3 percent finish on exactly 3 and 6.7 percent on exactly 7. 3 is worth the most, then 7, then 6 and 10. Moving from +2.5 to +3 turns those games from losses into pushes.
Price differences are valued at the change in break-even probability, for example -105 versus -110. When a book offers a better number at a worse price, or the reverse, the worse part is charged as a cost against the better part. Only a net edge of $3 or more per $100 is flagged as an alert.
None of this depends on predicting the game. It is the value of shopping the line, and it holds whichever side you take.
Best-number pre-test
| Test | Threshold | Result | Verdict |
|---|---|---|---|
| Sides with a better number | 20% or more | 36.8% spreads / 36.1% totals | PASS |
| Average net edge per side | $3.00 per $100 or more | $1.93 spreads / $0.94 totals | FAIL |
| Persistence of an off-consensus number | 2 hours or more | 6.5 h median | PASS |
16% of sides carry $3 or more of edge; those are the only ones we flag. Shopping every line does not beat the vig on average. Regulated US books only, 168 hourly snapshots, Oct 16 to 23, 2026.
Projected line move
We compare our simulated spread to the opening consensus. In 1,274 games from 2021 to 2025, when our number sat 3 or more points off the opener and the line later moved at least a point, it moved toward our number 65.6 percent of the time (n=183). Betting our side at the opener captured +0.31 points of closing-line value on average. It did not produce a winning record against the spread, so we show it as market anticipation, not as a pick.
The effect held in every season tested, ranging from 53 to 72 percent.
What the backtest says about picks
Walk-forward over the 2021 to 2025 seasons, with the model only ever seeing data available before each game. Where the model and the closing line differed by 3 or more points, the model's side covered 48.8 percent against the closing spread. The model's average prediction error was 13.2 points versus 12.6 for the market, and calibration was flat: higher model confidence did not translate into higher hit rates.
We then searched 52 slices of the data (by week, spread size, totals, favorites, underdogs and similar) on a holdout set. None produced a profitable subset. The only hint was a weak early-season effect of 54.5 percent in weeks 2 to 5, on just 99 games.
This is why picks are secondary on TenKSims. The model view is shown as context, and the features we lead with are the ones the testing supports.
Grading rules
- Closing line: the consensus spread and total from our final snapshot before kickoff.
- Pushes: a game landing exactly on the line is a push and counts as neither a win nor a loss. When the model's spread equals the market spread, there is no side and the game is recorded as a push.
- Line-move hit: the closing spread moved from the opener toward the team we named. A move the other way is a miss, and an unchanged line is a push. This measures whether the market moved toward our number, not whether the bet won.
- Only games whose analysis was published before kickoff are counted. The first projected move posted for a game is kept; later refreshes cannot rewrite it.
- Results post after final scores are confirmed, normally the morning after the last game of the slate.
Changelog
- Oct 25, 2026Projected line moves become the headline model output.
- Oct 23, 2026Best-number alerts and the pre-test verdict.
- Oct 16, 2026Odds board and line shopping.
- Oct 2, 2026Injury layer added to team inputs.
- Sep 27, 2026Launch.