Skip to main content
Read-only snapshot: model data as of 2026-07-16; paper desk record through 2026-10-22. No live data; paper units only.
CourtVision
Ask Scout
← Research papers

Research paper

Rest, load and outcomes

The published schedule-fatigue index under review and the load-bearing index in the NBA, with their observation windows kept separate

Abstract

This note originally described two NBA measures. Correction, 2026-09-29: the published Schedule Fatigue Tax (SFT) claimed a points-per-100 offensive-rating unit for its -1.73 anchor, but the cited validation ledger measures average scoring margin on zero rest (-1.41, n=856) versus at least one day of rest (+0.32, n=3876). Its difference is zero-rest minus rested, not an offensive-rating contrast. The derived offensive-rating tax is under review and must not be used as a measured performance cost. The underlying 90 team-season back-to-back counts and frequencies (2023-24 through 2025-26) remain descriptive, as does the separate raw per-36 box-composite comparison (-0.315, 12000 back-to-back player-games versus 40157 rested player-games). The Load-Bearing Index (LBI) separately compares player active-versus-missed outcomes with two estimators from different seasons: Elo on/off for 2024-25 and raw win-rate comparison for 2025-26 through 2026-04-12. They name the same leading player for only 1 of 30 teams. Neither SFT nor LBI establishes a causal effect or a game forecast.

Data integrity

The Schedule Fatigue Tax ORtg estimate is withheld. Its cited -1.73 result measures scoring margin (no-rest minus rested), not offensive rating per 100 possessions. The historical artifact misstates both the unit and subtraction order; its ORtg-derived values cannot be interpreted as validated measurements. Schedule counts and frequencies remain descriptive. The review date is not an observation date.

  • novel_schedule_fatigue_tax
Read the full finding

1 Question

This note asks how an NBA team's schedule exposure and roster availability relate to observed outcomes. The published Schedule Fatigue Tax claimed a team-season offensive-rating penalty, but that unit is under review; the supported schedule facts are back-to-back counts and frequencies plus a separate raw per-36 box comparison. The Load-Bearing Index uses two different one-season estimators of player dependence and records where they disagree.

The public correction receipt is /data/audits/nba-schedule-fatigue-units.json, reviewed 2026-09-29. That is the audit date, not the observation date of the rest comparison; the source receipt does not publish an as_of timestamp.

Both measures are pre-tip-off conditioning variables. Rest days are fixed once the league schedule is released; which player is or is not available is known, with injury reports, before a game starts. Neither measure is presented here as a forecast, and neither is tested here as a live input to a probability model.

2 Data and definitions

The historical Schedule Fatigue Tax source (novel_schedule_fatigue_tax.json) reports 90 team-seasons from 2023-24 through 2025-26, including back-to-back game count and frequency. Its points-per-100 offensive-rating variant is under review because the cited mechanism receipt measures scoring margin. The source manifest has no as_of date; these seasons are the published observation scope, not a verified computation date.

That module's source_artifacts field points to schedule_density.json, which supplies the underlying per-36 box-composite means by schedule-density state: 12000 back-to-back player-games, 17531 in a 3-in-4 window, 20120 in a 4-in-6 window, and 40157 rested player-games (2 or more days rest, no compression), pooled from 77744 total rows and 7222 team-games across the same three seasons. schedule_density.json's manifest as_of is also not published. Its own methodology states the three density classes overlap -- a back-to-back that closes a cluster is also a 3-in-4 -- so their player-game counts are not additive.

The public mechanism ledger records two b2b_rest_penalty runs on the same corpus tag. The n=4732 run reports average scoring margin -1.41 on zero rest (n=856) versus +0.32 after at least one rest day (n=3876), giving zero-rest-minus-rested -1.73 (p=0.005645490426098632). The n=7192 run reports -1.61 versus +0.35, giving approximately -1.955 (p=0.0001174325580081608). These are scoring-margin associations, not offensive ratings or points per 100 possessions. Neither ledger row has an as_of timestamp, and the overlap of their two samples is unrecorded.

The Load-Bearing Index module (novel_load_bearing_index.json) reports 30 teams, each with two independently sourced estimators: estimator_a is an Elo on/off win-probability comparison for the 2024-25 season, and estimator_b is a raw win-rate comparison between games a player was active and games that player was missed, for the 2025-26 regular season through 2026-04-12. These two as_of windows (as_of.estimator_a, as_of.estimator_b) are printed inside the module itself and are not the same population; that distinction is kept separate throughout this note.

nba_form_curves.json carries no back-to-back, rest, or schedule field in either its insights or showcase build, so it contributes nothing here. nba_consistency_profiles.json (as_of 2026-04-12) does not condition its coefficient-of-variation numbers on rest either, but its own caveat and not_this fields explicitly flag rest as an uncontrolled variable in that module, consistent with the treatment below.

