How this was built
Every number on the main page comes from one committed dataset and the code in this repository. Here is what that dataset is, how a stoppage becomes a momentum number, what the comparisons control for, and where the honest limits are.
↓ Download the full report (PDF)00 — Findings in brief
The team on top of momentum loses about −22 momentum points in the five minutes after a mandatory hydration break. But the same teams lose about −17 at quiet, break-free minutes, so most of the drop is regression to the mean, the natural cool-off after a hot spell, not the whistle.
What is left is a gap of about 3 points between a break and no break for the same teams; but even across the full tournament, that gap's 95% interval (-0 to +7 points) still includes zero, not distinguishable from no effect, and even the full-tournament sample leaves it suggestive, not proven. A separate look at the weather suggests most matches never reached the heat a cooling break is designed for. None of this is a causal verdict: across all 104 matches the gap never cleared chance.
01 — What this measures
The question is narrow and testable: do FIFA's mandatory in-match hydration breaks shift momentum away from the team that was on top? The outcome is FotMob's per-minute momentum index, their model of which side is on top, built from the flow of attacks and chances, not the scoreline. The project reads that number; it does not compute one. Positive means the home side is pressing, negative the away side.
It ran as a live analysis through the tournament; the page now reflects the final dataset — all 104 matches through the July 19 final.
02 — Where the data comes from
Three sources, each doing one job:
- FotMob: the per-minute momentum series, and match lineups (used for the heat check).
- ESPN: text commentary, which gives the exact timing of stoppages (and VAR / injury events), so breaks are detected from what actually happened, not a hardcoded clock.
- Open-Meteo: temperature and humidity at each venue and kickoff for WBGT, and the historical climate of clubs' home cities for the acclimatization check.
The project publishes derived data only: the processed dataset and dated summaries are committed to the repo, but raw scraped payloads are never redistributed, out of respect for the sources' terms. Scraping runs locally on a home connection; the public site is rebuilt by CI from the committed dataset and never scrapes. Git history is the snapshot system; each day's estimate is a commit.
03 — From a stoppage to a number
For every detected stoppage, two five-minute windows of momentum are taken: the pre window (the five minutes before the whistle) and the post window (the five minutes after), excluding the stoppage minute itself. The outcome is the change between them: momentum_delta = post mean − pre mean.
Momentum is home-positive, so each stoppage produces two rows, one from each team's perspective (the away row is just the negative). Because they mirror each other, the pooled average is zero by construction. So the project always reports the team that was on top before the break. The "momentum killer" claim is specifically that a break pushes momentum away from whoever was ahead.
04 — The comparison baselines
A team that just had a blazing five minutes tends to cool off anyway, break or no break. That regression to the mean is the single biggest threat to reading the raw drop as an effect. So the project runs the exact same measurement where no break was mandated, on the same FotMob scale, and compares:
- The same 2026 teams at quiet minutes (−17): the cleanest control, identical teams, identical tournament, just no whistle. Anything fixed about a team (its quality, its heat, its altitude) is differenced out here.
- World Cup 2022 (−15) and Euro 2024 (−16): national-team football in cooler settings, no mandated breaks.
- Copa América 2024 (−10): national teams in US summer heat, but a noisier single edition.
- CONCACAF Gold Cup 2025 (−18): national teams in the same US/Canada host region and June heat as 2026, many of them 2026 sides too. The closest no-break analog. The 2023 edition is excluded because FotMob carries no per-minute momentum for it.
- Club World Cup 2025 (−23): clubs, which regress harder than national teams; a contrast, not a like-for-like.
National-team football regresses about −15 to −18 on its own. The break (−22) sits about 3 points below the same-teams control once their pre-break level is matched, but even across the full tournament, that gap's 95% interval (-0 to +7 points) still includes zero, not distinguishable from no effect.
05 — Confidence intervals
Several stoppages within one match are not independent, so intervals are bootstrapped by resampling matches, not rows (a cluster bootstrap). Even across all 104 match-clusters the 95% interval stays wide, so read it as indicative, not a precise p-value. The effect holds whether the window is 4, 5 or 6 minutes long. The headline rests on 205 on-top hydration breaks, and the estimate-over-time chart on the main page shows how it settled over the tournament.
The signed-off fixed-effects model agrees there is nothing to call: across the full tournament the hydration×pre-momentum interaction (the "momentum killer" term) is -0.16 (95% CI -0.75 to +0.42, p = 0.58, n = 211), indistinguishable from zero. That is the honest final result, not a held-back one.
06 — The heat & acclimatization check
The intuitive objection is that the swings are about heat, not the whistle: players from cool leagues wilting in the US summer. The project tested it directly. For every team it built an acclimatization gap: the WBGT on match day minus the WBGT the squad is used to back home, mapping each player to his club's home city (391 clubs placed). If heat-displacement drove the drops, teams further from home should fall harder.
They do not. Across tournaments the biggest gap goes with the smallest drop, not the largest:
| Tournament | heat gap | drop |
|---|---|---|
| Copa América 2024 | +11°C | -10 |
| Club World Cup 2025 | +8°C | -23 |
| World Cup 2026 | +5°C | -19 |
| Euro 2024 | +4°C | -16 |
Within groups it is the same story. Among the Club World Cup clubs the gap→drop slope is +0.99 per °C [-0.38, +2.28]; if anything, clubs further from home dropped less. Pooled across national teams it is -0.12 per °C [-0.79, +0.58], essentially flat. So the big drops are not an acclimatization effect, and the high Club World Cup figure is structural (clubs regress more), not heat.
One honest caveat: the heat gap is tangled up with continent, league and fixture congestion, so this rules out the simple heat story rather than proving a precise null. And it never threatened the headline anyway: the same-teams control already holds a team's heat fixed.
07 — Altitude
Altitude is a different stressor from heat (thin air, not thermoregulation), and only two venues are high (Mexico City and Guadalajara, both above 1,500 m). That is too few to test, and a cooling break is not built for it, so it is noted and left alone.
08 — What this can and cannot say
- Finite sample. Even across all 104 matches the intervals are wide; the estimate-over-time chart shows how the effect settled.
- Break durations, now measured. ESPN's start/end-delay timestamps give an exact length for 205 of 205 on-top hydration breaks (median 2:52, 1:36–3:56); VAR and injury coverage is thinner. Whether longer breaks bite harder is inconclusive on the full sample (the slope's interval includes zero), so the analysis doesn't lean on it.
- WBGT is a shade estimate from temperature and humidity; true on-pitch heat under sun runs higher.
- The acclimatization gap is collinear with continent, league and schedule, so it is suggestive, not a clean instrument.
- No causal headline. The agreed causal model (a two-way fixed-effects regression with match-clustered errors and the hydration×pre-momentum interaction) stays indistinguishable from zero across the full 104-match sample.
09 — Reproducibility
Every figure here and on the main page is computed deterministically from one file (the committed processed dataset) by the code in the repository. Nothing is hand-entered. The full source, the dataset, and this report are public.