liveBook · Manning

Over/under

As explained in Statistics Slam Dunk

An over/under is a betting line representing the predicted combined score of opposing teams, with wagers determined by whether the actual score is higher or lower.

An over/under is a predicted combined score for opposing teams. Betting the over means expecting the teams to score more than the line; betting the under means expecting fewer points. The winner, losing margin, and final score by themselves do not determine the wager—only the combined point total relative to the line does. section 17.0

Oddsmakers publish an opening total intended to attract balanced wagers. As money enters the market, the line can move upward to encourage under bets or downward to encourage over bets. The closing total records the line when betting closes, making it useful for comparing market expectations with the actual combined score. section 17.0

Memphis versus Indiana

For the October 17, 2018, Grizzlies–Pacers game, the opening total was 209. A bettor taking the over expected at least more than 209 combined points, while an under bettor expected fewer. The line eventually closed at 204.5, indicating that most betting money supported the under. The point spread answered a different question—Indiana's expected margin—so it should not be confused with the over/under. section 17.0

A practical analysis compares each total with the game’s actual combined points:

  • Create differences such as actual points minus the opening total and actual points minus the closing total. section 17.5.1
  • Count whether the opening or closing total was nearer to the actual score, then reshape the counts with pivot_longer(). section 17.5.1
  • Plot the comparison with ggplot2 and geom_bar(), adding labels and facets to examine total movement or month. section 17.5.1
oddsdf3 %>%
 summarize(SUM1 = sum(diff_ptsT_opentotal > diff_ptsT_closetotal),
           SUM2 = sum(diff_ptsT_closetotal > diff_ptsT_opentotal),
           SUM3 = sum(diff_ptsT_opentotal == diff_ptsT_closetotal)) %>%
 pivot_longer(cols = c("SUM1", "SUM2", "SUM3"),
            names_to = "sum",
            values_to = "total") -> tblA

This R pipeline counts games in which the opening or closing total was closer to the actual combined score, producing a tidy object for visualization. section 17.5.1

Across the 2018–19 NBA regular season, closing totals were more often nearer to game results than opening totals, suggesting that subsequent market wagers improved on the initial expert estimate. The result describes this dataset and season rather than guaranteeing profitable bets. section 17.5

How Statistics Slam Dunk covers it

How deep it goes
Defines betting logic, explains line movement, and works through R comparisons, stopping short of modeling wager profitability.
Examples
Uses a 2018 Grizzlies–Pacers line and 2018–19 NBA charts comparing totals by movement, month, counts, and average variance.
What it assumes
Assumes NBA game and odds data while defining opening totals, closing totals, and point spreads from zero.
What you can do after
Apply it via dplyr, tidyr, and ggplot2 to evaluate whether opening or closing totals better approximate actual combined scores.
How it connects
Connects opening totals, closing totals, point spreads, exploratory data analysis, and collective intelligence.

This explainer was generated by Manning's knowledge graph from the text of Statistics Slam Dunk. The section links point to the parts of the book it draws on.