3 Method

The historical SFT source multiplied each team-season's back-to-back frequency by -1.73 and labeled that product a credible points-per-100 offensive-rating tax. That interpretation is unsupported because the anchor came from average scoring margin, not offensive rating. Its team ordering is only a rescaling of back-to-back frequency. Separately, schedule_density.json reports a raw -0.315 box-composite-per-36 difference for back-to-back versus its own rested baseline. That baseline requires at least two rest days and no compression, while the mechanism ledger compares zero rest with at least one day; these are different cohorts and should not be fused into one tested effect.

The rest-state margin test behind the -1.73 anchor compares average scoring margin on zero rest days (a back-to-back) against average margin on one or more rest days, within one corpus of player boxscores. It is not a controlled experiment: the schedule-maker chooses which games fall on a back-to-back, and travel, opponent quality and home-away patterns are not held fixed between the two rest states.

LBI is defined as LBI_a = the largest, over a team's roster, of win probability with a given player minus win probability without that player (Elo on/off), and LBI_b = the largest, over a team's roster, of win rate while a given player was active minus win rate while that player was missed (raw record). Agreement is flagged true only when the two estimators name the same player for a team. Because estimator_a draws on 2024-25 and estimator_b draws on 2025-26, a match or mismatch between them is a directional cross-check across two different one-season samples, not a paired measurement of the same games.

4 Results

The first two tables show the published scoring-margin and raw per-36 rest comparisons. The third lists team-season back-to-back exposure and the separate per-36 descriptive rescaling; it withholds the unsupported offensive-rating tax. The remaining tables show LBI's two estimators.

Team scoring margin by rest state, the two recorded b2b_rest_penalty measurement runs
Measurement runRest staten (games)Avg scoring marginp-value
Run 1 (total n=4732)0 days rest (back-to-back)856-1.410.005645
Run 1 (total n=4732)1+ days rest3876+0.320.005645
Run 2 (total n=7192)0 days rest (back-to-back)1278-1.610.000117
Run 2 (total n=7192)1+ days rest5914+0.350.000117

mechanism_ledger_export.json, the two basketball_nba mechanism rows named b2b_rest_penalty. Differences are zero-rest minus at-least-one-day-rest average scoring margin: -1.41 - 0.32 = -1.73 in run 1 and -1.61 - 0.35 is about -1.96 in run 2 (published effect -1.955 reflects unrounded means). Both are CONFIRMED_LOCAL on the same corpus tag. The ledger publishes no confidence interval or as_of date, and neither result is an offensive-rating or possession-based measure.

Per-36 box composite by schedule-density state, pooled 2023-24 through 2025-26
Schedule staten (player-games)Per-36 compositeDelta vs rested
Rested (baseline, 2+ days, no compression)4015713.9050 (baseline)
Back-to-back1200013.591-0.315
3-in-4 days1753113.688-0.217
4-in-6 days2012013.712-0.193

schedule_density.json, per36_deltas and rested_baseline_per36. Classes overlap and are not additive -- a back-to-back closing a cluster is also a 3-in-4. No CI or p-value is published for these pooled per-36 deltas; the source declares them descriptive-only.

The two public rest comparisons both point toward lower recorded outcomes with less rest, but they measure different outcomes and use different rested baselines. The scoring-margin receipt does not validate an offensive-rating tax. Team-season back-to-back frequencies can still be compared directly.

Back-to-back exposure and raw per-36 companion, selected team-seasons from 90 published
Team-seasonBack-to-back gamesBack-to-back frequencyFrequency-weighted composite / 36
DEN 2025-26170.218-0.0687
ATL 2024-25170.21-0.0662
HOU 2024-25170.21-0.0662
GSW 2023-24170.207-0.0652
LAC 2024-25170.207-0.0652
POR 2024-25130.159-0.0501
BOS 2025-26130.159-0.0501
ATL 2025-26120.158-0.0498
CHI 2025-26120.158-0.0498
MEM 2025-26120.156-0.0491

novel_schedule_fatigue_tax.json, results[] (historical source). These selected rows are ordered by back-to-back frequency, the only team-specific input. The raw per-36 companion is descriptive and uses the separate schedule_density.json baseline. The original points-per-100 offensive-rating field and its chart are under review and omitted here.

The Load-Bearing Index results below rank the same 30 teams under each estimator separately. Only 1 of 30 teams is named by both estimators (IND, Pascal Siakam), an agreement rate of 0.0333 (agreement_summary.n_agree over agreement_summary.n_teams_both_estimators).

