Goals are rare, so the next-goal minute is modelled as two competing Poisson processes: the hosts tick with intensity lambda_home(t), the visitors with lambda_away(t). Whichever fires first scores; if neither fires before minute 90, no more goals. The base rate is team attacking strength (Poisson lambda per 90), multiplied by four adjustments, each measured on data rather than assumed.
First, the per-league minute profile: each of 557 leagues distributes goals across minutes differently. Second, the scoreline: the trailing side counter-intuitively attacks worse (x0.60 — the leader is usually stronger), the leading side slows the game (x0.70). Third, red cards: power play x1.10, short-handed x0.41 (measured on 3,000 matches with dismissals). Fourth, squad threat: combined threat11 of players on the pitch adjusts intensity within [0.85, 1.15].
| Factor | Value | Source |
|---|---|---|
| League profile | 557 leagues, per-minute | goal-timing dump, 2-year window |
| Trailing | x0.60 | measured: leader is stronger |
| Leading | x0.70 | measured: game management |
| Power play / short-handed | x1.10 / x0.41 | 3,000 matches with reds |
| Squad threat | [0.85, 1.15] | g90 to threat11, 24k players |
| Match pace | 1.0 (frozen) | modelling it broke no-more |
The match-page card shows next-goal probabilities (home / none / away), the minute-by-minute curve, the expected minute (mean first, median and IQR for spread), threat and scorer contributions, and dismissals. In scout mode the same engine expands inline: first-goal forecast from t=0, last-goal forecast from the latest goal, plus an actual_after check of what really happened afterwards.
Median minute is worse than the mean (MAE 14.3 vs 13.3) — hence mean leads the widget. Match pace (shots, possession) is tempting, but measurements show pace breaks the no-more flag, so it stays frozen at 1.0. A missing star striker barely matters (x1.04, within noise, not shipped). VAR cancellations and duplicate goals are cleaned via valid-goals: a goal counts only after reconciling with the scoreline. Endpoints: /api/db/games/:id/next-goal and /api/scout/events/:id/goal-forecast. Outcome-ensemble methodology: v5.3; outcome accuracy: accuracy (EN).