Pick the opponent’s form window. Find their 5 matches closest in time to this fixture, played at the venue they’ll play here — home form when we’re visiting them, away form when they’re visiting us. For played fixtures the window is bidirectional — it includes matches both before and after, so retrospective difficulty reflects how the opponent actually performed around that period.
Compute rolling PPG over that window: (sum of opponent’s points) / (matches in window).
Blend with prior season. If the window has fewer than 5 samples, linearly blend in the opponent’s 2025 PPG. Weight on rolling = samples / 5; the rest is prior-season PPG.
Scale to 0–1.difficulty = clamp(effective PPG / 3, 0, 1). Partial/blended cells render at reduced opacity; the violet divider marks the boundary between played and upcoming fixtures.