Skip to content

How well priced is the closing line?

Every other measurement here asks whether a model can beat the market. This asks the inverted question, which needs no model at all: given the closing prices and what actually happened, how well priced was the line?

On shots on goal the Pinnacle close was measurably mis-priced in two consecutive seasons, by about three points, and showed no detectable average mispricing in the third. Betting that mispricing made no money in any season measured. Three points fell just short of the margin built into each bet: the return was negative every season, and in the two mis-priced seasons it cannot be told from break-even. Both halves are the finding. Neither is usable on its own.

The model has not beaten the Pinnacle closing line: shots-on-goal ROI −0.0709 [−0.0932, −0.0467] per unit over 7,171 bets in a 2025-26 backtest of 512 games. How this was measured

Shots on goal · Pinnacle closing prices · 3 seasons

The mispricing and the return, season by season

Each dot is a season’s figure and each line its 95% interval. In the gap, a line clear of zero is a mispricing; in the return, a line would have to clear zero to beat the margin.

The gap: implied minus actual

2023-24+0.0315 [+0.0203, +0.0432]

2024-25+0.0300 [+0.0177, +0.0427]

2025-26+0.0056 [−0.0053, +0.0170]

The Under on every prop: return per unit

2023-24−0.0049 [−0.0273, +0.0181]

2024-25−0.0079 [−0.0322, +0.0165]

2025-26−0.0555 [−0.0765, −0.0335]

How these are measured — shots on goal only; the tables below give every market
The gap is the mean probability the closing price implied for the Over, minus how often the Over won: positive means the Over was priced too dear. The return is per unit staked on the Under of every prop, at its closing price. Both intervals come from resampling games. The tables below give the same figures for every market, with the hold beside each row.

Was the close calibrated?

The gap is the mean probability the closing price implied, minus what actually happened: positive means the Over was priced too dear, and an interval containing zero means no direction is detectable. These are closing prices only, one per game, player and market, so nothing here says how lines move during the day. The margin is stripped proportionally; another method would redistribute it, and part of any favourite-longshot effect would come from that choice, which is why the hold is shown beside every row.

Was the close calibrated? The gap by market and season
MarketSeasonPricesGamesHoldImpliedRealizedGap95% intervalReading
shots on goal2023-246,9204997.12%0.51020.4788+0.0315[+0.0203, +0.0432]Over priced too dear
shots on goal2024-256,9204987.21%0.50900.4790+0.0300[+0.0177, +0.0427]Over priced too dear
shots on goal2025-268,3495657.03%0.50790.5023+0.0056[−0.0053, +0.0170]No detectable mispricing
points2025-268,6014977.03%0.46210.4680−0.0058[−0.0194, +0.0081]No detectable mispricing
assists2025-268,5564977.03%0.34170.3394+0.0023[−0.0097, +0.0141]No detectable mispricing
anytime goal2025-267,8215977.07%0.26000.2590+0.0010[−0.0079, +0.0103]No detectable mispricing

Does the mispricing clear the hold?

A gap is not an edge. Taking the Under on every prop, with no model and no selection, is measured here as the simplest way to bet a positive gap, not offered as a strategy: a baseline, not a ceiling. Each bet pays its own side’s share of the hold, so a negative return means the error was smaller than that share.

Does the mispricing clear the hold? Betting Under on everything, by market and season
MarketSeasonBetsWin rateReturn / unit95% intervalHoldReading
shots on goal2023-246,92052.12%−0.0049[−0.0273, +0.0181]7.12%Within noise of break-even
shots on goal2024-256,92052.10%−0.0079[−0.0322, +0.0165]7.21%Within noise of break-even
shots on goal2025-268,34949.77%−0.0555[−0.0765, −0.0335]7.03%Sub-vig
points2025-268,60153.20%−0.0728[−0.0986, −0.0465]7.03%Sub-vig
assists2025-268,55666.06%−0.0604[−0.0789, −0.0422]7.03%Sub-vig
anytime goal2025-267,82174.10%−0.0635[−0.0755, −0.0513]7.07%Sub-vig

Every return is negative. In the two mis-priced shots seasons the interval contains zero, so those returns are not distinguishable from break-even rather than measured losses, and a return you cannot tell from zero is not an edge either.

Right on average, wrong in the tails?

The same gap within ten equal-count bins of implied probability, against 1,000 redraws of a market that is exactly right.

Right on average, wrong in the tails? The binned comparison by market and season
MarketSeasonBins leaning overWorst binNull p95pReading
shots on goal2023-2410 of 100.05930.05220.015Beyond its own null
shots on goal2024-259 of 100.04770.05380.105Consistent with noise
shots on goal2025-267 of 100.05040.04780.036Beyond its own null
points2025-262 of 100.03150.04720.433Consistent with noise
assists2025-266 of 100.02390.04520.767Consistent with noise
anytime goal2025-266 of 100.03260.04510.320Consistent with noise

Read the two right-hand columns as the weakest numbers here. The worst bin is an extremum over ten, and its p-value flipped one published verdict when the sample grew by 5.7% while the headline gap barely moved. What replicates is the left-hand column: in the mis-priced seasons the bins lean one way almost uniformly, a level shift across the range. A favourite-longshot bias would have to sit at the same end twice, and it does not.

Where these figures come from — code version 1f7b1e5cd378

Each market and season is reported separately and never pooled: a figure blended across seasons is not a coarser answer to this question but an answer to a different one.

The figures cover the closing prices collected so far and move when the study is run again on a larger set. Every one comes from one run of the study at this code version, with its random draws fixed, so running it again at the same version gives the same numbers; none is edited by hand.