Load-Bearing Index, estimator A (Elo on/off win probability, 2024-25), most and least concentrated of 30 teams
TeamMost load-bearing playerDelta win probabilityOn/off net rating delta
DENNikola Jokic0.582223.713
OKCShai Gilgeous-Alexander0.517115.763
LALDorian Finney-Smith0.465614.944
MILGiannis Antetokounmpo0.444114.231
LACIvica Zubac0.405111.965
MINNaz Reid0.20925.85
WASRichaun Holmes0.203214.126
CHAMoussa Diabate0.15057.99
DETTobias Harris0.14474.139
PHIGuerschon Yabusele0.13715.279

novel_load_bearing_index.json, results[].estimator_a_elo_onoff (top five and bottom five of 30 teams). Estimator A does not publish a game-count denominator for this comparison; read the win-probability delta and net-rating delta together, without a sample-size column, and see Limitations.

Load-Bearing Index, estimator B (raw active-versus-missed win rate, 2025-26 through 2026-04-12), most and least concentrated of 30 teams
TeamMost load-bearing playerDelta win rateGames active (n)Games missed (n)
CHABrandon Miller0.45436517
LACBrook Lopez0.4038757
PORRayan Rupert0.3988487
MILKyle Kuzma0.36596912
DETDuncan Robinson0.3532775
TORImmanuel Quickley0.1697012
SACMaxime Raynaud0.1588748
PHXRyan Dunn0.15487012
MINJaden McDaniels0.1027738
BOSNeemias Queta0.0842765

novel_load_bearing_index.json, results[].estimator_b_raw_withwithout (top five and bottom five of 30 teams). Games active plus games missed is each player's own available games inside that tenure window, not a full 82-game schedule; teams differ in total games covered.

CHA, LAC, MIL and DET each appear in the estimator B top five while sitting outside the estimator A top five for the same team, which illustrates that the two estimators frequently disagree on magnitude as well as on which player is named.

5 Robustness and what would falsify this

The validation ledger records two negative zero-rest-minus-rested average scoring-margin differences, -1.73 (n=4732, p=0.005645490426098632) and -1.955 (n=7192, p=0.0001174325580081608). Both share one corpus tag, and their row overlap is unrecorded, so the second is not an independent out-of-sample replication. They do not measure offensive rating. The published SFT offensive-rating variant is under review; a fresh possession-based receipt would be needed to support that unit.

A team-by-schedule interaction analysis would test whether the observed margin association differs by team. No such test is published. The historical SFT ranking simply rescales each team's back-to-back frequency, so it cannot establish which team is more fatigue-prone.

For LBI, a robustness check would run both estimators on the same season for the same 30 teams; the agreement rate would be expected to rise if the underlying signal were estimator-independent. At 1 of 30 (3.33 percent) across two different seasons, the current data does not support treating either estimator's top-named player as validated. Running estimator B on the 2024-25 season, matching estimator A's window, would be the natural next check.

6 Limitations

This note does not establish a team-specific or causal fatigue effect. The source rest receipt measures scoring margin, while the published SFT variant mislabeled its derived values as offensive rating; that variant is under review. The separate per-36 box composite uses another rested baseline and is unadjusted for roster, opponent, minutes, and venue. The two LBI estimators remain associational and cover different NBA seasons.

  • The historical SFT numerical ranking is a constant times back-to-back frequency. It is not a validated points-per-100 offensive-rating ranking; compare the supported back-to-back frequencies directly.
  • The two b2b_rest_penalty runs (n=4732 and n=7192) share one corpus tag and the overlap between their rows is not recorded, so they are not two independent samples; rest days are chosen by the schedule-maker rather than assigned at random, so either run is an association, not a randomized comparison.
  • The two LBI estimators cover different seasons (2024-25 versus 2025-26 through 2026-04-12), so their 1-of-30 agreement is cross-season corroboration, not a paired estimate.
  • Both measures aggregate to the team level and do not adjust for roster changes, opponent strength, minutes distribution, or blowout-driven lineup substitutions.
  • Estimator A publishes no game-count denominator, so its ranking cannot be weighted by sample support the way estimator B's active and missed game counts allow.

7 How to read this on the site

Read the source rest-margin receipt and raw schedule-density rows alongside this paper. The historical SFT module and chart retain under-review offensive-rating values for audit, not as current performance claims; use its back-to-back counts and frequencies for descriptive schedule comparison. The nba-schedule-compression-profile analysis is a different summary of schedule shape. The LBI estimators should be read with their separate season windows and player support counts.

