Research Notes · Open
Does home court matter less when the visitor is clearly better?
Across the full backtest, mostly no. Road favorites ended close to their forecast margin at every size of gap. The one exception was 2022-23.
Question
The model applies one home advantage to every game. A common argument is that a much better visiting team neutralizes the crowd, so home court should count for less when the road team is clearly stronger. If that were true, road favorites would beat their forecast margin, and by more as the gap grows.
First look
The first two seasons checked pointed in opposite directions. In 2022-23, road favorites won by less than predicted. In early 2023-24, they won by more. Two seasons were not enough to tell, so the question was rerun on the full walk-forward backtest.
Full backtest
The analysis takes every regular-season backtest game where the forecast favored the road team and compares the forecast road margin with the actual one:
def home_court(q):
"""Backtest games with a road favorite: forecast margin against the actual margin."""
d = q("""SELECT g.season, p.home_score_predicted::float - p.away_score_predicted::float pred,
(g.home_score - g.away_score)::float actual
FROM predictions p JOIN games g USING (game_id)
WHERE p.model_version = 'wf-v2' AND g.is_final AND g.season_type = 'Regular Season'
AND g.home_team_id <> g.away_team_id""")
road = d[d.pred < 0].copy()
road["road_pred"], road["road_actual"] = -road.pred, -road.actual
road["gap"] = pd.cut(road.road_pred, [0, 4, 8, 99], labels=["0 to 4", "4 to 8", "8 or more"])
def summ(g):
err = g.road_actual - g.road_pred
return dict(n=len(g), pred=r1(g.road_pred.mean()), actual=r1(g.road_actual.mean()),
diff=r1(err.mean()), se=r1(err.std() / np.sqrt(len(g))))
return dict(by_season=[dict(label=s, **summ(g)) for s, g in road.groupby("season")],
by_gap=[dict(label=str(k), **summ(g)) for k, g in road.groupby("gap", observed=True)]) Road favorites: forecast vs actual margin, by season
Average road-team margin in games the model expected the visitor to win.
Data table
| Forecast | Actual | Difference | Std. error | Games | |
|---|---|---|---|---|---|
| 2022-23 | 4.8 | 1.6 | -3.2 | ±0.6 | 491 |
| 2023-24 | 4.3 | 4.4 | 0.1 | ±0.7 | 435 |
| 2024-25 | 5 | 5.9 | 0.9 | ±0.7 | 462 |
| 2025-26 | 5.2 | 5.9 | 0.7 | ±0.7 | 500 |
| 2026-27 | 5.2 | 8 | 2.8 | ±2.2 | 44 |
Road favorites: by size of the forecast edge
All backtest seasons pooled.
Data table
| Forecast | Actual | Difference | Std. error | Games | |
|---|---|---|---|---|---|
| 0 to 4 pts | 2.2 | 1.8 | -0.4 | ±0.4 | 1,039 |
| 4 to 8 pts | 6.3 | 6 | -0.3 | ±0.6 | 596 |
| 8 or more pts | 11.1 | 11.1 | 0.0 | ±0.8 | 297 |
What it shows
- By size of gap there is no pattern. Small, medium and large road edges all finished within half a point of the forecast. That is the opposite of what the hypothesis predicts: the gap should widen as the visitor’s edge grows.
- 2022-23 stands out. Road favorites fell 3.2 points short of their forecast (±0.6 standard error). It was the first backtest season, and its model was trained on only one earlier season (2021-22). That is the more likely explanation than anything about home court.
- From 2023-24 on, road favorites beat their forecast by 0.1 to 0.9 points, each within about 1.3 standard errors of zero.
Next
The evidence is against a strength-dependent home advantage. The question stays open for one narrower check: whether the effect differs in the playoffs, where crowds and stakes are different. The backtest has only about 80 to 90 playoff games per season, so it may need several more seasons to answer.