calculations.matches_12_prob_win
Computes match-outcome probabilities (home win / draw / away win) by treating each side’s goals as independent Poisson random variables with means stats_goals_expected_home and stats_goals_expected_away. Joint probability of (h, a) is P(H=h) * P(A=a), summed over the 11×11 grid 0..10 × 0..10.
Lineage
Section titled “Lineage”flowchart LR m9[/matches_9_expected_goals/] --> me[/calculations.matches_12_prob_win/] me --> m15[/matches_15_strat_expected_value/] me --> m17[/matches_17_strat_predicted/] me --> mart[/mart.matches/] click m9 "/calculations/matches_9_expected_goals/" "Open" click m15 "/calculations/matches_15_strat_expected_value/" "Open" click m17 "/calculations/matches_17_strat_predicted/" "Open" click mart "/mart/matches/" "Open"
Columns
Section titled “Columns”| Column | Description | Formula |
|---|---|---|
event_id | Bet365 event identifier. | passthrough |
event_date | Event date. | passthrough |
event_partition_key | ClickHouse partition key. | passthrough |
score_total | Actual total goals (carried for downstream join). | passthrough |
score_difference | Actual goal difference. | passthrough |
stats_goals_expected_home | Expected home goals (carried). | passthrough |
stats_goals_expected_away | Expected away goals (carried). | passthrough |
stats_goals_expected_total | Expected total goals (carried). | passthrough |
prob_home_win | Home-win probability. | round(sum(if(home_goals > away_goals, joint_prob, 0)), 4) over home_goals, away_goals ∈ 0..10, where joint_prob = poisson_pmf(stats_goals_expected_home, home_goals) * poisson_pmf(stats_goals_expected_away, away_goals) |
prob_draw | Draw probability. | round(sum(if(home_goals = away_goals, joint_prob, 0)), 4) |
prob_away_win | Away-win probability. | round(sum(if(home_goals < away_goals, joint_prob, 0)), 4) |
prob_win_sum | Sanity check — should be ≈ 1. | round(sum(joint_prob), 4) |
poisson_pmfis the project macromacros/poisson_pmf.sql.