The capstone, worked: auditing an 11-game hot streak
Every course here ends in a capstone challenge, and a challenge without a visible standard is just homework. So here is one done properly, in public: the Statistics for Sports Data capstone — "audit one hot streak" — worked end to end on the realest streak in the bundled data.
The assignment, restated
The capstone brief: take a team's game-by-game results from the bundled data, compute a rolling and an EWMA form line, z-score the streak against the team's own season, and deliver a verdict — signal or noise — defended with the numbers. The bundled 2023-24 game log (documented here, one row per game, In-Season-Tournament final excluded since it doesn't count in standings) contains exactly one streak worth the trouble: the Houston Rockets won 11 straight between March 8 and March 29, 2024 — a streak as long as anything the 64-win Celtics produced, from a team that finished 41-41.
The audit
downloads/nba_home_results.csv; script: build/make_capstone_chart.py, which recomputes every number on this page.The bookkeeping, straight from the script's output. Houston entered the streak 27-35 (.435). During it, their rolling-10 win rate touched 1.000 — against a season mean of .501 and standard deviation of .188, that's z = +2.66 measured against their own year. The slower EWMA (α = 0.15), which the course teaches precisely because it refuses to overreact, peaked at 0.895 on the streak's final day. Then the season resumed: Houston went 3-6 (.333) the rest of the way and finished at .500 exactly. Remove the streak and the team's record was .423 basketball on both sides of it.
Signal or noise? The binary is the trap
Here is where the capstone earns its keep, because both easy answers fail. Call it noise and the Monte Carlo disagrees: a true-.423 team runs 11 straight somewhere in an 82-game season only 0.33% of the time (20,000 simulated seasons, seed printed in the script). You don't get to wave an 11-game streak away as coin-flip variance. Call it signal and the calendar disagrees: the streak predicted nothing — the team that emerged from it played worse than the team that entered it.
The resolution is in the schedule column, which is why the course makes you look at one: only 3 of the 11 streak opponents finished with winning records, and the run included two helpings each of the 15-67 Wizards and the 21-61 Trail Blazers (alongside one genuine scalp, 57-25 Oklahoma City). The honest verdict, in one sentence: a genuinely elevated three-week stretch, inflated by the league's softest schedule pocket, that carried zero forecast value. Real while it lasted; worthless as a prediction. Most streaks are both, and the false binary — "real or luck?" — is exactly what this audit teaches you to stop asking.
The control group of one
Boston also won 11 straight that season, and nobody wrote columns about it. Their rolling-10 averaged .781 with a standard deviation of .081 — less than half of Houston's spread. An 11-game streak from that baseline isn't an event; it's the baseline having a normal month. Same streak length, opposite meaning, and only the team's own distribution can tell you which one you're looking at. That's the whole argument for z-scoring streaks against the team rather than against the league.
If you're submitting this capstone
Your checklist, based on what this model answer needed: the team's full game sequence with any non-standings games excluded and the exclusion stated; both form lines (window and EWMA), with the window length and α declared, not defaulted silently; the z-score computed against the team's own rolling distribution; the before/during/after split; one honest look at opponent quality; and a verdict that commits. Any team, any streak, any sport in the bundled data qualifies — the parts that transfer are the discipline, not the Rockets.
The course this belongs to: Statistics for Sports Data, parts 3, 9 and 10 especially. The simulation machinery lives next door in Randomness, Inference & Simulation. And if you work one of these and want it read, send it — the honest ones get answers.