Evidence

  1. novel_schedule_fatigue_tax.jsondate not publishedSource path: /analytics/m/novel_schedule_fatigue_tax/
    Evidence field inventory (20 paths)
    • results[].team
    • results[].season
    • results[].b2b_games
    • results[].b2b_freq
    • results[].sft_credible_pts_per100_ortg
    • results[].sft_descriptive_composite_per36
    • schedule_inequality.n_team_seasons
    • schedule_inequality.sft_credible_min
    • schedule_inequality.sft_credible_max
    • schedule_inequality.sft_credible_range
    • schedule_inequality.sft_credible_std
    • schedule_inequality.b2b_freq_min
    • schedule_inequality.b2b_freq_max
    • schedule_inequality.per_season_b2b_freq_range
    • mechanism_receipt.effect_cited_from_receipt
    • b2b_ortg_effect_pts_per100
    • composite_per36_delta_vs_rested
    • formula
    • declared_confounds
    • headline
  2. schedule_density.jsondate not publishedSource path: /analytics/m/schedule_density/
    Evidence field inventory (16 paths)
    • input_coverage.rows
    • input_coverage.team_games_total
    • input_coverage.team_seasons_reported
    • input_coverage.player_games_pooled
    • input_coverage.rested_player_games
    • rested_baseline_per36.composite_per36
    • per36_deltas.b2b.n_player_games
    • per36_deltas.b2b.composite_per36
    • per36_deltas.b2b.composite_per36_delta_vs_rested
    • per36_deltas.3in4.n_player_games
    • per36_deltas.3in4.composite_per36
    • per36_deltas.3in4.composite_per36_delta_vs_rested
    • per36_deltas.4in6.n_player_games
    • per36_deltas.4in6.composite_per36
    • per36_deltas.4in6.composite_per36_delta_vs_rested
    • not_this
  3. mechanism_ledger_export.jsondate not publishedSource path: /analytics/m/mechanism_ledger_export/
    Evidence field inventory (4 paths)
    • headline_insight
    • what_it_means
    • cited[]
    • as_of
  4. mechanism_ledger_export.jsondate not publishedSource path: /analytics/m/mechanism_ledger_export/
    Evidence field inventory (14 paths)
    • source
    • by_sport.basketball_nba.mechanisms[mechanism=b2b_rest_penalty].mechanism
    • by_sport.basketball_nba.mechanisms[mechanism=b2b_rest_penalty,effect=-1.73].effect
    • by_sport.basketball_nba.mechanisms[mechanism=b2b_rest_penalty,effect=-1.73].p
    • by_sport.basketball_nba.mechanisms[mechanism=b2b_rest_penalty,effect=-1.73].corpus
    • by_sport.basketball_nba.mechanisms[mechanism=b2b_rest_penalty,effect=-1.73].evidence
    • by_sport.basketball_nba.mechanisms[mechanism=b2b_rest_penalty,effect=-1.73].verdict
    • by_sport.basketball_nba.mechanisms[mechanism=b2b_rest_penalty,effect=-1.73].as_of
    • by_sport.basketball_nba.mechanisms[mechanism=b2b_rest_penalty,effect=-1.955].effect
    • by_sport.basketball_nba.mechanisms[mechanism=b2b_rest_penalty,effect=-1.955].p
    • by_sport.basketball_nba.mechanisms[mechanism=b2b_rest_penalty,effect=-1.955].corpus
    • by_sport.basketball_nba.mechanisms[mechanism=b2b_rest_penalty,effect=-1.955].evidence
    • by_sport.basketball_nba.mechanisms[mechanism=b2b_rest_penalty,effect=-1.955].verdict
    • by_sport.basketball_nba.mechanisms[mechanism=b2b_rest_penalty,effect=-1.955].as_of
  5. novel_load_bearing_index.jsondate not publishedSource path: /analytics/m/novel_load_bearing_index/
    Evidence field inventory (16 paths)
    • as_of.estimator_a
    • as_of.estimator_b
    • agreement_summary.n_teams_both_estimators
    • agreement_summary.n_agree
    • agreement_summary.agree_rate
    • results[].team
    • results[].estimator_a_elo_onoff.player_name
    • results[].estimator_a_elo_onoff.delta_winprob
    • results[].estimator_a_elo_onoff.on_off_net_rating_delta
    • results[].estimator_b_raw_withwithout.player_name
    • results[].estimator_b_raw_withwithout.delta_win_rate
    • results[].estimator_b_raw_withwithout.n_active
    • results[].estimator_b_raw_withwithout.n_missed
    • results[].agreement_same_player
    • declared_confounds
    • headline
  6. nba_consistency_profiles.jsonas_of 2026-04-12Source path: /analytics/m/nba_consistency_profiles/
    Evidence field inventory (2 paths)
    • methodology.caveat
    • not_this[]
Back to research papers