Soccer predictions: actual data vs predicted data
Slate 20261031 · 12 match(es)
How to read this report. Each match shows the model's headline prediction, the stage-by-stage lambda (goal-rate) build, both teams' standing/form inputs, and every starter's projected line next to their real season baseline. A moderate / large deviation badge flags a projection that strays far from the player's season form — a quick way to spot when the inputs look right but a projection does not. When the real result is known an actual-vs-predicted banner appears.
All matches overview
Match detail
Barcelona vs Alavés
LaLiga · 20261031 · 4-3-3 vs 4-4-2
Predicted 3-1Winner: BarcelonaWinning H 3-1 (7.2%)Winning A 1-2 (1.9%)Confidence 0.83λ home/away 3.86 / 1.29Most-likely P 7.2%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset TracingAntagonist + XGBoost match analysis for Barcelona vs Alavés. Player statistics regressed using position-specific XGBoost models (G, D, M, F) with 2026-2027 FBref priors. Micro-duels resolved across 4-3-3 vs 4-4-2 (duel lambdas: Home 4.442, Away 1.429). Final calibrated Poisson lambdas: Home 3.863, Away 1.288 (most likely score 3-1).
Home Starters 10/11 XGBoost (9 FBref) Away Starters 11/11 XGBoost (8 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 4.44 / 1.43 Final λ (H/A) 3.86 / 1.29
FBref Team Priors: FC Barcelona (Gls/90: 3.6666666666666665, GA/90: 4.0 → E[λ]: 3.5) vs Deportivo Alavés (Gls/90: 1.6666666666666667, GA/90: 1.67 → E[λ]: 3.5) | Blend Weight: 0.228
Modeling Pipeline Stages (5 layers)
- 1. XGBoost player regressions for volume & event rates with market-value quality scaling
- 2. Multi-source prior blending (FBref 2026-2027 tables + Sofascore season history)
- 3. Antagonist formation duel matrix resolving 1v1 and zonal matchups
- 4. Team-level prior calibration (FBref possession and attack/defense efficiencies)
- 5. Bivariate Poisson matrix with Dixon-Coles low-score correction
Standing & form context
| Metric | Barcelona | Alavés |
|---|
| League position | 1.00 | 7.00 |
| Points per game | 2.20 | 1.26 |
| Attack index | 1.76 | 0.97 |
| Defense (concede) index | 0.88 | 0.88 |
| Form multiplier | 1.04 | 0.96 |
| Standing λ multiplier | 1.20 | 0.93 |
Lambda decomposition (how the goal rates were built)
| Stage | Barcelona λ | Alavés λ |
|---|
| FBref Squad Prior E[λ] (weight 0.228) | 3.500 | 3.500 |
| Pre-mismatch | 5.096 | 1.327 |
| Pre-calibration (Micro-duels) | 4.442 | 1.429 |
| Final λ | 3.863 | 1.288 |
competition calibration scale 0.85competition observed total goals 2.984quality gap applied Truemismatch score pressure applied Truecompetitive underdog floor applied Falsestage discount 1.0
Scoreline distribution & markets
| Top 5 scorelines | P |
|---|
| 3-1 | 7.2% |
| 4-1 | 7.0% |
| 2-1 | 5.6% |
| 3-0 | 5.6% |
| 4-0 | 5.4% |
| Home win | 82.3% |
| Draw | 9.9% |
| Away win | 7.8% |
| Over 2.5 | 88.7% |
| BTTS yes | 70.9% |
Pregame fair line — favorite Barcelona (82.3%), fair total 5.15, fair spread 2.58
Projected players vs season baseline
Proj = projected for this match · Season = this season's per-game average from match data · deviation badge compares projected xG to the player's season xG/game.
Barcelona — projected line vs season baseline (4-3-3)
| Player | Pos | Min | Proj G | Proj xG | Season xG/g | | Proj Sh | Season Sh/g | Proj Rtg | Season Rtg | Rec | Model / FBref Prior |
|---|
| Joan García | G | 86 | 0 | 0.00 | - | n/a | | 0.0 | 6.9 | 60.9 | 32 | FBref Prior G_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost G_service raw output over 3 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0104, quality 0.809) | market_value_eur=46000000
quality_factor=0.8089
boost_factor=1.0104
reference_quality=0.505
history_matches=39
history_shrink=0.1136 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0148) | blend_weight=0.0148
history_matches=39
season_overlap_discount=1.0
per90_to_match_factor=0.9561
prior_reliability=0.2
competition=La Liga | saves: 2.9953 -> 2.9746 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Toni Martínez, Lucas Boyé', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.4285} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 3 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=3 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 3.86 (squad xG sum 2.6208, xG scale 1.4740, xA scale 1.6297, team xA 2.51 = 0.65 x lambda) | scoreline_reset=true
team_lambda=3.863
squad_xg_sum=2.6208
squad_xa_sum=1.5408
team_expected_assists=2.511
team_xa_to_xg_ratio=0.65 | shots_faced: 13.6 -> 12.2 expected_saves: 3.33 -> 2.98 high_pressure_saves: 1.14 -> 1.03 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 86.0) | match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 3 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=3
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=4.4245 | - | integer_assist_projection | Team scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=2
assists_allocated=0
assist_probability=0.0
provider_weight=0.0
squad_weight_total=2.7263 | - |
|
| Brian Fariñas | M | 90 | 0 | 0.13 | - | n/a | 2 | 0.0 | 6.9 | - | 9 | Prior M_service |
Step-by-step (8 steps)| Step | Description | Key params | Changes |
|---|
market_value_prior | Market-value baseline for position M (quality 0.47) | market_value_eur=5500000
quality_factor=0.4683 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Pablo Ibáñez', 'matchup_zone': 'Central Mid vs Central Mid — Box-to-Box Midfield Contest', 'duel_win_rate': 0.433, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0185, 'skill_edge': 0.0086, 'height_edge': 0.004, 'attacker_skill': 0.4758, 'defender_skill': 0.4567, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Pablo Ibáñez', 'market_value': 4099999, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.4567}], 'xg_override': 0.0876} | aerialWon: 1.2 -> 1.1 totalShots: 1.3 -> 1.324 onTargetScoringAttempt: 0.6 -> 0.6111 shotOffTarget: 0.5 -> 0.5092 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 3 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=3 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 3.86 (squad xG sum 2.6208, xG scale 1.4740, xA scale 1.6297, team xA 2.51 = 0.65 x lambda) | scoreline_reset=true
team_lambda=3.863
squad_xg_sum=2.6208
squad_xa_sum=1.5408
team_expected_assists=2.511
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0876 -> 0.1291 expected_assists: 0.133 -> 0.2167 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 83.0) | match_squad_rank=14
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 3 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=3
allocation_applied=true
goals_allocated=0
goal_probability=0.1211
goal_rate=0.0713
scorer_weight=0.1138 | - | integer_assist_projection | Team scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=2
assists_allocated=0
assist_probability=0.1948
assist_rate=0.11
provider_weight=0.1895 | - |
|
| Pau Cubarsí | D | 87 | 0 | 0.05 | 0.02 | 113% | 0 | 0.2 | 7.0 | 53.4 | 33 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0135, quality 0.891) | market_value_eur=94000000
quality_factor=0.891
boost_factor=1.0135
reference_quality=0.505
history_matches=38
history_shrink=0.1163 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0101) | blend_weight=0.0101
history_matches=38
season_overlap_discount=1.0
per90_to_match_factor=0.9617
prior_reliability=0.1333
competition=La Liga | wonTackle: 0.7281 -> 0.7353 interceptionWon: 1.1709 -> 1.1639 totalShots: 0.424 -> 0.4294 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Lucas Boyé', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 3 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=3 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 3.86 (squad xG sum 2.6208, xG scale 1.4740, xA scale 1.6297, team xA 2.51 = 0.65 x lambda) | scoreline_reset=true
team_lambda=3.863
squad_xg_sum=2.6208
squad_xa_sum=1.5408
team_expected_assists=2.511
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0308 -> 0.0454 expected_assists: 0.0963 -> 0.1569 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 86.0) | match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 3 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=3
allocation_applied=true
goals_allocated=0
goal_probability=0.0444
goal_rate=0.0081
scorer_weight=0.0363 | - | integer_assist_projection | Team scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=2
assists_allocated=0
assist_probability=0.1452
assist_rate=0.2563
provider_weight=0.1961 | - |
|
| Frenkie de Jong | M | 89 | 0 | 0.11 | 0.04 | 153% | 1 | 0.2 | 7.0 | 51.8 | 18 | XGBoost M_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0075, quality 0.660) | market_value_eur=23000000
quality_factor=0.6595
boost_factor=1.0075
reference_quality=0.505
history_matches=26
history_shrink=0.1613 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Pablo Ibáñez', 'matchup_zone': 'Central Mid vs Central Mid — Box-to-Box Midfield Contest', 'duel_win_rate': 0.525, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.155, 'skill_edge': 0.1014, 'height_edge': 0.004, 'attacker_skill': 0.6821, 'defender_skill': 0.4567, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Pablo Ibáñez', 'market_value': 4099999, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.4567}], 'xg_override': 0.0767} | aerialWon: 0.5341 -> 1.1 totalShots: 0.6719 -> 0.776 shotOffTarget: 0.4821 -> 0.5568 onTargetScoringAttempt: 0.1898 -> 0.2192 expectedGoalsOnTarget: 0.1048 -> 0.121 goals: 0.0747 -> 0.0863 expectedGoals: 0.0664 -> 0.0767 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 3 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=3 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 3.86 (squad xG sum 2.6208, xG scale 1.4740, xA scale 1.6297, team xA 2.51 = 0.65 x lambda) | scoreline_reset=true
team_lambda=3.863
squad_xg_sum=2.6208
squad_xa_sum=1.5408
team_expected_assists=2.511
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0767 -> 0.1131 expected_assists: 0.102 -> 0.1662 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 86.0) | match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 3 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=3
allocation_applied=true
goals_allocated=0
goal_probability=0.1069
goal_rate=0.0863
scorer_weight=0.1217 | - | integer_assist_projection | Team scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=2
assists_allocated=0
assist_probability=0.1531
assist_rate=0.0851
provider_weight=0.1477 | - |
|
| João Cancelo | D | 84 | 0 | 0.06 | 0.02 | 188% | 1 | 0.6 | 6.8 | 50.4 | 32 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9993, quality 0.493) | market_value_eur=7500000
quality_factor=0.4927
boost_factor=0.9993
reference_quality=0.505
history_matches=23
history_shrink=0.1786 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0023) | blend_weight=0.0023
history_matches=23
season_overlap_discount=1.0
per90_to_match_factor=0.937
prior_reliability=0.02
competition=La Liga | totalCross: 2.686 -> 2.6798 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Toni Martínez', 'matchup_zone': 'Shape fallback'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 3 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=3 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 3.86 (squad xG sum 2.6208, xG scale 1.4740, xA scale 1.6297, team xA 2.51 = 0.65 x lambda) | scoreline_reset=true
team_lambda=3.863
squad_xg_sum=2.6208
squad_xa_sum=1.5408
team_expected_assists=2.511
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0392 -> 0.0578 expected_assists: 0.1491 -> 0.243 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 15 by projected rating, fifa_overall 83.0) | match_squad_rank=15
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 3 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=3
allocation_applied=true
goals_allocated=0
goal_probability=0.0562
goal_rate=0.2556
scorer_weight=0.0722 | - | integer_assist_projection | Team scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=2
assists_allocated=0
assist_probability=0.2157
assist_rate=0.0624
provider_weight=0.1944 | - |
|
| Pedri | M | 83 | 0 | 0.13 | 0.04 | 223% | 1 | 0.5 | 7.2 | 63.1 | 29 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0135, quality 0.900) | market_value_eur=164000000
quality_factor=0.8997
boost_factor=1.0135
reference_quality=0.505
history_matches=39
history_shrink=0.1136 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0113) | blend_weight=0.0113
history_matches=39
season_overlap_discount=1.0
per90_to_match_factor=0.9171
prior_reliability=0.1533
competition=La Liga | wonTackle: 0.9198 -> 0.9274 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Pablo Ibáñez', 'matchup_zone': 'Central Mid vs Central Mid — Box-to-Box Midfield Contest', 'duel_win_rate': 0.599, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.2638, 'skill_edge': 0.1994, 'height_edge': -0.02, 'attacker_skill': 0.8999, 'defender_skill': 0.4567, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Pablo Ibáñez', 'market_value': 4099999, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.4567}], 'xg_override': 0.091} | aerialWon: 0.2217 -> 0.9 totalShots: 0.7873 -> 0.995 shotOffTarget: 0.59 -> 0.7456 onTargetScoringAttempt: 0.195 -> 0.2464 goals: 0.0944 -> 0.1193 expectedGoals: 0.072 -> 0.091 expectedGoalsOnTarget: 0.0482 -> 0.0609 bigChanceMissed: 0.0224 -> 0.0283 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 3 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=3 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 3.86 (squad xG sum 2.6208, xG scale 1.4740, xA scale 1.6297, team xA 2.51 = 0.65 x lambda) | scoreline_reset=true
team_lambda=3.863
squad_xg_sum=2.6208
squad_xa_sum=1.5408
team_expected_assists=2.511
team_xa_to_xg_ratio=0.65 | expected_goals: 0.091 -> 0.1341 expected_assists: 0.2018 -> 0.3289 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 90.0) | match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 3 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=3
allocation_applied=true
goals_allocated=0
goal_probability=0.1255
goal_rate=0.1193
scorer_weight=0.161 | - | integer_assist_projection | Team scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=2
assists_allocated=1
assist_probability=0.2803
assist_rate=0.2228
provider_weight=0.3563 | - |
|
| Fermín López | M | 77 | 0 | 0.34 | 0.25 | 36% | 3 | 1.8 | 7.0 | 62.1 | 31 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0133, quality 0.896) | market_value_eur=113000000
quality_factor=0.8965
boost_factor=1.0133
reference_quality=0.505
history_matches=39
history_shrink=0.1136 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0113) | blend_weight=0.0113
history_matches=39
season_overlap_discount=1.0
per90_to_match_factor=0.8559
prior_reliability=0.1533
competition=La Liga | onTargetScoringAttempt: 0.7314 -> 0.7441 goals: 0.1863 -> 0.1968 wasFouled: 0.8553 -> 0.8625 wonTackle: 0.4933 -> 0.5004 totalCross: 1.6194 -> 1.6137 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Pablo Ibáñez', 'matchup_zone': 'Central Mid vs Central Mid — Box-to-Box Midfield Contest', 'duel_win_rate': 0.607, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.2744, 'skill_edge': 0.1986, 'height_edge': -0.012, 'attacker_skill': 0.8981, 'defender_skill': 0.4567, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Pablo Ibáñez', 'market_value': 4099999, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.4567}], 'xg_override': 0.2295} | totalShots: 2.0116 -> 2.5636 aerialWon: 0.5412 -> 0.9 shotOffTarget: 1.2675 -> 1.6153 onTargetScoringAttempt: 0.7441 -> 0.9483 expectedGoalsOnTarget: 0.4775 -> 0.6085 goals: 0.1968 -> 0.2508 expectedGoals: 0.1801 -> 0.2295 bigChanceMissed: 0.1588 -> 0.2024 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 3 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=3 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 3.86 (squad xG sum 2.6208, xG scale 1.4740, xA scale 1.6297, team xA 2.51 = 0.65 x lambda) | scoreline_reset=true
team_lambda=3.863
squad_xg_sum=2.6208
squad_xa_sum=1.5408
team_expected_assists=2.511
team_xa_to_xg_ratio=0.65 | expected_goals: 0.2295 -> 0.3383 expected_assists: 0.1662 -> 0.2708 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 90.0) | match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 3 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=3
allocation_applied=true
goals_allocated=0
goal_probability=0.287
goal_rate=0.2508
scorer_weight=0.3641 | - | integer_assist_projection | Team scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=2
assists_allocated=0
assist_probability=0.2372
assist_rate=0.1934
provider_weight=0.3049 | - |
|
| Rodri | M | 83 | 0 | 0.18 | 0.07 | 151% | 1 | 0.7 | 7.3 | 67.7 | 27 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0142, quality 0.837) | market_value_eur=54000000
quality_factor=0.837
boost_factor=1.0142
reference_quality=0.505
history_matches=30
history_shrink=0.1429 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0037) | blend_weight=0.0037
history_matches=30
season_overlap_discount=1.0
per90_to_match_factor=0.9259
prior_reliability=0.04
competition=La Liga | wonTackle: 1.3958 -> 1.3906 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Pablo Ibáñez', 'matchup_zone': 'Holding Mid vs Central Mid — Midfield Anchor Duel', 'duel_win_rate': 0.629, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.3373, 'skill_edge': 0.1815, 'height_edge': 0.048, 'attacker_skill': 0.8599, 'defender_skill': 0.4567, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Pablo Ibáñez', 'market_value': 4099999, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.4567}], 'xg_override': 0.1252} | totalShots: 0.8991 -> 1.2024 aerialWon: 1.5695 -> 1.3 shotOffTarget: 0.5837 -> 0.7806 onTargetScoringAttempt: 0.3154 -> 0.4218 expectedGoalsOnTarget: 0.1386 -> 0.1853 goals: 0.1042 -> 0.1393 bigChanceMissed: 0.0953 -> 0.1274 expectedGoals: 0.0936 -> 0.1252 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 3 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=3 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 3.86 (squad xG sum 2.6208, xG scale 1.4740, xA scale 1.6297, team xA 2.51 = 0.65 x lambda) | scoreline_reset=true
team_lambda=3.863
squad_xg_sum=2.6208
squad_xa_sum=1.5408
team_expected_assists=2.511
team_xa_to_xg_ratio=0.65 | expected_goals: 0.1252 -> 0.1845 expected_assists: 0.1147 -> 0.1869 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 90.0) | match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 3 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=3
allocation_applied=true
goals_allocated=0
goal_probability=0.1685
goal_rate=0.1393
scorer_weight=0.1994 | - | integer_assist_projection | Team scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=2
assists_allocated=0
assist_probability=0.1705
assist_rate=0.107
provider_weight=0.1782 | - |
|
| Lamine Yamal | F | 83 | 1 | 0.95 | 0.48 | 96% | 6 | 3.7 | 8.2 | 66.2 | 32 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0138, quality 0.900) | market_value_eur=237000000
quality_factor=0.9
boost_factor=1.0138
reference_quality=0.505
history_matches=38
history_shrink=0.1163 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0136) | blend_weight=0.0136
history_matches=38
season_overlap_discount=1.0
per90_to_match_factor=0.9208
prior_reliability=0.18
competition=La Liga | totalOffside: 0.7127 -> 0.7308 totalCross: 2.7226 -> 2.7366 goalAssist: 0.6608 -> 0.6518 fouls: 1.3046 -> 1.2961 interceptionWon: 0.2848 -> 0.2902 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Nahuel Tenaglia, Ville Koski', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.395, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.2867, 'skill_edge': 0.197, 'height_edge': -0.002, 'attacker_skill': 0.9, 'defender_skill': 0.4622, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Nahuel Tenaglia', 'market_value': 3200000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4531}, {'player': 'Ville Koski', 'market_value': 4300000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4712}], 'xg_override': 0.6414} | totalShots: 4.8881 -> 6.2896 shotOffTarget: 3.4296 -> 4.4129 onTargetScoringAttempt: 1.4585 -> 1.8767 goals: 0.6802 -> 0.8752 expectedGoalsOnTarget: 0.5994 -> 0.7712 expectedGoals: 0.4985 -> 0.6414 bigChanceMissed: 0.4274 -> 0.5499 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 3 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=3 | goals: 1.0 -> 0 assists: 1.0 -> 0 | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 3.86 (squad xG sum 2.6208, xG scale 1.4740, xA scale 1.6297, team xA 2.51 = 0.65 x lambda) | scoreline_reset=true
team_lambda=3.863
squad_xg_sum=2.6208
squad_xa_sum=1.5408
team_expected_assists=2.511
team_xa_to_xg_ratio=0.65 | expected_goals: 0.6414 -> 0.9454 expected_assists: 0.2496 -> 0.4069 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 90.0) | match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 3 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=3
allocation_applied=true
goals_allocated=1
goal_probability=0.6115
goal_rate=0.8752
scorer_weight=1.1818 | - | integer_assist_projection | Team scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=2
assists_allocated=1
assist_probability=0.3343
assist_rate=0.6518
provider_weight=0.5086 | - |
|
| Raphinha | F | 79 | 2 | 1.21 | 0.52 | 132% | 5 | 2.3 | 7.9 | 58.9 | 27 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0147, quality 0.859) | market_value_eur=63000000
quality_factor=0.8589
boost_factor=1.0147
reference_quality=0.505
history_matches=31
history_shrink=0.1389 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0150) | blend_weight=0.015
history_matches=31
season_overlap_discount=1.0
per90_to_match_factor=0.8749
prior_reliability=0.1667
competition=La Liga | totalCross: 2.6259 -> 2.639 goals: 0.9037 -> 0.9164 onTargetScoringAttempt: 1.6214 -> 1.6337 fouls: 0.2857 -> 0.2972 totalOffside: 0.5786 -> 0.5857 wonTackle: 0.361 -> 0.3556 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Jonny Otto', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.674, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.2847, 'skill_edge': 0.1897, 'height_edge': 0.004, 'attacker_skill': 0.8589, 'defender_skill': 0.4374, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Jonny Otto', 'market_value': 2100000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.4374}], 'xg_override': 0.8222} | totalShots: 3.7706 -> 4.8441 shotOffTarget: 2.1369 -> 2.7453 onTargetScoringAttempt: 1.6337 -> 2.0988 expectedGoalsOnTarget: 0.9631 -> 1.2373 goals: 0.9164 -> 1.1773 expectedGoals: 0.64 -> 0.8222 bigChanceMissed: 0.6265 -> 0.8049 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 3 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=3 | goals: 1.0 -> 0 | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 3.86 (squad xG sum 2.6208, xG scale 1.4740, xA scale 1.6297, team xA 2.51 = 0.65 x lambda) | scoreline_reset=true
team_lambda=3.863
squad_xg_sum=2.6208
squad_xa_sum=1.5408
team_expected_assists=2.511
team_xa_to_xg_ratio=0.65 | expected_goals: 0.8222 -> 1.2119 expected_assists: 0.1493 -> 0.2433 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 88.0) | match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 3 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=3
allocation_applied=true
goals_allocated=2
goal_probability=0.7024
goal_rate=1.1773
scorer_weight=1.5149 | - | integer_assist_projection | Team scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=2
assists_allocated=0
assist_probability=0.216
assist_rate=0.2542
provider_weight=0.3041 | - |
|
| Karim Adeyemi | F | 75 | 0 | 0.45 | 0.34 | 33% | 3 | 1.2 | 7.0 | 55.3 | 14 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0281, quality 0.786) | market_value_eur=41000000
quality_factor=0.7859
boost_factor=1.0281
reference_quality=0.505
history_matches=10
history_shrink=0.3333 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0145) | blend_weight=0.0145
history_matches=10
season_overlap_discount=1.0
per90_to_match_factor=0.8362
prior_reliability=0.0667
competition=La Liga | onTargetScoringAttempt: 0.7899 -> 0.8151 wasFouled: 2.7356 -> 2.7202 goals: 0.1975 -> 0.2067 goalAssist: 0.3397 -> 0.3469 totalShots: 2.0611 -> 2.0679 totalOffside: 0.3996 -> 0.3938 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Hugo Novoa', 'matchup_zone': 'Right Wing vs Left Back — Flank Battle', 'duel_win_rate': 0.629, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.2188, 'skill_edge': 0.1568, 'height_edge': -0.008, 'attacker_skill': 0.7859, 'defender_skill': 0.4374, 'attacker_role': 'RW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Hugo Novoa', 'market_value': 725000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.4374}], 'xg_override': 0.306} | totalShots: 2.0862 -> 2.5427 bigChanceMissed: 1.4188 -> 1.7292 shotOffTarget: 1.2711 -> 1.5492 onTargetScoringAttempt: 0.8151 -> 0.9934 expectedGoals: 0.2511 -> 0.306 goals: 0.2067 -> 0.2519 expectedGoalsOnTarget: 0.1359 -> 0.1656 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 3 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=3 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 3.86 (squad xG sum 2.6208, xG scale 1.4740, xA scale 1.6297, team xA 2.51 = 0.65 x lambda) | scoreline_reset=true
team_lambda=3.863
squad_xg_sum=2.6208
squad_xa_sum=1.5408
team_expected_assists=2.511
team_xa_to_xg_ratio=0.65 | expected_goals: 0.306 -> 0.451 expected_assists: 0.1008 -> 0.1643 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 82.0) | match_squad_rank=11
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 3 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=3
allocation_applied=true
goals_allocated=0
goal_probability=0.363
goal_rate=0.2519
scorer_weight=0.3824 | - | integer_assist_projection | Team scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=2
assists_allocated=0
assist_probability=0.1515
assist_rate=0.3469
provider_weight=0.2054 | - |
|
| Team totals | 3 | 3.86 | | 26 | | 7.2 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Dominik Livaković | G | 4.5m | 11.1% | Market-value substitute prior |
| Jules Koundé | D | 12.9m | 50.8% | Market-value substitute prior |
| Alejandro Balde | D | 15.2m | 37.1% | Market-value substitute prior |
| Ferran Torres | M | 23.6m | 57.3% | Market-value substitute prior |
| Dani Olmo | M | 25.5m | 59.7% | Market-value substitute prior |
| Anthony Gordon | F | 26.5m | 49.8% | Market-value substitute prior |
Alavés — projected line vs season baseline (4-4-2)
| Player | Pos | Min | Proj G | Proj xG | Season xG/g | | Proj Sh | Season Sh/g | Proj Rtg | Season Rtg | Rec | Model / FBref Prior |
|---|
| Antonio Sivera | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 7.0 | 63.3 | 34 | FBref Prior G_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost G_service raw output over 3 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9990, quality 0.470) | market_value_eur=5600000
quality_factor=0.4695
boost_factor=0.999
reference_quality=0.505
history_matches=48
history_shrink=0.0943 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0123) | blend_weight=0.0123
history_matches=48
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.2
competition=La Liga | saves: 2.8757 -> 2.8813 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Raphinha, Lamine Yamal', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 4.4418} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.29 (squad xG sum 1.0060, xG scale 1.2803, xA scale 1.2803, team xA 0.96 = 0.74 x lambda) | scoreline_reset=true
team_lambda=1.288
squad_xg_sum=1.006
squad_xa_sum=0.7484
team_expected_assists=0.9582
team_xa_to_xg_ratio=0.7439 | shots_faced: 42.2 -> 36.7 expected_saves: 10.33 -> 8.98 high_pressure_saves: 3.55 -> 3.09 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 85.0) | match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.3792 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0
provider_weight=0.0
squad_weight_total=0.8425 | - |
|
| Hugo Novoa | D | 90 | 0 | 0.05 | 0.00 | 883% | 1 | 0.1 | 6.8 | 10.9 | 21 | FBref Prior D_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9855, quality 0.437) | market_value_eur=725000
quality_factor=0.4374
boost_factor=0.9855
reference_quality=0.505
history_matches=2
history_shrink=0.7143 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Karim Adeyemi', 'matchup_zone': 'Right Wing vs Left Back — Flank Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.29 (squad xG sum 1.0060, xG scale 1.2803, xA scale 1.2803, team xA 0.96 = 0.74 x lambda) | scoreline_reset=true
team_lambda=1.288
squad_xg_sum=1.006
squad_xa_sum=0.7484
team_expected_assists=0.9582
team_xa_to_xg_ratio=0.7439 | expected_goals: 0.0373 -> 0.0478 expected_assists: 0.1109 -> 0.142 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 64.0) | match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0467
goal_rate=0.4528
scorer_weight=0.0598 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1324
assist_rate=0.0
provider_weight=0.1136 | - |
|
| Nahuel Tenaglia | D | 87 | 0 | 0.07 | 0.04 | 70% | 1 | 0.7 | 6.8 | 60.1 | 34 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9981, quality 0.440) | market_value_eur=3200000
quality_factor=0.4399
boost_factor=0.9981
reference_quality=0.505
history_matches=46
history_shrink=0.098 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0127) | blend_weight=0.0127
history_matches=46
season_overlap_discount=1.0
per90_to_match_factor=0.968
prior_reliability=0.2
competition=La Liga | totalCross: 1.5006 -> 1.4897 wasFouled: 1.7079 -> 1.6985 interceptionWon: 1.0765 -> 1.0833 totalShots: 0.8338 -> 0.8396 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Lamine Yamal', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.29 (squad xG sum 1.0060, xG scale 1.2803, xA scale 1.2803, team xA 0.96 = 0.74 x lambda) | scoreline_reset=true
team_lambda=1.288
squad_xg_sum=1.006
squad_xa_sum=0.7484
team_expected_assists=0.9582
team_xa_to_xg_ratio=0.7439 | expected_goals: 0.0578 -> 0.074 expected_assists: 0.035 -> 0.0448 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 77.0) | match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0713
goal_rate=0.0587
scorer_weight=0.0746 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0438
assist_rate=0.0
provider_weight=0.0358 | - |
|
| Ville Koski | D | 90 | 0 | 0.12 | 0.04 | 208% | 1 | 0.2 | 6.8 | 38.2 | 25 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9961, quality 0.454) | market_value_eur=4300000
quality_factor=0.4535
boost_factor=0.9961
reference_quality=0.505
history_matches=15
history_shrink=0.25 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0314) | blend_weight=0.0314
history_matches=15
season_overlap_discount=1.0
per90_to_match_factor=0.9947
prior_reliability=0.1933
competition=La Liga | fouls: 1.0536 -> 1.0205 totalShots: 0.5405 -> 0.5235 wonTackle: 0.6826 -> 0.6719 wasFouled: 0.255 -> 0.247 onTargetScoringAttempt: 0.2383 -> 0.2308 interceptionWon: 1.2055 -> 1.2 totalCross: 0.1742 -> 0.1687 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Lamine Yamal', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.29 (squad xG sum 1.0060, xG scale 1.2803, xA scale 1.2803, team xA 0.96 = 0.74 x lambda) | scoreline_reset=true
team_lambda=1.288
squad_xg_sum=1.006
squad_xa_sum=0.7484
team_expected_assists=0.9582
team_xa_to_xg_ratio=0.7439 | expected_goals: 0.0943 -> 0.1207 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 68.0) | match_squad_rank=11
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1137
goal_rate=0.1008
scorer_weight=0.1261 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0163
assist_rate=0.0
provider_weight=0.0131 | - |
|
| Jonny Otto | D | 84 | 0 | 0.02 | 0.01 | 84% | 0 | 0.2 | 6.7 | 50.6 | 33 | XGBoost D_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9978, quality 0.437) | market_value_eur=2100000
quality_factor=0.4374
boost_factor=0.9978
reference_quality=0.505
history_matches=42
history_shrink=0.1064 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Raphinha', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.29 (squad xG sum 1.0060, xG scale 1.2803, xA scale 1.2803, team xA 0.96 = 0.74 x lambda) | scoreline_reset=true
team_lambda=1.288
squad_xg_sum=1.006
squad_xa_sum=0.7484
team_expected_assists=0.9582
team_xa_to_xg_ratio=0.7439 | expected_assists: 0.0265 -> 0.0339 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 84.0) | match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0182
goal_rate=0.0
scorer_weight=0.0147 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0333
assist_rate=0.0
provider_weight=0.0271 | - |
|
| Ángel Pérez | M | 82 | 0 | 0.12 | 0.07 | 69% | 1 | 1.0 | 6.9 | 60.5 | 33 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9976, quality 0.457) | market_value_eur=4600000
quality_factor=0.4572
boost_factor=0.9976
reference_quality=0.505
history_matches=25
history_shrink=0.1667 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0173) | blend_weight=0.0173
history_matches=25
season_overlap_discount=1.0
per90_to_match_factor=0.9132
prior_reliability=0.16
competition=La Liga | totalCross: 4.3879 -> 4.3646 wasFouled: 0.9149 -> 0.9056 wonTackle: 0.8314 -> 0.8236 interceptionWon: 0.7113 -> 0.7188 fouls: 1.1019 -> 1.096 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Joan García', 'matchup_zone': 'Left Mid vs Right Back — Wide Channel', 'duel_win_rate': 0.19, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.6624, 'skill_edge': -0.1896, 'height_edge': -0.04, 'attacker_skill': 0.4635, 'defender_skill': 0.885, 'attacker_role': 'LM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Joan García', 'market_value': 46000000, 'role': 'GK', 'price_index': 0.55, 'adjusted_quality': 0.885}], 'xg_override': 0.0969} | aerialWon: 0.2219 -> 1.1 totalShots: 1.614 -> 1.0691 shotOffTarget: 1.0626 -> 0.7039 onTargetScoringAttempt: 0.5497 -> 0.3641 goals: 0.178 -> 0.1179 expectedGoals: 0.1463 -> 0.0969 bigChanceMissed: 0.1201 -> 0.0796 expectedGoalsOnTarget: 0.1191 -> 0.0789 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.29 (squad xG sum 1.0060, xG scale 1.2803, xA scale 1.2803, team xA 0.96 = 0.74 x lambda) | scoreline_reset=true
team_lambda=1.288
squad_xg_sum=1.006
squad_xa_sum=0.7484
team_expected_assists=0.9582
team_xa_to_xg_ratio=0.7439 | expected_goals: 0.0969 -> 0.1241 expected_assists: 0.1642 -> 0.2102 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 72.0) | match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1167
goal_rate=0.1179
scorer_weight=0.1418 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=1
assist_probability=0.1896
assist_rate=0.1388
provider_weight=0.1853 | - |
|
| Pablo Ibáñez | M | 83 | 0 | 0.07 | 0.08 | ok | 1 | 1.2 | 6.8 | 61.7 | 33 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9984, quality 0.451) | market_value_eur=4099999
quality_factor=0.4511
boost_factor=0.9984
reference_quality=0.505
history_matches=47
history_shrink=0.0962 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0125) | blend_weight=0.0125
history_matches=47
season_overlap_discount=1.0
per90_to_match_factor=0.9192
prior_reliability=0.2
competition=La Liga | totalCross: 1.8606 -> 1.845 wasFouled: 2.2059 -> 2.1975 wonTackle: 1.2608 -> 1.2527 totalShots: 1.0776 -> 1.0833 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Rodri, Pedri', 'matchup_zone': 'CM vs CDM + CM', 'duel_win_rate': 0.18, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.6995, 'skill_edge': -0.1904, 'height_edge': -0.014, 'attacker_skill': 0.4567, 'defender_skill': 0.8799, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Rodri', 'market_value': 54000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8599}, {'player': 'Pedri', 'market_value': 164000000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.8999}], 'xg_override': 0.0511} | totalShots: 1.0833 -> 0.7578 shotOffTarget: 0.7916 -> 0.5537 onTargetScoringAttempt: 0.2861 -> 0.2001 aerialWon: 0.9385 -> 1.0 bigChanceMissed: 0.0966 -> 0.0676 goals: 0.0901 -> 0.063 expectedGoalsOnTarget: 0.082 -> 0.0574 expectedGoals: 0.073 -> 0.0511 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.29 (squad xG sum 1.0060, xG scale 1.2803, xA scale 1.2803, team xA 0.96 = 0.74 x lambda) | scoreline_reset=true
team_lambda=1.288
squad_xg_sum=1.006
squad_xa_sum=0.7484
team_expected_assists=0.9582
team_xa_to_xg_ratio=0.7439 | expected_goals: 0.0511 -> 0.0654 expected_assists: 0.0678 -> 0.0868 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 73.0) | match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0633
goal_rate=0.063
scorer_weight=0.0731 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0831
assist_rate=0.0734
provider_weight=0.0909 | - |
|
| Antonio Blanco | M | 82 | 0 | 0.04 | 0.03 | ok | 1 | 1.0 | 6.9 | 62.6 | 34 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0004, quality 0.519) | market_value_eur=9700000
quality_factor=0.5189
boost_factor=1.0004
reference_quality=0.505
history_matches=46
history_shrink=0.098 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0127) | blend_weight=0.0127
history_matches=46
season_overlap_discount=1.0
per90_to_match_factor=0.9126
prior_reliability=0.2
competition=La Liga | interceptionWon: 1.1609 -> 1.1771 fouls: 1.49 -> 1.5059 totalCross: 0.9675 -> 0.9746 totalShots: 0.6987 -> 0.7054 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Rodri, Pedri', 'matchup_zone': 'CM vs CDM + CM', 'duel_win_rate': 0.18, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.7313, 'skill_edge': -0.1568, 'height_edge': -0.026, 'attacker_skill': 0.5316, 'defender_skill': 0.8799, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Rodri', 'market_value': 54000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8599}, {'player': 'Pedri', 'market_value': 164000000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.8999}], 'xg_override': 0.031} | aerialWon: 0.4808 -> 0.9 totalShots: 0.7054 -> 0.5159 shotOffTarget: 0.4941 -> 0.3613 onTargetScoringAttempt: 0.202 -> 0.1477 goals: 0.05 -> 0.0366 expectedGoals: 0.0424 -> 0.031 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.29 (squad xG sum 1.0060, xG scale 1.2803, xA scale 1.2803, team xA 0.96 = 0.74 x lambda) | scoreline_reset=true
team_lambda=1.288
squad_xg_sum=1.006
squad_xa_sum=0.7484
team_expected_assists=0.9582
team_xa_to_xg_ratio=0.7439 | expected_goals: 0.031 -> 0.0397 expected_assists: 0.0651 -> 0.0834 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 78.0) | match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0389
goal_rate=0.0366
scorer_weight=0.0424 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.08
assist_rate=0.0693
provider_weight=0.0864 | - |
|
| Abderrahman Rebbach | F | 77 | 0 | 0.06 | 0.04 | 54% | 1 | 0.6 | 6.8 | 50.3 | 44 | XGBoost F_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9977, quality 0.437) | market_value_eur=2400000
quality_factor=0.4374
boost_factor=0.9977
reference_quality=0.505
history_matches=40
history_shrink=0.1111 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Pau Cubarsí, Joan García', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.6261, 'skill_edge': -0.2043, 'height_edge': -0.05, 'attacker_skill': 0.4374, 'defender_skill': 0.8915, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Pau Cubarsí', 'market_value': 94000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8981}, {'player': 'Joan García', 'market_value': 46000000, 'role': 'GK', 'price_index': 0.55, 'adjusted_quality': 0.885}], 'xg_override': 0.0453} | totalShots: 0.9675 -> 0.6058 shotOffTarget: 0.6409 -> 0.4013 onTargetScoringAttempt: 0.3265 -> 0.2044 expectedGoals: 0.0723 -> 0.0453 goals: 0.0709 -> 0.0444 expectedGoalsOnTarget: 0.0352 -> 0.022 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.29 (squad xG sum 1.0060, xG scale 1.2803, xA scale 1.2803, team xA 0.96 = 0.74 x lambda) | scoreline_reset=true
team_lambda=1.288
squad_xg_sum=1.006
squad_xa_sum=0.7484
team_expected_assists=0.9582
team_xa_to_xg_ratio=0.7439 | expected_goals: 0.0453 -> 0.058 expected_assists: 0.0782 -> 0.1001 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 78.0) | match_squad_rank=12
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0564
goal_rate=0.0444
scorer_weight=0.0575 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0953
assist_rate=0.0545
provider_weight=0.0816 | - |
|
| Lucas Boyé | F | 80 | 0 | 0.27 | 0.32 | ok | 2 | 2.0 | 6.8 | 59.6 | 29 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9986, quality 0.466) | market_value_eur=5300000
quality_factor=0.4659
boost_factor=0.9986
reference_quality=0.505
history_matches=38
history_shrink=0.1163 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0081) | blend_weight=0.0081
history_matches=38
season_overlap_discount=1.0
per90_to_match_factor=0.8842
prior_reliability=0.1067
competition=La Liga | wonTackle: 0.9877 -> 1.002 totalShots: 2.1157 -> 2.1212 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Pau Cubarsí, Joan García', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.6861, 'skill_edge': -0.1916, 'height_edge': -0.022, 'attacker_skill': 0.4659, 'defender_skill': 0.8915, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Pau Cubarsí', 'market_value': 94000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8981}, {'player': 'Joan García', 'market_value': 46000000, 'role': 'GK', 'price_index': 0.55, 'adjusted_quality': 0.885}], 'xg_override': 0.2087} | totalShots: 2.1212 -> 1.4554 shotOffTarget: 1.3396 -> 0.9191 onTargetScoringAttempt: 0.7789 -> 0.5344 expectedGoalsOnTarget: 0.3887 -> 0.2667 goals: 0.3412 -> 0.2341 expectedGoals: 0.3042 -> 0.2087 bigChanceMissed: 0.1866 -> 0.128 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.29 (squad xG sum 1.0060, xG scale 1.2803, xA scale 1.2803, team xA 0.96 = 0.74 x lambda) | scoreline_reset=true
team_lambda=1.288
squad_xg_sum=1.006
squad_xa_sum=0.7484
team_expected_assists=0.9582
team_xa_to_xg_ratio=0.7439 | expected_goals: 0.2087 -> 0.2672 expected_assists: 0.0699 -> 0.0895 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 77.0) | match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.2345
goal_rate=0.2341
scorer_weight=0.2934 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0856
assist_rate=0.0059
provider_weight=0.0716 | - |
|
| Toni Martínez | F | 75 | 1 | 0.29 | 0.33 | ok | 2 | 2.5 | 6.8 | 63.9 | 33 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9996, quality 0.490) | market_value_eur=7300000
quality_factor=0.4903
boost_factor=0.9996
reference_quality=0.505
history_matches=46
history_shrink=0.098 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0110) | blend_weight=0.011
history_matches=46
season_overlap_discount=1.0
per90_to_match_factor=0.8303
prior_reliability=0.1733
competition=La Liga | onTargetScoringAttempt: 0.8555 -> 0.8461 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Pau Cubarsí, Joan García', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.6846, 'skill_edge': -0.1806, 'height_edge': -0.034, 'attacker_skill': 0.4903, 'defender_skill': 0.8915, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Pau Cubarsí', 'market_value': 94000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8981}, {'player': 'Joan García', 'market_value': 46000000, 'role': 'GK', 'price_index': 0.55, 'adjusted_quality': 0.885}], 'xg_override': 0.2276} | totalShots: 2.4268 -> 1.6614 shotOffTarget: 1.5734 -> 1.0771 onTargetScoringAttempt: 0.8461 -> 0.5792 goals: 0.3494 -> 0.2392 expectedGoals: 0.3325 -> 0.2276 bigChanceMissed: 0.3177 -> 0.2175 expectedGoalsOnTarget: 0.2369 -> 0.1622 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.29 (squad xG sum 1.0060, xG scale 1.2803, xA scale 1.2803, team xA 0.96 = 0.74 x lambda) | scoreline_reset=true
team_lambda=1.288
squad_xg_sum=1.006
squad_xa_sum=0.7484
team_expected_assists=0.9582
team_xa_to_xg_ratio=0.7439 | expected_goals: 0.2276 -> 0.2914 expected_assists: 0.0334 -> 0.0428 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 78.0) | match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.2528
goal_rate=0.2392
scorer_weight=0.3036 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0419
assist_rate=0.0177
provider_weight=0.0347 | - |
|
| Team totals | 1 | 1.29 | | 13 | | 6.8 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Grégoire Swiderski | G | 4.4m | 10.9% | Market-value substitute prior |
| Youssef Enriquez | D | 13.7m | 30.4% | Market-value substitute prior |
| Victor Parada | D | 13.6m | 30.1% | Market-value substitute prior |
| Carlos Vicente | M | 22.2m | 50.8% | Market-value substitute prior |
| Carles Aleñá | M | 13.2m | 69.2% | Market-value substitute prior |
| Miguel Rodríguez | F | 25.4m | 56.2% | Market-value substitute prior |
Antagonist / tactical summary
Home midfield dominates with ~53% possession expected (Pedri vs Antonio Blanco). Total antagonist xG — Home: 2.38, Away: 0.66. Home danger zone: Left Wing vs Right Back — Flank Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Midfield — possession 53.1% / 46.9%, dominance ratio 0.63, key duel: Pedri vs Antonio Blanco
Raphinha xG 0.82Karim Adeyemi xG 0.31Lamine Yamal xG 0.64Lucas Boyé xG 0.21Toni Martínez xG 0.23Abderrahman Rebbach xG 0.05
Summary
Antagonist matchup analysis for Barcelona vs Alavés. Most likely scoreline: 3-1. Lambdas derived from 8 home and 6 away individual player duels. Head-to-head: Barcelona 7W-2D-1L vs Alavés over 10 meetings.
Tactical parity between 4-3-3 and 4-4-2. Match outcome driven primarily by individual player quality. Home midfield dominates with ~53% possession expected (Pedri vs Antonio Blanco). Total antagonist xG — Home: 2.38, Away: 0.66. Home danger zone: Left Wing vs Right Back — Flank Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Levante vs Atlético Madrid
LaLiga · 20261031 · 4-3-3 vs 4-2-3-1
Predicted 1-2Winner: Atlético MadridWinning H 2-1 (5.1%)Winning A 1-2 (9.6%)Confidence 0.77λ home/away 1.19 / 2.27Most-likely P 9.6%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset TracingAntagonist + XGBoost match analysis for Levante vs Atlético Madrid. Player statistics regressed using position-specific XGBoost models (G, D, M, F) with 2026-2027 FBref priors. Micro-duels resolved across 4-3-3 vs 4-2-3-1 (duel lambdas: Home 1.396, Away 2.653). Final calibrated Poisson lambdas: Home 1.191, Away 2.266 (most likely score 1-2).
Home Starters 11/11 XGBoost (6 FBref) Away Starters 11/11 XGBoost (9 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.40 / 2.65 Final λ (H/A) 1.19 / 2.27
FBref Team Priors: Levante UD (Gls/90: 1.6666666666666667, GA/90: 1.67 → E[λ]: 2.877) vs Atlético Madrid (Gls/90: 2.3333333333333335, GA/90: 2.33 → E[λ]: 2.886) | Blend Weight: 0.228
Modeling Pipeline Stages (5 layers)
- 1. XGBoost player regressions for volume & event rates with market-value quality scaling
- 2. Multi-source prior blending (FBref 2026-2027 tables + Sofascore season history)
- 3. Antagonist formation duel matrix resolving 1v1 and zonal matchups
- 4. Team-level prior calibration (FBref possession and attack/defense efficiencies)
- 5. Bivariate Poisson matrix with Dixon-Coles low-score correction
Standing & form context
| Metric | Levante | Atlético Madrid |
|---|
| League position | 14.00 | 2.00 |
| Points per game | 1.14 | 2.07 |
| Attack index | 1.03 | 1.15 |
| Defense (concede) index | 0.79 | 1.12 |
| Form multiplier | 0.96 | 1.04 |
| Standing λ multiplier | 0.91 | 1.11 |
Lambda decomposition (how the goal rates were built)
| Stage | Levante λ | Atlético Madrid λ |
|---|
| FBref Squad Prior E[λ] (weight 0.228) | 2.877 | 2.886 |
| Pre-mismatch | 1.376 | 2.691 |
| Pre-calibration (Micro-duels) | 1.396 | 2.653 |
| Final λ | 1.191 | 2.266 |
competition calibration scale 0.85competition observed total goals 2.984quality gap applied Truemismatch score pressure applied Truecompetitive underdog floor applied Falsestage discount 1.0
Scoreline distribution & markets
| Top 5 scorelines | P |
|---|
| 1-2 | 9.6% |
| 1-1 | 8.6% |
| 0-2 | 8.1% |
| 1-3 | 7.3% |
| 0-1 | 7.1% |
| Home win | 18.9% |
| Draw | 19.5% |
| Away win | 61.5% |
| Over 2.5 | 67.1% |
| BTTS yes | 62.4% |
Pregame fair line — favorite Atlético Madrid (61.5%), fair total 3.46, fair spread -1.07
Projected players vs season baseline
Proj = projected for this match · Season = this season's per-game average from match data · deviation badge compares projected xG to the player's season xG/game.
Levante — projected line vs season baseline (4-3-3)
| Player | Pos | Min | Proj G | Proj xG | Season xG/g | | Proj Sh | Season Sh/g | Proj Rtg | Season Rtg | Rec | Model / FBref Prior |
|---|
| Oriol Rey | M | 78 | 0 | 0.02 | 0.01 | 308% | 0 | 0.2 | 6.8 | 35.5 | 32 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9970, quality 0.437) | market_value_eur=1700000
quality_factor=0.4374
boost_factor=0.997
reference_quality=0.505
history_matches=29
history_shrink=0.1471 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0191) | blend_weight=0.0191
history_matches=29
season_overlap_discount=1.0
per90_to_match_factor=0.8692
prior_reliability=0.2
competition=La Liga | totalShots: 0.5063 -> 0.4966 totalCross: 0.4842 -> 0.4749 wasFouled: 0.6818 -> 0.6743 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Morten Hjulmand', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.227, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.6723, 'skill_edge': -0.1829, 'height_edge': -0.04, 'attacker_skill': 0.4374, 'defender_skill': 0.8439, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Morten Hjulmand', 'market_value': 48000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8439}], 'xg_override': 0.0204} | totalShots: 0.5037 -> 0.3387 shotOffTarget: 0.3702 -> 0.2489 aerialWon: 0.8459 -> 0.9 onTargetScoringAttempt: 0.1335 -> 0.0898 goals: 0.0487 -> 0.0327 expectedGoals: 0.0303 -> 0.0204 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.19 (squad xG sum 0.9866, xG scale 1.2071, xA scale 1.4295, team xA 0.77 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.191
squad_xg_sum=0.9866
squad_xa_sum=0.5416
team_expected_assists=0.7742
team_xa_to_xg_ratio=0.65 | expected_assists: 0.0334 -> 0.0477 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 73.0) | match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0243
goal_rate=0.0327
scorer_weight=0.0289 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0466
assist_rate=0.0483
provider_weight=0.0562 | - |
|
| Jon Ander Olasagasti | M | 86 | 0 | 0.07 | 0.08 | ok | 1 | 0.9 | 6.9 | 60.7 | 34 | XGBoost M_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9978, quality 0.437) | market_value_eur=2700000
quality_factor=0.4374
boost_factor=0.9978
reference_quality=0.505
history_matches=42
history_shrink=0.1064 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Morten Hjulmand', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.231, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.6782, 'skill_edge': -0.1829, 'height_edge': -0.036, 'attacker_skill': 0.4374, 'defender_skill': 0.8439, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Morten Hjulmand', 'market_value': 48000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8439}], 'xg_override': 0.0559} | aerialWon: 0.4426 -> 0.9 totalShots: 1.1085 -> 0.7518 shotOffTarget: 0.7565 -> 0.5131 onTargetScoringAttempt: 0.352 -> 0.2387 expectedGoalsOnTarget: 0.1184 -> 0.0803 goals: 0.0954 -> 0.0647 expectedGoals: 0.0824 -> 0.0559 bigChanceMissed: 0.0565 -> 0.0383 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.19 (squad xG sum 0.9866, xG scale 1.2071, xA scale 1.4295, team xA 0.77 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.191
squad_xg_sum=0.9866
squad_xa_sum=0.5416
team_expected_assists=0.7742
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0559 -> 0.0675 expected_assists: 0.1228 -> 0.1757 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 84.0) | match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0653
goal_rate=0.0647
scorer_weight=0.0731 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1611
assist_rate=0.1028
provider_weight=0.1554 | - |
|
| Manuel Sánchez | D | 84 | 0 | 0.01 | 0.01 | ok | 0 | 0.2 | 6.8 | 54.9 | 34 | XGBoost D_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9992, quality 0.479) | market_value_eur=6400000
quality_factor=0.4793
boost_factor=0.9992
reference_quality=0.505
history_matches=43
history_shrink=0.1042 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Kang-in Lee', 'matchup_zone': 'Shape fallback'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.19 (squad xG sum 0.9866, xG scale 1.2071, xA scale 1.4295, team xA 0.77 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.191
squad_xg_sum=0.9866
squad_xa_sum=0.5416
team_expected_assists=0.7742
team_xa_to_xg_ratio=0.65 | expected_assists: 0.0501 -> 0.0716 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 78.0) | match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0094
goal_rate=0.0015
scorer_weight=0.0084 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0691
assist_rate=0.0154
provider_weight=0.0573 | - |
|
| Aïssa Mandi | D | 87 | 0 | 0.00 | 0.00 | ok | 0 | 0.1 | 6.8 | 42.2 | 13 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9922, quality 0.437) | market_value_eur=1100000
quality_factor=0.4374
boost_factor=0.9922
reference_quality=0.505
history_matches=8
history_shrink=0.3846 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0500) | blend_weight=0.05
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=0.9642
prior_reliability=0.2
competition=La Liga | wonTackle: 0.6335 -> 0.6822 fouls: 0.4473 -> 0.4249 wasFouled: 0.8556 -> 0.845 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Julián Alvarez', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.19 (squad xG sum 0.9866, xG scale 1.2071, xA scale 1.4295, team xA 0.77 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.191
squad_xg_sum=0.9866
squad_xa_sum=0.5416
team_expected_assists=0.7742
team_xa_to_xg_ratio=0.65 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 79.0) | match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0037
goal_rate=0.0
scorer_weight=0.0035 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0091
assist_rate=0.0
provider_weight=0.0081 | - |
|
| Ifeanyi Ndukwe | D | 84 | 0 | 0.10 | 0.04 | 177% | 0 | 0.1 | 6.8 | 33.7 | 12 | FBref Prior D_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9911, quality 0.440) | market_value_eur=3200000
quality_factor=0.4399
boost_factor=0.9911
reference_quality=0.505
history_matches=6
history_shrink=0.4545 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Julián Alvarez', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.19 (squad xG sum 0.9866, xG scale 1.2071, xA scale 1.4295, team xA 0.77 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.191
squad_xg_sum=0.9866
squad_xa_sum=0.5416
team_expected_assists=0.7742
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0815 -> 0.0984 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 84.0) | match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0937
goal_rate=0.191
scorer_weight=0.123 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0047
assist_rate=0.0
provider_weight=0.0044 | - |
|
| Nacho Pérez | D | 74 | 0 | 0.07 | 0.02 | 254% | 1 | 0.1 | 6.8 | 21.9 | 34 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9940, quality 0.437) | market_value_eur=1600000
quality_factor=0.4374
boost_factor=0.994
reference_quality=0.505
history_matches=12
history_shrink=0.2941 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0280) | blend_weight=0.028
history_matches=12
season_overlap_discount=1.0
per90_to_match_factor=0.8272
prior_reliability=0.1467
competition=La Liga | totalCross: 1.4482 -> 1.4919 wonTackle: 0.9273 -> 0.954 interceptionWon: 0.6936 -> 0.7163 totalShots: 0.5184 -> 0.5039 goals: 0.378 -> 0.3674 onTargetScoringAttempt: 0.378 -> 0.3674 fouls: 0.6664 -> 0.6583 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Alejandro Grimaldo', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.19 (squad xG sum 0.9866, xG scale 1.2071, xA scale 1.4295, team xA 0.77 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.191
squad_xg_sum=0.9866
squad_xa_sum=0.5416
team_expected_assists=0.7742
team_xa_to_xg_ratio=0.65 | expected_goals: 0.058 -> 0.07 expected_assists: 0.0272 -> 0.0389 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 67.0) | match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0676
goal_rate=0.3674
scorer_weight=0.0875 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0382
assist_rate=0.0
provider_weight=0.0311 | - |
|
| Mathew Ryan | G | 86 | 0 | 0.00 | 0.00 | 100% | | 0.1 | 7.0 | 65.9 | 35 | FBref Prior G_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost G_service raw output over 3 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9980, quality 0.437) | market_value_eur=1700000
quality_factor=0.4374
boost_factor=0.998
reference_quality=0.505
history_matches=46
history_shrink=0.098 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0127) | blend_weight=0.0127
history_matches=46
season_overlap_discount=1.0
per90_to_match_factor=0.9503
prior_reliability=0.2
competition=La Liga | saves: 2.897 -> 2.9166 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Julián Alvarez, Alejandro Grimaldo', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 2.653} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.19 (squad xG sum 0.9866, xG scale 1.2071, xA scale 1.4295, team xA 0.77 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.191
squad_xg_sum=0.9866
squad_xa_sum=0.5416
team_expected_assists=0.7742
team_xa_to_xg_ratio=0.65 | shots_faced: 25.2 -> 21.5 expected_saves: 6.17 -> 5.26 high_pressure_saves: 2.12 -> 1.81 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 79.0) | match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.3229 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0
provider_weight=0.0
squad_weight_total=0.7982 | - |
|
| Daniel Requena | M | 80 | 0 | 0.07 | 0.03 | 133% | 1 | 0.4 | 6.7 | 40.4 | 13 | FBref Prior M_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9916, quality 0.437) | market_value_eur=1500000
quality_factor=0.4374
boost_factor=0.9916
reference_quality=0.505
history_matches=7
history_shrink=0.4167 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Morten Hjulmand', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.241, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.737, 'skill_edge': -0.1829, 'height_edge': 0.004, 'attacker_skill': 0.4374, 'defender_skill': 0.8439, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Morten Hjulmand', 'market_value': 48000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8439}], 'xg_override': 0.0586} | aerialWon: 0.4894 -> 1.2 totalShots: 0.9408 -> 0.6934 shotOffTarget: 0.646 -> 0.4761 bigChanceMissed: 0.3421 -> 0.2521 onTargetScoringAttempt: 0.2947 -> 0.2172 expectedGoals: 0.0795 -> 0.0586 goals: 0.0782 -> 0.0576 expectedGoalsOnTarget: 0.0785 -> 0.0579 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.19 (squad xG sum 0.9866, xG scale 1.2071, xA scale 1.4295, team xA 0.77 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.191
squad_xg_sum=0.9866
squad_xa_sum=0.5416
team_expected_assists=0.7742
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0586 -> 0.0707 expected_assists: 0.0347 -> 0.0496 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 84.0) | match_squad_rank=12
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0683
goal_rate=0.0576
scorer_weight=0.07 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0484
assist_rate=0.0498
provider_weight=0.0584 | - |
|
| Roger Brugué | F | 73 | 1 | 0.29 | 0.33 | ok | 2 | 1.8 | 6.8 | 52.3 | 24 | XGBoost F_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9969, quality 0.437) | market_value_eur=2800000
quality_factor=0.4374
boost_factor=0.9969
reference_quality=0.505
history_matches=28
history_shrink=0.1515 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Jan Oblak', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.237, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.731, 'skill_edge': -0.123, 'height_edge': -0.06, 'attacker_skill': 0.4374, 'defender_skill': 0.7107, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Jan Oblak', 'market_value': 16000000, 'role': 'GK', 'price_index': 0.55, 'adjusted_quality': 0.7107}], 'xg_override': 0.2397} | totalShots: 2.0875 -> 1.526 shotOffTarget: 1.158 -> 0.8465 onTargetScoringAttempt: 0.9295 -> 0.6795 expectedGoalsOnTarget: 0.3961 -> 0.2895 goals: 0.3629 -> 0.2653 expectedGoals: 0.3279 -> 0.2397 bigChanceMissed: 0.2043 -> 0.1493 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.19 (squad xG sum 0.9866, xG scale 1.2071, xA scale 1.4295, team xA 0.77 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.191
squad_xg_sum=0.9866
squad_xa_sum=0.5416
team_expected_assists=0.7742
team_xa_to_xg_ratio=0.65 | expected_goals: 0.2397 -> 0.2894 expected_assists: 0.0492 -> 0.0703 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 88.0) | match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.2513
goal_rate=0.2653
scorer_weight=0.315 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0679
assist_rate=0.1267
provider_weight=0.0879 | - |
|
| Iván Romero | F | 70 | 0 | 0.23 | 0.23 | ok | 2 | 1.6 | 6.8 | 60.7 | 33 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9996, quality 0.491) | market_value_eur=7400000
quality_factor=0.4915
boost_factor=0.9996
reference_quality=0.505
history_matches=42
history_shrink=0.1064 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0115) | blend_weight=0.0115
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.7786
prior_reliability=0.1667
competition=La Liga | totalShots: 1.888 -> 1.8988 wasFouled: 2.035 -> 2.0259 interceptionWon: 0.4541 -> 0.4489 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Dávid Hancko, Marc Pubill', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.682, 'skill_edge': -0.1563, 'height_edge': -0.06, 'attacker_skill': 0.4915, 'defender_skill': 0.8388, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Dávid Hancko', 'market_value': 36000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8168}, {'player': 'Marc Pubill', 'market_value': 48000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8608}], 'xg_override': 0.194} | totalShots: 1.8988 -> 1.295 shotOffTarget: 1.1332 -> 0.7728 onTargetScoringAttempt: 0.7533 -> 0.5138 goals: 0.3167 -> 0.216 bigChanceMissed: 0.2904 -> 0.1981 expectedGoals: 0.2844 -> 0.194 expectedGoalsOnTarget: 0.2616 -> 0.1784 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.19 (squad xG sum 0.9866, xG scale 1.2071, xA scale 1.4295, team xA 0.77 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.191
squad_xg_sum=0.9866
squad_xa_sum=0.5416
team_expected_assists=0.7742
team_xa_to_xg_ratio=0.65 | expected_goals: 0.194 -> 0.2342 expected_assists: 0.0553 -> 0.079 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 75.0) | match_squad_rank=11
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.2088
goal_rate=0.216
scorer_weight=0.2553 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.076
assist_rate=0.0034
provider_weight=0.0632 | - |
|
| Thiago Fernández | F | 72 | 0 | 0.12 | 0.05 | 126% | 1 | 0.9 | 6.9 | 54.2 | 35 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9976, quality 0.458) | market_value_eur=4700000
quality_factor=0.4585
boost_factor=0.9976
reference_quality=0.505
history_matches=24
history_shrink=0.1724 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0120) | blend_weight=0.012
history_matches=24
season_overlap_discount=1.0
per90_to_match_factor=0.7963
prior_reliability=0.1067
competition=La Liga | interceptionWon: 0.303 -> 0.3113 totalShots: 1.5102 -> 1.5038 wasFouled: 0.5093 -> 0.5032 onTargetScoringAttempt: 0.4356 -> 0.4304 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Marcos Llorente', 'matchup_zone': 'Right Wing vs Left Back — Flank Battle', 'duel_win_rate': 0.327, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 0.7757, 'skill_edge': -0.1166, 'height_edge': -0.036, 'attacker_skill': 0.4585, 'defender_skill': 0.7176, 'attacker_role': 'RW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Marcos Llorente', 'market_value': 21000000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.7176}], 'xg_override': 0.0957} | totalShots: 1.505 -> 1.1675 shotOffTarget: 1.0746 -> 0.8336 onTargetScoringAttempt: 0.4304 -> 0.3339 goals: 0.1708 -> 0.1325 expectedGoals: 0.1234 -> 0.0957 bigChanceMissed: 0.0956 -> 0.0742 expectedGoalsOnTarget: 0.0459 -> 0.0356 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.19 (squad xG sum 0.9866, xG scale 1.2071, xA scale 1.4295, team xA 0.77 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.191
squad_xg_sum=0.9866
squad_xa_sum=0.5416
team_expected_assists=0.7742
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0957 -> 0.1155 expected_assists: 0.1092 -> 0.1561 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 74.0) | match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1091
goal_rate=0.1325
scorer_weight=0.1444 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=1
assist_probability=0.1445
assist_rate=0.2455
provider_weight=0.1951 | - |
|
| Team totals | 1 | 1.19 | | 10 | | 6.8 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Pablo Cunat Campos | G | 4.4m | 10.9% | Market-value substitute prior |
| Axel Tape | D | 13.8m | 31.1% | Market-value substitute prior |
| Matias Moreno | D | 13.7m | 30.5% | Market-value substitute prior |
| Carlos Álvarez | M | 22.6m | 31.9% | Market-value substitute prior |
| Enzo Bardeli | M | 22.1m | 50.5% | Market-value substitute prior |
| Etta Eyong | F | 25.9m | 58.5% | Market-value substitute prior |
Atlético Madrid — projected line vs season baseline (4-2-3-1)
| Player | Pos | Min | Proj G | Proj xG | Season xG/g | | Proj Sh | Season Sh/g | Proj Rtg | Season Rtg | Rec | Model / FBref Prior |
|---|
| Julián Alvarez | F | 75 | 1 | 0.56 | 0.13 | 324% | 3 | 1.5 | 7.2 | 51.0 | 23 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0146, quality 0.895) | market_value_eur=107000000
quality_factor=0.8953
boost_factor=1.0146
reference_quality=0.505
history_matches=35
history_shrink=0.125 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0016) | blend_weight=0.0016
history_matches=35
season_overlap_discount=1.0
per90_to_match_factor=0.8377
prior_reliability=0.02
competition=La Liga | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Aïssa Mandi, Ifeanyi Ndukwe', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.342, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.2095, 'skill_edge': 0.2025, 'height_edge': -0.06, 'attacker_skill': 0.8953, 'defender_skill': 0.4453, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Aïssa Mandi', 'market_value': 1100000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'Ifeanyi Ndukwe', 'market_value': 3200000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4531}], 'xg_override': 0.3932} | totalShots: 2.526 -> 3.0552 shotOffTarget: 1.3629 -> 1.6484 onTargetScoringAttempt: 1.1604 -> 1.4035 goals: 0.454 -> 0.5491 expectedGoalsOnTarget: 0.3427 -> 0.4145 expectedGoals: 0.3251 -> 0.3932 bigChanceMissed: 0.2983 -> 0.3608 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | goals: 1.0 -> 0 | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.27 (squad xG sum 1.5979, xG scale 1.4181, xA scale 1.4181, team xA 1.65 = 0.73 x lambda) | scoreline_reset=true
team_lambda=2.266
squad_xg_sum=1.5979
squad_xa_sum=1.1609
team_expected_assists=1.6463
team_xa_to_xg_ratio=0.7265 | expected_goals: 0.3932 -> 0.5577 expected_assists: 0.145 -> 0.2056 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 86.0) | match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=1
goal_probability=0.4275
goal_rate=0.5491
scorer_weight=0.6971 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=1
assist_probability=0.1858
assist_rate=0.2168
provider_weight=0.257 | - |
|
| Alex Baena | F | 75 | 1 | 0.27 | 0.08 | 219% | 3 | 1.4 | 7.1 | 58.7 | 42 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0111, quality 0.817) | market_value_eur=48000000
quality_factor=0.8168
boost_factor=1.0111
reference_quality=0.505
history_matches=37
history_shrink=0.119 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0093) | blend_weight=0.0093
history_matches=37
season_overlap_discount=1.0
per90_to_match_factor=0.836
prior_reliability=0.12
competition=La Liga | totalCross: 3.3552 -> 3.3413 goals: 0.2507 -> 0.2613 totalOffside: 0.1662 -> 0.1733 interceptionWon: 1.1417 -> 1.1354 onTargetScoringAttempt: 0.7281 -> 0.7342 wasFouled: 1.2007 -> 1.2068 wonTackle: 0.5532 -> 0.5481 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Aïssa Mandi, Ifeanyi Ndukwe', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.307, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.1576, 'skill_edge': 0.1672, 'height_edge': -0.06, 'attacker_skill': 0.8168, 'defender_skill': 0.4453, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Aïssa Mandi', 'market_value': 1100000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'Ifeanyi Ndukwe', 'market_value': 3200000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4531}], 'xg_override': 0.1888} | totalShots: 2.1297 -> 2.4653 shotOffTarget: 1.3955 -> 1.6154 onTargetScoringAttempt: 0.7342 -> 0.8499 goals: 0.2613 -> 0.3025 expectedGoalsOnTarget: 0.2148 -> 0.2487 expectedGoals: 0.1631 -> 0.1888 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.27 (squad xG sum 1.5979, xG scale 1.4181, xA scale 1.4181, team xA 1.65 = 0.73 x lambda) | scoreline_reset=true
team_lambda=2.266
squad_xg_sum=1.5979
squad_xa_sum=1.1609
team_expected_assists=1.6463
team_xa_to_xg_ratio=0.7265 | expected_goals: 0.1888 -> 0.2677 expected_assists: 0.1938 -> 0.2748 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 83.0) | match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=1
goal_probability=0.2349
goal_rate=0.3025
scorer_weight=0.3346 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.2403
assist_rate=0.0528
provider_weight=0.2198 | - |
|
| Kang-in Lee | F | 73 | 0 | 0.27 | 0.15 | 77% | 3 | 2.1 | 7.2 | 56.3 | 16 | XGBoost F_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0259, quality 0.764) | market_value_eur=37000000
quality_factor=0.7641
boost_factor=1.0259
reference_quality=0.505
history_matches=10
history_shrink=0.3333 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Aïssa Mandi, Ifeanyi Ndukwe', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.283, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.1227, 'skill_edge': 0.1435, 'height_edge': -0.06, 'attacker_skill': 0.7641, 'defender_skill': 0.4453, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Aïssa Mandi', 'market_value': 1100000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'Ifeanyi Ndukwe', 'market_value': 3200000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4531}], 'xg_override': 0.1877} | totalShots: 2.3133 -> 2.5972 shotOffTarget: 1.5842 -> 1.7786 onTargetScoringAttempt: 0.7291 -> 0.8186 expectedGoalsOnTarget: 0.2062 -> 0.2315 goals: 0.199 -> 0.2234 expectedGoals: 0.1672 -> 0.1877 bigChanceMissed: 0.143 -> 0.1605 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.27 (squad xG sum 1.5979, xG scale 1.4181, xA scale 1.4181, team xA 1.65 = 0.73 x lambda) | scoreline_reset=true
team_lambda=2.266
squad_xg_sum=1.5979
squad_xa_sum=1.1609
team_expected_assists=1.6463
team_xa_to_xg_ratio=0.7265 | expected_goals: 0.1877 -> 0.2662 expected_assists: 0.1829 -> 0.2594 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 80.0) | match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.2337
goal_rate=0.2234
scorer_weight=0.3062 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.2285
assist_rate=0.0798
provider_weight=0.2075 | - |
|
| Morten Hjulmand | M | 83 | 0 | 0.10 | 0.03 | 199% | 1 | 0.6 | 6.9 | 52.0 | 12 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0334, quality 0.817) | market_value_eur=48000000
quality_factor=0.8168
boost_factor=1.0334
reference_quality=0.505
history_matches=9
history_shrink=0.3571 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0325) | blend_weight=0.0325
history_matches=9
season_overlap_discount=1.0
per90_to_match_factor=0.9253
prior_reliability=0.14
competition=La Liga | interceptionWon: 2.687 -> 2.6426 wonTackle: 0.7933 -> 0.8248 fouls: 0.669 -> 0.6902 totalShots: 0.8413 -> 0.8284 wasFouled: 1.4074 -> 1.4189 onTargetScoringAttempt: 0.1831 -> 0.1771 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Oriol Rey', 'matchup_zone': 'Holding Mid vs Central Mid — Midfield Anchor Duel', 'duel_win_rate': 0.623, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.3277, 'skill_edge': 0.1829, 'height_edge': 0.04, 'attacker_skill': 0.8439, 'defender_skill': 0.4374, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Oriol Rey', 'market_value': 1700000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.4374}], 'xg_override': 0.0673} | totalShots: 0.8353 -> 1.109 shotOffTarget: 0.6582 -> 0.8739 onTargetScoringAttempt: 0.1771 -> 0.2351 aerialWon: 1.1489 -> 1.2 goals: 0.0555 -> 0.0737 expectedGoals: 0.0507 -> 0.0673 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.27 (squad xG sum 1.5979, xG scale 1.4181, xA scale 1.4181, team xA 1.65 = 0.73 x lambda) | scoreline_reset=true
team_lambda=2.266
squad_xg_sum=1.5979
squad_xa_sum=1.1609
team_expected_assists=1.6463
team_xa_to_xg_ratio=0.7265 | expected_goals: 0.0673 -> 0.0954 expected_assists: 0.041 -> 0.0581 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 83.0) | match_squad_rank=11
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.091
goal_rate=0.0737
scorer_weight=0.1006 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0564
assist_rate=0.0557
provider_weight=0.0675 | - |
|
| Pablo Barrios | M | 70 | 0 | 0.12 | 0.04 | 238% | 1 | 0.8 | 7.0 | 57.2 | 16 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0160, quality 0.879) | market_value_eur=77000000
quality_factor=0.8792
boost_factor=1.016
reference_quality=0.505
history_matches=30
history_shrink=0.1429 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0142) | blend_weight=0.0142
history_matches=30
season_overlap_discount=1.0
per90_to_match_factor=0.7742
prior_reliability=0.1533
competition=La Liga | wasFouled: 0.6741 -> 0.6885 totalCross: 1.1708 -> 1.1589 totalShots: 1.023 -> 1.0133 interceptionWon: 1.4391 -> 1.433 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Daniel Requena', 'matchup_zone': 'Attacking Mid vs Single Holding Mid — Space Creator Duel', 'duel_win_rate': 0.64, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.2653, 'skill_edge': 0.2005, 'height_edge': -0.02, 'attacker_skill': 0.8829, 'defender_skill': 0.4374, 'attacker_role': 'CAM', 'attacker_mv_price_index': 0.95, 'defender_adjusted_parts': [{'player': 'Daniel Requena', 'market_value': 1500000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4374}], 'xg_override': 0.0838} | aerialWon: 0.7936 -> 1.1 totalShots: 1.0236 -> 1.2952 shotOffTarget: 0.7277 -> 0.9208 onTargetScoringAttempt: 0.2959 -> 0.3744 expectedGoalsOnTarget: 0.078 -> 0.0987 expectedGoals: 0.0662 -> 0.0838 goals: 0.0657 -> 0.0831 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.27 (squad xG sum 1.5979, xG scale 1.4181, xA scale 1.4181, team xA 1.65 = 0.73 x lambda) | scoreline_reset=true
team_lambda=2.266
squad_xg_sum=1.5979
squad_xa_sum=1.1609
team_expected_assists=1.6463
team_xa_to_xg_ratio=0.7265 | expected_goals: 0.0838 -> 0.1188 expected_assists: 0.1152 -> 0.1634 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 83.0) | match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.112
goal_rate=0.0831
scorer_weight=0.1182 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1507
assist_rate=0.1409
provider_weight=0.1888 | - |
|
| Alejandro Grimaldo | M | 89 | 0 | 0.28 | 0.18 | 56% | 2 | 1.1 | 7.0 | 53.6 | 20 | XGBoost M_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0129, quality 0.625) | market_value_eur=19400000
quality_factor=0.6251
boost_factor=1.0129
reference_quality=0.505
history_matches=9
history_shrink=0.3571 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Nacho Pérez', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.548, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.1006, 'skill_edge': 0.0845, 'height_edge': -0.016, 'attacker_skill': 0.6251, 'defender_skill': 0.4374, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Nacho Pérez', 'market_value': 1600000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.4374}], 'xg_override': 0.1985} | aerialWon: 0.3474 -> 0.8 totalShots: 1.5977 -> 1.7584 shotOffTarget: 0.9351 -> 1.0292 onTargetScoringAttempt: 0.6625 -> 0.7291 expectedGoalsOnTarget: 0.257 -> 0.2829 expectedGoals: 0.1804 -> 0.1985 bigChanceMissed: 0.1749 -> 0.1925 goals: 0.149 -> 0.164 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.27 (squad xG sum 1.5979, xG scale 1.4181, xA scale 1.4181, team xA 1.65 = 0.73 x lambda) | scoreline_reset=true
team_lambda=2.266
squad_xg_sum=1.5979
squad_xa_sum=1.1609
team_expected_assists=1.6463
team_xa_to_xg_ratio=0.7265 | expected_goals: 0.1985 -> 0.2815 expected_assists: 0.1492 -> 0.2116 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 89.0) | match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.2453
goal_rate=0.164
scorer_weight=0.2424 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1907
assist_rate=0.1197
provider_weight=0.1803 | - |
|
| Dávid Hancko | D | 88 | 0 | 0.09 | 0.05 | 83% | 1 | 0.7 | 7.0 | 53.3 | 29 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0084, quality 0.758) | market_value_eur=36000000
quality_factor=0.7581
boost_factor=1.0084
reference_quality=0.505
history_matches=40
history_shrink=0.1111 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0144) | blend_weight=0.0144
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=0.9803
prior_reliability=0.2
competition=La Liga | interceptionWon: 0.9553 -> 0.9698 wasFouled: 0.1822 -> 0.1937 wonTackle: 0.8219 -> 0.8289 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Iván Romero', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.27 (squad xG sum 1.5979, xG scale 1.4181, xA scale 1.4181, team xA 1.65 = 0.73 x lambda) | scoreline_reset=true
team_lambda=2.266
squad_xg_sum=1.5979
squad_xa_sum=1.1609
team_expected_assists=1.6463
team_xa_to_xg_ratio=0.7265 | expected_goals: 0.0613 -> 0.0869 expected_assists: 0.0444 -> 0.063 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 83.0) | match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0832
goal_rate=0.0
scorer_weight=0.0695 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0611
assist_rate=0.1488
provider_weight=0.0788 | - |
|
| Marc Pubill | D | 82 | 0 | 0.08 | 0.04 | 107% | 1 | 0.4 | 6.8 | 49.3 | 30 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0146, quality 0.817) | market_value_eur=48000000
quality_factor=0.8168
boost_factor=1.0146
reference_quality=0.505
history_matches=27
history_shrink=0.1562 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0115) | blend_weight=0.0115
history_matches=27
season_overlap_discount=1.0
per90_to_match_factor=0.9074
prior_reliability=0.1133
competition=La Liga | interceptionWon: 0.8389 -> 0.8292 totalShots: 0.5217 -> 0.5278 totalCross: 0.6161 -> 0.6213 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Iván Romero', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.27 (squad xG sum 1.5979, xG scale 1.4181, xA scale 1.4181, team xA 1.65 = 0.73 x lambda) | scoreline_reset=true
team_lambda=2.266
squad_xg_sum=1.5979
squad_xa_sum=1.1609
team_expected_assists=1.6463
team_xa_to_xg_ratio=0.7265 | expected_goals: 0.0538 -> 0.0763 expected_assists: 0.0201 -> 0.0285 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 87.0) | match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0735
goal_rate=0.1142
scorer_weight=0.0954 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0281
assist_rate=0.007
provider_weight=0.0232 | - |
|
| Marcos Llorente | D | 84 | 0 | 0.07 | 0.04 | 83% | 1 | 0.6 | 7.0 | 60.3 | 33 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0046, quality 0.641) | market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.0046
reference_quality=0.505
history_matches=39
history_shrink=0.1136 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0074) | blend_weight=0.0074
history_matches=39
season_overlap_discount=1.0
per90_to_match_factor=0.9328
prior_reliability=0.1
competition=La Liga | fouls: 0.7828 -> 0.8046 totalCross: 1.6539 -> 1.6417 interceptionWon: 1.0637 -> 1.0742 wasFouled: 0.2029 -> 0.2106 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Thiago Fernández', 'matchup_zone': 'Right Wing vs Left Back — Flank Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.27 (squad xG sum 1.5979, xG scale 1.4181, xA scale 1.4181, team xA 1.65 = 0.73 x lambda) | scoreline_reset=true
team_lambda=2.266
squad_xg_sum=1.5979
squad_xa_sum=1.1609
team_expected_assists=1.6463
team_xa_to_xg_ratio=0.7265 | expected_goals: 0.0481 -> 0.0682 expected_assists: 0.0812 -> 0.1152 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 85.0) | match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0659
goal_rate=0.0
scorer_weight=0.0546 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1088
assist_rate=0.0923
provider_weight=0.1249 | - |
|
| Jan Oblak | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 7.1 | 56.6 | 29 | FBref Prior G_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost G_service raw output over 3 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0028, quality 0.590) | market_value_eur=16000000
quality_factor=0.59
boost_factor=1.0028
reference_quality=0.505
history_matches=40
history_shrink=0.1111 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0144) | blend_weight=0.0144
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.2
competition=La Liga | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Roger Brugué, Iván Romero', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.3957} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.27 (squad xG sum 1.5979, xG scale 1.4181, xA scale 1.4181, team xA 1.65 = 0.73 x lambda) | scoreline_reset=true
team_lambda=2.266
squad_xg_sum=1.5979
squad_xa_sum=1.1609
team_expected_assists=1.6463
team_xa_to_xg_ratio=0.7265 | shots_faced: 13.3 -> 11.3 expected_saves: 3.26 -> 2.76 high_pressure_saves: 1.12 -> 0.95 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 88.0) | match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=2.4769 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0
provider_weight=0.0
squad_weight_total=1.6132 | - |
|
| Giuliano Simeone | M | 78 | 0 | 0.28 | 0.10 | 163% | 2 | 0.9 | 7.0 | 58.9 | 32 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0096, quality 0.800) | market_value_eur=44000000
quality_factor=0.8002
boost_factor=1.0096
reference_quality=0.505
history_matches=41
history_shrink=0.1087 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0113) | blend_weight=0.0113
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=0.8686
prior_reliability=0.16
competition=La Liga | interceptionWon: 0.5557 -> 0.5658 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Oriol Rey', 'matchup_zone': 'Holding Mid vs Central Mid — Midfield Anchor Duel', 'duel_win_rate': 0.569, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.248, 'skill_edge': 0.1767, 'height_edge': -0.008, 'attacker_skill': 0.8301, 'defender_skill': 0.4374, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Oriol Rey', 'market_value': 1700000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.4374}], 'xg_override': 0.1942} | aerialWon: 1.4898 -> 0.9 totalShots: 1.4166 -> 1.7679 shotOffTarget: 0.8679 -> 1.0831 onTargetScoringAttempt: 0.5461 -> 0.6815 goals: 0.1622 -> 0.2024 expectedGoals: 0.1556 -> 0.1942 expectedGoalsOnTarget: 0.0941 -> 0.1174 bigChanceMissed: 0.0864 -> 0.1078 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.27 (squad xG sum 1.5979, xG scale 1.4181, xA scale 1.4181, team xA 1.65 = 0.73 x lambda) | scoreline_reset=true
team_lambda=2.266
squad_xg_sum=1.5979
squad_xa_sum=1.1609
team_expected_assists=1.6463
team_xa_to_xg_ratio=0.7265 | expected_goals: 0.1942 -> 0.2754 expected_assists: 0.1235 -> 0.1751 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 81.0) | match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.2407
goal_rate=0.2024
scorer_weight=0.2847 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1606
assist_rate=0.1073
provider_weight=0.1587 | - |
|
| Team totals | 2 | 2.27 | | 20 | | 7.0 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Juan Musso | G | 4.4m | 10.9% | Market-value substitute prior |
| Cristian Romero | D | 15.0m | 36.6% | Market-value substitute prior |
| Robin Le Normand | D | 14.3m | 23.2% | Market-value substitute prior |
| Rodrigo Mendoza | M | 13.6m | 45.2% | Market-value substitute prior |
| Thiago Almada | M | 22.8m | 53.5% | Market-value substitute prior |
| Ademola Lookman | F | 26.7m | 36.3% | Market-value substitute prior |
Antagonist / tactical summary
Away midfield dictates play with ~55% possession expected (Jon Ander Olasagasti vs Pablo Barrios). Total antagonist xG — Home: 0.66, Away: 1.31. Home danger zone: Left Wing vs Right Back — Flank Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Midfield — possession 45.4% / 54.6%, dominance ratio 0.35, key duel: Jon Ander Olasagasti vs Pablo Barrios
Roger Brugué xG 0.24Thiago Fernández xG 0.10Iván Romero xG 0.19Alejandro Grimaldo xG 0.20Pablo Barrios xG 0.08Julián Alvarez xG 0.39
Summary
Antagonist matchup analysis for Levante vs Atlético Madrid. Most likely scoreline: 1-2. Lambdas derived from 6 home and 7 away individual player duels. Head-to-head: Levante 2W-4D-4L vs Atlético Madrid over 10 meetings.
Tactical parity between 4-3-3 and 4-2-3-1. Match outcome driven primarily by individual player quality. Away midfield dictates play with ~55% possession expected (Jon Ander Olasagasti vs Pablo Barrios). Total antagonist xG — Home: 0.66, Away: 1.31. Home danger zone: Left Wing vs Right Back — Flank Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Man City vs Brighton
Premier League · 20261031 · 4-2-3-1 vs 4-2-3-1
Predicted 2-1Winner: Man CityWinning H 2-1 (9.1%)Winning A 1-2 (4.0%)Confidence 0.79λ home/away 2.62 / 1.15Most-likely P 9.1%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset TracingAntagonist + XGBoost match analysis for Man City vs Brighton. Player statistics regressed using position-specific XGBoost models (G, D, M, F) with 2026-2027 FBref priors. Micro-duels resolved across 4-2-3-1 vs 4-2-3-1 (duel lambdas: Home 2.747, Away 1.419). Final calibrated Poisson lambdas: Home 2.615, Away 1.154 (most likely score 2-1).
Home Starters 11/11 XGBoost (10 FBref) Away Starters 11/11 XGBoost (10 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 2.75 / 1.42 Final λ (H/A) 2.62 / 1.15
FBref Team Priors: Manchester City (Gls/90: 3.0, GA/90: 3.0 → E[λ]: 3.5) vs Brighton & Hove Albion (Gls/90: 2.5, GA/90: 3.5 → E[λ]: 3.5) | Blend Weight: 0.192
Modeling Pipeline Stages (5 layers)
- 1. XGBoost player regressions for volume & event rates with market-value quality scaling
- 2. Multi-source prior blending (FBref 2026-2027 tables + Sofascore season history)
- 3. Antagonist formation duel matrix resolving 1v1 and zonal matchups
- 4. Team-level prior calibration (FBref possession and attack/defense efficiencies)
- 5. Bivariate Poisson matrix with Dixon-Coles low-score correction
Standing & form context
| Metric | Man City | Brighton |
|---|
| League position | 1.00 | 3.00 |
| Points per game | 2.08 | 1.72 |
| Attack index | 1.32 | 1.43 |
| Defense (concede) index | 0.85 | 0.92 |
| Form multiplier | 1.02 | 0.98 |
| Standing λ multiplier | 1.05 | 1.12 |
Lambda decomposition (how the goal rates were built)
| Stage | Man City λ | Brighton λ |
|---|
| FBref Squad Prior E[λ] (weight 0.192) | 3.500 | 3.500 |
| Pre-mismatch | 3.087 | 1.347 |
| Pre-calibration (Micro-duels) | 2.747 | 1.419 |
| Final λ | 2.615 | 1.154 |
competition calibration scale 0.85competition observed total goals 2.781quality gap applied Truemismatch score pressure applied Truecompetitive underdog floor applied Falsestage discount 1.0
Scoreline distribution & markets
| Top 5 scorelines | P |
|---|
| 2-1 | 9.1% |
| 3-1 | 7.9% |
| 2-0 | 7.9% |
| 1-1 | 7.0% |
| 3-0 | 6.9% |
| Home win | 68.6% |
| Draw | 16.7% |
| Away win | 14.6% |
| Over 2.5 | 72.6% |
| BTTS yes | 63.5% |
Pregame fair line — favorite Man City (68.6%), fair total 3.77, fair spread 1.46
Projected players vs season baseline
Proj = projected for this match · Season = this season's per-game average from match data · deviation badge compares projected xG to the player's season xG/game.
Man City — projected line vs season baseline (4-2-3-1)
| Player | Pos | Min | Proj G | Proj xG | Season xG/g | | Proj Sh | Season Sh/g | Proj Rtg | Season Rtg | Rec | Model / FBref Prior |
|---|
| Gianluigi Donnarumma | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 6.9 | 57.8 | 33 | FBref Prior G_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost G_service raw output over 3 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0097, quality 0.809) | market_value_eur=46000000
quality_factor=0.8089
boost_factor=1.0097
reference_quality=0.505
history_matches=42
history_shrink=0.1064 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0092) | blend_weight=0.0092
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League | saves: 2.8368 -> 2.8291 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Charalampos Kostoulas, Diego Gómez', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.4192} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.62 (squad xG sum 1.8062, xG scale 1.4478, xA scale 1.4478, team xA 1.90 = 0.73 x lambda) | scoreline_reset=true
team_lambda=2.615
squad_xg_sum=1.8062
squad_xa_sum=1.3129
team_expected_assists=1.9009
team_xa_to_xg_ratio=0.7269 | shots_faced: 13.5 -> 11.0 expected_saves: 3.31 -> 2.7 high_pressure_saves: 1.14 -> 0.92 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 89.0) | match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=2.9791 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0
provider_weight=0.0
squad_weight_total=1.8886 | - |
|
| Matheus Nunes | D | 85 | 0 | 0.00 | 0.00 | 34% | 0 | 0.1 | 7.0 | 50.5 | 33 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0099, quality 0.796) | market_value_eur=43000000
quality_factor=0.7957
boost_factor=1.0099
reference_quality=0.505
history_matches=39
history_shrink=0.1136 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0020) | blend_weight=0.002
history_matches=39
season_overlap_discount=1.0
per90_to_match_factor=0.9499
prior_reliability=0.0267
competition=Premier League | totalCross: 1.3665 -> 1.3732 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Charalampos Kostoulas', 'matchup_zone': 'Shape fallback'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.62 (squad xG sum 1.8062, xG scale 1.4478, xA scale 1.4478, team xA 1.90 = 0.73 x lambda) | scoreline_reset=true
team_lambda=2.615
squad_xg_sum=1.8062
squad_xa_sum=1.3129
team_expected_assists=1.9009
team_xa_to_xg_ratio=0.7269 | expected_assists: 0.0377 -> 0.0546 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 83.0) | match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0036
goal_rate=0.0006
scorer_weight=0.0035 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0531
assist_rate=0.0496
provider_weight=0.062 | - |
|
| Abdukodir Khusanov | D | 89 | 0 | 0.04 | 0.02 | 87% | 1 | 0.2 | 7.0 | 45.6 | 32 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0149, quality 0.813) | market_value_eur=47000000
quality_factor=0.8129
boost_factor=1.0149
reference_quality=0.505
history_matches=26
history_shrink=0.1613 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0140) | blend_weight=0.014
history_matches=26
season_overlap_discount=1.0
per90_to_match_factor=0.9854
prior_reliability=0.1333
competition=Premier League | wonTackle: 1.052 -> 1.0717 fouls: 1.3378 -> 1.3191 totalShots: 0.5687 -> 0.5608 wasFouled: 0.5684 -> 0.5605 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=true | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Pascal Groß', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.62 (squad xG sum 1.8062, xG scale 1.4478, xA scale 1.4478, team xA 1.90 = 0.73 x lambda) | scoreline_reset=true
team_lambda=2.615
squad_xg_sum=1.8062
squad_xa_sum=1.3129
team_expected_assists=1.9009
team_xa_to_xg_ratio=0.7269 | expected_goals: 0.0284 -> 0.0411 expected_assists: 0.0462 -> 0.0669 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 82.0) | match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0403
goal_rate=0.0
scorer_weight=0.0329 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0647
assist_rate=0.0
provider_weight=0.0535 | - |
|
| Joško Gvardiol | D | 85 | 0 | 0.18 | 0.09 | 109% | 1 | 0.6 | 6.8 | 44.6 | 19 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0176, quality 0.869) | market_value_eur=69000000
quality_factor=0.8692
boost_factor=1.0176
reference_quality=0.505
history_matches=26
history_shrink=0.1613 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0126) | blend_weight=0.0126
history_matches=26
season_overlap_discount=1.0
per90_to_match_factor=0.9423
prior_reliability=0.12
competition=Premier League | wasFouled: 1.3226 -> 1.306 totalCross: 0.2822 -> 0.2918 wonTackle: 1.1964 -> 1.1879 goals: 0.115 -> 0.1201 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Charalampos Kostoulas', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.62 (squad xG sum 1.8062, xG scale 1.4478, xA scale 1.4478, team xA 1.90 = 0.73 x lambda) | scoreline_reset=true
team_lambda=2.615
squad_xg_sum=1.8062
squad_xa_sum=1.3129
team_expected_assists=1.9009
team_xa_to_xg_ratio=0.7269 | expected_goals: 0.1263 -> 0.1829 expected_assists: 0.1147 -> 0.1661 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 15 by projected rating, fifa_overall 85.0) | match_squad_rank=15
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.1671
goal_rate=0.1201
scorer_weight=0.1765 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.153
assist_rate=0.2699
provider_weight=0.2076 | - |
|
| Elliot Anderson | M | 87 | 0 | 0.09 | 0.04 | 134% | 1 | 1.0 | 7.3 | 61.0 | 33 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0115, quality 0.896) | market_value_eur=109000000
quality_factor=0.8957
boost_factor=1.0115
reference_quality=0.505
history_matches=46
history_shrink=0.098 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0068) | blend_weight=0.0068
history_matches=46
season_overlap_discount=1.0
per90_to_match_factor=0.9616
prior_reliability=0.1067
competition=Premier League | interceptionWon: 1.4187 -> 1.4295 wasFouled: 3.0994 -> 3.0906 wonTackle: 1.2715 -> 1.2792 fouls: 1.423 -> 1.4297 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Chema Andrés', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.468, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 1.0701, 'skill_edge': 0.0917, 'height_edge': -0.044, 'attacker_skill': 0.8984, 'defender_skill': 0.6946, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Chema Andrés', 'market_value': 23000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.6946}], 'xg_override': 0.0641} | aerialWon: 1.2368 -> 1.0 totalShots: 0.8367 -> 0.8954 shotOffTarget: 0.6438 -> 0.6889 onTargetScoringAttempt: 0.1929 -> 0.2064 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.62 (squad xG sum 1.8062, xG scale 1.4478, xA scale 1.4478, team xA 1.90 = 0.73 x lambda) | scoreline_reset=true
team_lambda=2.615
squad_xg_sum=1.8062
squad_xa_sum=1.3129
team_expected_assists=1.9009
team_xa_to_xg_ratio=0.7269 | expected_goals: 0.0641 -> 0.0928 expected_assists: 0.1348 -> 0.1952 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 84.0) | match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0886
goal_rate=0.0708
scorer_weight=0.0982 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1773
assist_rate=0.0906
provider_weight=0.1562 | - |
|
| Enzo Fernández | M | 86 | 0 | 0.23 | 0.17 | 33% | 2 | 1.4 | 7.1 | 58.1 | 31 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0122, quality 0.897) | market_value_eur=116000000
quality_factor=0.897
boost_factor=1.0122
reference_quality=0.505
history_matches=43
history_shrink=0.1042 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0014) | blend_weight=0.0014
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=0.9598
prior_reliability=0.02
competition=Premier League | totalCross: 3.9545 -> 3.9491 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Chema Andrés', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.46, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 1.0587, 'skill_edge': 0.0919, 'height_edge': -0.052, 'attacker_skill': 0.8989, 'defender_skill': 0.6946, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Chema Andrés', 'market_value': 23000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.6946}], 'xg_override': 0.1584} | aerialWon: 0.7711 -> 1.0 totalShots: 1.5695 -> 1.6616 shotOffTarget: 1.0209 -> 1.0808 onTargetScoringAttempt: 0.5486 -> 0.5808 goals: 0.1997 -> 0.2114 expectedGoals: 0.1496 -> 0.1584 expectedGoalsOnTarget: 0.1288 -> 0.1364 bigChanceMissed: 0.1196 -> 0.1266 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.62 (squad xG sum 1.8062, xG scale 1.4478, xA scale 1.4478, team xA 1.90 = 0.73 x lambda) | scoreline_reset=true
team_lambda=2.615
squad_xg_sum=1.8062
squad_xa_sum=1.3129
team_expected_assists=1.9009
team_xa_to_xg_ratio=0.7269 | expected_goals: 0.1584 -> 0.2293 expected_assists: 0.1963 -> 0.2842 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 86.0) | match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.2049
goal_rate=0.2114
scorer_weight=0.2866 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.2474
assist_rate=0.1361
provider_weight=0.2274 | - |
|
| Iliman Ndiaye | F | 81 | 0 | 0.29 | 0.13 | 117% | 2 | 1.1 | 7.1 | 49.8 | 40 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0118, quality 0.859) | market_value_eur=63000000
quality_factor=0.8589
boost_factor=1.0118
reference_quality=0.505
history_matches=40
history_shrink=0.1111 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0096) | blend_weight=0.0096
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=0.9038
prior_reliability=0.1333
competition=Premier League | totalCross: 2.4705 -> 2.4554 wasFouled: 1.3133 -> 1.305 onTargetScoringAttempt: 0.7696 -> 0.7752 wonTackle: 0.985 -> 0.9799 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Luka Vušković, Lewis Dunk', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.237, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 1.0541, 'skill_edge': 0.0828, 'height_edge': -0.046, 'attacker_skill': 0.8589, 'defender_skill': 0.6749, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Luka Vušković', 'market_value': 69000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.89}, {'player': 'Lewis Dunk', 'market_value': 3600000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4597}], 'xg_override': 0.2005} | totalShots: 1.7902 -> 1.887 shotOffTarget: 1.015 -> 1.0699 onTargetScoringAttempt: 0.7752 -> 0.8171 bigChanceMissed: 0.2078 -> 0.219 goals: 0.1962 -> 0.2068 expectedGoals: 0.1902 -> 0.2005 expectedGoalsOnTarget: 0.1401 -> 0.1477 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.62 (squad xG sum 1.8062, xG scale 1.4478, xA scale 1.4478, team xA 1.90 = 0.73 x lambda) | scoreline_reset=true
team_lambda=2.615
squad_xg_sum=1.8062
squad_xa_sum=1.3129
team_expected_assists=1.9009
team_xa_to_xg_ratio=0.7269 | expected_goals: 0.2005 -> 0.2903 expected_assists: 0.1542 -> 0.2233 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 82.0) | match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.252
goal_rate=0.2068
scorer_weight=0.2976 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.2001
assist_rate=0.3545
provider_weight=0.2791 | - |
|
| Rayan Cherki | M | 73 | 0 | 0.38 | 0.13 | 185% | 3 | 1.6 | 7.2 | 57.6 | 34 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0131, quality 0.898) | market_value_eur=120000000
quality_factor=0.8975
boost_factor=1.0131
reference_quality=0.505
history_matches=40
history_shrink=0.1111 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0058) | blend_weight=0.0058
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=0.8119
prior_reliability=0.08
competition=Premier League | totalCross: 2.2824 -> 2.2927 fouls: 0.9872 -> 0.9971 goalAssist: 0.1766 -> 0.1834 onTargetScoringAttempt: 0.8688 -> 0.8754 goals: 0.2798 -> 0.286 wasFouled: 0.8828 -> 0.8777 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Maxim De Cuyper', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.501, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 1.0312, 'skill_edge': 0.0492, 'height_edge': -0.028, 'attacker_skill': 0.8975, 'defender_skill': 0.7881, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Maxim De Cuyper', 'market_value': 29000000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.7881}], 'xg_override': 0.2649} | aerialWon: 0.0 -> 0.9 totalShots: 2.3878 -> 2.4623 shotOffTarget: 1.5124 -> 1.5596 onTargetScoringAttempt: 0.8754 -> 0.9027 expectedGoalsOnTarget: 0.4315 -> 0.445 goals: 0.286 -> 0.2949 expectedGoals: 0.2569 -> 0.2649 bigChanceMissed: 0.1987 -> 0.2049 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.62 (squad xG sum 1.8062, xG scale 1.4478, xA scale 1.4478, team xA 1.90 = 0.73 x lambda) | scoreline_reset=true
team_lambda=2.615
squad_xg_sum=1.8062
squad_xa_sum=1.3129
team_expected_assists=1.9009
team_xa_to_xg_ratio=0.7269 | expected_goals: 0.2649 -> 0.3835 expected_assists: 0.2075 -> 0.3004 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 86.0) | match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.3185
goal_rate=0.2949
scorer_weight=0.42 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.2595
assist_rate=0.1834
provider_weight=0.2723 | - |
|
| Jérémy Doku | F | 83 | 0 | 0.25 | 0.06 | 307% | 3 | 1.1 | 7.3 | 46.7 | 32 | XGBoost F_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0141, quality 0.871) | market_value_eur=70000000
quality_factor=0.8707
boost_factor=1.0141
reference_quality=0.505
history_matches=34
history_shrink=0.1282 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Luka Vušković, Lewis Dunk', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.228, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 1.0413, 'skill_edge': 0.0881, 'height_edge': -0.06, 'attacker_skill': 0.8707, 'defender_skill': 0.6749, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Luka Vušković', 'market_value': 69000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.89}, {'player': 'Lewis Dunk', 'market_value': 3600000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4597}], 'xg_override': 0.175} | totalShots: 2.5283 -> 2.6328 shotOffTarget: 1.8612 -> 1.9381 onTargetScoringAttempt: 0.6671 -> 0.6947 expectedGoalsOnTarget: 0.3153 -> 0.3283 goals: 0.2134 -> 0.2222 expectedGoals: 0.1681 -> 0.175 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.62 (squad xG sum 1.8062, xG scale 1.4478, xA scale 1.4478, team xA 1.90 = 0.73 x lambda) | scoreline_reset=true
team_lambda=2.615
squad_xg_sum=1.8062
squad_xa_sum=1.3129
team_expected_assists=1.9009
team_xa_to_xg_ratio=0.7269 | expected_goals: 0.175 -> 0.2534 expected_assists: 0.2184 -> 0.316 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 84.0) | match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.2238
goal_rate=0.2222
scorer_weight=0.3066 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=1
assist_probability=0.2709
assist_rate=0.2541
provider_weight=0.358 | - |
|
| Erling Haaland | F | 88 | 2 | 0.92 | 0.48 | 92% | 4 | 2.8 | 7.4 | 56.4 | 32 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0123, quality 0.900) | market_value_eur=240000000
quality_factor=0.9
boost_factor=1.0123
reference_quality=0.505
history_matches=43
history_shrink=0.1042 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0090) | blend_weight=0.009
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=0.9777
prior_reliability=0.1333
competition=Premier League | totalShots: 2.9982 -> 3.0153 onTargetScoringAttempt: 1.4368 -> 1.4459 fouls: 0.769 -> 0.7621 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Luka Vušković, Lewis Dunk', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.315, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 1.1695, 'skill_edge': 0.1013, 'height_edge': 0.014, 'attacker_skill': 0.9, 'defender_skill': 0.6749, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Luka Vušković', 'market_value': 69000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.89}, {'player': 'Lewis Dunk', 'market_value': 3600000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4597}], 'xg_override': 0.636} | totalShots: 3.0153 -> 3.5264 shotOffTarget: 1.5614 -> 1.8261 onTargetScoringAttempt: 1.4459 -> 1.691 expectedGoalsOnTarget: 0.9417 -> 1.1013 goals: 0.7908 -> 0.9248 bigChanceMissed: 0.651 -> 0.7613 expectedGoals: 0.5438 -> 0.636 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | goals: 1.0 -> 0 | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.62 (squad xG sum 1.8062, xG scale 1.4478, xA scale 1.4478, team xA 1.90 = 0.73 x lambda) | scoreline_reset=true
team_lambda=2.615
squad_xg_sum=1.8062
squad_xa_sum=1.3129
team_expected_assists=1.9009
team_xa_to_xg_ratio=0.7269 | expected_goals: 0.636 -> 0.9208 expected_assists: 0.0608 -> 0.088 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 91.0) | match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=2
goal_probability=0.6018
goal_rate=0.9248
scorer_weight=1.151 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0842
assist_rate=0.0672
provider_weight=0.0931 | - |
|
| Rúben Dias | D | 89 | 0 | 0.08 | 0.03 | 232% | 1 | 0.3 | 7.0 | 43.4 | 26 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0129, quality 0.840) | market_value_eur=55000000
quality_factor=0.8399
boost_factor=1.0129
reference_quality=0.505
history_matches=34
history_shrink=0.1282 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0111) | blend_weight=0.0111
history_matches=34
season_overlap_discount=1.0
per90_to_match_factor=0.9864
prior_reliability=0.1333
competition=Premier League | fouls: 1.6517 -> 1.6334 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Charalampos Kostoulas', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.62 (squad xG sum 1.8062, xG scale 1.4478, xA scale 1.4478, team xA 1.90 = 0.73 x lambda) | scoreline_reset=true
team_lambda=2.615
squad_xg_sum=1.8062
squad_xa_sum=1.3129
team_expected_assists=1.9009
team_xa_to_xg_ratio=0.7269 | expected_goals: 0.0579 -> 0.0838 expected_assists: 0.0669 -> 0.0969 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 87.0) | match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0804
goal_rate=0.0134
scorer_weight=0.067 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0924
assist_rate=0.0
provider_weight=0.0775 | - |
|
| Team totals | 2 | 2.62 | | 21 | | 7.1 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Ederson | G | 4.7m | 12.2% | Market-value substitute prior |
| Nico O'Reilly | D | 15.3m | 25.3% | Market-value substitute prior |
| Marc Guéhi | D | 15.3m | 25.2% | Market-value substitute prior |
| Ayyoub Bouaddi | M | 15.7m | 72.9% | Market-value substitute prior |
| Phil Foden | M | 23.7m | 34.2% | Market-value substitute prior |
| Antoine Semenyo | F | 27.1m | 37.0% | Market-value substitute prior |
Brighton — projected line vs season baseline (4-2-3-1)
| Player | Pos | Min | Proj G | Proj xG | Season xG/g | | Proj Sh | Season Sh/g | Proj Rtg | Season Rtg | Rec | Model / FBref Prior |
|---|
| Bart Verbruggen | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 7.0 | 57.7 | 33 | FBref Prior G_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost G_service raw output over 3 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0076, quality 0.764) | market_value_eur=37000000
quality_factor=0.7641
boost_factor=1.0076
reference_quality=0.505
history_matches=46
history_shrink=0.098 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0085) | blend_weight=0.0085
history_matches=46
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League | saves: 2.9074 -> 2.887 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Erling Haaland, Rayan Cherki', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 2.7469} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.15 (squad xG sum 1.2390, xG scale 0.9314, xA scale 0.9314, team xA 0.91 = 0.78 x lambda) | scoreline_reset=true
team_lambda=1.154
squad_xg_sum=1.239
squad_xa_sum=0.9722
team_expected_assists=0.9055
team_xa_to_xg_ratio=0.7846 | shots_faced: 26.1 -> 24.8 expected_saves: 6.39 -> 6.06 high_pressure_saves: 2.2 -> 2.09 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 81.0) | match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.2134 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0
provider_weight=0.0
squad_weight_total=0.9064 | - |
|
| Costinha | D | 90 | 0 | 0.02 | 0.01 | 70% | 1 | 0.2 | 6.7 | 34.1 | 14 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0009, quality 0.512) | market_value_eur=9100000
quality_factor=0.5118
boost_factor=1.0009
reference_quality=0.505
history_matches=7
history_shrink=0.4167 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0072) | blend_weight=0.0072
history_matches=7
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.0267
competition=Premier League | totalShots: 0.5274 -> 0.5579 onTargetScoringAttempt: 0.0834 -> 0.0999 interceptionWon: 0.7669 -> 0.7794 wonTackle: 0.9032 -> 0.9147 fouls: 1.0028 -> 1.0136 totalCross: 1.1349 -> 1.1267 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Erling Haaland', 'matchup_zone': 'Shape fallback'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.15 (squad xG sum 1.2390, xG scale 0.9314, xA scale 0.9314, team xA 0.91 = 0.78 x lambda) | scoreline_reset=true
team_lambda=1.154
squad_xg_sum=1.239
squad_xa_sum=0.9722
team_expected_assists=0.9055
team_xa_to_xg_ratio=0.7846 | expected_assists: 0.1088 -> 0.1013 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 16 by projected rating, fifa_overall 75.0) | match_squad_rank=16
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0227
goal_rate=0.0
scorer_weight=0.0184 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0963
assist_rate=0.0
provider_weight=0.081 | - |
|
| Luka Vušković | D | 89 | 0 | 0.17 | 0.09 | 91% | 1 | 1.1 | 7.1 | 42.4 | 14 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0420, quality 0.869) | market_value_eur=69000000
quality_factor=0.8692
boost_factor=1.042
reference_quality=0.505
history_matches=8
history_shrink=0.3846 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0333) | blend_weight=0.0333
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=0.9886
prior_reliability=0.1333
competition=Premier League | interceptionWon: 1.2228 -> 1.1821 wasFouled: 1.0365 -> 1.002 totalShots: 1.3477 -> 1.3687 fouls: 1.5357 -> 1.5175 totalCross: 0.4055 -> 0.392 onTargetScoringAttempt: 0.2779 -> 0.2686 wonTackle: 0.7113 -> 0.7041 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Erling Haaland', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.15 (squad xG sum 1.2390, xG scale 0.9314, xA scale 0.9314, team xA 0.91 = 0.78 x lambda) | scoreline_reset=true
team_lambda=1.154
squad_xg_sum=1.239
squad_xa_sum=0.9722
team_expected_assists=0.9055
team_xa_to_xg_ratio=0.7846 | expected_goals: 0.1823 -> 0.1698 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 81.0) | match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1562
goal_rate=0.0921
scorer_weight=0.1358 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0246
assist_rate=0.0
provider_weight=0.0199 | - |
|
| Lewis Dunk | D | 90 | 0 | 0.03 | 0.04 | ok | 1 | 0.5 | 7.1 | 53.0 | 30 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9980, quality 0.445) | market_value_eur=3600000
quality_factor=0.4449
boost_factor=0.998
reference_quality=0.505
history_matches=40
history_shrink=0.1111 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0096) | blend_weight=0.0096
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=0.9987
prior_reliability=0.1333
competition=Premier League | fouls: 0.466 -> 0.4759 totalCross: 0.1765 -> 0.1844 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Erling Haaland', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.15 (squad xG sum 1.2390, xG scale 0.9314, xA scale 0.9314, team xA 0.91 = 0.78 x lambda) | scoreline_reset=true
team_lambda=1.154
squad_xg_sum=1.239
squad_xa_sum=0.9722
team_expected_assists=0.9055
team_xa_to_xg_ratio=0.7846 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 77.0) | match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0322
goal_rate=0.1509
scorer_weight=0.0409 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0166
assist_rate=0.0
provider_weight=0.0134 | - |
|
| Olivier Boscagli | D | 79 | 0 | 0.01 | 0.01 | 122% | 1 | 0.2 | 7.0 | 37.1 | 34 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0067, quality 0.616) | market_value_eur=18500000
quality_factor=0.6161
boost_factor=1.0067
reference_quality=0.505
history_matches=20
history_shrink=0.2 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0173) | blend_weight=0.0173
history_matches=20
season_overlap_discount=1.0
per90_to_match_factor=0.8746
prior_reliability=0.1333
competition=Premier League | fouls: 1.0602 -> 1.0721 totalCross: 2.708 -> 2.699 onTargetScoringAttempt: 0.0608 -> 0.0673 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Iliman Ndiaye', 'matchup_zone': 'Shape fallback'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.15 (squad xG sum 1.2390, xG scale 0.9314, xA scale 0.9314, team xA 0.91 = 0.78 x lambda) | scoreline_reset=true
team_lambda=1.154
squad_xg_sum=1.239
squad_xa_sum=0.9722
team_expected_assists=0.9055
team_xa_to_xg_ratio=0.7846 | expected_assists: 0.0788 -> 0.0734 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 78.0) | match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0147
goal_rate=0.0
scorer_weight=0.0118 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0708
assist_rate=0.1508
provider_weight=0.0918 | - |
|
| Pascal Groß | M | 87 | 0 | 0.11 | 0.11 | ok | 1 | 0.9 | 7.2 | 58.1 | 33 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9968, quality 0.437) | market_value_eur=2300000
quality_factor=0.4374
boost_factor=0.9968
reference_quality=0.505
history_matches=27
history_shrink=0.1562 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0135) | blend_weight=0.0135
history_matches=27
season_overlap_discount=1.0
per90_to_match_factor=0.9713
prior_reliability=0.1333
competition=Premier League | totalCross: 6.4988 -> 6.5292 totalShots: 1.6308 -> 1.6153 interceptionWon: 0.4566 -> 0.4504 wasFouled: 0.3917 -> 0.3864 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Abdukodir Khusanov', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.267, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.6869, 'skill_edge': -0.193, 'height_edge': -0.02, 'attacker_skill': 0.4374, 'defender_skill': 0.8663, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Abdukodir Khusanov', 'market_value': 47000000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.8663}], 'xg_override': 0.118} | aerialWon: 0.5298 -> 1.1 totalShots: 1.6298 -> 1.1195 shotOffTarget: 1.0727 -> 0.7368 onTargetScoringAttempt: 0.5571 -> 0.3827 goals: 0.1787 -> 0.1227 expectedGoals: 0.1718 -> 0.118 expectedGoalsOnTarget: 0.1062 -> 0.0729 bigChanceMissed: 0.0704 -> 0.0484 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.15 (squad xG sum 1.2390, xG scale 0.9314, xA scale 0.9314, team xA 0.91 = 0.78 x lambda) | scoreline_reset=true
team_lambda=1.154
squad_xg_sum=1.239
squad_xa_sum=0.9722
team_expected_assists=0.9055
team_xa_to_xg_ratio=0.7846 | expected_goals: 0.118 -> 0.1099 expected_assists: 0.2031 -> 0.1891 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 79.0) | match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1041
goal_rate=0.1227
scorer_weight=0.113 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1723
assist_rate=0.1704
provider_weight=0.1647 | - |
|
| Chema Andrés | M | 80 | 0 | 0.06 | 0.04 | ok | 1 | 0.3 | 6.8 | 29.2 | 12 | XGBoost M_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0232, quality 0.660) | market_value_eur=23000000
quality_factor=0.6595
boost_factor=1.0232
reference_quality=0.505
history_matches=5
history_shrink=0.5 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Elliot Anderson', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.372, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9299, 'skill_edge': -0.0917, 'height_edge': 0.044, 'attacker_skill': 0.6946, 'defender_skill': 0.8984, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Elliot Anderson', 'market_value': 109000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8984}], 'xg_override': 0.0601} | totalShots: 0.7737 -> 0.7195 aerialWon: 1.2588 -> 1.3 shotOffTarget: 0.5131 -> 0.4771 onTargetScoringAttempt: 0.2605 -> 0.2422 expectedGoalsOnTarget: 0.1833 -> 0.1705 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.15 (squad xG sum 1.2390, xG scale 0.9314, xA scale 0.9314, team xA 0.91 = 0.78 x lambda) | scoreline_reset=true
team_lambda=1.154
squad_xg_sum=1.239
squad_xa_sum=0.9722
team_expected_assists=0.9055
team_xa_to_xg_ratio=0.7846 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 86.0) | match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0545
goal_rate=0.0609
scorer_weight=0.0564 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0365
assist_rate=0.0526
provider_weight=0.0425 | - |
|
| Diego Gómez | M | 84 | 0 | 0.16 | 0.13 | ok | 2 | 1.4 | 7.0 | 54.1 | 29 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0076, quality 0.732) | market_value_eur=32000000
quality_factor=0.732
boost_factor=1.0076
reference_quality=0.505
history_matches=40
history_shrink=0.1111 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0092) | blend_weight=0.0092
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=0.9307
prior_reliability=0.1267
competition=Premier League | totalShots: 2.1177 -> 2.1333 wonTackle: 1.1542 -> 1.1616 onTargetScoringAttempt: 0.6991 -> 0.7058 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Elliot Anderson', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.385, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.949, 'skill_edge': -0.0587, 'height_edge': 0.024, 'attacker_skill': 0.7679, 'defender_skill': 0.8984, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Elliot Anderson', 'market_value': 109000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8984}], 'xg_override': 0.1734} | aerialWon: 2.9534 -> 1.2 totalShots: 2.1333 -> 2.0245 shotOffTarget: 1.4186 -> 1.3463 onTargetScoringAttempt: 0.7058 -> 0.6698 bigChanceMissed: 0.2704 -> 0.2566 goals: 0.1947 -> 0.1848 expectedGoals: 0.1827 -> 0.1734 expectedGoalsOnTarget: 0.1091 -> 0.1035 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.15 (squad xG sum 1.2390, xG scale 0.9314, xA scale 0.9314, team xA 0.91 = 0.78 x lambda) | scoreline_reset=true
team_lambda=1.154
squad_xg_sum=1.239
squad_xa_sum=0.9722
team_expected_assists=0.9055
team_xa_to_xg_ratio=0.7846 | expected_goals: 0.1734 -> 0.1615 expected_assists: 0.1042 -> 0.097 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 78.0) | match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1491
goal_rate=0.1848
scorer_weight=0.1697 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0924
assist_rate=0.1222
provider_weight=0.1083 | - |
|
| Yasin Ayari | M | 84 | 0 | 0.13 | 0.07 | 90% | 2 | 0.9 | 6.9 | 48.5 | 27 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0103, quality 0.786) | market_value_eur=41000000
quality_factor=0.7859
boost_factor=1.0103
reference_quality=0.505
history_matches=36
history_shrink=0.122 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0037) | blend_weight=0.0037
history_matches=36
season_overlap_discount=1.0
per90_to_match_factor=0.9353
prior_reliability=0.0467
competition=Premier League | fouls: 0.5457 -> 0.5536 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Elliot Anderson, Enzo Fernández', 'matchup_zone': 'Attacking Mid vs Double Pivot — Tight Space Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.8971, 'skill_edge': -0.046, 'height_edge': -0.024, 'attacker_skill': 0.7964, 'defender_skill': 0.8986, 'attacker_role': 'CAM', 'attacker_mv_price_index': 0.95, 'defender_adjusted_parts': [{'player': 'Elliot Anderson', 'market_value': 109000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8984}, {'player': 'Enzo Fernández', 'market_value': 116000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8989}], 'xg_override': 0.1409} | aerialWon: 0.302 -> 0.8 totalShots: 1.8621 -> 1.6705 shotOffTarget: 1.3961 -> 1.2524 onTargetScoringAttempt: 0.4613 -> 0.4138 expectedGoalsOnTarget: 0.2052 -> 0.1841 goals: 0.1597 -> 0.1433 expectedGoals: 0.1571 -> 0.1409 bigChanceMissed: 0.154 -> 0.1382 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.15 (squad xG sum 1.2390, xG scale 0.9314, xA scale 0.9314, team xA 0.91 = 0.78 x lambda) | scoreline_reset=true
team_lambda=1.154
squad_xg_sum=1.239
squad_xa_sum=0.9722
team_expected_assists=0.9055
team_xa_to_xg_ratio=0.7846 | expected_goals: 0.1409 -> 0.1312 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 79.0) | match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.123
goal_rate=0.1433
scorer_weight=0.1329 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0583
assist_rate=0.0686
provider_weight=0.0623 | - |
|
| Maxim De Cuyper | D | 82 | 0 | 0.12 | 0.10 | ok | 1 | 0.6 | 6.8 | 49.6 | 38 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0072, quality 0.710) | market_value_eur=29000000
quality_factor=0.71
boost_factor=1.0072
reference_quality=0.505
history_matches=38
history_shrink=0.1163 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0096) | blend_weight=0.0096
history_matches=38
season_overlap_discount=1.0
per90_to_match_factor=0.9079
prior_reliability=0.1267
competition=Premier League | totalCross: 4.2843 -> 4.3028 totalShots: 0.8661 -> 0.8812 wasFouled: 1.0788 -> 1.0685 fouls: 1.3271 -> 1.3327 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Rayan Cherki', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.15 (squad xG sum 1.2390, xG scale 0.9314, xA scale 0.9314, team xA 0.91 = 0.78 x lambda) | scoreline_reset=true
team_lambda=1.154
squad_xg_sum=1.239
squad_xa_sum=0.9722
team_expected_assists=0.9055
team_xa_to_xg_ratio=0.7846 | expected_goals: 0.1293 -> 0.1204 expected_assists: 0.1854 -> 0.1727 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 78.0) | match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1134
goal_rate=0.1723
scorer_weight=0.1493 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=1
assist_probability=0.1586
assist_rate=0.207
provider_weight=0.1886 | - |
|
| Charalampos Kostoulas | F | 78 | 1 | 0.26 | 0.13 | 104% | 2 | 1.1 | 6.8 | 43.2 | 30 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0128, quality 0.796) | market_value_eur=43000000
quality_factor=0.7957
boost_factor=1.0128
reference_quality=0.505
history_matches=29
history_shrink=0.1471 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0076) | blend_weight=0.0076
history_matches=29
season_overlap_discount=1.0
per90_to_match_factor=0.8714
prior_reliability=0.08
competition=Premier League | wasFouled: 1.4458 -> 1.4347 wonTackle: 0.6546 -> 0.6496 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Joško Gvardiol, Rúben Dias', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.9308, 'skill_edge': -0.0391, 'height_edge': -0.008, 'attacker_skill': 0.7957, 'defender_skill': 0.8826, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Joško Gvardiol', 'market_value': 69000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.89}, {'player': 'Rúben Dias', 'market_value': 55000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8751}], 'xg_override': 0.2778} | totalShots: 2.2516 -> 2.0958 shotOffTarget: 1.464 -> 1.3627 onTargetScoringAttempt: 0.7873 -> 0.7328 goals: 0.3737 -> 0.3478 expectedGoalsOnTarget: 0.331 -> 0.3081 bigChanceMissed: 0.3193 -> 0.2972 expectedGoals: 0.2985 -> 0.2778 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.15 (squad xG sum 1.2390, xG scale 0.9314, xA scale 0.9314, team xA 0.91 = 0.78 x lambda) | scoreline_reset=true
team_lambda=1.154
squad_xg_sum=1.239
squad_xa_sum=0.9722
team_expected_assists=0.9055
team_xa_to_xg_ratio=0.7846 | expected_goals: 0.2778 -> 0.2587 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 73.0) | match_squad_rank=11
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.2279
goal_rate=0.3478
scorer_weight=0.3139 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0592
assist_rate=0.3407
provider_weight=0.0762 | - |
|
| Team totals | 1 | 1.15 | | 15 | | 6.9 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Tom McGill | G | 4.4m | 10.9% | Market-value substitute prior |
| Ferdi Kadıoğlu | D | 14.9m | 36.1% | Market-value substitute prior |
| Mats Wieffer | D | 14.5m | 23.6% | Market-value substitute prior |
| Jack Hinshelwood | M | 23.2m | 33.2% | Market-value substitute prior |
| Georginio Rutter | M | 23.1m | 33.0% | Market-value substitute prior |
| Yankuba Minteh | F | 26.8m | 62.9% | Market-value substitute prior |
Antagonist / tactical summary
Home midfield dominates with ~52% possession expected (Rayan Cherki vs Yasin Ayari). Total antagonist xG — Home: 1.50, Away: 0.77. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Midfield — possession 51.6% / 48.4%, dominance ratio 0.57, key duel: Rayan Cherki vs Yasin Ayari
Rayan Cherki xG 0.26Erling Haaland xG 0.64Iliman Ndiaye xG 0.20Pascal Groß xG 0.12Yasin Ayari xG 0.14Charalampos Kostoulas xG 0.28
Summary
Antagonist matchup analysis for Man City vs Brighton. Most likely scoreline: 2-1. Lambdas derived from 6 home and 5 away individual player duels. Head-to-head: Man City 5W-3D-2L vs Brighton over 10 meetings.
Tactical parity between 4-2-3-1 and 4-2-3-1. Match outcome driven primarily by individual player quality. Home midfield dominates with ~52% possession expected (Rayan Cherki vs Yasin Ayari). Total antagonist xG — Home: 1.50, Away: 0.77. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Rayo Vallecano vs Celta
LaLiga · 20261031 · 4-2-3-1 vs 3-4-3
Predicted 2-1Winner: Rayo VallecanoWinning H 2-1 (9.4%)Winning A 1-2 (7.1%)Confidence 0.73λ home/away 1.70 / 1.28Most-likely P 9.4%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset TracingAntagonist + XGBoost match analysis for Rayo Vallecano vs Celta. Player statistics regressed using position-specific XGBoost models (G, D, M, F) with 2026-2027 FBref priors. Micro-duels resolved across 4-2-3-1 vs 3-4-3 (duel lambdas: Home 1.027, Away 0.982). Final calibrated Poisson lambdas: Home 1.704, Away 1.280 (most likely score 2-1).
Home Starters 11/11 XGBoost (7 FBref) Away Starters 11/11 XGBoost (10 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.03 / 0.98 Final λ (H/A) 1.70 / 1.28
FBref Team Priors: Rayo Vallecano (Gls/90: 1.3333333333333333, GA/90: 1.33 → E[λ]: 0.247) vs Celta Vigo (Gls/90: 0.25, GA/90: 0.25 → E[λ]: 0.246) | Blend Weight: 0.228
Modeling Pipeline Stages (5 layers)
- 1. XGBoost player regressions for volume & event rates with market-value quality scaling
- 2. Multi-source prior blending (FBref 2026-2027 tables + Sofascore season history)
- 3. Antagonist formation duel matrix resolving 1v1 and zonal matchups
- 4. Team-level prior calibration (FBref possession and attack/defense efficiencies)
- 5. Bivariate Poisson matrix with Dixon-Coles low-score correction
Standing & form context
| Metric | Rayo Vallecano | Celta |
|---|
| League position | 17.00 | 9.00 |
| Points per game | 1.15 | 1.26 |
| Attack index | 1.00 | 0.85 |
| Defense (concede) index | 0.76 | 1.27 |
| Form multiplier | 0.99 | 1.01 |
| Standing λ multiplier | 0.90 | 1.03 |
Lambda decomposition (how the goal rates were built)
| Stage | Rayo Vallecano λ | Celta λ |
|---|
| FBref Squad Prior E[λ] (weight 0.228) | 0.247 | 0.246 |
| Pre-competitive-floor | 1.326 | 1.038 |
| Pre-calibration (Micro-duels) | 1.027 | 0.982 |
| Final λ | 1.704 | 1.280 |
competition calibration scale 1.262competition observed total goals 2.984quality gap applied Truemismatch score pressure applied Falsecompetitive underdog floor applied Falsestage discount 1.0
Scoreline distribution & markets
| Top 5 scorelines | P |
|---|
| 1-1 | 11.1% |
| 2-1 | 9.4% |
| 1-0 | 8.5% |
| 2-0 | 7.3% |
| 1-2 | 7.1% |
| Home win | 47.3% |
| Draw | 23.9% |
| Away win | 28.7% |
| Over 2.5 | 57.3% |
| BTTS yes | 59.1% |
Pregame fair line — favorite Rayo Vallecano (47.3%), fair total 2.98, fair spread 0.42
Projected players vs season baseline
Proj = projected for this match · Season = this season's per-game average from match data · deviation badge compares projected xG to the player's season xG/game.
Rayo Vallecano — projected line vs season baseline (4-2-3-1)
| Player | Pos | Min | Proj G | Proj xG | Season xG/g | | Proj Sh | Season Sh/g | Proj Rtg | Season Rtg | Rec | Model / FBref Prior |
|---|
| Emil Audero | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 7.0 | 34.4 | 10 | XGBoost G_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost G_service raw output over 3 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9899, quality 0.437) | market_value_eur=2700000
quality_factor=0.4374
boost_factor=0.9899
reference_quality=0.505
history_matches=5
history_shrink=0.5 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Ferrán Jutglà, Pablo Durán', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 0.982} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.70 (squad xG sum 1.1313, xG scale 1.5063, xA scale 1.5063, team xA 1.21 = 0.71 x lambda) | scoreline_reset=true
team_lambda=1.704
squad_xg_sum=1.1313
squad_xa_sum=0.8
team_expected_assists=1.2051
team_xa_to_xg_ratio=0.7072 | shots_faced: 9.3 -> 12.2 expected_saves: 2.27 -> 2.99 high_pressure_saves: 0.79 -> 1.02 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 79.0) | match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.8323 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0
provider_weight=0.0
squad_weight_total=1.1517 | - |
|
| Iván Balliu | D | 79 | 0 | 0.03 | 0.00 | 3462% | 0 | 0.0 | 6.7 | 28.8 | 30 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9962, quality 0.437) | market_value_eur=1100000
quality_factor=0.4374
boost_factor=0.9962
reference_quality=0.505
history_matches=22
history_shrink=0.1852 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0160) | blend_weight=0.016
history_matches=22
season_overlap_discount=1.0
per90_to_match_factor=0.8808
prior_reliability=0.1333
competition=La Liga | totalCross: 0.8873 -> 0.8801 totalShots: 0.3318 -> 0.3265 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Ferrán Jutglà', 'matchup_zone': 'Shape fallback'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.70 (squad xG sum 1.1313, xG scale 1.5063, xA scale 1.5063, team xA 1.21 = 0.71 x lambda) | scoreline_reset=true
team_lambda=1.704
squad_xg_sum=1.1313
squad_xa_sum=0.8
team_expected_assists=1.2051
team_xa_to_xg_ratio=0.7072 | expected_goals: 0.0189 -> 0.0285 expected_assists: 0.0311 -> 0.0468 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 15 by projected rating, fifa_overall 74.0) | match_squad_rank=15
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0281
goal_rate=0.0
scorer_weight=0.0228 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0457
assist_rate=0.0
provider_weight=0.0374 | - |
|
| Florian Lejeune | D | 90 | 0 | 0.11 | 0.06 | 89% | 1 | 1.4 | 7.0 | 59.5 | 33 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9980, quality 0.437) | market_value_eur=1700000
quality_factor=0.4374
boost_factor=0.998
reference_quality=0.505
history_matches=45
history_shrink=0.1 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0130) | blend_weight=0.013
history_matches=45
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.2
competition=La Liga | interceptionWon: 1.1913 -> 1.2105 wonTackle: 0.9052 -> 0.9194 fouls: 1.4816 -> 1.4753 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Ferrán Jutglà', 'matchup_zone': 'Shadow Striker vs Centre Back — Half-Space Threat'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.70 (squad xG sum 1.1313, xG scale 1.5063, xA scale 1.5063, team xA 1.21 = 0.71 x lambda) | scoreline_reset=true
team_lambda=1.704
squad_xg_sum=1.1313
squad_xa_sum=0.8
team_expected_assists=1.2051
team_xa_to_xg_ratio=0.7072 | expected_goals: 0.0741 -> 0.1116 expected_assists: 0.0169 -> 0.0255 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 79.0) | match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.1056
goal_rate=0.0471
scorer_weight=0.0893 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0252
assist_rate=0.0094
provider_weight=0.0226 | - |
|
| Mujaid Sadick | D | 86 | 0 | 0.05 | 0.01 | 370% | 0 | 0.1 | 6.8 | 33.1 | 10 | XGBoost D_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9930, quality 0.458) | market_value_eur=4700000
quality_factor=0.4585
boost_factor=0.993
reference_quality=0.505
history_matches=5
history_shrink=0.5 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Pablo Durán', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.70 (squad xG sum 1.1313, xG scale 1.5063, xA scale 1.5063, team xA 1.21 = 0.71 x lambda) | scoreline_reset=true
team_lambda=1.704
squad_xg_sum=1.1313
squad_xa_sum=0.8
team_expected_assists=1.2051
team_xa_to_xg_ratio=0.7072 | expected_goals: 0.0338 -> 0.0509 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 84.0) | match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0496
goal_rate=0.0
scorer_weight=0.0407 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0087
assist_rate=0.0
provider_weight=0.0078 | - |
|
| Adrià Pedrosa | D | 82 | 0 | 0.05 | 0.01 | 258% | 1 | 0.4 | 6.7 | 44.7 | 32 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9974, quality 0.437) | market_value_eur=2700000
quality_factor=0.4374
boost_factor=0.9974
reference_quality=0.505
history_matches=34
history_shrink=0.1282 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0039) | blend_weight=0.0039
history_matches=34
season_overlap_discount=1.0
per90_to_match_factor=0.9127
prior_reliability=0.0467
competition=La Liga | fouls: 1.3042 -> 1.3093 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Aleix Febas', 'matchup_zone': 'Left Wingback vs Right Back — Overlapping Run'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.70 (squad xG sum 1.1313, xG scale 1.5063, xA scale 1.5063, team xA 1.21 = 0.71 x lambda) | scoreline_reset=true
team_lambda=1.704
squad_xg_sum=1.1313
squad_xa_sum=0.8
team_expected_assists=1.2051
team_xa_to_xg_ratio=0.7072 | expected_goals: 0.0354 -> 0.0533 expected_assists: 0.1358 -> 0.2046 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 74.0) | match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0519
goal_rate=0.102
scorer_weight=0.0666 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=1
assist_probability=0.185
assist_rate=0.12
provider_weight=0.1872 | - |
|
| Óscar Valentín | M | 72 | 0 | 0.05 | 0.02 | 109% | 0 | 0.2 | 6.9 | 53.6 | 32 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9978, quality 0.437) | market_value_eur=1900000
quality_factor=0.4374
boost_factor=0.9978
reference_quality=0.505
history_matches=41
history_shrink=0.1087 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0108) | blend_weight=0.0108
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=0.7946
prior_reliability=0.1533
competition=La Liga | totalCross: 0.1696 -> 0.1752 fouls: 1.2291 -> 1.2345 totalShots: 0.484 -> 0.4788 interceptionWon: 0.9159 -> 0.9209 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Ilaix Moriba, Javier Rueda', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.70 (squad xG sum 1.1313, xG scale 1.5063, xA scale 1.5063, team xA 1.21 = 0.71 x lambda) | scoreline_reset=true
team_lambda=1.704
squad_xg_sum=1.1313
squad_xa_sum=0.8
team_expected_assists=1.2051
team_xa_to_xg_ratio=0.7072 | expected_goals: 0.0345 -> 0.052 expected_assists: 0.044 -> 0.0663 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 77.0) | match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0507
goal_rate=0.0518
scorer_weight=0.0626 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0641
assist_rate=0.052
provider_weight=0.0719 | - |
|
| Unai López | M | 81 | 0 | 0.09 | 0.03 | 257% | 1 | 0.6 | 7.1 | 50.7 | 30 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9976, quality 0.437) | market_value_eur=2600000
quality_factor=0.4374
boost_factor=0.9976
reference_quality=0.505
history_matches=37
history_shrink=0.119 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0139) | blend_weight=0.0139
history_matches=37
season_overlap_discount=1.0
per90_to_match_factor=0.9047
prior_reliability=0.18
competition=La Liga | totalShots: 1.1063 -> 1.0956 fouls: 0.9474 -> 0.9575 interceptionWon: 1.1698 -> 1.1628 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Javier Rueda', 'matchup_zone': 'Midfield lane'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.70 (squad xG sum 1.1313, xG scale 1.5063, xA scale 1.5063, team xA 1.21 = 0.71 x lambda) | scoreline_reset=true
team_lambda=1.704
squad_xg_sum=1.1313
squad_xa_sum=0.8
team_expected_assists=1.2051
team_xa_to_xg_ratio=0.7072 | expected_goals: 0.0614 -> 0.0925 expected_assists: 0.1446 -> 0.2178 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 76.0) | match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0884
goal_rate=0.0752
scorer_weight=0.104 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1957
assist_rate=0.1061
provider_weight=0.1747 | - |
|
| Jorge de Frutos | F | 69 | 0 | 0.20 | 0.19 | ok | 1 | 1.1 | 6.7 | 60.1 | 36 | XGBoost F_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0009, quality 0.533) | market_value_eur=10900000
quality_factor=0.533
boost_factor=1.0009
reference_quality=0.505
history_matches=43
history_shrink=0.1042 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=true | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Javi Rodríguez, Marcos Alonso', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 0.9123, 'skill_edge': -0.0077, 'height_edge': -0.052, 'attacker_skill': 0.533, 'defender_skill': 0.55, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Javi Rodríguez', 'market_value': 17500000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6625}, {'player': 'Marcos Alonso', 'market_value': 1300000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.1334} | totalShots: 1.2907 -> 1.1775 shotOffTarget: 0.7939 -> 0.7243 onTargetScoringAttempt: 0.4968 -> 0.4532 expectedGoalsOnTarget: 0.1755 -> 0.1601 goals: 0.154 -> 0.1405 expectedGoals: 0.1462 -> 0.1334 bigChanceMissed: 0.1059 -> 0.0966 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.70 (squad xG sum 1.1313, xG scale 1.5063, xA scale 1.5063, team xA 1.21 = 0.71 x lambda) | scoreline_reset=true
team_lambda=1.704
squad_xg_sum=1.1313
squad_xa_sum=0.8
team_expected_assists=1.2051
team_xa_to_xg_ratio=0.7072 | expected_goals: 0.1334 -> 0.2009 expected_assists: 0.0633 -> 0.0953 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 81.0) | match_squad_rank=12
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.182
goal_rate=0.1405
scorer_weight=0.2087 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0909
assist_rate=0.195
provider_weight=0.1191 | - |
|
| Isi Palazón | M | 67 | 0 | 0.13 | 0.10 | 35% | 1 | 1.1 | 6.8 | 53.8 | 24 | XGBoost M_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9975, quality 0.437) | market_value_eur=3000000
quality_factor=0.4374
boost_factor=0.9975
reference_quality=0.505
history_matches=35
history_shrink=0.125 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Javi Rodríguez', 'matchup_zone': 'LW vs CB', 'duel_win_rate': 0.259, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.7629, 'skill_edge': -0.1013, 'height_edge': -0.06, 'attacker_skill': 0.4374, 'defender_skill': 0.6625, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Javi Rodríguez', 'market_value': 17500000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6625}], 'xg_override': 0.0869} | totalShots: 1.5131 -> 1.1543 shotOffTarget: 1.0627 -> 0.8107 onTargetScoringAttempt: 0.4503 -> 0.3435 aerialWon: 0.8712 -> 0.8 bigChanceMissed: 0.1481 -> 0.113 goals: 0.1245 -> 0.095 expectedGoals: 0.1139 -> 0.0869 expectedGoalsOnTarget: 0.0729 -> 0.0556 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.70 (squad xG sum 1.1313, xG scale 1.5063, xA scale 1.5063, team xA 1.21 = 0.71 x lambda) | scoreline_reset=true
team_lambda=1.704
squad_xg_sum=1.1313
squad_xa_sum=0.8
team_expected_assists=1.2051
team_xa_to_xg_ratio=0.7072 | expected_goals: 0.0869 -> 0.1309 expected_assists: 0.1174 -> 0.1768 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 79.0) | match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.1227
goal_rate=0.095
scorer_weight=0.1386 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1621
assist_rate=0.094
provider_weight=0.1521 | - |
|
| Álvaro García | F | 82 | 1 | 0.35 | 0.16 | 114% | 2 | 1.0 | 6.9 | 53.4 | 38 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9978, quality 0.437) | market_value_eur=1500000
quality_factor=0.4374
boost_factor=0.9978
reference_quality=0.505
history_matches=41
history_shrink=0.1087 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0104) | blend_weight=0.0104
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=0.9089
prior_reliability=0.1467
competition=La Liga | totalCross: 4.0359 -> 4.0198 totalShots: 2.0446 -> 2.0321 fouls: 0.5481 -> 0.5553 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Javi Rodríguez, Marcos Alonso', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 0.8373, 'skill_edge': -0.0507, 'height_edge': -0.06, 'attacker_skill': 0.4374, 'defender_skill': 0.55, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Javi Rodríguez', 'market_value': 17500000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6625}, {'player': 'Marcos Alonso', 'market_value': 1300000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.2308} | totalShots: 2.0415 -> 1.7094 shotOffTarget: 1.3279 -> 1.1119 onTargetScoringAttempt: 0.7136 -> 0.5975 goals: 0.3139 -> 0.2628 expectedGoalsOnTarget: 0.2847 -> 0.2384 expectedGoals: 0.2756 -> 0.2308 bigChanceMissed: 0.2525 -> 0.2114 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.70 (squad xG sum 1.1313, xG scale 1.5063, xA scale 1.5063, team xA 1.21 = 0.71 x lambda) | scoreline_reset=true
team_lambda=1.704
squad_xg_sum=1.1313
squad_xa_sum=0.8
team_expected_assists=1.2051
team_xa_to_xg_ratio=0.7072 | expected_goals: 0.2308 -> 0.3476 expected_assists: 0.085 -> 0.128 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 81.0) | match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=1
goal_probability=0.2936
goal_rate=0.2628
scorer_weight=0.3872 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1201
assist_rate=0.2127
provider_weight=0.16 | - |
|
| Sergio Camello | F | 71 | 1 | 0.44 | 0.17 | 154% | 2 | 1.4 | 7.0 | 46.9 | 31 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0012, quality 0.533) | market_value_eur=10900000
quality_factor=0.533
boost_factor=1.0012
reference_quality=0.505
history_matches=31
history_shrink=0.1389 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0126) | blend_weight=0.0126
history_matches=31
season_overlap_discount=1.0
per90_to_match_factor=0.7933
prior_reliability=0.14
competition=La Liga | goals: 0.3602 -> 0.37 wasFouled: 1.5246 -> 1.534 onTargetScoringAttempt: 0.8541 -> 0.8622 totalCross: 0.1612 -> 0.1687 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Javi Rodríguez, Marcos Alonso', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 0.9358, 'skill_edge': -0.0077, 'height_edge': -0.036, 'attacker_skill': 0.533, 'defender_skill': 0.55, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Javi Rodríguez', 'market_value': 17500000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6625}, {'player': 'Marcos Alonso', 'market_value': 1300000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.2928} | totalShots: 2.2529 -> 2.1083 shotOffTarget: 1.3907 -> 1.3014 onTargetScoringAttempt: 0.8622 -> 0.8068 bigChanceMissed: 0.4454 -> 0.4168 expectedGoalsOnTarget: 0.4036 -> 0.3777 goals: 0.37 -> 0.3462 expectedGoals: 0.3129 -> 0.2928 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.70 (squad xG sum 1.1313, xG scale 1.5063, xA scale 1.5063, team xA 1.21 = 0.71 x lambda) | scoreline_reset=true
team_lambda=1.704
squad_xg_sum=1.1313
squad_xa_sum=0.8
team_expected_assists=1.2051
team_xa_to_xg_ratio=0.7072 | expected_goals: 0.2928 -> 0.4411 expected_assists: 0.092 -> 0.1386 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 74.0) | match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=1
goal_probability=0.3567
goal_rate=0.3462
scorer_weight=0.5098 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1294
assist_rate=0.0711
provider_weight=0.1182 | - |
|
| Team totals | 2 | 1.70 | | 12 | | 6.9 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Augusto Batalla | G | 4.5m | 13.4% | Market-value substitute prior |
| Andrei Rațiu | D | 14.4m | 23.4% | Market-value substitute prior |
| Abdul Mumin | D | 13.6m | 29.9% | Market-value substitute prior |
| Pedro Díaz | M | 23.1m | 69.2% | Market-value substitute prior |
| Pathé Ismaël Ciss | M | 22.0m | 49.9% | Market-value substitute prior |
| Alemão | F | 25.4m | 56.2% | Market-value substitute prior |
Celta — projected line vs season baseline (3-4-3)
| Player | Pos | Min | Proj G | Proj xG | Season xG/g | | Proj Sh | Season Sh/g | Proj Rtg | Season Rtg | Rec | Model / FBref Prior |
|---|
| Ionuț Radu | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 7.1 | 63.9 | 34 | FBref Prior G_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost G_service raw output over 3 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0004, quality 0.519) | market_value_eur=9700000
quality_factor=0.5189
boost_factor=1.0004
reference_quality=0.505
history_matches=48
history_shrink=0.0943 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0164) | blend_weight=0.0164
history_matches=48
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.2667
competition=La Liga | saves: 2.8675 -> 2.8778 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Sergio Camello, Álvaro García', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.0273} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.28 (squad xG sum 0.9213, xG scale 1.3894, xA scale 1.3894, team xA 0.91 = 0.71 x lambda) | scoreline_reset=true
team_lambda=1.28
squad_xg_sum=0.9213
squad_xa_sum=0.6541
team_expected_assists=0.9087
team_xa_to_xg_ratio=0.7099 | shots_faced: 9.8 -> 16.2 expected_saves: 2.4 -> 3.97 high_pressure_saves: 0.82 -> 1.36 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 78.0) | match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.4379 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0
provider_weight=0.0
squad_weight_total=0.9297 | - |
|
| Javi Rodríguez | D | 84 | 0 | 0.03 | 0.02 | 64% | 1 | 0.3 | 6.9 | 52.0 | 33 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0034, quality 0.606) | market_value_eur=17500000
quality_factor=0.6058
boost_factor=1.0034
reference_quality=0.505
history_matches=39
history_shrink=0.1136 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0128) | blend_weight=0.0128
history_matches=39
season_overlap_discount=1.0
per90_to_match_factor=0.936
prior_reliability=0.1733
competition=La Liga | wasFouled: 1.1099 -> 1.1003 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Isi Palazón', 'matchup_zone': 'LW vs CB'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.28 (squad xG sum 0.9213, xG scale 1.3894, xA scale 1.3894, team xA 0.91 = 0.71 x lambda) | scoreline_reset=true
team_lambda=1.28
squad_xg_sum=0.9213
squad_xa_sum=0.6541
team_expected_assists=0.9087
team_xa_to_xg_ratio=0.7099 | expected_goals: 0.0198 -> 0.0275 expected_assists: 0.0623 -> 0.0866 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 76.0) | match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0271
goal_rate=0.1388
scorer_weight=0.0344 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.083
assist_rate=0.1449
provider_weight=0.1082 | - |
|
| Yoel Lago | D | 89 | 0 | 0.02 | 0.01 | 322% | 0 | 0.1 | 6.9 | 42.7 | 29 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9990, quality 0.487) | market_value_eur=7000000
quality_factor=0.4866
boost_factor=0.999
reference_quality=0.505
history_matches=22
history_shrink=0.1852 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0281) | blend_weight=0.0281
history_matches=22
season_overlap_discount=1.0
per90_to_match_factor=0.9937
prior_reliability=0.2333
competition=La Liga | totalShots: 0.3882 -> 0.3773 totalCross: 0.0 -> 0.008 wonTackle: 0.8261 -> 0.8188 interceptionWon: 1.177 -> 1.1838 wasFouled: 1.3346 -> 1.329 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Álvaro García', 'matchup_zone': 'Shape fallback'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.28 (squad xG sum 0.9213, xG scale 1.3894, xA scale 1.3894, team xA 0.91 = 0.71 x lambda) | scoreline_reset=true
team_lambda=1.28
squad_xg_sum=0.9213
squad_xa_sum=0.6541
team_expected_assists=0.9087
team_xa_to_xg_ratio=0.7099 | expected_goals: 0.0178 -> 0.0247 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 71.0) | match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0244
goal_rate=0.0
scorer_weight=0.0198 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0149
assist_rate=0.0
provider_weight=0.0123 | - |
|
| Marcos Alonso | D | 87 | 0 | 0.07 | 0.07 | ok | 1 | 0.7 | 7.0 | 60.7 | 30 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9977, quality 0.437) | market_value_eur=1300000
quality_factor=0.4374
boost_factor=0.9977
reference_quality=0.505
history_matches=40
history_shrink=0.1111 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0125) | blend_weight=0.0125
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=0.9684
prior_reliability=0.1733
competition=La Liga | interceptionWon: 1.0576 -> 1.0817 wonTackle: 0.8087 -> 0.8172 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Sergio Camello', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.28 (squad xG sum 0.9213, xG scale 1.3894, xA scale 1.3894, team xA 0.91 = 0.71 x lambda) | scoreline_reset=true
team_lambda=1.28
squad_xg_sum=0.9213
squad_xa_sum=0.6541
team_expected_assists=0.9087
team_xa_to_xg_ratio=0.7099 | expected_goals: 0.0514 -> 0.0714 expected_assists: 0.0377 -> 0.0524 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 79.0) | match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0689
goal_rate=0.0048
scorer_weight=0.0571 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0511
assist_rate=0.0
provider_weight=0.0419 | - |
|
| Javier Rueda | M | 73 | 0 | 0.07 | 0.02 | 209% | 1 | 0.3 | 6.8 | 50.1 | 36 | XGBoost M_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9990, quality 0.477) | market_value_eur=6200000
quality_factor=0.4769
boost_factor=0.999
reference_quality=0.505
history_matches=36
history_shrink=0.122 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Óscar Valentín', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.468, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0258, 'skill_edge': 0.0215, 'height_edge': -0.004, 'attacker_skill': 0.4853, 'defender_skill': 0.4374, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Óscar Valentín', 'market_value': 1900000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4374}], 'xg_override': 0.0526} | aerialWon: 0.5866 -> 0.9 totalShots: 0.817 -> 0.8381 shotOffTarget: 0.5797 -> 0.5947 onTargetScoringAttempt: 0.2372 -> 0.2433 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.28 (squad xG sum 0.9213, xG scale 1.3894, xA scale 1.3894, team xA 0.91 = 0.71 x lambda) | scoreline_reset=true
team_lambda=1.28
squad_xg_sum=0.9213
squad_xa_sum=0.6541
team_expected_assists=0.9087
team_xa_to_xg_ratio=0.7099 | expected_goals: 0.0526 -> 0.0731 expected_assists: 0.0914 -> 0.127 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 81.0) | match_squad_rank=12
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0705
goal_rate=0.0555
scorer_weight=0.0752 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1193
assist_rate=0.093
provider_weight=0.1284 | - |
|
| Aleix Febas | M | 84 | 0 | 0.06 | 0.03 | 82% | 1 | 0.4 | 6.9 | 58.3 | 29 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9987, quality 0.465) | market_value_eur=5200000
quality_factor=0.4646
boost_factor=0.9987
reference_quality=0.505
history_matches=41
history_shrink=0.1087 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0085) | blend_weight=0.0085
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=0.935
prior_reliability=0.12
competition=La Liga | fouls: 1.6338 -> 1.642 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Adrià Pedrosa', 'matchup_zone': 'Left Wingback vs Right Back — Overlapping Run', 'duel_win_rate': 0.388, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9819, 'skill_edge': 0.0197, 'height_edge': -0.032, 'attacker_skill': 0.4918, 'defender_skill': 0.4481, 'attacker_role': 'LWB', 'attacker_mv_price_index': 0.7, 'defender_adjusted_parts': [{'player': 'Adrià Pedrosa', 'market_value': 2700000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.4481}], 'xg_override': 0.0425} | aerialWon: 0.0927 -> 0.8 totalShots: 0.6092 -> 0.5982 shotOffTarget: 0.4007 -> 0.3934 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.28 (squad xG sum 0.9213, xG scale 1.3894, xA scale 1.3894, team xA 0.91 = 0.71 x lambda) | scoreline_reset=true
team_lambda=1.28
squad_xg_sum=0.9213
squad_xa_sum=0.6541
team_expected_assists=0.9087
team_xa_to_xg_ratio=0.7099 | expected_goals: 0.0425 -> 0.059 expected_assists: 0.0529 -> 0.0735 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 79.0) | match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0573
goal_rate=0.0505
scorer_weight=0.0641 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0709
assist_rate=0.0629
provider_weight=0.0806 | - |
|
| Ilaix Moriba | M | 81 | 0 | 0.07 | 0.03 | 113% | 1 | 0.4 | 6.9 | 62.1 | 32 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0018, quality 0.565) | market_value_eur=13700000
quality_factor=0.5649
boost_factor=1.0018
reference_quality=0.505
history_matches=46
history_shrink=0.098 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0115) | blend_weight=0.0115
history_matches=46
season_overlap_discount=1.0
per90_to_match_factor=0.8981
prior_reliability=0.18
competition=La Liga | fouls: 1.2362 -> 1.222 interceptionWon: 1.1237 -> 1.1184 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Óscar Valentín', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.539, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.1306, 'skill_edge': 0.0649, 'height_edge': 0.024, 'attacker_skill': 0.5816, 'defender_skill': 0.4374, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Óscar Valentín', 'market_value': 1900000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4374}], 'xg_override': 0.0477} | aerialWon: 0.1933 -> 1.1 totalShots: 0.598 -> 0.6761 shotOffTarget: 0.457 -> 0.5167 onTargetScoringAttempt: 0.1384 -> 0.1565 expectedGoalsOnTarget: 0.0859 -> 0.0971 goals: 0.0458 -> 0.0518 expectedGoals: 0.0422 -> 0.0477 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.28 (squad xG sum 0.9213, xG scale 1.3894, xA scale 1.3894, team xA 0.91 = 0.71 x lambda) | scoreline_reset=true
team_lambda=1.28
squad_xg_sum=0.9213
squad_xa_sum=0.6541
team_expected_assists=0.9087
team_xa_to_xg_ratio=0.7099 | expected_goals: 0.0477 -> 0.0663 expected_assists: 0.043 -> 0.0597 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 78.0) | match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0641
goal_rate=0.0518
scorer_weight=0.0691 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.058
assist_rate=0.048
provider_weight=0.0629 | - |
|
| Javi Galán | D | 79 | 0 | 0.01 | 0.01 | ok | 0 | 0.2 | 6.8 | 57.4 | 37 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9973, quality 0.437) | market_value_eur=1700000
quality_factor=0.4374
boost_factor=0.9973
reference_quality=0.505
history_matches=33
history_shrink=0.1316 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0086) | blend_weight=0.0086
history_matches=33
season_overlap_discount=1.0
per90_to_match_factor=0.8782
prior_reliability=0.1
competition=La Liga | totalCross: 4.1626 -> 4.157 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Jorge de Frutos', 'matchup_zone': 'Shape fallback'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.28 (squad xG sum 0.9213, xG scale 1.3894, xA scale 1.3894, team xA 0.91 = 0.71 x lambda) | scoreline_reset=true
team_lambda=1.28
squad_xg_sum=0.9213
squad_xa_sum=0.6541
team_expected_assists=0.9087
team_xa_to_xg_ratio=0.7099 | expected_assists: 0.1094 -> 0.152 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 77.0) | match_squad_rank=11
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0058
goal_rate=0.0
scorer_weight=0.0054 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.141
assist_rate=0.005
provider_weight=0.1216 | - |
|
| Pablo Durán | F | 67 | 0 | 0.32 | 0.11 | 193% | 2 | 0.9 | 6.7 | 50.6 | 31 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9981, quality 0.451) | market_value_eur=4099999
quality_factor=0.4511
boost_factor=0.9981
reference_quality=0.505
history_matches=37
history_shrink=0.119 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0077) | blend_weight=0.0077
history_matches=37
season_overlap_discount=1.0
per90_to_match_factor=0.7407
prior_reliability=0.1
competition=La Liga | totalShots: 1.5928 -> 1.5844 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=true | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Florian Lejeune, Mujaid Sadick', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 0.9281, 'skill_edge': -0.0029, 'height_edge': -0.046, 'attacker_skill': 0.4511, 'defender_skill': 0.4576, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Florian Lejeune', 'market_value': 1700000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'Mujaid Sadick', 'market_value': 4700000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4777}], 'xg_override': 0.2278} | totalShots: 1.5912 -> 1.4768 shotOffTarget: 0.8778 -> 0.8147 onTargetScoringAttempt: 0.7134 -> 0.6621 goals: 0.3452 -> 0.3204 bigChanceMissed: 0.3281 -> 0.3045 expectedGoals: 0.2454 -> 0.2278 expectedGoalsOnTarget: 0.132 -> 0.1225 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.28 (squad xG sum 0.9213, xG scale 1.3894, xA scale 1.3894, team xA 0.91 = 0.71 x lambda) | scoreline_reset=true
team_lambda=1.28
squad_xg_sum=0.9213
squad_xa_sum=0.6541
team_expected_assists=0.9087
team_xa_to_xg_ratio=0.7099 | expected_goals: 0.2278 -> 0.3165 expected_assists: 0.049 -> 0.0681 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 74.0) | match_squad_rank=14
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.2713
goal_rate=0.3204
scorer_weight=0.3956 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0658
assist_rate=0.0
provider_weight=0.0545 | - |
|
| Ferrán Jutglà | F | 75 | 1 | 0.33 | 0.18 | 84% | 2 | 1.1 | 6.7 | 58.0 | 31 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0009, quality 0.531) | market_value_eur=10700000
quality_factor=0.5306
boost_factor=1.0009
reference_quality=0.505
history_matches=40
history_shrink=0.1111 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0125) | blend_weight=0.0125
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=0.8369
prior_reliability=0.1733
competition=La Liga | totalShots: 1.5481 -> 1.5328 onTargetScoringAttempt: 0.6527 -> 0.6445 wasFouled: 1.6186 -> 1.6265 totalOffside: 0.4596 -> 0.4538 fouls: 1.3732 -> 1.3681 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Florian Lejeune', 'matchup_zone': 'Shadow Striker vs Centre Back — Half-Space Threat', 'duel_win_rate': 0.432, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9735, 'skill_edge': 0.0419, 'height_edge': -0.06, 'attacker_skill': 0.5306, 'defender_skill': 0.4374, 'attacker_role': 'SS', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Florian Lejeune', 'market_value': 1700000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.2344} | totalShots: 1.5398 -> 1.499 shotOffTarget: 0.8953 -> 0.8716 onTargetScoringAttempt: 0.6445 -> 0.6274 expectedGoalsOnTarget: 0.3861 -> 0.3759 goals: 0.3079 -> 0.2997 expectedGoals: 0.2408 -> 0.2344 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.28 (squad xG sum 0.9213, xG scale 1.3894, xA scale 1.3894, team xA 0.91 = 0.71 x lambda) | scoreline_reset=true
team_lambda=1.28
squad_xg_sum=0.9213
squad_xa_sum=0.6541
team_expected_assists=0.9087
team_xa_to_xg_ratio=0.7099 | expected_goals: 0.2344 -> 0.3258 expected_assists: 0.0502 -> 0.0697 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 16 by projected rating, fifa_overall 75.0) | match_squad_rank=16
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.2781
goal_rate=0.2997
scorer_weight=0.4006 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0673
assist_rate=0.0619
provider_weight=0.0778 | - |
|
| Hugo Álvarez | F | 73 | 0 | 0.19 | 0.07 | 151% | 1 | 0.4 | 6.8 | 51.7 | 42 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9997, quality 0.496) | market_value_eur=7800000
quality_factor=0.4963
boost_factor=0.9997
reference_quality=0.505
history_matches=36
history_shrink=0.122 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0069) | blend_weight=0.0069
history_matches=36
season_overlap_discount=1.0
per90_to_match_factor=0.8066
prior_reliability=0.0867
competition=La Liga | totalCross: 1.2633 -> 1.2802 totalShots: 1.1549 -> 1.147 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=true | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Florian Lejeune', 'matchup_zone': 'Shadow Striker vs Centre Back — Half-Space Threat', 'duel_win_rate': 0.42, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9566, 'skill_edge': 0.0265, 'height_edge': -0.056, 'attacker_skill': 0.4963, 'defender_skill': 0.4374, 'attacker_role': 'SS', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Florian Lejeune', 'market_value': 1700000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.1349} | totalShots: 1.152 -> 1.102 shotOffTarget: 0.7327 -> 0.7009 onTargetScoringAttempt: 0.4193 -> 0.4011 goals: 0.1496 -> 0.1431 expectedGoals: 0.141 -> 0.1349 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.28 (squad xG sum 0.9213, xG scale 1.3894, xA scale 1.3894, team xA 0.91 = 0.71 x lambda) | scoreline_reset=true
team_lambda=1.28
squad_xg_sum=0.9213
squad_xa_sum=0.6541
team_expected_assists=0.9087
team_xa_to_xg_ratio=0.7099 | expected_goals: 0.1349 -> 0.1874 expected_assists: 0.0895 -> 0.1243 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 75.0) | match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1709
goal_rate=0.1431
scorer_weight=0.1957 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=1
assist_probability=0.1169
assist_rate=0.2569
provider_weight=0.1554 | - |
|
| Team totals | 1 | 1.28 | | 12 | | 6.9 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Altay Bayındır | G | 4.5m | 11.3% | Market-value substitute prior |
| Abdoulaye Faye | D | 13.6m | 21.8% | Market-value substitute prior |
| Carl Starfelt | D | 27.6m | 41.1% | Market-value substitute prior |
| Fer López | M | 22.6m | 52.9% | Market-value substitute prior |
| Miguel Román | M | 34.9m | 41.4% | Market-value substitute prior |
| Williot Swedberg | F | 30.4m | 44.5% | Market-value substitute prior |
Antagonist / tactical summary
Midfield is evenly contested — Isi Palazón vs Ilaix Moriba will be the pivotal duel. Total antagonist xG — Home: 0.74, Away: 0.74. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Shadow Striker vs Centre Back — Half-Space Threat.
Midfield — possession 49.0% / 51.0%, dominance ratio 0.47, key duel: Isi Palazón vs Ilaix Moriba
Isi Palazón xG 0.09Sergio Camello xG 0.29Jorge de Frutos xG 0.13Aleix Febas xG 0.04Ilaix Moriba xG 0.05Javier Rueda xG 0.05
Summary
Antagonist matchup analysis for Rayo Vallecano vs Celta. Most likely scoreline: 2-1. Lambdas derived from 4 home and 6 away individual player duels. Head-to-head: Rayo Vallecano 2W-5D-3L vs Celta over 10 meetings.
Tactical parity between 4-2-3-1 and 3-4-3. Match outcome driven primarily by individual player quality. Midfield is evenly contested — Isi Palazón vs Ilaix Moriba will be the pivotal duel. Total antagonist xG — Home: 0.74, Away: 0.74. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Shadow Striker vs Centre Back — Half-Space Threat.
Tottenham vs Crystal Palace
Premier League · 20261031 · 4-2-3-1 vs 3-4-2-1
Predicted 1-0Winner: TottenhamWinning H 1-0 (9.4%)Winning A 0-1 (7.6%)Confidence 0.72λ home/away 1.53 / 1.25Most-likely P 9.4%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset TracingAntagonist + XGBoost match analysis for Tottenham vs Crystal Palace. Player statistics regressed using position-specific XGBoost models (G, D, M, F) with 2026-2027 FBref priors. Micro-duels resolved across 4-2-3-1 vs 3-4-2-1 (duel lambdas: Home 1.495, Away 1.079). Final calibrated Poisson lambdas: Home 1.529, Away 1.252 (most likely score 1-0).
Home Starters 11/11 XGBoost (10 FBref) Away Starters 11/11 XGBoost (11 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.50 / 1.08 Final λ (H/A) 1.53 / 1.25
Modeling Pipeline Stages (5 layers)
- 1. XGBoost player regressions for volume & event rates with market-value quality scaling
- 2. Multi-source prior blending (FBref 2026-2027 tables + Sofascore season history)
- 3. Antagonist formation duel matrix resolving 1v1 and zonal matchups
- 4. Team-level prior calibration (FBref possession and attack/defense efficiencies)
- 5. Bivariate Poisson matrix with Dixon-Coles low-score correction
Standing & form context
| Metric | Tottenham | Crystal Palace |
|---|
| League position | 14.00 | 17.00 |
| Points per game | 1.22 | 1.08 |
| Attack index | 0.89 | 0.92 |
| Defense (concede) index | 1.28 | 0.96 |
| Form multiplier | 1.01 | 0.99 |
| Standing λ multiplier | 1.06 | 0.95 |
Lambda decomposition (how the goal rates were built)
| Stage | Tottenham λ | Crystal Palace λ |
|---|
| Pre-competitive-floor | 1.471 | 1.170 |
| Pre-calibration (Micro-duels) | 1.495 | 1.079 |
| Final λ | 1.529 | 1.252 |
competition calibration scale 1.053competition observed total goals 2.781quality gap applied Truemismatch score pressure applied Falsecompetitive underdog floor applied Falsestage discount 1.0
Scoreline distribution & markets
| Top 5 scorelines | P |
|---|
| 1-1 | 12.0% |
| 1-0 | 9.4% |
| 2-1 | 9.1% |
| 0-1 | 7.6% |
| 1-2 | 7.4% |
| Home win | 43.6% |
| Draw | 25.3% |
| Away win | 31.1% |
| Over 2.5 | 52.6% |
| BTTS yes | 56.0% |
Pregame fair line — favorite Tottenham (43.6%), fair total 2.78, fair spread 0.28
Projected players vs season baseline
Proj = projected for this match · Season = this season's per-game average from match data · deviation badge compares projected xG to the player's season xG/game.
Tottenham — projected line vs season baseline (4-2-3-1)
| Player | Pos | Min | Proj G | Proj xG | Season xG/g | | Proj Sh | Season Sh/g | Proj Rtg | Season Rtg | Rec | Model / FBref Prior |
|---|
| Antonín Kinský | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 7.0 | 30.6 | 33 | FBref Prior G_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost G_service raw output over 3 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0086, quality 0.620) | market_value_eur=18900000
quality_factor=0.6201
boost_factor=1.0086
reference_quality=0.505
history_matches=15
history_shrink=0.25 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0217) | blend_weight=0.0217
history_matches=15
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League | saves: 2.8874 -> 2.879 wasFouled: 0.2345 -> 0.2294 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Jean-Philippe Mateta, Yéremy Pino', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.079} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.53 (squad xG sum 1.0797, xG scale 1.4161, xA scale 1.2320, team xA 1.22 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.529
squad_xg_sum=1.0797
squad_xa_sum=0.9929
team_expected_assists=1.2232
team_xa_to_xg_ratio=0.8 | shots_faced: 10.3 -> 11.9 expected_saves: 2.53 -> 2.91 high_pressure_saves: 0.86 -> 1.0 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 77.0) | match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.6563 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0
provider_weight=0.0
squad_weight_total=1.1846 | - |
|
| Pedro Porro | D | 79 | 0 | 0.10 | 0.06 | 78% | 1 | 1.3 | 6.8 | 53.7 | 27 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0100, quality 0.791) | market_value_eur=42000000
quality_factor=0.7909
boost_factor=1.01
reference_quality=0.505
history_matches=38
history_shrink=0.1163 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0050) | blend_weight=0.005
history_matches=38
season_overlap_discount=1.0
per90_to_match_factor=0.8756
prior_reliability=0.0667
competition=Premier League | totalShots: 1.1245 -> 1.1365 totalCross: 5.8317 -> 5.82 wonTackle: 1.3378 -> 1.3311 interceptionWon: 1.003 -> 0.9979 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Tyrick Mitchell', 'matchup_zone': 'Right Wingback vs Left Back — Overlapping Run'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.53 (squad xG sum 1.0797, xG scale 1.4161, xA scale 1.2320, team xA 1.22 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.529
squad_xg_sum=1.0797
squad_xa_sum=0.9929
team_expected_assists=1.2232
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0714 -> 0.1011 expected_assists: 0.1348 -> 0.1661 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 83.0) | match_squad_rank=12
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0962
goal_rate=0.0478
scorer_weight=0.0814 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.153
assist_rate=0.0151
provider_weight=0.1329 | - |
|
| Jan Paul van Hecke | D | 90 | 0 | 0.14 | 0.07 | 100% | 1 | 0.5 | 7.3 | 58.9 | 32 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0109, quality 0.863) | market_value_eur=65000000
quality_factor=0.8627
boost_factor=1.0109
reference_quality=0.505
history_matches=44
history_shrink=0.102 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0088) | blend_weight=0.0088
history_matches=44
season_overlap_discount=1.0
per90_to_match_factor=0.9982
prior_reliability=0.1333
competition=Premier League | interceptionWon: 1.196 -> 1.1898 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Jean-Philippe Mateta', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.53 (squad xG sum 1.0797, xG scale 1.4161, xA scale 1.2320, team xA 1.22 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.529
squad_xg_sum=1.0797
squad_xa_sum=0.9929
team_expected_assists=1.2232
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0976 -> 0.1382 expected_assists: 0.0636 -> 0.0784 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 81.0) | match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1291
goal_rate=0.112
scorer_weight=0.1517 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0754
assist_rate=0.0232
provider_weight=0.0627 | - |
|
| Micky van de Ven | D | 88 | 0 | 0.09 | 0.05 | 94% | 1 | 0.3 | 6.9 | 54.5 | 31 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0101, quality 0.821) | market_value_eur=49000000
quality_factor=0.8206
boost_factor=1.0101
reference_quality=0.505
history_matches=42
history_shrink=0.1064 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0046) | blend_weight=0.0046
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.9828
prior_reliability=0.0667
competition=Premier League | fouls: 0.8891 -> 0.8941 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Jean-Philippe Mateta', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.53 (squad xG sum 1.0797, xG scale 1.4161, xA scale 1.2320, team xA 1.22 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.529
squad_xg_sum=1.0797
squad_xa_sum=0.9929
team_expected_assists=1.2232
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0663 -> 0.0939 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 81.0) | match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0896
goal_rate=0.0108
scorer_weight=0.0751 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0114
assist_rate=0.0042
provider_weight=0.0105 | - |
|
| Andy Robertson | D | 79 | 0 | 0.07 | 0.03 | 130% | 1 | 0.3 | 6.8 | 40.8 | 33 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9995, quality 0.493) | market_value_eur=7500000
quality_factor=0.4927
boost_factor=0.9995
reference_quality=0.505
history_matches=31
history_shrink=0.1389 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0102) | blend_weight=0.0102
history_matches=31
season_overlap_discount=1.0
per90_to_match_factor=0.8807
prior_reliability=0.1133
competition=Premier League | wasFouled: 0.1791 -> 0.1879 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Daichi Kamada', 'matchup_zone': 'Left Wingback vs Right Back — Overlapping Run'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.53 (squad xG sum 1.0797, xG scale 1.4161, xA scale 1.2320, team xA 1.22 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.529
squad_xg_sum=1.0797
squad_xa_sum=0.9929
team_expected_assists=1.2232
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0528 -> 0.0748 expected_assists: 0.0904 -> 0.1114 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 85.0) | match_squad_rank=14
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0721
goal_rate=0.0489
scorer_weight=0.072 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1054
assist_rate=0.2491
provider_weight=0.1392 | - |
|
| Mateus Fernandes | M | 81 | 0 | 0.10 | 0.04 | 155% | 1 | 0.8 | 7.0 | 58.0 | 33 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0111, quality 0.868) | market_value_eur=68000000
quality_factor=0.8677
boost_factor=1.0111
reference_quality=0.505
history_matches=44
history_shrink=0.102 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0066) | blend_weight=0.0066
history_matches=44
season_overlap_discount=1.0
per90_to_match_factor=0.9026
prior_reliability=0.1
competition=Premier League | totalCross: 2.2436 -> 2.2567 wasFouled: 0.9461 -> 0.9398 interceptionWon: 0.8793 -> 0.8735 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Dwight McNeil, Yéremy Pino, Adam Wharton', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.53 (squad xG sum 1.0797, xG scale 1.4161, xA scale 1.2320, team xA 1.22 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.529
squad_xg_sum=1.0797
squad_xa_sum=0.9929
team_expected_assists=1.2232
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0725 -> 0.1027 expected_assists: 0.1026 -> 0.1264 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 80.0) | match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0976
goal_rate=0.065
scorer_weight=0.0964 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1187
assist_rate=0.089
provider_weight=0.1151 | - |
|
| Sandro Tonali | M | 86 | 0 | 0.09 | 0.05 | 67% | 1 | 1.2 | 7.3 | 56.1 | 30 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0119, quality 0.884) | market_value_eur=83000000
quality_factor=0.8845
boost_factor=1.0119
reference_quality=0.505
history_matches=43
history_shrink=0.1042 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0081) | blend_weight=0.0081
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=0.9576
prior_reliability=0.12
competition=Premier League | wonTackle: 1.1574 -> 1.1523 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Anan Khalaili', 'matchup_zone': 'Midfield lane'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.53 (squad xG sum 1.0797, xG scale 1.4161, xA scale 1.2320, team xA 1.22 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.529
squad_xg_sum=1.0797
squad_xa_sum=0.9929
team_expected_assists=1.2232
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0639 -> 0.0905 expected_assists: 0.1364 -> 0.1679 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 85.0) | match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0865
goal_rate=0.095
scorer_weight=0.1131 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=1
assist_probability=0.1546
assist_rate=0.1124
provider_weight=0.1463 | - |
|
| Mohammed Kudus | F | 77 | 0 | 0.17 | 0.03 | 393% | 1 | 0.7 | 6.9 | 38.5 | 25 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0153, quality 0.821) | market_value_eur=49000000
quality_factor=0.8206
boost_factor=1.0153
reference_quality=0.505
history_matches=26
history_shrink=0.1613 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0021) | blend_weight=0.0021
history_matches=26
season_overlap_discount=1.0
per90_to_match_factor=0.8504
prior_reliability=0.02
competition=Premier League | totalCross: 4.4763 -> 4.4966 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Jaydee Canvot, Chris Richards', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 0.9645, 'skill_edge': 0.0238, 'height_edge': -0.048, 'attacker_skill': 0.8206, 'defender_skill': 0.7676, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Jaydee Canvot', 'market_value': 32000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7941}, {'player': 'Chris Richards', 'market_value': 25000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7411}], 'xg_override': 0.1174} | totalShots: 1.5292 -> 1.4749 shotOffTarget: 1.0823 -> 1.0439 onTargetScoringAttempt: 0.4422 -> 0.4265 goals: 0.1498 -> 0.1445 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.53 (squad xG sum 1.0797, xG scale 1.4161, xA scale 1.2320, team xA 1.22 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.529
squad_xg_sum=1.0797
squad_xa_sum=0.9929
team_expected_assists=1.2232
team_xa_to_xg_ratio=0.8 | expected_goals: 0.1174 -> 0.1663 expected_assists: 0.0948 -> 0.1168 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 81.0) | match_squad_rank=11
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1532
goal_rate=0.1445
scorer_weight=0.1932 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1102
assist_rate=0.203
provider_weight=0.146 | - |
|
| James Maddison | M | 73 | 0 | 0.08 | 0.02 | 295% | 1 | 0.3 | 6.9 | 34.4 | 18 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0096, quality 0.594) | market_value_eur=16399999
quality_factor=0.5942
boost_factor=1.0096
reference_quality=0.505
history_matches=9
history_shrink=0.3571 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0046) | blend_weight=0.0046
history_matches=9
season_overlap_discount=1.0
per90_to_match_factor=0.8071
prior_reliability=0.02
competition=Premier League | wasFouled: 1.5563 -> 1.5741 totalCross: 1.0992 -> 1.1066 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Jaydee Canvot', 'matchup_zone': 'LW vs CB', 'duel_win_rate': 0.278, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.7913, 'skill_edge': -0.0899, 'height_edge': -0.052, 'attacker_skill': 0.5942, 'defender_skill': 0.7941, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Jaydee Canvot', 'market_value': 32000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7941}], 'xg_override': 0.056} | aerialWon: 0.1211 -> 0.9 totalShots: 0.8769 -> 0.6939 shotOffTarget: 0.6039 -> 0.4779 onTargetScoringAttempt: 0.273 -> 0.216 expectedGoalsOnTarget: 0.1083 -> 0.0857 goals: 0.0928 -> 0.0734 bigChanceMissed: 0.0757 -> 0.0599 expectedGoals: 0.0708 -> 0.056 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.53 (squad xG sum 1.0797, xG scale 1.4161, xA scale 1.2320, team xA 1.22 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.529
squad_xg_sum=1.0797
squad_xa_sum=0.9929
team_expected_assists=1.2232
team_xa_to_xg_ratio=0.8 | expected_goals: 0.056 -> 0.0793 expected_assists: 0.0705 -> 0.0869 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 82.0) | match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0762
goal_rate=0.0734
scorer_weight=0.0923 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0832
assist_rate=0.0898
provider_weight=0.1008 | - |
|
| Mathys Tel | F | 80 | 0 | 0.20 | 0.07 | 174% | 1 | 1.2 | 6.9 | 54.4 | 37 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0055, quality 0.660) | market_value_eur=23000000
quality_factor=0.6595
boost_factor=1.0055
reference_quality=0.505
history_matches=37
history_shrink=0.119 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0088) | blend_weight=0.0088
history_matches=37
season_overlap_discount=1.0
per90_to_match_factor=0.8902
prior_reliability=0.1133
competition=Premier League | totalCross: 4.6563 -> 4.6338 totalShots: 1.6441 -> 1.6521 wasFouled: 0.9125 -> 0.9045 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Jaydee Canvot, Chris Richards', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 0.8991, 'skill_edge': -0.0486, 'height_edge': -0.02, 'attacker_skill': 0.6595, 'defender_skill': 0.7676, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Jaydee Canvot', 'market_value': 32000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7941}, {'player': 'Chris Richards', 'market_value': 25000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7411}], 'xg_override': 0.141} | totalShots: 1.6521 -> 1.4854 shotOffTarget: 1.1089 -> 0.997 onTargetScoringAttempt: 0.535 -> 0.481 goals: 0.2411 -> 0.2168 expectedGoals: 0.1568 -> 0.141 expectedGoalsOnTarget: 0.1241 -> 0.1116 bigChanceMissed: 0.0908 -> 0.0816 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.53 (squad xG sum 1.0797, xG scale 1.4161, xA scale 1.2320, team xA 1.22 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.529
squad_xg_sum=1.0797
squad_xa_sum=0.9929
team_expected_assists=1.2232
team_xa_to_xg_ratio=0.8 | expected_goals: 0.141 -> 0.1997 expected_assists: 0.1028 -> 0.1266 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 78.0) | match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.181
goal_rate=0.2168
scorer_weight=0.2496 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1189
assist_rate=0.0511
provider_weight=0.1013 | - |
|
| Omar Marmoush | F | 77 | 1 | 0.26 | 0.07 | 266% | 2 | 1.1 | 6.8 | 40.1 | 32 | XGBoost F_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0152, quality 0.840) | market_value_eur=55000000
quality_factor=0.8399
boost_factor=1.0152
reference_quality=0.505
history_matches=28
history_shrink=0.1515 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Jaydee Canvot, Chris Richards', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.213, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 1.0184, 'skill_edge': 0.0325, 'height_edge': -0.02, 'attacker_skill': 0.8399, 'defender_skill': 0.7676, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Jaydee Canvot', 'market_value': 32000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7941}, {'player': 'Chris Richards', 'market_value': 25000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7411}], 'xg_override': 0.1845} | totalShots: 1.9409 -> 1.9766 shotOffTarget: 1.2793 -> 1.3028 onTargetScoringAttempt: 0.6616 -> 0.6738 bigChanceMissed: 0.3936 -> 0.4008 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.53 (squad xG sum 1.0797, xG scale 1.4161, xA scale 1.2320, team xA 1.22 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.529
squad_xg_sum=1.0797
squad_xa_sum=0.9929
team_expected_assists=1.2232
team_xa_to_xg_ratio=0.8 | expected_goals: 0.1845 -> 0.2612 expected_assists: 0.0558 -> 0.0687 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 82.0) | match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.2299
goal_rate=0.2499
scorer_weight=0.3265 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0664
assist_rate=0.1179
provider_weight=0.0859 | - |
|
| Team totals | 1 | 1.53 | | 13 | | 7.0 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Guglielmo Vicario | G | 5.0m | 13.9% | Market-value substitute prior |
| Destiny Udogie | D | 14.3m | 62.3% | Market-value substitute prior |
| Marcos Senesi | D | 14.4m | 23.5% | Market-value substitute prior |
| Xavi Simons | M | 23.4m | 56.3% | Market-value substitute prior |
| Lucas Bergvall | M | 23.4m | 33.5% | Market-value substitute prior |
| Sávio | F | 26.9m | 63.0% | Market-value substitute prior |
Crystal Palace — projected line vs season baseline (3-4-2-1)
| Player | Pos | Min | Proj G | Proj xG | Season xG/g | | Proj Sh | Season Sh/g | Proj Rtg | Season Rtg | Rec | Model / FBref Prior |
|---|
| Daichi Kamada | M | 84 | 0 | 0.10 | 0.07 | 49% | 1 | 0.5 | 6.8 | 55.0 | 31 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0008, quality 0.526) | market_value_eur=10300000
quality_factor=0.526
boost_factor=1.0008
reference_quality=0.505
history_matches=36
history_shrink=0.122 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0106) | blend_weight=0.0106
history_matches=36
season_overlap_discount=1.0
per90_to_match_factor=0.9384
prior_reliability=0.1333
competition=Premier League | wonTackle: 1.3478 -> 1.3683 totalCross: 0.8234 -> 0.8345 interceptionWon: 0.3894 -> 0.3952 totalShots: 0.9515 -> 0.9464 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Andy Robertson', 'matchup_zone': 'Left Wingback vs Right Back — Overlapping Run', 'duel_win_rate': 0.444, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0652, 'skill_edge': 0.0204, 'height_edge': 0.024, 'attacker_skill': 0.5761, 'defender_skill': 0.5308, 'attacker_role': 'LWB', 'attacker_mv_price_index': 0.7, 'defender_adjusted_parts': [{'player': 'Andy Robertson', 'market_value': 7500000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.5308}], 'xg_override': 0.0962} | aerialWon: 0.3443 -> 1.1 totalShots: 0.9477 -> 1.0095 shotOffTarget: 0.5915 -> 0.6301 onTargetScoringAttempt: 0.3562 -> 0.3794 bigChanceMissed: 0.1081 -> 0.1151 expectedGoalsOnTarget: 0.0907 -> 0.0966 expectedGoals: 0.0903 -> 0.0962 goals: 0.0857 -> 0.0913 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.25 (squad xG sum 1.1947, xG scale 1.0480, xA scale 1.0543, team xA 0.81 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.252
squad_xg_sum=1.1947
squad_xa_sum=0.7719
team_expected_assists=0.8138
team_xa_to_xg_ratio=0.65 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 79.0) | match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0959
goal_rate=0.0913
scorer_weight=0.0974 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.078
assist_rate=0.0848
provider_weight=0.0862 | - |
|
| Tyrick Mitchell | M | 87 | 0 | 0.06 | 0.06 | ok | 1 | 0.6 | 6.9 | 56.7 | 34 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0045, quality 0.660) | market_value_eur=23000000
quality_factor=0.6595
boost_factor=1.0045
reference_quality=0.505
history_matches=46
history_shrink=0.098 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0085) | blend_weight=0.0085
history_matches=46
season_overlap_discount=1.0
per90_to_match_factor=0.9623
prior_reliability=0.1333
competition=Premier League | wonTackle: 1.743 -> 1.7364 fouls: 0.3165 -> 0.322 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Pedro Porro', 'matchup_zone': 'Right Wingback vs Left Back — Overlapping Run', 'duel_win_rate': 0.352, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.93, 'skill_edge': -0.0516, 'height_edge': 0.004, 'attacker_skill': 0.7379, 'defender_skill': 0.8526, 'attacker_role': 'RWB', 'attacker_mv_price_index': 0.7, 'defender_adjusted_parts': [{'player': 'Pedro Porro', 'market_value': 42000000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.8526}], 'xg_override': 0.0612} | aerialWon: 0.7394 -> 0.9 totalShots: 0.9613 -> 0.894 shotOffTarget: 0.7089 -> 0.6593 onTargetScoringAttempt: 0.2503 -> 0.2328 bigChanceMissed: 0.0991 -> 0.0922 expectedGoalsOnTarget: 0.0915 -> 0.0851 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.25 (squad xG sum 1.1947, xG scale 1.0480, xA scale 1.0543, team xA 0.81 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.252
squad_xg_sum=1.1947
squad_xa_sum=0.7719
team_expected_assists=0.8138
team_xa_to_xg_ratio=0.65 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 79.0) | match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0621
goal_rate=0.0647
scorer_weight=0.0661 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0667
assist_rate=0.0715
provider_weight=0.0727 | - |
|
| Dwight McNeil | F | 73 | 0 | 0.10 | 0.03 | 212% | 1 | 0.6 | 6.7 | 30.6 | 35 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0072, quality 0.660) | market_value_eur=23000000
quality_factor=0.6595
boost_factor=1.0072
reference_quality=0.505
history_matches=27
history_shrink=0.1562 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0061) | blend_weight=0.0061
history_matches=27
season_overlap_discount=1.0
per90_to_match_factor=0.8099
prior_reliability=0.06
competition=Premier League | totalCross: 1.8259 -> 1.8148 wonTackle: 1.0036 -> 0.9975 wasFouled: 0.8574 -> 0.8522 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=true | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Mateus Fernandes, Jan Paul van Hecke', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.8482, 'skill_edge': -0.1013, 'height_edge': -0.002, 'attacker_skill': 0.6595, 'defender_skill': 0.8845, 'attacker_role': 'SS', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Mateus Fernandes', 'market_value': 68000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.882}, {'player': 'Jan Paul van Hecke', 'market_value': 65000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.887}], 'xg_override': 0.0932} | totalShots: 1.1661 -> 0.9891 shotOffTarget: 0.8515 -> 0.7222 onTargetScoringAttempt: 0.3146 -> 0.2668 goals: 0.1169 -> 0.0992 expectedGoals: 0.1099 -> 0.0932 bigChanceMissed: 0.0636 -> 0.0539 expectedGoalsOnTarget: 0.0441 -> 0.0374 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.25 (squad xG sum 1.1947, xG scale 1.0480, xA scale 1.0543, team xA 0.81 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.252
squad_xg_sum=1.1947
squad_xa_sum=0.7719
team_expected_assists=0.8138
team_xa_to_xg_ratio=0.65 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 76.0) | match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0931
goal_rate=0.0992
scorer_weight=0.1018 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0889
assist_rate=0.0196
provider_weight=0.0745 | - |
|
| Yéremy Pino | F | 72 | 0 | 0.12 | 0.08 | 60% | 1 | 0.9 | 6.9 | 52.5 | 35 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0058, quality 0.694) | market_value_eur=27000000
quality_factor=0.6941
boost_factor=1.0058
reference_quality=0.505
history_matches=44
history_shrink=0.102 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0049) | blend_weight=0.0049
history_matches=44
season_overlap_discount=1.0
per90_to_match_factor=0.8006
prior_reliability=0.0733
competition=Premier League | totalCross: 3.1498 -> 3.1663 fouls: 0.634 -> 0.6415 wasFouled: 1.0142 -> 1.0199 totalOffside: 0.2951 -> 0.3007 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Mateus Fernandes, Jan Paul van Hecke', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.8064, 'skill_edge': -0.0857, 'height_edge': -0.046, 'attacker_skill': 0.6941, 'defender_skill': 0.8845, 'attacker_role': 'SS', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Mateus Fernandes', 'market_value': 68000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.882}, {'player': 'Jan Paul van Hecke', 'market_value': 65000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.887}], 'xg_override': 0.1164} | totalShots: 1.3663 -> 1.1018 shotOffTarget: 0.8188 -> 0.6603 onTargetScoringAttempt: 0.5413 -> 0.4365 expectedGoalsOnTarget: 0.1915 -> 0.1544 goals: 0.19 -> 0.1532 expectedGoals: 0.1443 -> 0.1164 bigChanceMissed: 0.0814 -> 0.0656 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.25 (squad xG sum 1.1947, xG scale 1.0480, xA scale 1.0543, team xA 0.81 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.252
squad_xg_sum=1.1947
squad_xa_sum=0.7719
team_expected_assists=0.8138
team_xa_to_xg_ratio=0.65 | expected_goals: 0.1164 -> 0.122 expected_assists: 0.1304 -> 0.1375 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 79.0) | match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.1149
goal_rate=0.1532
scorer_weight=0.149 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.1285
assist_rate=0.0049
provider_weight=0.11 | - |
|
| Jean-Philippe Mateta | F | 74 | 0 | 0.33 | 0.27 | ok | 2 | 0.9 | 6.7 | 49.0 | 23 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0077, quality 0.710) | market_value_eur=29000000
quality_factor=0.71
boost_factor=1.0077
reference_quality=0.505
history_matches=35
history_shrink=0.125 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0038) | blend_weight=0.0038
history_matches=35
season_overlap_discount=1.0
per90_to_match_factor=0.8262
prior_reliability=0.0467
competition=Premier League | fouls: 0.8695 -> 0.8752 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Jan Paul van Hecke, Micky van de Ven', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.8966, 'skill_edge': -0.0743, 'height_edge': 0.004, 'attacker_skill': 0.71, 'defender_skill': 0.8752, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Jan Paul van Hecke', 'market_value': 65000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.887}, {'player': 'Micky van de Ven', 'market_value': 49000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8633}], 'xg_override': 0.3109} | totalShots: 1.887 -> 1.6919 bigChanceMissed: 1.1915 -> 1.0683 shotOffTarget: 1.1052 -> 0.9909 onTargetScoringAttempt: 0.7769 -> 0.6966 goals: 0.3615 -> 0.3241 expectedGoals: 0.3468 -> 0.3109 expectedGoalsOnTarget: 0.2749 -> 0.2465 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.25 (squad xG sum 1.1947, xG scale 1.0480, xA scale 1.0543, team xA 0.81 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.252
squad_xg_sum=1.1947
squad_xa_sum=0.7719
team_expected_assists=0.8138
team_xa_to_xg_ratio=0.65 | expected_goals: 0.3109 -> 0.3258 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 16 by projected rating, fifa_overall 81.0) | match_squad_rank=16
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.2781
goal_rate=0.3241
scorer_weight=0.3377 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.031
assist_rate=0.0
provider_weight=0.0252 | - |
|
| Adam Wharton | M | 88 | 0 | 0.06 | 0.03 | 123% | 1 | 0.7 | 7.0 | 56.0 | 32 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0120, quality 0.881) | market_value_eur=79000000
quality_factor=0.8811
boost_factor=1.012
reference_quality=0.505
history_matches=42
history_shrink=0.1064 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0092) | blend_weight=0.0092
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.9744
prior_reliability=0.1333
competition=Premier League | totalCross: 3.1919 -> 3.167 interceptionWon: 0.7815 -> 0.7923 totalShots: 0.961 -> 0.9521 fouls: 0.706 -> 0.6995 wasFouled: 1.2921 -> 1.2982 wonTackle: 0.8606 -> 0.8661 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Mateus Fernandes', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.469, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 1.0273, 'skill_edge': 0.0026, 'height_edge': 0.016, 'attacker_skill': 0.8877, 'defender_skill': 0.882, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Mateus Fernandes', 'market_value': 68000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.882}], 'xg_override': 0.0556} | totalShots: 0.9582 -> 0.9844 shotOffTarget: 0.6586 -> 0.6766 onTargetScoringAttempt: 0.2996 -> 0.3078 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.25 (squad xG sum 1.1947, xG scale 1.0480, xA scale 1.0543, team xA 0.81 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.252
squad_xg_sum=1.1947
squad_xa_sum=0.7719
team_expected_assists=0.8138
team_xa_to_xg_ratio=0.65 | expected_assists: 0.1493 -> 0.1574 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 82.0) | match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0566
goal_rate=0.0494
scorer_weight=0.0549 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.1456
assist_rate=0.0935
provider_weight=0.1259 | - |
|
| Anan Khalaili | M | 88 | 0 | 0.10 | 0.08 | ok | 1 | 0.7 | 6.9 | 42.4 | 15 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0189, quality 0.669) | market_value_eur=24000000
quality_factor=0.6685
boost_factor=1.0189
reference_quality=0.505
history_matches=8
history_shrink=0.3846 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0200) | blend_weight=0.02
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=0.9793
prior_reliability=0.08
competition=Premier League | wonTackle: 1.5728 -> 1.6882 totalCross: 3.2568 -> 3.3059 interceptionWon: 1.536 -> 1.5542 totalShots: 1.1885 -> 1.1808 onTargetScoringAttempt: 0.3507 -> 0.3437 wasFouled: 0.501 -> 0.5073 fouls: 1.3353 -> 1.3412 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Mateus Fernandes', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.384, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9033, 'skill_edge': -0.0858, 'height_edge': 0.02, 'attacker_skill': 0.6914, 'defender_skill': 0.882, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Mateus Fernandes', 'market_value': 68000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.882}], 'xg_override': 0.0925} | aerialWon: 1.2429 -> 1.1 totalShots: 1.1814 -> 1.0672 shotOffTarget: 0.8377 -> 0.7567 onTargetScoringAttempt: 0.3437 -> 0.3105 bigChanceMissed: 0.2172 -> 0.1962 goals: 0.1177 -> 0.1063 expectedGoals: 0.1024 -> 0.0925 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.25 (squad xG sum 1.1947, xG scale 1.0480, xA scale 1.0543, team xA 0.81 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.252
squad_xg_sum=1.1947
squad_xa_sum=0.7719
team_expected_assists=0.8138
team_xa_to_xg_ratio=0.65 | expected_assists: 0.0966 -> 0.1018 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 78.0) | match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0924
goal_rate=0.1063
scorer_weight=0.1063 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0968
assist_rate=0.0862
provider_weight=0.0946 | - |
|
| Jaydee Canvot | D | 90 | 0 | 0.03 | 0.05 | 33% | 0 | 0.2 | 6.7 | 45.9 | 32 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0106, quality 0.732) | market_value_eur=32000000
quality_factor=0.732
boost_factor=1.0106
reference_quality=0.505
history_matches=27
history_shrink=0.1562 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0135) | blend_weight=0.0135
history_matches=27
season_overlap_discount=1.0
per90_to_match_factor=0.9962
prior_reliability=0.1333
competition=Premier League | wonTackle: 1.103 -> 1.115 fouls: 0.7699 -> 0.7595 interceptionWon: 1.1879 -> 1.1786 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'James Maddison', 'matchup_zone': 'LW vs CB'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.25 (squad xG sum 1.1947, xG scale 1.0480, xA scale 1.0543, team xA 0.81 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.252
squad_xg_sum=1.1947
squad_xa_sum=0.7719
team_expected_assists=0.8138
team_xa_to_xg_ratio=0.65 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 76.0) | match_squad_rank=12
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0307
goal_rate=0.0
scorer_weight=0.025 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0223
assist_rate=0.0
provider_weight=0.0181 | - |
|
| Chris Richards | D | 90 | 0 | 0.06 | 0.07 | ok | 1 | 0.5 | 6.8 | 52.5 | 31 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0056, quality 0.677) | market_value_eur=25000000
quality_factor=0.6773
boost_factor=1.0056
reference_quality=0.505
history_matches=41
history_shrink=0.1087 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0094) | blend_weight=0.0094
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=0.9999
prior_reliability=0.1333
competition=Premier League | interceptionWon: 1.1829 -> 1.1906 fouls: 0.6883 -> 0.6818 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Omar Marmoush', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.25 (squad xG sum 1.1947, xG scale 1.0480, xA scale 1.0543, team xA 0.81 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.252
squad_xg_sum=1.1947
squad_xa_sum=0.7719
team_expected_assists=0.8138
team_xa_to_xg_ratio=0.65 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 80.0) | match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0628
goal_rate=0.0067
scorer_weight=0.0519 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0197
assist_rate=0.0
provider_weight=0.0159 | - |
|
| Dean Henderson | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 6.9 | 53.8 | 28 | FBref Prior G_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost G_service raw output over 3 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0068, quality 0.710) | market_value_eur=29000000
quality_factor=0.71
boost_factor=1.0068
reference_quality=0.505
history_matches=40
history_shrink=0.1111 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0096) | blend_weight=0.0096
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Omar Marmoush, Mathys Tel', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.495} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.25 (squad xG sum 1.1947, xG scale 1.0480, xA scale 1.0543, team xA 0.81 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.252
squad_xg_sum=1.1947
squad_xa_sum=0.7719
team_expected_assists=0.8138
team_xa_to_xg_ratio=0.65 | shots_faced: 14.2 -> 14.5 expected_saves: 3.47 -> 3.55 high_pressure_saves: 1.2 -> 1.22 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 82.0) | match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.3073 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0
provider_weight=0.0
squad_weight_total=0.7286 | - |
|
| Axel Disasi | D | 83 | 0 | 0.08 | 0.06 | 37% | 1 | 0.4 | 6.8 | 50.2 | 24 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0052, quality 0.585) | market_value_eur=15500000
quality_factor=0.5846
boost_factor=1.0052
reference_quality=0.505
history_matches=18
history_shrink=0.2174 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0019) | blend_weight=0.0019
history_matches=18
season_overlap_discount=1.0
per90_to_match_factor=0.9207
prior_reliability=0.0133
competition=Premier League | fouls: 0.8837 -> 0.8907 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Mathys Tel', 'matchup_zone': 'Shape fallback'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.25 (squad xG sum 1.1947, xG scale 1.0480, xA scale 1.0543, team xA 0.81 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.252
squad_xg_sum=1.1947
squad_xa_sum=0.7719
team_expected_assists=0.8138
team_xa_to_xg_ratio=0.65 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 77.0) | match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0734
goal_rate=0.0
scorer_weight=0.061 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.009
assist_rate=0.0
provider_weight=0.0077 | - |
|
| Team totals | 0 | 1.25 | | 13 | | 6.8 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Walter Benítez | G | 4.4m | 11.0% | Market-value substitute prior |
| Honest Ahanor | D | 14.9m | 36.1% | Market-value substitute prior |
| Chadi Riad | D | 14.3m | 23.2% | Market-value substitute prior |
| Quinten Timber | M | 22.9m | 54.0% | Market-value substitute prior |
| Óscar Mingueza | M | 19.0m | 70.7% | Market-value substitute prior |
| Ismaïla Sarr | F | 26.7m | 62.3% | Market-value substitute prior |
Antagonist / tactical summary
Midfield is evenly contested — Sandro Tonali vs Adam Wharton will be the pivotal duel. Total antagonist xG — Home: 0.50, Away: 0.83. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Midfield — possession 50.8% / 49.2%, dominance ratio 0.53, key duel: Sandro Tonali vs Adam Wharton
James Maddison xG 0.06Omar Marmoush xG 0.18Mohammed Kudus xG 0.12Jean-Philippe Mateta xG 0.31Dwight McNeil xG 0.09Yéremy Pino xG 0.12
Summary
Antagonist matchup analysis for Tottenham vs Crystal Palace. Most likely scoreline: 1-0. Lambdas derived from 4 home and 7 away individual player duels. Head-to-head: Tottenham 6W-0D-4L vs Crystal Palace over 10 meetings.
Tactical parity between 4-2-3-1 and 3-4-2-1. Match outcome driven primarily by individual player quality. Midfield is evenly contested — Sandro Tonali vs Adam Wharton will be the pivotal duel. Total antagonist xG — Home: 0.50, Away: 0.83. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Aston Villa vs Fulham
Premier League · 20261031 · 4-2-3-1 vs 4-2-3-1
Predicted 1-0Winner: Aston VillaWinning H 1-0 (10.9%)Winning A 0-1 (6.2%)Confidence 0.75λ home/away 1.78 / 1.00Most-likely P 10.9%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset TracingAntagonist + XGBoost match analysis for Aston Villa vs Fulham. Player statistics regressed using position-specific XGBoost models (G, D, M, F) with 2026-2027 FBref priors. Micro-duels resolved across 4-2-3-1 vs 4-2-3-1 (duel lambdas: Home 1.702, Away 1.048). Final calibrated Poisson lambdas: Home 1.776, Away 1.005 (most likely score 1-0).
Home Starters 11/11 XGBoost (10 FBref) Away Starters 11/11 XGBoost (10 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.70 / 1.05 Final λ (H/A) 1.78 / 1.00
Modeling Pipeline Stages (5 layers)
- 1. XGBoost player regressions for volume & event rates with market-value quality scaling
- 2. Multi-source prior blending (FBref 2026-2027 tables + Sofascore season history)
- 3. Antagonist formation duel matrix resolving 1v1 and zonal matchups
- 4. Team-level prior calibration (FBref possession and attack/defense efficiencies)
- 5. Bivariate Poisson matrix with Dixon-Coles low-score correction
Standing & form context
| Metric | Aston Villa | Fulham |
|---|
| League position | 9.00 | 15.00 |
| Points per game | 1.37 | 1.15 |
| Attack index | 0.92 | 0.89 |
| Defense (concede) index | 0.96 | 1.03 |
| Form multiplier | 1.01 | 0.99 |
| Standing λ multiplier | 0.96 | 0.96 |
Lambda decomposition (how the goal rates were built)
| Stage | Aston Villa λ | Fulham λ |
|---|
| Pre-competitive-floor | 1.952 | 0.973 |
| Pre-calibration (Micro-duels) | 1.702 | 1.048 |
| Final λ | 1.776 | 1.005 |
competition calibration scale 0.951competition observed total goals 2.781quality gap applied Falsemismatch score pressure applied Falsecompetitive underdog floor applied Falsestage discount 1.0
Scoreline distribution & markets
| Top 5 scorelines | P |
|---|
| 1-1 | 11.1% |
| 1-0 | 10.9% |
| 2-1 | 9.8% |
| 2-0 | 9.8% |
| 0-0 | 6.3% |
| Home win | 55.4% |
| Draw | 23.4% |
| Away win | 21.2% |
| Over 2.5 | 52.6% |
| BTTS yes | 52.7% |
Pregame fair line — favorite Aston Villa (55.4%), fair total 2.78, fair spread 0.77
Projected players vs season baseline
Proj = projected for this match · Season = this season's per-game average from match data · deviation badge compares projected xG to the player's season xG/game.
Aston Villa — projected line vs season baseline (4-2-3-1)
| Player | Pos | Min | Proj G | Proj xG | Season xG/g | | Proj Sh | Season Sh/g | Proj Rtg | Season Rtg | Rec | Model / FBref Prior |
|---|
| Zion Suzuki | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 7.1 | 36.1 | 14 | FBref Prior G_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost G_service raw output over 3 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0275, quality 0.725) | market_value_eur=31000000
quality_factor=0.7249
boost_factor=1.0275
reference_quality=0.505
history_matches=7
history_shrink=0.4167 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0181) | blend_weight=0.0181
history_matches=7
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.0667
competition=Premier League | saves: 3.298 -> 3.2565 wasFouled: 0.5758 -> 0.5654 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Gonzalo García, Josh King', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.0478} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.78 (squad xG sum 1.3619, xG scale 1.3041, xA scale 1.7623, team xA 1.15 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.776
squad_xg_sum=1.3619
squad_xa_sum=0.6551
team_expected_assists=1.1544
team_xa_to_xg_ratio=0.65 | shots_faced: 10.0 -> 9.5 expected_saves: 2.45 -> 2.32 high_pressure_saves: 0.84 -> 0.8 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 76.0) | match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.8892 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0
provider_weight=0.0
squad_weight_total=1.1787 | - |
|
| Matty Cash | D | 87 | 0 | 0.04 | 0.02 | 48% | 1 | 0.6 | 6.7 | 53.8 | 30 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0040, quality 0.629) | market_value_eur=19800000
quality_factor=0.6291
boost_factor=1.004
reference_quality=0.505
history_matches=42
history_shrink=0.1064 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0088) | blend_weight=0.0088
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.9704
prior_reliability=0.1267
competition=Premier League | totalCross: 2.2687 -> 2.2488 wasFouled: 1.0367 -> 1.0455 wonTackle: 1.5722 -> 1.5808 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Gonzalo García', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.78 (squad xG sum 1.3619, xG scale 1.3041, xA scale 1.7623, team xA 1.15 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.776
squad_xg_sum=1.3619
squad_xa_sum=0.6551
team_expected_assists=1.1544
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0279 -> 0.0364 expected_assists: 0.0328 -> 0.0578 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 81.0) | match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0357
goal_rate=0.0045
scorer_weight=0.0291 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0562
assist_rate=0.0479
provider_weight=0.0683 | - |
|
| Victor Lindelöf | D | 87 | 0 | 0.05 | 0.02 | 144% | 0 | 0.1 | 6.8 | 35.7 | 32 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9977, quality 0.460) | market_value_eur=4800000
quality_factor=0.4597
boost_factor=0.9977
reference_quality=0.505
history_matches=25
history_shrink=0.1667 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0144) | blend_weight=0.0144
history_matches=25
season_overlap_discount=1.0
per90_to_match_factor=0.9712
prior_reliability=0.1333
competition=Premier League | interceptionWon: 0.7725 -> 0.7613 wonTackle: 0.5702 -> 0.562 totalShots: 0.3805 -> 0.375 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Gonzalo García', 'matchup_zone': 'Shape fallback'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.78 (squad xG sum 1.3619, xG scale 1.3041, xA scale 1.7623, team xA 1.15 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.776
squad_xg_sum=1.3619
squad_xa_sum=0.6551
team_expected_assists=1.1544
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0419 -> 0.0546 expected_assists: 0.0142 -> 0.025 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 77.0) | match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0531
goal_rate=0.0
scorer_weight=0.0437 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0247
assist_rate=0.0083
provider_weight=0.0227 | - |
|
| Pau Torres | D | 80 | 0 | 0.08 | 0.04 | 110% | 0 | 0.2 | 6.7 | 31.3 | 30 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0066, quality 0.641) | market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.0066
reference_quality=0.505
history_matches=26
history_shrink=0.1613 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0126) | blend_weight=0.0126
history_matches=26
season_overlap_discount=1.0
per90_to_match_factor=0.8906
prior_reliability=0.12
competition=Premier League | wonTackle: 0.5809 -> 0.5736 fouls: 0.4777 -> 0.4841 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Gonzalo García', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.78 (squad xG sum 1.3619, xG scale 1.3041, xA scale 1.7623, team xA 1.15 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.776
squad_xg_sum=1.3619
squad_xa_sum=0.6551
team_expected_assists=1.1544
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0597 -> 0.0779 expected_assists: 0.0097 -> 0.0171 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 81.0) | match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0749
goal_rate=0.0
scorer_weight=0.0623 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.017
assist_rate=0.0
provider_weight=0.0143 | - |
|
| Ian Maatsen | D | 84 | 0 | 0.07 | 0.04 | 100% | 1 | 0.6 | 6.7 | 47.9 | 30 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0088, quality 0.739) | market_value_eur=33000000
quality_factor=0.7389
boost_factor=1.0088
reference_quality=0.505
history_matches=35
history_shrink=0.125 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0103) | blend_weight=0.0103
history_matches=35
season_overlap_discount=1.0
per90_to_match_factor=0.9382
prior_reliability=0.1267
competition=Premier League | fouls: 1.153 -> 1.1665 totalCross: 1.7395 -> 1.7267 wonTackle: 1.4938 -> 1.4835 interceptionWon: 1.1595 -> 1.1679 totalShots: 0.7954 -> 0.8025 wasFouled: 0.4998 -> 0.4947 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Alex Iwobi', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.78 (squad xG sum 1.3619, xG scale 1.3041, xA scale 1.7623, team xA 1.15 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.776
squad_xg_sum=1.3619
squad_xa_sum=0.6551
team_expected_assists=1.1544
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0567 -> 0.0739 expected_assists: 0.1063 -> 0.1873 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 17 by projected rating, fifa_overall 79.0) | match_squad_rank=17
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0712
goal_rate=0.0
scorer_weight=0.0591 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1708
assist_rate=0.0421
provider_weight=0.1498 | - |
|
| João Gomes | M | 82 | 0 | 0.05 | 0.02 | 104% | 1 | 0.4 | 6.8 | 51.7 | 29 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0084, quality 0.758) | market_value_eur=36000000
quality_factor=0.7581
boost_factor=1.0084
reference_quality=0.505
history_matches=40
history_shrink=0.1111 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0019) | blend_weight=0.0019
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=0.9076
prior_reliability=0.0267
competition=Premier League | wonTackle: 1.7998 -> 1.8051 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Shea Charles', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.408, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 0.9821, 'skill_edge': 0.0399, 'height_edge': -0.052, 'attacker_skill': 0.7926, 'defender_skill': 0.704, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Shea Charles', 'market_value': 24000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.704}], 'xg_override': 0.0353} | aerialWon: 0.5536 -> 0.9 totalShots: 0.5126 -> 0.5035 shotOffTarget: 0.3593 -> 0.3529 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.78 (squad xG sum 1.3619, xG scale 1.3041, xA scale 1.7623, team xA 1.15 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.776
squad_xg_sum=1.3619
squad_xa_sum=0.6551
team_expected_assists=1.1544
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0353 -> 0.046 expected_assists: 0.0533 -> 0.0939 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 78.0) | match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.045
goal_rate=0.0419
scorer_weight=0.0496 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0896
assist_rate=0.074
provider_weight=0.1127 | - |
|
| Alysson | F | 66 | 0 | 0.21 | 0.01 | 1363% | 1 | 0.3 | 6.7 | 33.2 | 22 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0087, quality 0.592) | market_value_eur=16200000
quality_factor=0.5921
boost_factor=1.0087
reference_quality=0.505
history_matches=10
history_shrink=0.3333 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0043) | blend_weight=0.0043
history_matches=10
season_overlap_discount=1.0
per90_to_match_factor=0.7364
prior_reliability=0.02
competition=Premier League | wonTackle: 0.6633 -> 0.6817 totalShots: 1.3766 -> 1.3706 fouls: 1.1896 -> 1.1844 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Timothy Castagne, Calvin Bassey', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 0.9566, 'skill_edge': -0.0255, 'height_edge': -0.004, 'attacker_skill': 0.5921, 'defender_skill': 0.6488, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Timothy Castagne', 'market_value': 7600000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.524}, {'player': 'Calvin Bassey', 'market_value': 29000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7736}], 'xg_override': 0.1606} | totalShots: 1.3747 -> 1.315 shotOffTarget: 0.9344 -> 0.8938 onTargetScoringAttempt: 0.4403 -> 0.4212 expectedGoals: 0.1679 -> 0.1606 goals: 0.1184 -> 0.1133 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.78 (squad xG sum 1.3619, xG scale 1.3041, xA scale 1.7623, team xA 1.15 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.776
squad_xg_sum=1.3619
squad_xa_sum=0.6551
team_expected_assists=1.1544
team_xa_to_xg_ratio=0.65 | expected_goals: 0.1606 -> 0.2094 expected_assists: 0.0437 -> 0.077 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 16 by projected rating, fifa_overall 70.0) | match_squad_rank=16
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1889
goal_rate=0.1133
scorer_weight=0.1675 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0741
assist_rate=0.0
provider_weight=0.0616 | - |
|
| Johan Manzambi | M | 78 | 0 | 0.35 | 0.14 | 155% | 3 | 1.4 | 6.9 | 33.0 | 11 | XGBoost M_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0551, quality 0.872) | market_value_eur=71000000
quality_factor=0.8721
boost_factor=1.0551
reference_quality=0.505
history_matches=5
history_shrink=0.5 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'David Affengruber', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.552, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.1064, 'skill_edge': 0.0844, 'height_edge': -0.012, 'attacker_skill': 0.8721, 'defender_skill': 0.6846, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'David Affengruber', 'market_value': 18100000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.6846}], 'xg_override': 0.2669} | aerialWon: 0.0 -> 1.1 totalShots: 2.487 -> 2.7517 shotOffTarget: 1.6594 -> 1.836 onTargetScoringAttempt: 0.8276 -> 0.9157 expectedGoalsOnTarget: 0.3855 -> 0.4265 expectedGoals: 0.2412 -> 0.2669 goals: 0.2362 -> 0.2613 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.78 (squad xG sum 1.3619, xG scale 1.3041, xA scale 1.7623, team xA 1.15 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.776
squad_xg_sum=1.3619
squad_xa_sum=0.6551
team_expected_assists=1.1544
team_xa_to_xg_ratio=0.65 | expected_goals: 0.2669 -> 0.3481 expected_assists: 0.1312 -> 0.2314 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 80.0) | match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.294
goal_rate=0.2613
scorer_weight=0.3419 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=1
assist_probability=0.2066
assist_rate=0.1369
provider_weight=0.2387 | - |
|
| John McGinn | F | 81 | 0 | 0.18 | 0.09 | 91% | 1 | 0.6 | 6.8 | 47.9 | 36 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0017, quality 0.552) | market_value_eur=12600000
quality_factor=0.5525
boost_factor=1.0017
reference_quality=0.505
history_matches=38
history_shrink=0.1163 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0096) | blend_weight=0.0096
history_matches=38
season_overlap_discount=1.0
per90_to_match_factor=0.8983
prior_reliability=0.1267
competition=Premier League | fouls: 1.024 -> 1.0323 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Timothy Castagne, Calvin Bassey', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 0.8951, 'skill_edge': -0.0433, 'height_edge': -0.028, 'attacker_skill': 0.5525, 'defender_skill': 0.6488, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Timothy Castagne', 'market_value': 7600000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.524}, {'player': 'Calvin Bassey', 'market_value': 29000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7736}], 'xg_override': 0.1355} | totalShots: 1.2212 -> 1.0931 shotOffTarget: 0.7302 -> 0.6536 onTargetScoringAttempt: 0.4843 -> 0.4335 bigChanceMissed: 0.2572 -> 0.2302 expectedGoalsOnTarget: 0.2099 -> 0.1879 goals: 0.1972 -> 0.1765 expectedGoals: 0.1514 -> 0.1355 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.78 (squad xG sum 1.3619, xG scale 1.3041, xA scale 1.7623, team xA 1.15 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.776
squad_xg_sum=1.3619
squad_xa_sum=0.6551
team_expected_assists=1.1544
team_xa_to_xg_ratio=0.65 | expected_goals: 0.1355 -> 0.1767 expected_assists: 0.0949 -> 0.1672 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 83.0) | match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.162
goal_rate=0.1765
scorer_weight=0.2158 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.154
assist_rate=0.4311
provider_weight=0.209 | - |
|
| Nicolas Jackson | F | 81 | 1 | 0.48 | 0.14 | 244% | 3 | 1.5 | 7.2 | 40.1 | 13 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0369, quality 0.800) | market_value_eur=44000000
quality_factor=0.8002
boost_factor=1.0369
reference_quality=0.505
history_matches=7
history_shrink=0.4167 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0144) | blend_weight=0.0144
history_matches=7
season_overlap_discount=1.0
per90_to_match_factor=0.895
prior_reliability=0.0533
competition=Premier League | totalShots: 2.7932 -> 2.7529 wasFouled: 1.0943 -> 1.0785 onTargetScoringAttempt: 1.0519 -> 1.0367 totalCross: 0.3285 -> 0.3399 totalOffside: 0.6117 -> 0.6029 goals: 0.556 -> 0.548 fouls: 0.489 -> 0.4819 interceptionWon: 0.4235 -> 0.4174 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Timothy Castagne, Calvin Bassey', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.272, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.106, 'skill_edge': 0.0681, 'height_edge': 0.004, 'attacker_skill': 0.8002, 'defender_skill': 0.6488, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Timothy Castagne', 'market_value': 7600000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.524}, {'player': 'Calvin Bassey', 'market_value': 29000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7736}], 'xg_override': 0.3708} | totalShots: 2.778 -> 3.0725 shotOffTarget: 1.7413 -> 1.9259 onTargetScoringAttempt: 1.0367 -> 1.1466 goals: 0.548 -> 0.6061 expectedGoals: 0.3353 -> 0.3708 bigChanceMissed: 0.3351 -> 0.3706 expectedGoalsOnTarget: 0.3083 -> 0.341 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | goals: 1.0 -> 0 | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.78 (squad xG sum 1.3619, xG scale 1.3041, xA scale 1.7623, team xA 1.15 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.776
squad_xg_sum=1.3619
squad_xa_sum=0.6551
team_expected_assists=1.1544
team_xa_to_xg_ratio=0.65 | expected_goals: 0.3708 -> 0.4836 expected_assists: 0.0789 -> 0.139 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 79.0) | match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.3834
goal_rate=0.6061
scorer_weight=0.6045 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1298
assist_rate=0.0
provider_weight=0.1112 | - |
|
| Boubacar Kamara | M | 88 | 0 | 0.06 | 0.01 | 307% | 1 | 0.2 | 6.9 | 44.0 | 16 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0153, quality 0.821) | market_value_eur=49000000
quality_factor=0.8206
boost_factor=1.0153
reference_quality=0.505
history_matches=26
history_shrink=0.1613 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0140) | blend_weight=0.014
history_matches=26
season_overlap_discount=1.0
per90_to_match_factor=0.9773
prior_reliability=0.1333
competition=Premier League | wasFouled: 2.331 -> 2.3053 wonTackle: 1.7348 -> 1.7242 totalShots: 0.5827 -> 0.5746 interceptionWon: 1.0269 -> 1.0194 totalCross: 0.1166 -> 0.1218 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Shea Charles', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.464, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 1.0651, 'skill_edge': 0.0643, 'height_edge': -0.02, 'attacker_skill': 0.847, 'defender_skill': 0.704, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Shea Charles', 'market_value': 24000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.704}], 'xg_override': 0.0451} | aerialWon: 1.4338 -> 1.1 totalShots: 0.5805 -> 0.6183 shotOffTarget: 0.4286 -> 0.4565 onTargetScoringAttempt: 0.1519 -> 0.1618 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.78 (squad xG sum 1.3619, xG scale 1.3041, xA scale 1.7623, team xA 1.15 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.776
squad_xg_sum=1.3619
squad_xa_sum=0.6551
team_expected_assists=1.1544
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0451 -> 0.0588 expected_assists: 0.0332 -> 0.0585 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 84.0) | match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0571
goal_rate=0.0493
scorer_weight=0.0614 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0568
assist_rate=0.0614
provider_weight=0.0731 | - |
|
| Team totals | 1 | 1.78 | | 14 | | 6.8 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Marco Bizot | G | 4.4m | 13.1% | Market-value substitute prior |
| Matteo Ruggeri | D | 11.5m | 62.3% | Market-value substitute prior |
| Taylor Harwood-Bellis | D | 14.6m | 34.5% | Market-value substitute prior |
| Amadou Onana | M | 23.4m | 56.1% | Market-value substitute prior |
| Douglas Luiz | M | 22.7m | 53.2% | Market-value substitute prior |
| Donyell Malen | F | 26.8m | 62.7% | Market-value substitute prior |
Fulham — projected line vs season baseline (4-2-3-1)
| Player | Pos | Min | Proj G | Proj xG | Season xG/g | | Proj Sh | Season Sh/g | Proj Rtg | Season Rtg | Rec | Model / FBref Prior |
|---|
| Josh King | M | 78 | 0 | 0.14 | 0.10 | 38% | 2 | 1.0 | 7.0 | 48.8 | 31 | XGBoost M_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0094, quality 0.786) | market_value_eur=41000000
quality_factor=0.7859
boost_factor=1.0094
reference_quality=0.505
history_matches=40
history_shrink=0.1111 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'João Gomes, Boubacar Kamara', 'matchup_zone': 'Attacking Mid vs Double Pivot — Tight Space Battle', 'duel_win_rate': 0.197, 'pressing_faced': 'HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.9375, 'skill_edge': -0.0105, 'height_edge': -0.032, 'attacker_skill': 0.7964, 'defender_skill': 0.8198, 'attacker_role': 'CAM', 'attacker_mv_price_index': 0.95, 'defender_adjusted_parts': [{'player': 'João Gomes', 'market_value': 36000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.7926}, {'player': 'Boubacar Kamara', 'market_value': 49000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.847}], 'xg_override': 0.1769} | aerialWon: 0.1121 -> 0.8 totalShots: 2.251 -> 2.1103 shotOffTarget: 1.4382 -> 1.3483 onTargetScoringAttempt: 0.8128 -> 0.762 bigChanceMissed: 0.3249 -> 0.3046 expectedGoalsOnTarget: 0.2136 -> 0.2003 goals: 0.2102 -> 0.1971 expectedGoals: 0.1887 -> 0.1769 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.00 (squad xG sum 1.2631, xG scale 0.7957, xA scale 0.7957, team xA 0.76 = 0.76 x lambda) | scoreline_reset=true
team_lambda=1.005
squad_xg_sum=1.2631
squad_xa_sum=0.9586
team_expected_assists=0.7627
team_xa_to_xg_ratio=0.7589 | expected_goals: 0.1769 -> 0.1408 expected_assists: 0.1378 -> 0.1096 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 78.0) | match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.1313
goal_rate=0.1971
scorer_weight=0.1533 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.1038
assist_rate=0.1361
provider_weight=0.1086 | - |
|
| Alex Iwobi | M | 82 | 0 | 0.11 | 0.06 | 75% | 1 | 1.1 | 7.3 | 50.9 | 37 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0048, quality 0.641) | market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.0048
reference_quality=0.505
history_matches=37
history_shrink=0.119 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0103) | blend_weight=0.0103
history_matches=37
season_overlap_discount=1.0
per90_to_match_factor=0.9097
prior_reliability=0.1333
competition=Premier League | totalCross: 4.1844 -> 4.1647 totalShots: 1.6273 -> 1.6152 interceptionWon: 0.3004 -> 0.3114 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Ian Maatsen', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.422, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9151, 'skill_edge': -0.0777, 'height_edge': 0.02, 'attacker_skill': 0.6408, 'defender_skill': 0.8135, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Ian Maatsen', 'market_value': 33000000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.8135}], 'xg_override': 0.134} | aerialWon: 0.0708 -> 1.1 totalShots: 1.6223 -> 1.4846 shotOffTarget: 1.1539 -> 1.0559 onTargetScoringAttempt: 0.4684 -> 0.4286 bigChanceMissed: 0.2309 -> 0.2113 goals: 0.1653 -> 0.1513 expectedGoals: 0.1464 -> 0.134 expectedGoalsOnTarget: 0.0782 -> 0.0716 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.00 (squad xG sum 1.2631, xG scale 0.7957, xA scale 0.7957, team xA 0.76 = 0.76 x lambda) | scoreline_reset=true
team_lambda=1.005
squad_xg_sum=1.2631
squad_xa_sum=0.9586
team_expected_assists=0.7627
team_xa_to_xg_ratio=0.7589 | expected_goals: 0.134 -> 0.1066 expected_assists: 0.2124 -> 0.1692 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 80.0) | match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.1011
goal_rate=0.1513
scorer_weight=0.1166 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.1557
assist_rate=0.1217
provider_weight=0.1354 | - |
|
| Gonzalo García | F | 81 | 0 | 0.25 | 0.23 | ok | 2 | 1.1 | 6.7 | 48.8 | 34 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0088, quality 0.758) | market_value_eur=36000000
quality_factor=0.7581
boost_factor=1.0088
reference_quality=0.505
history_matches=38
history_shrink=0.1163 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0101) | blend_weight=0.0101
history_matches=38
season_overlap_discount=1.0
per90_to_match_factor=0.9001
prior_reliability=0.1333
competition=Premier League | fouls: 0.8512 -> 0.8608 wasFouled: 0.3114 -> 0.3173 totalShots: 2.1583 -> 2.1638 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Matty Cash, Pau Torres', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.202, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 1.0031, 'skill_edge': 0.0281, 'height_edge': -0.026, 'attacker_skill': 0.7581, 'defender_skill': 0.6957, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Matty Cash', 'market_value': 19800000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6892}, {'player': 'Pau Torres', 'market_value': 21000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7022}], 'xg_override': 0.3197} | totalShots: 2.1638 -> 2.1705 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.00 (squad xG sum 1.2631, xG scale 0.7957, xA scale 0.7957, team xA 0.76 = 0.76 x lambda) | scoreline_reset=true
team_lambda=1.005
squad_xg_sum=1.2631
squad_xa_sum=0.9586
team_expected_assists=0.7627
team_xa_to_xg_ratio=0.7589 | expected_goals: 0.3197 -> 0.2543 expected_assists: 0.0644 -> 0.0512 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 78.0) | match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.2245
goal_rate=0.2526
scorer_weight=0.2081 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0499
assist_rate=0.0
provider_weight=0.041 | - |
|
| Oscar Bobb | F | 74 | 0 | 0.12 | 0.08 | 52% | 2 | 0.6 | 7.0 | 49.4 | 39 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0079, quality 0.694) | market_value_eur=27000000
quality_factor=0.6941
boost_factor=1.0079
reference_quality=0.505
history_matches=31
history_shrink=0.1389 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0090) | blend_weight=0.009
history_matches=31
season_overlap_discount=1.0
per90_to_match_factor=0.819
prior_reliability=0.1
competition=Premier League | totalShots: 1.6665 -> 1.6515 fouls: 0.1828 -> 0.191 totalCross: 2.7634 -> 2.7582 interceptionWon: 0.5357 -> 0.5407 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=true | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Matty Cash, Pau Torres', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 0.9137, 'skill_edge': -0.0007, 'height_edge': -0.058, 'attacker_skill': 0.6941, 'defender_skill': 0.6957, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Matty Cash', 'market_value': 19800000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6892}, {'player': 'Pau Torres', 'market_value': 21000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7022}], 'xg_override': 0.1479} | totalShots: 1.6615 -> 1.5181 shotOffTarget: 1.1284 -> 1.031 onTargetScoringAttempt: 0.5331 -> 0.4871 goals: 0.1824 -> 0.1667 expectedGoalsOnTarget: 0.1679 -> 0.1534 expectedGoals: 0.1619 -> 0.1479 bigChanceMissed: 0.1318 -> 0.1204 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.00 (squad xG sum 1.2631, xG scale 0.7957, xA scale 0.7957, team xA 0.76 = 0.76 x lambda) | scoreline_reset=true
team_lambda=1.005
squad_xg_sum=1.2631
squad_xa_sum=0.9586
team_expected_assists=0.7627
team_xa_to_xg_ratio=0.7589 | expected_goals: 0.1479 -> 0.1177 expected_assists: 0.1192 -> 0.0948 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 76.0) | match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.111
goal_rate=0.1667
scorer_weight=0.1289 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0904
assist_rate=0.0084
provider_weight=0.0758 | - |
|
| Shea Charles | M | 86 | 0 | 0.04 | 0.01 | 205% | 1 | 0.4 | 7.1 | 40.6 | 14 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0189, quality 0.669) | market_value_eur=24000000
quality_factor=0.6685
boost_factor=1.0189
reference_quality=0.505
history_matches=8
history_shrink=0.3846 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0083) | blend_weight=0.0083
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=0.9516
prior_reliability=0.0333
competition=Premier League | totalShots: 0.7461 -> 0.7702 totalCross: 0.1507 -> 0.1653 wasFouled: 1.329 -> 1.3179 wonTackle: 1.1554 -> 1.1616 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'João Gomes', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.432, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 1.0179, 'skill_edge': -0.0399, 'height_edge': 0.052, 'attacker_skill': 0.704, 'defender_skill': 0.7926, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'João Gomes', 'market_value': 36000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.7926}], 'xg_override': 0.0488} | aerialWon: 1.364 -> 1.3 totalShots: 0.7702 -> 0.784 shotOffTarget: 0.5327 -> 0.5422 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.00 (squad xG sum 1.2631, xG scale 0.7957, xA scale 0.7957, team xA 0.76 = 0.76 x lambda) | scoreline_reset=true
team_lambda=1.005
squad_xg_sum=1.2631
squad_xa_sum=0.9586
team_expected_assists=0.7627
team_xa_to_xg_ratio=0.7589 | expected_goals: 0.0488 -> 0.0388 expected_assists: 0.0816 -> 0.0649 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 73.0) | match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0381
goal_rate=0.0459
scorer_weight=0.0377 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0628
assist_rate=0.0517
provider_weight=0.0519 | - |
|
| Sander Berge | M | 84 | 0 | 0.05 | 0.04 | 35% | 1 | 0.5 | 7.0 | 52.5 | 33 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0057, quality 0.686) | market_value_eur=26000000
quality_factor=0.6858
boost_factor=1.0057
reference_quality=0.505
history_matches=43
history_shrink=0.1042 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0077) | blend_weight=0.0077
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=0.9333
prior_reliability=0.1133
competition=Premier League | wonTackle: 0.8443 -> 0.8378 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'João Gomes', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.448, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 1.0414, 'skill_edge': -0.0318, 'height_edge': 0.06, 'attacker_skill': 0.7219, 'defender_skill': 0.7926, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'João Gomes', 'market_value': 36000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.7926}], 'xg_override': 0.0614} | aerialWon: 0.9696 -> 1.4 totalShots: 0.7554 -> 0.7867 shotOffTarget: 0.5262 -> 0.548 onTargetScoringAttempt: 0.2291 -> 0.2386 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.00 (squad xG sum 1.2631, xG scale 0.7957, xA scale 0.7957, team xA 0.76 = 0.76 x lambda) | scoreline_reset=true
team_lambda=1.005
squad_xg_sum=1.2631
squad_xa_sum=0.9586
team_expected_assists=0.7627
team_xa_to_xg_ratio=0.7589 | expected_goals: 0.0614 -> 0.0489 expected_assists: 0.06 -> 0.0477 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 79.0) | match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0477
goal_rate=0.0681
scorer_weight=0.0518 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0466
assist_rate=0.0663
provider_weight=0.0504 | - |
|
| Antonee Robinson | D | 87 | 0 | 0.04 | 0.03 | ok | 1 | 0.2 | 6.8 | 48.3 | 32 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0072, quality 0.669) | market_value_eur=24000000
quality_factor=0.6685
boost_factor=1.0072
reference_quality=0.505
history_matches=29
history_shrink=0.1471 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0121) | blend_weight=0.0121
history_matches=29
season_overlap_discount=1.0
per90_to_match_factor=0.9666
prior_reliability=0.1267
competition=Premier League | fouls: 1.4783 -> 1.4604 wonTackle: 1.7037 -> 1.7139 interceptionWon: 1.1728 -> 1.1648 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'John McGinn', 'matchup_zone': 'Shape fallback'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.00 (squad xG sum 1.2631, xG scale 0.7957, xA scale 0.7957, team xA 0.76 = 0.76 x lambda) | scoreline_reset=true
team_lambda=1.005
squad_xg_sum=1.2631
squad_xa_sum=0.9586
team_expected_assists=0.7627
team_xa_to_xg_ratio=0.7589 | expected_goals: 0.0556 -> 0.0442 expected_assists: 0.0536 -> 0.0426 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 80.0) | match_squad_rank=12
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0432
goal_rate=0.0415
scorer_weight=0.0383 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0417
assist_rate=0.0
provider_weight=0.0341 | - |
|
| Bernd Leno | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 7.2 | 56.8 | 34 | FBref Prior G_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost G_service raw output over 3 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9989, quality 0.468) | market_value_eur=5500000
quality_factor=0.4683
boost_factor=0.9989
reference_quality=0.505
history_matches=46
history_shrink=0.098 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0085) | blend_weight=0.0085
history_matches=46
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Nicolas Jackson, Johan Manzambi', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.702} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.00 (squad xG sum 1.2631, xG scale 0.7957, xA scale 0.7957, team xA 0.76 = 0.76 x lambda) | scoreline_reset=true
team_lambda=1.005
squad_xg_sum=1.2631
squad_xa_sum=0.9586
team_expected_assists=0.7627
team_xa_to_xg_ratio=0.7589 | shots_faced: 16.2 -> 16.9 expected_saves: 3.97 -> 4.14 high_pressure_saves: 1.36 -> 1.42 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 79.0) | match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=0.9696 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0
provider_weight=0.0
squad_weight_total=0.655 | - |
|
| Timothy Castagne | D | 87 | 0 | 0.06 | 0.05 | ok | 1 | 0.4 | 6.8 | 48.2 | 34 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9996, quality 0.494) | market_value_eur=7600000
quality_factor=0.4939
boost_factor=0.9996
reference_quality=0.505
history_matches=37
history_shrink=0.119 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0088) | blend_weight=0.0088
history_matches=37
season_overlap_discount=1.0
per90_to_match_factor=0.9623
prior_reliability=0.1133
competition=Premier League | fouls: 1.1789 -> 1.1934 wasFouled: 0.6533 -> 0.6674 totalCross: 2.5089 -> 2.5018 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Nicolas Jackson', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.00 (squad xG sum 1.2631, xG scale 0.7957, xA scale 0.7957, team xA 0.76 = 0.76 x lambda) | scoreline_reset=true
team_lambda=1.005
squad_xg_sum=1.2631
squad_xa_sum=0.9586
team_expected_assists=0.7627
team_xa_to_xg_ratio=0.7589 | expected_goals: 0.0723 -> 0.0575 expected_assists: 0.0764 -> 0.0608 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 75.0) | match_squad_rank=11
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0559
goal_rate=0.0
scorer_weight=0.046 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.059
assist_rate=0.0618
provider_weight=0.0538 | - |
|
| David Affengruber | D | 89 | 0 | 0.03 | 0.03 | ok | 1 | 0.5 | 7.0 | 54.8 | 35 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0033, quality 0.612) | market_value_eur=18100000
quality_factor=0.612
boost_factor=1.0033
reference_quality=0.505
history_matches=44
history_shrink=0.102 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0133) | blend_weight=0.0133
history_matches=44
season_overlap_discount=1.0
per90_to_match_factor=0.9898
prior_reliability=0.2
competition=La Liga | totalShots: 0.521 -> 0.536 fouls: 1.127 -> 1.1164 wasFouled: 0.5804 -> 0.5902 interceptionWon: 1.1216 -> 1.1286 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Johan Manzambi', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.00 (squad xG sum 1.2631, xG scale 0.7957, xA scale 0.7957, team xA 0.76 = 0.76 x lambda) | scoreline_reset=true
team_lambda=1.005
squad_xg_sum=1.2631
squad_xa_sum=0.9586
team_expected_assists=0.7627
team_xa_to_xg_ratio=0.7589 | expected_goals: 0.0357 -> 0.0284 expected_assists: 0.031 -> 0.0247 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 76.0) | match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.028
goal_rate=0.0166
scorer_weight=0.0227 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0244
assist_rate=0.0153
provider_weight=0.0199 | - |
|
| Calvin Bassey | D | 90 | 0 | 0.04 | 0.04 | ok | 1 | 0.4 | 7.1 | 51.4 | 30 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0072, quality 0.710) | market_value_eur=29000000
quality_factor=0.71
boost_factor=1.0072
reference_quality=0.505
history_matches=38
history_shrink=0.1163 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0101) | blend_weight=0.0101
history_matches=38
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League | fouls: 1.3228 -> 1.3145 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Nicolas Jackson', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.00 (squad xG sum 1.2631, xG scale 0.7957, xA scale 0.7957, team xA 0.76 = 0.76 x lambda) | scoreline_reset=true
team_lambda=1.005
squad_xg_sum=1.2631
squad_xa_sum=0.9586
team_expected_assists=0.7627
team_xa_to_xg_ratio=0.7589 | expected_goals: 0.0466 -> 0.0371 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 78.0) | match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0364
goal_rate=0.0055
scorer_weight=0.0297 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0127
assist_rate=0.0
provider_weight=0.0102 | - |
|
| Team totals | 0 | 1.00 | | 17 | | 7.0 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Benjamin Lecomte | G | 4.4m | 10.9% | Market-value substitute prior |
| Ryan Sessegnon | D | 18.0m | 61.8% | Market-value substitute prior |
| Joachim Andersen | D | 14.4m | 23.3% | Market-value substitute prior |
| Hugo Larsson | M | 23.1m | 54.9% | Market-value substitute prior |
| Emile Smith Rowe | M | 18.4m | 70.6% | Market-value substitute prior |
| Kevin | F | 19.0m | 73.9% | Market-value substitute prior |
Antagonist / tactical summary
Midfield is evenly contested — Johan Manzambi vs Josh King will be the pivotal duel. Total antagonist xG — Home: 1.01, Away: 0.89. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Midfield — possession 51.9% / 48.1%, dominance ratio 0.53, key duel: Johan Manzambi vs Josh King
Johan Manzambi xG 0.27Nicolas Jackson xG 0.37Alysson xG 0.16Alex Iwobi xG 0.13Josh King xG 0.18Gonzalo García xG 0.32
Summary
Antagonist matchup analysis for Aston Villa vs Fulham. Most likely scoreline: 1-0. Lambdas derived from 6 home and 6 away individual player duels. Head-to-head: Aston Villa 8W-0D-2L vs Fulham over 10 meetings.
Tactical parity between 4-2-3-1 and 4-2-3-1. Match outcome driven primarily by individual player quality. Midfield is evenly contested — Johan Manzambi vs Josh King will be the pivotal duel. Total antagonist xG — Home: 1.01, Away: 0.89. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Hull vs Ipswich
Premier League · 20261031 · 5-4-1 vs 4-2-3-1
Predicted 1-1Winner: DrawWinning H 1-0 (8.6%)Winning A 0-1 (8.4%)Confidence 0.7λ home/away 1.41 / 1.37Most-likely P 12.1%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset TracingAntagonist + XGBoost match analysis for Hull vs Ipswich. Player statistics regressed using position-specific XGBoost models (G, D, M, F) with 2026-2027 FBref priors. Micro-duels resolved across 5-4-1 vs 4-2-3-1 (duel lambdas: Home 1.398, Away 1.442). Final calibrated Poisson lambdas: Home 1.409, Away 1.372 (most likely score 1-1).
Home Starters 11/11 XGBoost (9 FBref) Away Starters 11/11 XGBoost (8 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.40 / 1.44 Final λ (H/A) 1.41 / 1.37
FBref Team Priors: Hull City (Gls/90: 1.5, GA/90: 1.5 → E[λ]: 2.069) vs Ipswich Town (Gls/90: 2.0, GA/90: 2.0 → E[λ]: 2.069) | Blend Weight: 0.192
Modeling Pipeline Stages (5 layers)
- 1. XGBoost player regressions for volume & event rates with market-value quality scaling
- 2. Multi-source prior blending (FBref 2026-2027 tables + Sofascore season history)
- 3. Antagonist formation duel matrix resolving 1v1 and zonal matchups
- 4. Team-level prior calibration (FBref possession and attack/defense efficiencies)
- 5. Bivariate Poisson matrix with Dixon-Coles low-score correction
Standing & form context
| Metric | Hull | Ipswich |
|---|
| League position | 10.00 | 12.00 |
| Points per game | 1.30 | 1.30 |
| Attack index | 0.92 | 1.03 |
| Defense (concede) index | 1.18 | 0.89 |
| Form multiplier | 1.00 | 1.00 |
| Standing λ multiplier | 1.03 | 0.97 |
Lambda decomposition (how the goal rates were built)
| Stage | Hull λ | Ipswich λ |
|---|
| FBref Squad Prior E[λ] (weight 0.192) | 2.069 | 2.069 |
| Pre-competitive-floor | 1.398 | 1.442 |
| Pre-calibration (Micro-duels) | 1.398 | 1.442 |
| Final λ | 1.409 | 1.372 |
competition calibration scale 0.979competition observed total goals 2.781quality gap applied Truemismatch score pressure applied Falsecompetitive underdog floor applied Falsestage discount 1.0
Scoreline distribution & markets
| Top 5 scorelines | P |
|---|
| 1-1 | 12.1% |
| 1-0 | 8.6% |
| 2-1 | 8.4% |
| 0-1 | 8.4% |
| 1-2 | 8.2% |
| Home win | 38.0% |
| Draw | 25.6% |
| Away win | 36.4% |
| Over 2.5 | 52.6% |
| BTTS yes | 56.5% |
Pregame fair line — favorite Hull (38.0%), fair total 2.78, fair spread 0.04
Projected players vs season baseline
Proj = projected for this match · Season = this season's per-game average from match data · deviation badge compares projected xG to the player's season xG/game.
Hull — projected line vs season baseline (5-4-1)
| Player | Pos | Min | Proj G | Proj xG | Season xG/g | | Proj Sh | Season Sh/g | Proj Rtg | Season Rtg | Rec | Model / FBref Prior |
|---|
| Lewie Coyle | D | 79 | 0 | 0.04 | 0.01 | 183% | 0 | 0.1 | 6.6 | 37.1 | 14 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9922, quality 0.437) | market_value_eur=2700000
quality_factor=0.4374
boost_factor=0.9922
reference_quality=0.505
history_matches=8
history_shrink=0.3846 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0217) | blend_weight=0.0217
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=0.8826
prior_reliability=0.0867
competition=Premier League | wasFouled: 0.4333 -> 0.4828 totalCross: 2.7116 -> 2.6823 fouls: 0.2905 -> 0.3136 totalShots: 0.3598 -> 0.352 wonTackle: 0.9627 -> 0.9565 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': "Julio Enciso, Dara O'Shea", 'matchup_zone': 'RWB vs LW + LB'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.41 (squad xG sum 0.8743, xG scale 1.6116, xA scale 2.0289, team xA 0.92 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.409
squad_xg_sum=0.8743
squad_xa_sum=0.4514
team_expected_assists=0.9159
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0236 -> 0.038 expected_assists: 0.0107 -> 0.0217 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 16 by projected rating, fifa_overall 70.0) | match_squad_rank=16
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0373
goal_rate=0.0
scorer_weight=0.0304 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0215
assist_rate=0.0
provider_weight=0.0179 | - |
|
| Semi Ajayi | D | 89 | 0 | 0.08 | 0.05 | 67% | 0 | 0.2 | 6.7 | 38.8 | 14 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9922, quality 0.437) | market_value_eur=930000
quality_factor=0.4374
boost_factor=0.9922
reference_quality=0.505
history_matches=8
history_shrink=0.3846 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0283) | blend_weight=0.0283
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=0.9848
prior_reliability=0.1133
competition=Premier League | wonTackle: 1.3912 -> 1.3682 goals: 0.0656 -> 0.0802 onTargetScoringAttempt: 0.0656 -> 0.0802 wasFouled: 0.0772 -> 0.0914 fouls: 0.2954 -> 0.287 totalCross: 0.842 -> 0.8346 totalShots: 0.3495 -> 0.3561 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Julio Enciso', 'matchup_zone': 'LW vs CB'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.41 (squad xG sum 0.8743, xG scale 1.6116, xA scale 2.0289, team xA 0.92 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.409
squad_xg_sum=0.8743
squad_xa_sum=0.4514
team_expected_assists=0.9159
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0489 -> 0.0788 expected_assists: 0.0059 -> 0.012 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 70.0) | match_squad_rank=12
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0758
goal_rate=0.0802
scorer_weight=0.0985 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0119
assist_rate=0.0
provider_weight=0.0107 | - |
|
| John Egan | D | 89 | 0 | 0.03 | 0.01 | 247% | 1 | 0.4 | 6.7 | 39.4 | 14 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9922, quality 0.437) | market_value_eur=1500000
quality_factor=0.4374
boost_factor=0.9922
reference_quality=0.505
history_matches=8
history_shrink=0.3846 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0333) | blend_weight=0.0333
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=0.9864
prior_reliability=0.1333
competition=Premier League | totalShots: 0.5231 -> 0.5057 wonTackle: 0.8262 -> 0.8151 fouls: 0.3043 -> 0.2942 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Emersonn', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.41 (squad xG sum 0.8743, xG scale 1.6116, xA scale 2.0289, team xA 0.92 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.409
squad_xg_sum=0.8743
squad_xa_sum=0.4514
team_expected_assists=0.9159
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0213 -> 0.0343 expected_assists: 0.0253 -> 0.0513 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 72.0) | match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0337
goal_rate=0.0
scorer_weight=0.0274 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.05
assist_rate=0.0
provider_weight=0.041 | - |
|
| Nobel Mendy | D | 75 | 0 | 0.13 | 0.04 | 246% | 1 | 0.3 | 6.8 | 46.7 | 29 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0060, quality 0.641) | market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.006
reference_quality=0.505
history_matches=29
history_shrink=0.1471 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0083) | blend_weight=0.0083
history_matches=29
season_overlap_discount=1.0
per90_to_match_factor=0.834
prior_reliability=0.0867
competition=Premier League | interceptionWon: 0.9842 -> 0.976 onTargetScoringAttempt: 0.3047 -> 0.3125 totalShots: 0.582 -> 0.5875 fouls: 1.2394 -> 1.2344 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Jaden Philogene-Bidace', 'matchup_zone': 'Shape fallback'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.41 (squad xG sum 0.8743, xG scale 1.6116, xA scale 2.0289, team xA 0.92 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.409
squad_xg_sum=0.8743
squad_xa_sum=0.4514
team_expected_assists=0.9159
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0837 -> 0.1349 expected_assists: 0.0082 -> 0.0166 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 75.0) | match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1262
goal_rate=0.1192
scorer_weight=0.1686 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0165
assist_rate=0.0
provider_weight=0.0143 | - |
|
| Ryan Giles | D | 82 | 0 | 0.00 | 0.00 | 80% | 0 | 0.1 | 6.6 | 37.9 | 14 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0079, quality 0.574) | market_value_eur=14500000
quality_factor=0.5737
boost_factor=1.0079
reference_quality=0.505
history_matches=8
history_shrink=0.3846 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0317) | blend_weight=0.0317
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=0.9066
prior_reliability=0.1267
competition=Premier League | totalCross: 7.7099 -> 7.6622 interceptionWon: 0.678 -> 0.6716 fouls: 0.1608 -> 0.1557 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': "Christian Walton, Dara O'Shea", 'matchup_zone': 'LWB vs RW + RB'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.41 (squad xG sum 0.8743, xG scale 1.6116, xA scale 2.0289, team xA 0.92 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.409
squad_xg_sum=0.8743
squad_xa_sum=0.4514
team_expected_assists=0.9159
team_xa_to_xg_ratio=0.65 | expected_assists: 0.0599 -> 0.1215 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 18 by projected rating, fifa_overall 72.0) | match_squad_rank=18
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0027
goal_rate=0.0
scorer_weight=0.0026 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1144
assist_rate=0.1324
provider_weight=0.1519 | - |
|
| Mohamed Belloumi | F | 82 | 0 | 0.27 | 0.09 | 207% | 2 | 1.6 | 7.2 | 41.6 | 25 | XGBoost F_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0111, quality 0.602) | market_value_eur=17100000
quality_factor=0.6016
boost_factor=1.0111
reference_quality=0.505
history_matches=8
history_shrink=0.3846 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Issa Diop, Leif Davis', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 0.8983, 'skill_edge': -0.0252, 'height_edge': -0.044, 'attacker_skill': 0.6016, 'defender_skill': 0.6575, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Issa Diop', 'market_value': 10300000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5652}, {'player': 'Leif Davis', 'market_value': 26000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7498}], 'xg_override': 0.166} | totalShots: 2.2932 -> 2.06 shotOffTarget: 1.5434 -> 1.3864 onTargetScoringAttempt: 0.7497 -> 0.6735 goals: 0.2605 -> 0.234 expectedGoals: 0.1848 -> 0.166 expectedGoalsOnTarget: 0.1846 -> 0.1658 bigChanceMissed: 0.1613 -> 0.1449 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.41 (squad xG sum 0.8743, xG scale 1.6116, xA scale 2.0289, team xA 0.92 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.409
squad_xg_sum=0.8743
squad_xa_sum=0.4514
team_expected_assists=0.9159
team_xa_to_xg_ratio=0.65 | expected_goals: 0.166 -> 0.2675 expected_assists: 0.1093 -> 0.2218 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 73.0) | match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.2347
goal_rate=0.234
scorer_weight=0.3344 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=1
assist_probability=0.1989
assist_rate=0.2604
provider_weight=0.2772 | - |
|
| Tim Iroegbunam | M | 81 | 0 | 0.08 | 0.02 | 324% | 1 | 0.4 | 6.8 | 41.7 | 29 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0030, quality 0.585) | market_value_eur=15500000
quality_factor=0.5846
boost_factor=1.003
reference_quality=0.505
history_matches=35
history_shrink=0.125 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0005) | blend_weight=0.0005
history_matches=35
season_overlap_discount=1.0
per90_to_match_factor=0.9038
prior_reliability=0.0067
competition=Premier League | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=true | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Florentino Luís', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.437, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9813, 'skill_edge': -0.0047, 'height_edge': -0.008, 'attacker_skill': 0.6029, 'defender_skill': 0.6134, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Florentino Luís', 'market_value': 15500000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.6134}], 'xg_override': 0.051} | aerialWon: 1.3302 -> 1.1 totalShots: 0.8058 -> 0.7908 shotOffTarget: 0.6278 -> 0.6161 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.41 (squad xG sum 0.8743, xG scale 1.6116, xA scale 2.0289, team xA 0.92 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.409
squad_xg_sum=0.8743
squad_xa_sum=0.4514
team_expected_assists=0.9159
team_xa_to_xg_ratio=0.65 | expected_goals: 0.051 -> 0.0822 expected_assists: 0.0357 -> 0.0724 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 76.0) | match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0789
goal_rate=0.0462
scorer_weight=0.0783 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0698
assist_rate=0.049
provider_weight=0.0836 | - |
|
| Regan Slater | M | 84 | 0 | 0.11 | 0.02 | 392% | 1 | 0.5 | 6.8 | 38.9 | 14 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0009, quality 0.513) | market_value_eur=9200000
quality_factor=0.513
boost_factor=1.0009
reference_quality=0.505
history_matches=8
history_shrink=0.3846 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0333) | blend_weight=0.0333
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=0.9343
prior_reliability=0.1333
competition=Premier League | totalShots: 1.0307 -> 0.9964 fouls: 0.5999 -> 0.6266 interceptionWon: 0.5667 -> 0.5478 goalAssist: 0.0824 -> 0.0952 onTargetScoringAttempt: 0.3359 -> 0.3247 wonTackle: 1.1471 -> 1.14 wasFouled: 0.647 -> 0.641 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Florentino Luís', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.366, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.8769, 'skill_edge': -0.0397, 'height_edge': -0.044, 'attacker_skill': 0.5251, 'defender_skill': 0.6134, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Florentino Luís', 'market_value': 15500000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.6134}], 'xg_override': 0.0669} | aerialWon: 1.1442 -> 0.9 totalShots: 1.0195 -> 0.894 shotOffTarget: 0.6948 -> 0.6093 onTargetScoringAttempt: 0.3247 -> 0.2847 expectedGoals: 0.0763 -> 0.0669 goals: 0.0585 -> 0.0513 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.41 (squad xG sum 0.8743, xG scale 1.6116, xA scale 2.0289, team xA 0.92 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.409
squad_xg_sum=0.8743
squad_xa_sum=0.4514
team_expected_assists=0.9159
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0669 -> 0.1078 expected_assists: 0.072 -> 0.1461 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 72.0) | match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1022
goal_rate=0.0513
scorer_weight=0.0934 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1359
assist_rate=0.0952
provider_weight=0.1739 | - |
|
| Elliot Stroud | M | 75 | 0 | 0.07 | 0.00 | 1437% | 1 | 0.2 | 6.7 | 28.4 | 14 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9998, quality 0.503) | market_value_eur=8400000
quality_factor=0.5035
boost_factor=0.9998
reference_quality=0.505
history_matches=6
history_shrink=0.4545 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0276) | blend_weight=0.0276
history_matches=6
season_overlap_discount=1.0
per90_to_match_factor=0.829
prior_reliability=0.0933
competition=Premier League | totalCross: 0.6418 -> 0.6731 interceptionWon: 0.3062 -> 0.3304 wonTackle: 0.7801 -> 0.7912 wasFouled: 0.2695 -> 0.2621 onTargetScoringAttempt: 0.1943 -> 0.1889 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Christian Walton', 'matchup_zone': 'Left Mid vs Right Back — Wide Channel', 'duel_win_rate': 0.401, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9722, 'skill_edge': 0.0251, 'height_edge': -0.044, 'attacker_skill': 0.5146, 'defender_skill': 0.4588, 'attacker_role': 'LM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Christian Walton', 'market_value': 2600000, 'role': 'GK', 'price_index': 0.55, 'adjusted_quality': 0.4588}], 'xg_override': 0.0447} | aerialWon: 0.3698 -> 1.2 totalShots: 0.6577 -> 0.6394 shotOffTarget: 0.4656 -> 0.4527 onTargetScoringAttempt: 0.1889 -> 0.1836 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.41 (squad xG sum 0.8743, xG scale 1.6116, xA scale 2.0289, team xA 0.92 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.409
squad_xg_sum=0.8743
squad_xa_sum=0.4514
team_expected_assists=0.9159
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0447 -> 0.072 expected_assists: 0.0502 -> 0.1018 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 74.0) | match_squad_rank=11
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0695
goal_rate=0.0506
scorer_weight=0.0765 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0968
assist_rate=0.0704
provider_weight=0.1223 | - |
|
| Konstantinos Tzolakis | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 7.0 | 40.5 | 14 | XGBoost G_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost G_service raw output over 3 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0157, quality 0.641) | market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.0157
reference_quality=0.505
history_matches=8
history_shrink=0.3846 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Emersonn, Julio Enciso', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.4418} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.41 (squad xG sum 0.8743, xG scale 1.6116, xA scale 2.0289, team xA 0.92 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.409
squad_xg_sum=0.8743
squad_xa_sum=0.4514
team_expected_assists=0.9159
team_xa_to_xg_ratio=0.65 | shots_faced: 13.7 -> 13.0 expected_saves: 3.35 -> 3.18 high_pressure_saves: 1.15 -> 1.1 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 79.0) | match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.4546 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0
provider_weight=0.0
squad_weight_total=1.054 | - |
|
| Oliver McBurnie | F | 87 | 1 | 0.42 | 0.14 | 192% | 2 | 0.8 | 6.7 | 38.3 | 14 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9987, quality 0.494) | market_value_eur=7600000
quality_factor=0.4939
boost_factor=0.9987
reference_quality=0.505
history_matches=8
history_shrink=0.3846 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0333) | blend_weight=0.0333
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=0.9628
prior_reliability=0.1333
competition=Premier League | totalShots: 1.8358 -> 1.8067 wasFouled: 1.7674 -> 1.7887 interceptionWon: 0.3324 -> 0.3213 goals: 0.2865 -> 0.277 onTargetScoringAttempt: 0.7104 -> 0.7188 totalCross: 0.2059 -> 0.199 fouls: 1.2944 -> 1.2994 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Issa Diop, Leif Davis', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 0.8917, 'skill_edge': -0.0736, 'height_edge': 0.0, 'attacker_skill': 0.4939, 'defender_skill': 0.6575, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Issa Diop', 'market_value': 10300000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5652}, {'player': 'Leif Davis', 'market_value': 26000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7498}], 'xg_override': 0.2612} | totalShots: 1.8441 -> 1.6444 shotOffTarget: 1.1253 -> 1.0034 onTargetScoringAttempt: 0.7188 -> 0.641 expectedGoals: 0.2929 -> 0.2612 goals: 0.277 -> 0.247 bigChanceMissed: 0.2649 -> 0.2362 expectedGoalsOnTarget: 0.2228 -> 0.1987 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.41 (squad xG sum 0.8743, xG scale 1.6116, xA scale 2.0289, team xA 0.92 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.409
squad_xg_sum=0.8743
squad_xa_sum=0.4514
team_expected_assists=0.9159
team_xa_to_xg_ratio=0.65 | expected_goals: 0.2612 -> 0.4212 expected_assists: 0.0379 -> 0.0769 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 75.0) | match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.3437
goal_rate=0.247
scorer_weight=0.402 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.074
assist_rate=0.1039
provider_weight=0.0961 | - |
|
| Team totals | 1 | 1.41 | | 11 | | 6.8 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Jack Butland | G | 4.4m | 10.9% | Market-value substitute prior |
| Lucas Herrington | D | 22.9m | 61.5% | Market-value substitute prior |
| Charlie Hughes | D | 13.9m | 31.2% | Market-value substitute prior |
| Christos Mouzakitis | M | 23.0m | 54.3% | Market-value substitute prior |
| Brooke Norton-Cuffy | M | 22.6m | 52.5% | Market-value substitute prior |
| Robinio Vaz | F | 26.0m | 59.1% | Market-value substitute prior |
Ipswich — projected line vs season baseline (4-2-3-1)
| Player | Pos | Min | Proj G | Proj xG | Season xG/g | | Proj Sh | Season Sh/g | Proj Rtg | Season Rtg | Rec | Model / FBref Prior |
|---|
| Christian Walton | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 6.9 | 18.8 | 14 | FBref Prior G_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost G_service raw output over 3 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9887, quality 0.437) | market_value_eur=2600000
quality_factor=0.4374
boost_factor=0.9887
reference_quality=0.505
history_matches=4
history_shrink=0.5556 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Oliver McBurnie, Mohamed Belloumi', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.398} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.37 (squad xG sum 1.2999, xG scale 1.0555, xA scale 1.3513, team xA 0.89 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.372
squad_xg_sum=1.2999
squad_xa_sum=0.66
team_expected_assists=0.8918
team_xa_to_xg_ratio=0.65 | shots_faced: 13.3 -> 13.4 expected_saves: 3.26 -> 3.28 high_pressure_saves: 1.12 -> 1.13 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 73.0) | match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.5041 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0
provider_weight=0.0
squad_weight_total=1.011 | - |
|
| Dara O'Shea | D | 90 | 0 | 0.04 | 0.02 | 98% | 0 | 0.1 | 6.8 | 38.3 | 14 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0157, quality 0.641) | market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.0157
reference_quality=0.505
history_matches=8
history_shrink=0.3846 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0333) | blend_weight=0.0333
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League | fouls: 0.7176 -> 0.7437 interceptionWon: 1.2246 -> 1.2005 wonTackle: 1.109 -> 1.0887 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Ryan Giles', 'matchup_zone': 'LWB vs RW + RB'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.37 (squad xG sum 1.2999, xG scale 1.0555, xA scale 1.3513, team xA 0.89 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.372
squad_xg_sum=1.2999
squad_xa_sum=0.66
team_expected_assists=0.8918
team_xa_to_xg_ratio=0.65 | expected_assists: 0.0305 -> 0.0412 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 75.0) | match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0424
goal_rate=0.1463
scorer_weight=0.0541 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0404
assist_rate=0.0
provider_weight=0.033 | - |
|
| Issa Diop | D | 90 | 0 | 0.05 | 0.03 | 66% | 0 | 0.1 | 6.8 | 34.7 | 31 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0012, quality 0.526) | market_value_eur=10300000
quality_factor=0.526
boost_factor=1.0012
reference_quality=0.505
history_matches=21
history_shrink=0.1923 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0167) | blend_weight=0.0167
history_matches=21
season_overlap_discount=1.0
per90_to_match_factor=0.9977
prior_reliability=0.1333
competition=Premier League | fouls: 0.8352 -> 0.8462 totalShots: 0.4379 -> 0.4306 interceptionWon: 1.0828 -> 1.0897 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=true | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Mohamed Belloumi', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.37 (squad xG sum 1.2999, xG scale 1.0555, xA scale 1.3513, team xA 0.89 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.372
squad_xg_sum=1.2999
squad_xa_sum=0.66
team_expected_assists=0.8918
team_xa_to_xg_ratio=0.65 | expected_assists: 0.0166 -> 0.0224 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 75.0) | match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0471
goal_rate=0.0436
scorer_weight=0.0471 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0222
assist_rate=0.0
provider_weight=0.0179 | - |
|
| Leif Davis | D | 90 | 0 | 0.18 | 0.12 | 55% | 1 | 0.5 | 6.8 | 39.0 | 14 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0209, quality 0.686) | market_value_eur=26000000
quality_factor=0.6858
boost_factor=1.0209
reference_quality=0.505
history_matches=8
history_shrink=0.3846 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0333) | blend_weight=0.0333
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League | totalCross: 2.8755 -> 2.8297 wonTackle: 0.796 -> 0.7695 onTargetScoringAttempt: 0.2687 -> 0.2931 fouls: 0.6392 -> 0.6179 totalShots: 0.5978 -> 0.6112 goals: 0.1893 -> 0.1997 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=true | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Mohamed Belloumi', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.37 (squad xG sum 1.2999, xG scale 1.0555, xA scale 1.3513, team xA 0.89 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.372
squad_xg_sum=1.2999
squad_xa_sum=0.66
team_expected_assists=0.8918
team_xa_to_xg_ratio=0.65 | expected_goals: 0.1724 -> 0.182 expected_assists: 0.0784 -> 0.1059 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 75.0) | match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1664
goal_rate=0.1997
scorer_weight=0.2043 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1005
assist_rate=0.1061
provider_weight=0.1287 | - |
|
| Florentino Luís | M | 77 | 0 | 0.04 | 0.00 | 760% | 1 | 0.2 | 6.8 | 44.9 | 31 | XGBoost M_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0029, quality 0.585) | market_value_eur=15500000
quality_factor=0.5846
boost_factor=1.0029
reference_quality=0.505
history_matches=36
history_shrink=0.122 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Tim Iroegbunam, Regan Slater', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.37 (squad xG sum 1.2999, xG scale 1.0555, xA scale 1.3513, team xA 0.89 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.372
squad_xg_sum=1.2999
squad_xa_sum=0.66
team_expected_assists=0.8918
team_xa_to_xg_ratio=0.65 | expected_assists: 0.0367 -> 0.0496 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 80.0) | match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0362
goal_rate=0.0432
scorer_weight=0.0405 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0484
assist_rate=0.0556
provider_weight=0.0604 | - |
|
| Exequiel Palacios | M | 86 | 0 | 0.04 | - | n/a | 1 | 0.0 | 7.0 | 37.5 | 13 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0226, quality 0.686) | market_value_eur=26000000
quality_factor=0.6858
boost_factor=1.0226
reference_quality=0.505
history_matches=7
history_shrink=0.4167 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0054) | blend_weight=0.0054
history_matches=7
season_overlap_discount=1.0
per90_to_match_factor=0.96
prior_reliability=0.02
competition=Premier League | interceptionWon: 1.1252 -> 1.1538 fouls: 0.9162 -> 0.9286 wasFouled: 1.0507 -> 1.0623 wonTackle: 1.6353 -> 1.6438 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Tim Iroegbunam', 'matchup_zone': 'CAM vs CM', 'duel_win_rate': 0.442, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0329, 'skill_edge': 0.0424, 'height_edge': -0.02, 'attacker_skill': 0.6971, 'defender_skill': 0.6029, 'attacker_role': 'CAM', 'attacker_mv_price_index': 0.95, 'defender_adjusted_parts': [{'player': 'Tim Iroegbunam', 'market_value': 15500000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.6029}], 'xg_override': 0.0371} | aerialWon: 0.0 -> 1.0 totalShots: 0.4923 -> 0.5085 shotOffTarget: 0.3505 -> 0.362 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.37 (squad xG sum 1.2999, xG scale 1.0555, xA scale 1.3513, team xA 0.89 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.372
squad_xg_sum=1.2999
squad_xa_sum=0.66
team_expected_assists=0.8918
team_xa_to_xg_ratio=0.65 | expected_assists: 0.0597 -> 0.0807 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 83.0) | match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0384
goal_rate=0.0468
scorer_weight=0.0436 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0775
assist_rate=0.0606
provider_weight=0.0814 | - |
|
| Abdul Fatawu Issahaku | F | 73 | 0 | 0.11 | 0.02 | 539% | 1 | 0.4 | 6.9 | 36.1 | 24 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0204, quality 0.669) | market_value_eur=24000000
quality_factor=0.6685
boost_factor=1.0204
reference_quality=0.505
history_matches=7
history_shrink=0.4167 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0289) | blend_weight=0.0289
history_matches=7
season_overlap_discount=1.0
per90_to_match_factor=0.816
prior_reliability=0.1067
competition=Premier League | totalShots: 1.3562 -> 1.317 wonTackle: 0.8257 -> 0.8461 totalCross: 4.3969 -> 4.4172 fouls: 1.6938 -> 1.6743 wasFouled: 1.0154 -> 1.0303 onTargetScoringAttempt: 0.3899 -> 0.3786 goalAssist: 0.1283 -> 0.1393 interceptionWon: 0.8553 -> 0.8453 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Semi Ajayi, John Egan', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.268, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.0999, 'skill_edge': 0.104, 'height_edge': -0.036, 'attacker_skill': 0.6685, 'defender_skill': 0.4374, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Semi Ajayi', 'market_value': 930000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'John Egan', 'market_value': 1500000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.1014} | totalShots: 1.3449 -> 1.4793 shotOffTarget: 0.9663 -> 1.0628 onTargetScoringAttempt: 0.3786 -> 0.4164 goals: 0.1151 -> 0.1266 expectedGoals: 0.0922 -> 0.1014 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.37 (squad xG sum 1.2999, xG scale 1.0555, xA scale 1.3513, team xA 0.89 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.372
squad_xg_sum=1.2999
squad_xa_sum=0.66
team_expected_assists=0.8918
team_xa_to_xg_ratio=0.65 | expected_goals: 0.1014 -> 0.107 expected_assists: 0.1027 -> 0.1388 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 82.0) | match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1015
goal_rate=0.1266
scorer_weight=0.1248 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1296
assist_rate=0.1393
provider_weight=0.1721 | - |
|
| Julio Enciso | M | 82 | 0 | 0.21 | 0.12 | 81% | 3 | 1.6 | 6.9 | 40.1 | 14 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0228, quality 0.702) | market_value_eur=28000000
quality_factor=0.7022
boost_factor=1.0228
reference_quality=0.505
history_matches=8
history_shrink=0.3846 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0300) | blend_weight=0.03
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=0.9108
prior_reliability=0.12
competition=Premier League | totalCross: 1.0427 -> 1.0114 goalAssist: 0.1359 -> 0.1622 totalShots: 2.4031 -> 2.4234 wonTackle: 0.5373 -> 0.5515 wasFouled: 1.5845 -> 1.5977 interceptionWon: 0.434 -> 0.421 onTargetScoringAttempt: 0.8168 -> 0.8076 goals: 0.2261 -> 0.2193 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Semi Ajayi', 'matchup_zone': 'LW vs CB', 'duel_win_rate': 0.479, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0869, 'skill_edge': 0.1191, 'height_edge': -0.06, 'attacker_skill': 0.7022, 'defender_skill': 0.4374, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Semi Ajayi', 'market_value': 930000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.2008} | aerialWon: 0.1101 -> 0.9 totalShots: 2.4234 -> 2.634 shotOffTarget: 1.5863 -> 1.7241 onTargetScoringAttempt: 0.8076 -> 0.8778 expectedGoalsOnTarget: 0.3137 -> 0.341 goals: 0.2193 -> 0.2384 expectedGoals: 0.1847 -> 0.2008 bigChanceMissed: 0.0876 -> 0.0952 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.37 (squad xG sum 1.2999, xG scale 1.0555, xA scale 1.3513, team xA 0.89 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.372
squad_xg_sum=1.2999
squad_xa_sum=0.66
team_expected_assists=0.8918
team_xa_to_xg_ratio=0.65 | expected_goals: 0.2008 -> 0.2119 expected_assists: 0.1269 -> 0.1714 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 78.0) | match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.191
goal_rate=0.2384
scorer_weight=0.2437 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=1
assist_probability=0.1575
assist_rate=0.1622
provider_weight=0.2056 | - |
|
| Jaden Philogene-Bidace | F | 71 | 0 | 0.14 | 0.01 | 923% | 2 | 0.3 | 6.8 | 18.9 | 17 | XGBoost F_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0190, quality 0.619) | market_value_eur=18800000
quality_factor=0.6191
boost_factor=1.019
reference_quality=0.505
history_matches=4
history_shrink=0.5556 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Semi Ajayi, John Egan', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.25, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.0731, 'skill_edge': 0.0818, 'height_edge': -0.032, 'attacker_skill': 0.6191, 'defender_skill': 0.4374, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Semi Ajayi', 'market_value': 930000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'John Egan', 'market_value': 1500000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.1365} | totalShots: 1.5343 -> 1.6465 shotOffTarget: 0.9826 -> 1.0544 onTargetScoringAttempt: 0.5517 -> 0.592 goals: 0.1469 -> 0.1576 expectedGoals: 0.1272 -> 0.1365 expectedGoalsOnTarget: 0.0915 -> 0.0982 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.37 (squad xG sum 1.2999, xG scale 1.0555, xA scale 1.3513, team xA 0.89 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.372
squad_xg_sum=1.2999
squad_xa_sum=0.66
team_expected_assists=0.8918
team_xa_to_xg_ratio=0.65 | expected_goals: 0.1365 -> 0.1441 expected_assists: 0.0555 -> 0.075 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 85.0) | match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1342
goal_rate=0.1576
scorer_weight=0.1604 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0723
assist_rate=0.0
provider_weight=0.06 | - |
|
| Emersonn | F | 70 | 1 | 0.36 | 0.18 | 103% | 2 | 1.0 | 6.7 | 38.6 | 14 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0189, quality 0.669) | market_value_eur=24000000
quality_factor=0.6685
boost_factor=1.0189
reference_quality=0.505
history_matches=8
history_shrink=0.3846 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0200) | blend_weight=0.02
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=0.7782
prior_reliability=0.08
competition=Premier League | totalCross: 0.0673 -> 0.0789 wasFouled: 1.8271 -> 1.8165 onTargetScoringAttempt: 0.7708 -> 0.7809 totalOffside: 0.365 -> 0.3577 wonTackle: 0.2896 -> 0.2968 goals: 0.2978 -> 0.3048 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Semi Ajayi, John Egan', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.292, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.1352, 'skill_edge': 0.104, 'height_edge': -0.012, 'attacker_skill': 0.6685, 'defender_skill': 0.4374, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Semi Ajayi', 'market_value': 930000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'John Egan', 'market_value': 1500000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.3409} | totalShots: 2.0983 -> 2.382 shotOffTarget: 1.3174 -> 1.4955 onTargetScoringAttempt: 0.7809 -> 0.8865 bigChanceMissed: 0.3636 -> 0.4128 goals: 0.3048 -> 0.346 expectedGoals: 0.3003 -> 0.3409 expectedGoalsOnTarget: 0.1665 -> 0.189 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.37 (squad xG sum 1.2999, xG scale 1.0555, xA scale 1.3513, team xA 0.89 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.372
squad_xg_sum=1.2999
squad_xa_sum=0.66
team_expected_assists=0.8918
team_xa_to_xg_ratio=0.65 | expected_goals: 0.3409 -> 0.3598 expected_assists: 0.0482 -> 0.0651 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 74.0) | match_squad_rank=14
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.3022
goal_rate=0.346
scorer_weight=0.3645 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.063
assist_rate=0.1074
provider_weight=0.0814 | - |
|
| Abdoul Ouattara | M | 89 | 0 | 0.04 | 0.01 | 431% | 1 | 0.2 | 6.8 | 47.2 | 20 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0104, quality 0.595) | market_value_eur=16500000
quality_factor=0.5953
boost_factor=1.0104
reference_quality=0.505
history_matches=8
history_shrink=0.3846 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0050) | blend_weight=0.005
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=0.9852
prior_reliability=0.02
competition=Premier League | totalCross: 1.4958 -> 1.4883 interceptionWon: 1.4403 -> 1.4331 wonTackle: 1.0236 -> 1.0185 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Elliot Stroud', 'matchup_zone': 'Midfield lane'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.37 (squad xG sum 1.2999, xG scale 1.0555, xA scale 1.3513, team xA 0.89 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.372
squad_xg_sum=1.2999
squad_xa_sum=0.66
team_expected_assists=0.8918
team_xa_to_xg_ratio=0.65 | expected_assists: 0.0568 -> 0.0768 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 73.0) | match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0436
goal_rate=0.0574
scorer_weight=0.0519 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0739
assist_rate=0.0951
provider_weight=0.096 | - |
|
| Team totals | 1 | 1.37 | | 14 | | 6.8 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Kjell Scherpen | G | 4.8m | 14.0% | Market-value substitute prior |
| Jacob Greaves | D | 14.2m | 23.0% | Market-value substitute prior |
| Cédric Kipré | D | 13.6m | 29.9% | Market-value substitute prior |
| Marcelino Núñez | M | 22.5m | 31.8% | Market-value substitute prior |
| Azor Matusiwa | M | 22.4m | 52.0% | Market-value substitute prior |
| Jack Clarke | F | 22.7m | 73.5% | Market-value substitute prior |
Antagonist / tactical summary
Midfield is evenly contested — Tim Iroegbunam vs Julio Enciso will be the pivotal duel. Total antagonist xG — Home: 0.61, Away: 0.82. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Midfield — possession 48.3% / 51.7%, dominance ratio 0.44, key duel: Tim Iroegbunam vs Julio Enciso
Mohamed Belloumi xG 0.17Oliver McBurnie xG 0.26Elliot Stroud xG 0.04Julio Enciso xG 0.20Exequiel Palacios xG 0.04Emersonn xG 0.34
Summary
Antagonist matchup analysis for Hull vs Ipswich. Most likely scoreline: 1-1. Lambdas derived from 7 home and 5 away individual player duels. Head-to-head: Hull 4W-2D-4L vs Ipswich over 10 meetings.
Tactical parity between 5-4-1 and 4-2-3-1. Match outcome driven primarily by individual player quality. Midfield is evenly contested — Tim Iroegbunam vs Julio Enciso will be the pivotal duel. Total antagonist xG — Home: 0.61, Away: 0.82. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Bournemouth vs Leeds
Premier League · 20261031 · 4-2-3-1 vs 3-4-2-1
Predicted 1-0Winner: BournemouthWinning H 1-0 (9.6%)Winning A 0-1 (7.4%)Confidence 0.73λ home/away 1.57 / 1.22Most-likely P 9.6%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset TracingAntagonist + XGBoost match analysis for Bournemouth vs Leeds. Player statistics regressed using position-specific XGBoost models (G, D, M, F) with 2026-2027 FBref priors. Micro-duels resolved across 4-2-3-1 vs 3-4-2-1 (duel lambdas: Home 1.482, Away 1.059). Final calibrated Poisson lambdas: Home 1.566, Away 1.215 (most likely score 1-0).
Home Starters 11/11 XGBoost (10 FBref) Away Starters 11/11 XGBoost (10 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.48 / 1.06 Final λ (H/A) 1.57 / 1.22
FBref Team Priors: Bournemouth (Gls/90: 1.0, GA/90: 1.0 → E[λ]: 0.69) vs Leeds United (Gls/90: 1.0, GA/90: 1.0 → E[λ]: 0.69) | Blend Weight: 0.192
Modeling Pipeline Stages (5 layers)
- 1. XGBoost player regressions for volume & event rates with market-value quality scaling
- 2. Multi-source prior blending (FBref 2026-2027 tables + Sofascore season history)
- 3. Antagonist formation duel matrix resolving 1v1 and zonal matchups
- 4. Team-level prior calibration (FBref possession and attack/defense efficiencies)
- 5. Bivariate Poisson matrix with Dixon-Coles low-score correction
Standing & form context
| Metric | Bournemouth | Leeds |
|---|
| League position | 13.00 | 7.00 |
| Points per game | 1.22 | 1.37 |
| Attack index | 1.03 | 0.92 |
| Defense (concede) index | 0.82 | 1.07 |
| Form multiplier | 0.99 | 1.01 |
| Standing λ multiplier | 0.93 | 1.00 |
Lambda decomposition (how the goal rates were built)
| Stage | Bournemouth λ | Leeds λ |
|---|
| FBref Squad Prior E[λ] (weight 0.192) | 0.690 | 0.690 |
| Pre-competitive-floor | 1.457 | 1.077 |
| Pre-calibration (Micro-duels) | 1.482 | 1.059 |
| Final λ | 1.566 | 1.215 |
competition calibration scale 1.097competition observed total goals 2.781quality gap applied Falsemismatch score pressure applied Falsecompetitive underdog floor applied Falsestage discount 1.0
Scoreline distribution & markets
| Top 5 scorelines | P |
|---|
| 1-1 | 11.9% |
| 1-0 | 9.6% |
| 2-1 | 9.2% |
| 2-0 | 7.6% |
| 0-1 | 7.4% |
| Home win | 45.4% |
| Draw | 25.1% |
| Away win | 29.5% |
| Over 2.5 | 52.6% |
| BTTS yes | 55.7% |
Pregame fair line — favorite Bournemouth (45.4%), fair total 2.78, fair spread 0.35
Projected players vs season baseline
Proj = projected for this match · Season = this season's per-game average from match data · deviation badge compares projected xG to the player's season xG/game.
Bournemouth — projected line vs season baseline (4-2-3-1)
| Player | Pos | Min | Proj G | Proj xG | Season xG/g | | Proj Sh | Season Sh/g | Proj Rtg | Season Rtg | Rec | Model / FBref Prior |
|---|
| Marcus Tavernier | F | 83 | 0 | 0.30 | 0.28 | ok | 2 | 1.6 | 7.0 | 51.8 | 40 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0060, quality 0.694) | market_value_eur=27000000
quality_factor=0.6941
boost_factor=1.006
reference_quality=0.505
history_matches=42
history_shrink=0.1064 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0092) | blend_weight=0.0092
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.9251
prior_reliability=0.1333
competition=Premier League | wasFouled: 1.0301 -> 1.0377 onTargetScoringAttempt: 1.051 -> 1.0456 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'James Justin, Nico Elvedi', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.207, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.0096, 'skill_edge': 0.0366, 'height_edge': -0.03, 'attacker_skill': 0.6941, 'defender_skill': 0.6129, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'James Justin', 'market_value': 16500000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6503}, {'player': 'Nico Elvedi', 'market_value': 11000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5755}], 'xg_override': 0.3592} | totalShots: 2.0349 -> 2.0544 onTargetScoringAttempt: 1.0456 -> 1.0556 shotOffTarget: 0.9856 -> 0.9951 expectedGoalsOnTarget: 0.5595 -> 0.5649 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.57 (squad xG sum 1.8872, xG scale 0.8298, xA scale 1.0336, team xA 1.02 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.566
squad_xg_sum=1.8872
squad_xa_sum=0.9848
team_expected_assists=1.0179
team_xa_to_xg_ratio=0.65 | expected_goals: 0.3592 -> 0.2981 expected_assists: 0.1692 -> 0.1748 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 79.0) | match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.2578
goal_rate=0.3502
scorer_weight=0.2915 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1604
assist_rate=0.0172
provider_weight=0.1398 | - |
|
| Evanilson | F | 84 | 0 | 0.30 | 0.28 | ok | 3 | 1.8 | 7.0 | 55.4 | 33 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0072, quality 0.739) | market_value_eur=33000000
quality_factor=0.7389
boost_factor=1.0072
reference_quality=0.505
history_matches=44
history_shrink=0.102 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0075) | blend_weight=0.0075
history_matches=44
season_overlap_discount=1.0
per90_to_match_factor=0.9287
prior_reliability=0.1133
competition=Premier League | fouls: 1.3847 -> 1.3948 wasFouled: 1.6989 -> 1.7067 interceptionWon: 0.7007 -> 0.7077 onTargetScoringAttempt: 0.7937 -> 0.7877 totalShots: 2.4108 -> 2.4049 goalAssist: 0.3288 -> 0.3345 wonTackle: 0.7552 -> 0.7495 totalOffside: 0.7507 -> 0.7451 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'James Justin, Nico Elvedi', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.239, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.0569, 'skill_edge': 0.0567, 'height_edge': -0.018, 'attacker_skill': 0.7389, 'defender_skill': 0.6129, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'James Justin', 'market_value': 16500000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6503}, {'player': 'Nico Elvedi', 'market_value': 11000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5755}], 'xg_override': 0.3622} | totalShots: 2.4049 -> 2.5417 shotOffTarget: 1.6171 -> 1.7091 onTargetScoringAttempt: 0.7877 -> 0.8325 expectedGoalsOnTarget: 0.4304 -> 0.4549 goals: 0.3713 -> 0.3924 expectedGoals: 0.3427 -> 0.3622 bigChanceMissed: 0.3238 -> 0.3422 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.57 (squad xG sum 1.8872, xG scale 0.8298, xA scale 1.0336, team xA 1.02 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.566
squad_xg_sum=1.8872
squad_xa_sum=0.9848
team_expected_assists=1.0179
team_xa_to_xg_ratio=0.65 | expected_goals: 0.3622 -> 0.3006 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 79.0) | match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.2596
goal_rate=0.3924
scorer_weight=0.3226 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0941
assist_rate=0.3345
provider_weight=0.1235 | - |
|
| Justin Kluivert | M | 74 | 0 | 0.15 | 0.09 | 68% | 2 | 1.0 | 6.8 | 37.2 | 16 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0079, quality 0.669) | market_value_eur=24000000
quality_factor=0.6685
boost_factor=1.0079
reference_quality=0.505
history_matches=26
history_shrink=0.1613 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0119) | blend_weight=0.0119
history_matches=26
season_overlap_discount=1.0
per90_to_match_factor=0.8226
prior_reliability=0.1133
competition=Premier League | totalCross: 2.2905 -> 2.2805 onTargetScoringAttempt: 0.6017 -> 0.6117 totalShots: 1.7204 -> 1.7285 fouls: 1.6498 -> 1.6417 wonTackle: 0.4886 -> 0.4943 interceptionWon: 0.9165 -> 0.9114 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'James Justin', 'matchup_zone': 'LW vs CB', 'duel_win_rate': 0.38, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9415, 'skill_edge': 0.0082, 'height_edge': -0.048, 'attacker_skill': 0.6685, 'defender_skill': 0.6503, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'James Justin', 'market_value': 16500000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6503}], 'xg_override': 0.177} | aerialWon: 0.3635 -> 0.8 totalShots: 1.7304 -> 1.6292 shotOffTarget: 1.1187 -> 1.0533 onTargetScoringAttempt: 0.6117 -> 0.5759 expectedGoalsOnTarget: 0.2968 -> 0.2794 expectedGoals: 0.188 -> 0.177 goals: 0.1776 -> 0.1672 bigChanceMissed: 0.1126 -> 0.106 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.57 (squad xG sum 1.8872, xG scale 0.8298, xA scale 1.0336, team xA 1.02 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.566
squad_xg_sum=1.8872
squad_xa_sum=0.9848
team_expected_assists=1.0179
team_xa_to_xg_ratio=0.65 | expected_goals: 0.177 -> 0.1469 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 79.0) | match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1366
goal_rate=0.1672
scorer_weight=0.1406 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1188
assist_rate=0.1338
provider_weight=0.1349 | - |
|
| Rayan | F | 86 | 1 | 0.31 | 0.18 | 75% | 3 | 1.8 | 7.2 | 50.3 | 40 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0184, quality 0.848) | market_value_eur=58000000
quality_factor=0.8478
boost_factor=1.0184
reference_quality=0.505
history_matches=23
history_shrink=0.1786 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0155) | blend_weight=0.0155
history_matches=23
season_overlap_discount=1.0
per90_to_match_factor=0.9559
prior_reliability=0.1333
competition=Premier League | totalCross: 1.835 -> 1.8066 wasFouled: 1.3869 -> 1.3654 fouls: 0.9579 -> 0.9431 wonTackle: 0.658 -> 0.6478 onTargetScoringAttempt: 0.8848 -> 0.8936 interceptionWon: 0.9909 -> 0.983 goals: 0.367 -> 0.3613 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'James Justin, Nico Elvedi', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.304, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.1525, 'skill_edge': 0.1057, 'height_edge': -0.002, 'attacker_skill': 0.8478, 'defender_skill': 0.6129, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'James Justin', 'market_value': 16500000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6503}, {'player': 'Nico Elvedi', 'market_value': 11000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5755}], 'xg_override': 0.375} | totalShots: 2.8038 -> 3.2314 shotOffTarget: 1.9102 -> 2.2015 bigChanceMissed: 0.9239 -> 1.0648 onTargetScoringAttempt: 0.8936 -> 1.0299 goals: 0.3613 -> 0.4164 expectedGoalsOnTarget: 0.3315 -> 0.3821 expectedGoals: 0.3254 -> 0.375 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.57 (squad xG sum 1.8872, xG scale 0.8298, xA scale 1.0336, team xA 1.02 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.566
squad_xg_sum=1.8872
squad_xa_sum=0.9848
team_expected_assists=1.0179
team_xa_to_xg_ratio=0.65 | expected_goals: 0.375 -> 0.3111 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 79.0) | match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.2674
goal_rate=0.4164
scorer_weight=0.3414 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0832
assist_rate=0.0222
provider_weight=0.0695 | - |
|
| Tyler Adams | M | 83 | 0 | 0.03 | 0.01 | 260% | 1 | 0.2 | 6.9 | 48.7 | 25 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0087, quality 0.725) | market_value_eur=31000000
quality_factor=0.7249
boost_factor=1.0087
reference_quality=0.505
history_matches=33
history_shrink=0.1316 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0023) | blend_weight=0.0023
history_matches=33
season_overlap_discount=1.0
per90_to_match_factor=0.9277
prior_reliability=0.0267
competition=Premier League | interceptionWon: 1.4265 -> 1.4338 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Harry Wilson, Noah Okafor, Ethan Ampadu', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.57 (squad xG sum 1.8872, xG scale 0.8298, xA scale 1.0336, team xA 1.02 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.566
squad_xg_sum=1.8872
squad_xa_sum=0.9848
team_expected_assists=1.0179
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0378 -> 0.0314 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 79.0) | match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0309
goal_rate=0.0485
scorer_weight=0.0352 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0351
assist_rate=0.0473
provider_weight=0.0411 | - |
|
| Đorđe Petrović | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 6.8 | 56.1 | 33 | FBref Prior G_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost G_service raw output over 3 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0060, quality 0.710) | market_value_eur=29000000
quality_factor=0.71
boost_factor=1.006
reference_quality=0.505
history_matches=46
history_shrink=0.098 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0085) | blend_weight=0.0085
history_matches=46
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League | saves: 2.7746 -> 2.7893 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Dominic Calvert-Lewin, Noah Okafor', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.0586} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.57 (squad xG sum 1.8872, xG scale 0.8298, xA scale 1.0336, team xA 1.02 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.566
squad_xg_sum=1.8872
squad_xa_sum=0.9848
team_expected_assists=1.0179
team_xa_to_xg_ratio=0.65 | shots_faced: 10.1 -> 11.5 expected_saves: 2.48 -> 2.81 high_pressure_saves: 0.85 -> 0.97 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 79.0) | match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.5747 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0
provider_weight=0.0
squad_weight_total=0.9927 | - |
|
| Adam Smith | D | 84 | 0 | 0.06 | 0.02 | 254% | 0 | 0.1 | 6.7 | 35.8 | 33 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9971, quality 0.437) | market_value_eur=310000
quality_factor=0.4374
boost_factor=0.9971
reference_quality=0.505
history_matches=30
history_shrink=0.1429 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0124) | blend_weight=0.0124
history_matches=30
season_overlap_discount=1.0
per90_to_match_factor=0.9321
prior_reliability=0.1333
competition=Premier League | interceptionWon: 0.784 -> 0.7916 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Ao Tanaka', 'matchup_zone': 'Right Wingback vs Left Back — Overlapping Run'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.57 (squad xG sum 1.8872, xG scale 0.8298, xA scale 1.0336, team xA 1.02 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.566
squad_xg_sum=1.8872
squad_xa_sum=0.9848
team_expected_assists=1.0179
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0714 -> 0.0592 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 15 by projected rating, fifa_overall 73.0) | match_squad_rank=15
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0575
goal_rate=0.0
scorer_weight=0.0474 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0567
assist_rate=0.0433
provider_weight=0.0512 | - |
|
| James Hill | D | 90 | 0 | 0.01 | 0.02 | 42% | 1 | 0.3 | 7.5 | 58.8 | 33 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0081, quality 0.732) | market_value_eur=32000000
quality_factor=0.732
boost_factor=1.0081
reference_quality=0.505
history_matches=37
history_shrink=0.119 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0103) | blend_weight=0.0103
history_matches=37
season_overlap_discount=1.0
per90_to_match_factor=0.9994
prior_reliability=0.1333
competition=Premier League | fouls: 0.8168 -> 0.8238 totalShots: 0.5793 -> 0.5733 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Dominic Calvert-Lewin', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.57 (squad xG sum 1.8872, xG scale 0.8298, xA scale 1.0336, team xA 1.02 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.566
squad_xg_sum=1.8872
squad_xa_sum=0.9848
team_expected_assists=1.0179
team_xa_to_xg_ratio=0.65 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 78.0) | match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0136
goal_rate=0.0
scorer_weight=0.011 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0703
assist_rate=0.0144
provider_weight=0.0583 | - |
|
| António Silva | D | 90 | 0 | 0.13 | 0.09 | 38% | 1 | 0.4 | 7.1 | 39.8 | 14 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0262, quality 0.732) | market_value_eur=32000000
quality_factor=0.732
boost_factor=1.0262
reference_quality=0.505
history_matches=8
history_shrink=0.3846 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0333) | blend_weight=0.0333
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League | fouls: 1.0596 -> 1.041 onTargetScoringAttempt: 0.2468 -> 0.2386 totalShots: 0.7302 -> 0.7225 interceptionWon: 1.2084 -> 1.2015 wonTackle: 0.7968 -> 0.8036 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Dominic Calvert-Lewin', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.57 (squad xG sum 1.8872, xG scale 0.8298, xA scale 1.0336, team xA 1.02 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.566
squad_xg_sum=1.8872
squad_xa_sum=0.9848
team_expected_assists=1.0179
team_xa_to_xg_ratio=0.65 | expected_goals: 0.1546 -> 0.1283 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 77.0) | match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1204
goal_rate=0.0
scorer_weight=0.1026 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0415
assist_rate=0.0
provider_weight=0.0339 | - |
|
| Adrien Truffert | D | 89 | 0 | 0.03 | 0.03 | ok | 1 | 0.4 | 6.8 | 56.5 | 33 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0069, quality 0.739) | market_value_eur=33000000
quality_factor=0.7389
boost_factor=1.0069
reference_quality=0.505
history_matches=46
history_shrink=0.098 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0085) | blend_weight=0.0085
history_matches=46
season_overlap_discount=1.0
per90_to_match_factor=0.9927
prior_reliability=0.1333
competition=Premier League | totalCross: 3.938 -> 3.9256 wonTackle: 1.4115 -> 1.4037 totalShots: 0.6653 -> 0.6596 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Jayden Bogle', 'matchup_zone': 'Left Wingback vs Right Back — Overlapping Run'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.57 (squad xG sum 1.8872, xG scale 0.8298, xA scale 1.0336, team xA 1.02 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.566
squad_xg_sum=1.8872
squad_xa_sum=0.9848
team_expected_assists=1.0179
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0336 -> 0.0279 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 80.0) | match_squad_rank=11
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0275
goal_rate=0.0186
scorer_weight=0.0229 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=1
assist_probability=0.1402
assist_rate=0.2445
provider_weight=0.1889 | - |
|
| Ryan Christie | M | 73 | 0 | 0.09 | 0.06 | 46% | 1 | 0.9 | 6.9 | 50.7 | 28 | FBref Prior M_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0000, quality 0.506) | market_value_eur=8600000
quality_factor=0.5059
boost_factor=1.0
reference_quality=0.505
history_matches=33
history_shrink=0.1316 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Gabriel Gudmundsson', 'matchup_zone': 'Midfield lane'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.57 (squad xG sum 1.8872, xG scale 0.8298, xA scale 1.0336, team xA 1.02 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.566
squad_xg_sum=1.8872
squad_xa_sum=0.9848
team_expected_assists=1.0179
team_xa_to_xg_ratio=0.65 | expected_goals: 0.1044 -> 0.0866 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 78.0) | match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.083
goal_rate=0.1018
scorer_weight=0.0851 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0885
assist_rate=0.0761
provider_weight=0.0837 | - |
|
| Team totals | 1 | 1.57 | | 18 | | 7.0 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Michele Di Gregorio | G | 4.7m | 12.3% | Market-value substitute prior |
| Bafodé Diakité | D | 14.4m | 33.9% | Market-value substitute prior |
| Álex Jiménez | D | 14.3m | 33.3% | Market-value substitute prior |
| Alex Scott | M | 23.7m | 34.3% | Market-value substitute prior |
| Hamed Junior Traorè | M | 22.5m | 52.2% | Market-value substitute prior |
| Eli Junior Kroupi | F | 27.0m | 63.7% | Market-value substitute prior |
Leeds — projected line vs season baseline (3-4-2-1)
| Player | Pos | Min | Proj G | Proj xG | Season xG/g | | Proj Sh | Season Sh/g | Proj Rtg | Season Rtg | Rec | Model / FBref Prior |
|---|
| James Trafford | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 7.2 | 19.1 | 34 | FBref Prior G_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost G_service raw output over 3 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0234, quality 0.770) | market_value_eur=38000000
quality_factor=0.7699
boost_factor=1.0234
reference_quality=0.505
history_matches=12
history_shrink=0.2941 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0255) | blend_weight=0.0255
history_matches=12
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Rayan, Evanilson', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.4818} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.22 (squad xG sum 1.2773, xG scale 0.9512, xA scale 1.0781, team xA 0.79 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.215
squad_xg_sum=1.2773
squad_xa_sum=0.7326
team_expected_assists=0.7898
team_xa_to_xg_ratio=0.65 | shots_faced: 14.1 -> 14.9 expected_saves: 3.45 -> 3.65 high_pressure_saves: 1.19 -> 1.25 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 79.0) | match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.2696 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0
provider_weight=0.0
squad_weight_total=0.772 | - |
|
| James Justin | D | 88 | 0 | 0.06 | 0.06 | ok | 1 | 0.9 | 6.8 | 59.0 | 36 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0032, quality 0.595) | market_value_eur=16500000
quality_factor=0.5953
boost_factor=1.0032
reference_quality=0.505
history_matches=37
history_shrink=0.119 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0103) | blend_weight=0.0103
history_matches=37
season_overlap_discount=1.0
per90_to_match_factor=0.9833
prior_reliability=0.1333
competition=Premier League | totalCross: 2.8865 -> 2.8719 wonTackle: 1.3046 -> 1.3165 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Justin Kluivert', 'matchup_zone': 'LW vs CB'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.22 (squad xG sum 1.2773, xG scale 0.9512, xA scale 1.0781, team xA 0.79 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.215
squad_xg_sum=1.2773
squad_xa_sum=0.7326
team_expected_assists=0.7898
team_xa_to_xg_ratio=0.65 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 76.0) | match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.057
goal_rate=0.148
scorer_weight=0.0734 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0655
assist_rate=0.0834
provider_weight=0.0801 | - |
|
| Nico Elvedi | D | 89 | 0 | 0.05 | 0.02 | 180% | 1 | 0.2 | 6.9 | 31.8 | 13 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0040, quality 0.534) | market_value_eur=11000000
quality_factor=0.5341
boost_factor=1.004
reference_quality=0.505
history_matches=6
history_shrink=0.4545 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0118) | blend_weight=0.0118
history_matches=6
season_overlap_discount=1.0
per90_to_match_factor=0.9928
prior_reliability=0.04
competition=Premier League | wasFouled: 0.0 -> 0.0391 interceptionWon: 0.9417 -> 0.9501 wonTackle: 0.6195 -> 0.6122 totalShots: 0.5275 -> 0.5213 onTargetScoringAttempt: 0.4664 -> 0.4609 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Rayan', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.22 (squad xG sum 1.2773, xG scale 0.9512, xA scale 1.0781, team xA 0.79 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.215
squad_xg_sum=1.2773
squad_xa_sum=0.7326
team_expected_assists=0.7898
team_xa_to_xg_ratio=0.65 | expected_assists: 0.0893 -> 0.0963 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 78.0) | match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0495
goal_rate=0.0
scorer_weight=0.0406 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0918
assist_rate=0.0
provider_weight=0.077 | - |
|
| Tarik Muharemović | D | 90 | 0 | 0.08 | 0.04 | 82% | 1 | 0.5 | 7.1 | 41.0 | 14 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0335, quality 0.796) | market_value_eur=43000000
quality_factor=0.7957
boost_factor=1.0335
reference_quality=0.505
history_matches=8
history_shrink=0.3846 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0333) | blend_weight=0.0333
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League | interceptionWon: 1.1552 -> 1.1834 totalCross: 0.0804 -> 0.0944 wasFouled: 0.9182 -> 0.9043 totalShots: 0.8668 -> 0.8546 goalAssist: 0.2924 -> 0.2827 fouls: 0.7794 -> 0.7701 onTargetScoringAttempt: 0.2814 -> 0.2887 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=true | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Marcus Tavernier', 'matchup_zone': 'Shape fallback'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.22 (squad xG sum 1.2773, xG scale 0.9512, xA scale 1.0781, team xA 0.79 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.215
squad_xg_sum=1.2773
squad_xa_sum=0.7326
team_expected_assists=0.7898
team_xa_to_xg_ratio=0.65 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 75.0) | match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0783
goal_rate=0.0
scorer_weight=0.0652 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0379
assist_rate=0.2827
provider_weight=0.0483 | - |
|
| Jayden Bogle | M | 82 | 0 | 0.12 | 0.08 | 53% | 1 | 0.6 | 6.9 | 54.8 | 30 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0038, quality 0.623) | market_value_eur=19200000
quality_factor=0.6231
boost_factor=1.0038
reference_quality=0.505
history_matches=42
history_shrink=0.1064 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0078) | blend_weight=0.0078
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.9076
prior_reliability=0.1133
competition=Premier League | wasFouled: 1.2588 -> 1.2699 totalShots: 1.2749 -> 1.2649 totalCross: 2.7667 -> 2.7576 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Adrien Truffert', 'matchup_zone': 'Left Wingback vs Right Back — Overlapping Run', 'duel_win_rate': 0.356, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9351, 'skill_edge': -0.0522, 'height_edge': 0.008, 'attacker_skill': 0.6976, 'defender_skill': 0.8135, 'attacker_role': 'LWB', 'attacker_mv_price_index': 0.7, 'defender_adjusted_parts': [{'player': 'Adrien Truffert', 'market_value': 33000000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.8135}], 'xg_override': 0.1269} | totalShots: 1.2715 -> 1.189 shotOffTarget: 0.8385 -> 0.7841 onTargetScoringAttempt: 0.433 -> 0.4049 goals: 0.1915 -> 0.1791 expectedGoalsOnTarget: 0.1689 -> 0.1579 aerialWon: 1.0108 -> 1.0 expectedGoals: 0.1357 -> 0.1269 bigChanceMissed: 0.1299 -> 0.1215 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.22 (squad xG sum 1.2773, xG scale 0.9512, xA scale 1.0781, team xA 0.79 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.215
squad_xg_sum=1.2773
squad_xa_sum=0.7326
team_expected_assists=0.7898
team_xa_to_xg_ratio=0.65 | expected_goals: 0.1269 -> 0.1207 expected_assists: 0.1143 -> 0.123 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 76.0) | match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.1137
goal_rate=0.1791
scorer_weight=0.1509 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.1157
assist_rate=0.0949
provider_weight=0.1085 | - |
|
| Ethan Ampadu | M | 90 | 0 | 0.04 | 0.05 | ok | 1 | 0.5 | 7.1 | 58.9 | 33 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0073, quality 0.739) | market_value_eur=33000000
quality_factor=0.7389
boost_factor=1.0073
reference_quality=0.505
history_matches=43
history_shrink=0.1042 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0090) | blend_weight=0.009
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=0.9979
prior_reliability=0.1333
competition=Premier League | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Tyler Adams', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.479, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 1.0419, 'skill_edge': 0.0005, 'height_edge': 0.028, 'attacker_skill': 0.7622, 'defender_skill': 0.761, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Tyler Adams', 'market_value': 31000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.761}], 'xg_override': 0.0399} | aerialWon: 1.1434 -> 1.1 totalShots: 0.6128 -> 0.6385 shotOffTarget: 0.4629 -> 0.4823 onTargetScoringAttempt: 0.1495 -> 0.1558 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.22 (squad xG sum 1.2773, xG scale 0.9512, xA scale 1.0781, team xA 0.79 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.215
squad_xg_sum=1.2773
squad_xa_sum=0.7326
team_expected_assists=0.7898
team_xa_to_xg_ratio=0.65 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 80.0) | match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0373
goal_rate=0.0481
scorer_weight=0.0415 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0618
assist_rate=0.0685
provider_weight=0.0692 | - |
|
| Ao Tanaka | M | 78 | 0 | 0.10 | 0.05 | 105% | 1 | 0.4 | 6.8 | 36.2 | 34 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0033, quality 0.592) | market_value_eur=16200000
quality_factor=0.5921
boost_factor=1.0033
reference_quality=0.505
history_matches=35
history_shrink=0.125 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0027) | blend_weight=0.0027
history_matches=35
season_overlap_discount=1.0
per90_to_match_factor=0.8642
prior_reliability=0.0333
competition=Premier League | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Adam Smith', 'matchup_zone': 'Right Wingback vs Left Back — Overlapping Run', 'duel_win_rate': 0.501, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.1478, 'skill_edge': 0.1005, 'height_edge': 0.0, 'attacker_skill': 0.6608, 'defender_skill': 0.4374, 'attacker_role': 'RWB', 'attacker_mv_price_index': 0.7, 'defender_adjusted_parts': [{'player': 'Adam Smith', 'market_value': 310000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.4374}], 'xg_override': 0.1072} | aerialWon: 0.2305 -> 1.1 totalShots: 1.0613 -> 1.2182 shotOffTarget: 0.7653 -> 0.8784 onTargetScoringAttempt: 0.296 -> 0.3397 bigChanceMissed: 0.0952 -> 0.1093 expectedGoals: 0.0934 -> 0.1072 goals: 0.0896 -> 0.1028 expectedGoalsOnTarget: 0.0401 -> 0.046 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.22 (squad xG sum 1.2773, xG scale 0.9512, xA scale 1.0781, team xA 0.79 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.215
squad_xg_sum=1.2773
squad_xa_sum=0.7326
team_expected_assists=0.7898
team_xa_to_xg_ratio=0.65 | expected_goals: 0.1072 -> 0.102 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 76.0) | match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.097
goal_rate=0.1028
scorer_weight=0.0991 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0586
assist_rate=0.0537
provider_weight=0.0591 | - |
|
| Gabriel Gudmundsson | M | 86 | 0 | 0.04 | 0.01 | 309% | 1 | 0.3 | 6.8 | 40.0 | 34 | FBref Prior M_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0063, quality 0.686) | market_value_eur=26000000
quality_factor=0.6858
boost_factor=1.0063
reference_quality=0.505
history_matches=38
history_shrink=0.1163 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Tyler Adams', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.451, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 1.001, 'skill_edge': -0.0233, 'height_edge': 0.024, 'attacker_skill': 0.7091, 'defender_skill': 0.761, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Tyler Adams', 'market_value': 31000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.761}], 'xg_override': 0.0409} | aerialWon: 0.5098 -> 1.1 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.22 (squad xG sum 1.2773, xG scale 0.9512, xA scale 1.0781, team xA 0.79 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.215
squad_xg_sum=1.2773
squad_xa_sum=0.7326
team_expected_assists=0.7898
team_xa_to_xg_ratio=0.65 | expected_assists: 0.0737 -> 0.0795 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 78.0) | match_squad_rank=11
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0382
goal_rate=0.0484
scorer_weight=0.0421 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0764
assist_rate=0.0768
provider_weight=0.0815 | - |
|
| Harry Wilson | F | 76 | 0 | 0.11 | 0.09 | ok | 1 | 1.2 | 6.7 | 45.8 | 38 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0052, quality 0.669) | market_value_eur=24000000
quality_factor=0.6685
boost_factor=1.0052
reference_quality=0.505
history_matches=42
history_shrink=0.1064 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0055) | blend_weight=0.0055
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.8424
prior_reliability=0.08
competition=Premier League | interceptionWon: 0.3185 -> 0.3245 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Tyler Adams, António Silva', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle', 'duel_win_rate': 0.189, 'pressing_faced': 'HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.8808, 'skill_edge': -0.0491, 'height_edge': -0.032, 'attacker_skill': 0.6685, 'defender_skill': 0.7775, 'attacker_role': 'SS', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Tyler Adams', 'market_value': 31000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.761}, {'player': 'António Silva', 'market_value': 32000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7941}], 'xg_override': 0.1108} | totalShots: 1.317 -> 1.1601 shotOffTarget: 0.9299 -> 0.8191 onTargetScoringAttempt: 0.3871 -> 0.341 expectedGoals: 0.1258 -> 0.1108 goals: 0.1254 -> 0.1105 bigChanceMissed: 0.0772 -> 0.068 expectedGoalsOnTarget: 0.0758 -> 0.0668 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.22 (squad xG sum 1.2773, xG scale 0.9512, xA scale 1.0781, team xA 0.79 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.215
squad_xg_sum=1.2773
squad_xa_sum=0.7326
team_expected_assists=0.7898
team_xa_to_xg_ratio=0.65 | expected_goals: 0.1108 -> 0.1054 expected_assists: 0.0725 -> 0.0782 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 15 by projected rating, fifa_overall 81.0) | match_squad_rank=15
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.1
goal_rate=0.1105
scorer_weight=0.1052 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0752
assist_rate=0.0848
provider_weight=0.0861 | - |
|
| Noah Okafor | F | 72 | 0 | 0.16 | 0.11 | 48% | 2 | 0.9 | 6.8 | 54.2 | 27 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0090, quality 0.752) | market_value_eur=35000000
quality_factor=0.752
boost_factor=1.009
reference_quality=0.505
history_matches=36
history_shrink=0.122 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0053) | blend_weight=0.0053
history_matches=36
season_overlap_discount=1.0
per90_to_match_factor=0.7998
prior_reliability=0.0667
competition=Premier League | totalCross: 1.9211 -> 1.9321 wonTackle: 0.697 -> 0.706 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Tyler Adams, António Silva', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle', 'duel_win_rate': 0.274, 'pressing_faced': 'HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 1.0066, 'skill_edge': -0.0115, 'height_edge': 0.016, 'attacker_skill': 0.752, 'defender_skill': 0.7775, 'attacker_role': 'SS', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Tyler Adams', 'market_value': 31000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.761}, {'player': 'António Silva', 'market_value': 32000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7941}], 'xg_override': 0.1709} | totalShots: 1.7167 -> 1.728 shotOffTarget: 1.09 -> 1.0972 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.22 (squad xG sum 1.2773, xG scale 0.9512, xA scale 1.0781, team xA 0.79 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.215
squad_xg_sum=1.2773
squad_xa_sum=0.7326
team_expected_assists=0.7898
team_xa_to_xg_ratio=0.65 | expected_goals: 0.1709 -> 0.1626 expected_assists: 0.0706 -> 0.0761 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 77.0) | match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.1501
goal_rate=0.2311
scorer_weight=0.2032 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0733
assist_rate=0.0418
provider_weight=0.0609 | - |
|
| Dominic Calvert-Lewin | F | 86 | 0 | 0.33 | 0.39 | ok | 2 | 1.6 | 6.8 | 54.7 | 33 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0059, quality 0.694) | market_value_eur=27000000
quality_factor=0.6941
boost_factor=1.0059
reference_quality=0.505
history_matches=43
history_shrink=0.1042 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0090) | blend_weight=0.009
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=0.9541
prior_reliability=0.1333
competition=Premier League | totalOffside: 0.7592 -> 0.7653 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'António Silva, James Hill', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.9427, 'skill_edge': -0.045, 'height_edge': 0.006, 'attacker_skill': 0.6941, 'defender_skill': 0.7941, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'António Silva', 'market_value': 32000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7941}, {'player': 'James Hill', 'market_value': 32000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7941}], 'xg_override': 0.3436} | totalShots: 2.1225 -> 2.0009 shotOffTarget: 1.2461 -> 1.1747 onTargetScoringAttempt: 0.8748 -> 0.8247 bigChanceMissed: 0.53 -> 0.4996 expectedGoalsOnTarget: 0.4716 -> 0.4446 expectedGoals: 0.3645 -> 0.3436 goals: 0.3324 -> 0.3134 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.22 (squad xG sum 1.2773, xG scale 0.9512, xA scale 1.0781, team xA 0.79 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.215
squad_xg_sum=1.2773
squad_xa_sum=0.7326
team_expected_assists=0.7898
team_xa_to_xg_ratio=0.65 | expected_goals: 0.3436 -> 0.3268 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 79.0) | match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.2788
goal_rate=0.3134
scorer_weight=0.3017 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0387
assist_rate=0.003
provider_weight=0.0316 | - |
|
| Team totals | 0 | 1.22 | | 15 | | 6.9 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Lucas Perri | G | 4.7m | 12.2% | Market-value substitute prior |
| Joe Rodon | D | 14.3m | 23.2% | Market-value substitute prior |
| Jaka Bijol | D | 14.3m | 23.1% | Market-value substitute prior |
| Anton Stach | M | 23.1m | 33.0% | Market-value substitute prior |
| Sean Longstaff | M | 15.1m | 70.3% | Market-value substitute prior |
| Jean-Mattéo Bahoya | F | 26.2m | 60.0% | Market-value substitute prior |
Antagonist / tactical summary
Midfield is evenly contested — Tyler Adams vs Ethan Ampadu will be the pivotal duel. Total antagonist xG — Home: 1.27, Away: 0.94. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Midfield — possession 49.4% / 50.6%, dominance ratio 0.48, key duel: Tyler Adams vs Ethan Ampadu
Justin Kluivert xG 0.18Rayan xG 0.38Marcus Tavernier xG 0.36Dominic Calvert-Lewin xG 0.34Harry Wilson xG 0.11Noah Okafor xG 0.17
Summary
Antagonist matchup analysis for Bournemouth vs Leeds. Most likely scoreline: 1-0. Lambdas derived from 4 home and 7 away individual player duels. Head-to-head: Bournemouth 2W-2D-4L vs Leeds over 8 meetings.
Tactical parity between 4-2-3-1 and 3-4-2-1. Match outcome driven primarily by individual player quality. Midfield is evenly contested — Tyler Adams vs Ethan Ampadu will be the pivotal duel. Total antagonist xG — Home: 1.27, Away: 0.94. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Real Betis vs Málaga
LaLiga · 20261031 · 4-2-3-1 vs 3-4-2-1
Predicted 2-0Winner: Real BetisWinning H 2-0 (11.7%)Winning A 0-1 (4.2%)Confidence 0.79λ home/away 2.15 / 0.83Most-likely P 11.7%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset TracingAntagonist + XGBoost match analysis for Real Betis vs Málaga. Player statistics regressed using position-specific XGBoost models (G, D, M, F) with 2026-2027 FBref priors. Micro-duels resolved across 4-2-3-1 vs 3-4-2-1 (duel lambdas: Home 1.815, Away 0.718). Final calibrated Poisson lambdas: Home 2.153, Away 0.831 (most likely score 2-0).
Home Starters 11/11 XGBoost (10 FBref) Away Starters 11/11 XGBoost (5 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.81 / 0.72 Final λ (H/A) 2.15 / 0.83
FBref Team Priors: Real Betis (Gls/90: 1.3333333333333333, GA/90: 1.33 → E[λ]: 0.326) vs Málaga CF (Gls/90: 0.3333333333333333, GA/90: 0.33 → E[λ]: 0.328) | Blend Weight: 0.228
Modeling Pipeline Stages (5 layers)
- 1. XGBoost player regressions for volume & event rates with market-value quality scaling
- 2. Multi-source prior blending (FBref 2026-2027 tables + Sofascore season history)
- 3. Antagonist formation duel matrix resolving 1v1 and zonal matchups
- 4. Team-level prior calibration (FBref possession and attack/defense efficiencies)
- 5. Bivariate Poisson matrix with Dixon-Coles low-score correction
Standing & form context
| Metric | Real Betis | Málaga |
|---|
| League position | 4.00 | 20.00 |
| Points per game | 1.76 | 0.82 |
| Attack index | 1.03 | 0.76 |
| Defense (concede) index | 1.12 | 0.97 |
| Form multiplier | 1.04 | 0.96 |
| Standing λ multiplier | 1.07 | 0.88 |
Lambda decomposition (how the goal rates were built)
| Stage | Real Betis λ | Málaga λ |
|---|
| FBref Squad Prior E[λ] (weight 0.228) | 0.326 | 0.328 |
| Pre-mismatch | 1.841 | 0.708 |
| Pre-calibration (Micro-duels) | 1.815 | 0.718 |
| Final λ | 2.153 | 0.831 |
competition calibration scale 1.171competition observed total goals 2.984quality gap applied Truemismatch score pressure applied Truecompetitive underdog floor applied Falsestage discount 1.0
Scoreline distribution & markets
| Top 5 scorelines | P |
|---|
| 2-0 | 11.7% |
| 1-0 | 10.8% |
| 2-1 | 9.7% |
| 1-1 | 9.1% |
| 3-0 | 8.4% |
| Home win | 67.7% |
| Draw | 19.1% |
| Away win | 13.2% |
| Over 2.5 | 57.3% |
| BTTS yes | 49.9% |
Pregame fair line — favorite Real Betis (67.7%), fair total 2.98, fair spread 1.32
Projected players vs season baseline
Proj = projected for this match · Season = this season's per-game average from match data · deviation badge compares projected xG to the player's season xG/game.
Real Betis — projected line vs season baseline (4-2-3-1)
| Player | Pos | Min | Proj G | Proj xG | Season xG/g | | Proj Sh | Season Sh/g | Proj Rtg | Season Rtg | Rec | Model / FBref Prior |
|---|
| Fran García | D | 89 | 0 | 0.02 | 0.02 | ok | 0 | 0.2 | 6.7 | 30.8 | 33 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9989, quality 0.485) | market_value_eur=6900000
quality_factor=0.4854
boost_factor=0.9989
reference_quality=0.505
history_matches=21
history_shrink=0.1923 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0200) | blend_weight=0.02
history_matches=21
season_overlap_discount=1.0
per90_to_match_factor=0.9862
prior_reliability=0.16
competition=La Liga | totalCross: 2.6533 -> 2.6906 totalShots: 0.4127 -> 0.4044 wonTackle: 1.6366 -> 1.6285 goalAssist: 0.0268 -> 0.0345 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'David Larrubia', 'matchup_zone': 'Shape fallback'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.15 (squad xG sum 1.3311, xG scale 1.6175, xA scale 1.6175, team xA 1.53 = 0.71 x lambda) | scoreline_reset=true
team_lambda=2.153
squad_xg_sum=1.3311
squad_xa_sum=0.9447
team_expected_assists=1.528
team_xa_to_xg_ratio=0.7097 | expected_goals: 0.0117 -> 0.0189 expected_assists: 0.0498 -> 0.0806 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 16 by projected rating, fifa_overall 77.0) | match_squad_rank=16
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0187
goal_rate=0.0
scorer_weight=0.0153 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0774
assist_rate=0.0345
provider_weight=0.0682 | - |
|
| Marc Roca | M | 86 | 0 | 0.07 | 0.02 | 185% | 1 | 0.5 | 7.0 | 48.9 | 34 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9981, quality 0.452) | market_value_eur=4200000
quality_factor=0.4523
boost_factor=0.9981
reference_quality=0.505
history_matches=36
history_shrink=0.122 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0090) | blend_weight=0.009
history_matches=36
season_overlap_discount=1.0
per90_to_match_factor=0.9509
prior_reliability=0.1133
competition=La Liga | totalShots: 0.5697 -> 0.5794 wonTackle: 0.8805 -> 0.8877 fouls: 1.8208 -> 1.8145 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'David Larrubia, Adrián Niño, Dani Lorenzo', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.15 (squad xG sum 1.3311, xG scale 1.6175, xA scale 1.6175, team xA 1.53 = 0.71 x lambda) | scoreline_reset=true
team_lambda=2.153
squad_xg_sum=1.3311
squad_xa_sum=0.9447
team_expected_assists=1.528
team_xa_to_xg_ratio=0.7097 | expected_goals: 0.0406 -> 0.0657 expected_assists: 0.071 -> 0.1148 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 78.0) | match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0636
goal_rate=0.0439
scorer_weight=0.0681 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1085
assist_rate=0.0636
provider_weight=0.1078 | - |
|
| Pablo Fornals | M | 80 | 0 | 0.12 | 0.06 | 101% | 1 | 0.9 | 7.1 | 59.9 | 34 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0000, quality 0.503) | market_value_eur=8400000
quality_factor=0.5035
boost_factor=1.0
reference_quality=0.505
history_matches=46
history_shrink=0.098 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0093) | blend_weight=0.0093
history_matches=46
season_overlap_discount=1.0
per90_to_match_factor=0.884
prior_reliability=0.1467
competition=La Liga | totalCross: 2.7633 -> 2.775 totalShots: 1.1304 -> 1.1419 interceptionWon: 0.6804 -> 0.6891 wasFouled: 0.8037 -> 0.7962 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Carlos Dotor', 'matchup_zone': 'Midfield lane'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.15 (squad xG sum 1.3311, xG scale 1.6175, xA scale 1.6175, team xA 1.53 = 0.71 x lambda) | scoreline_reset=true
team_lambda=2.153
squad_xg_sum=1.3311
squad_xa_sum=0.9447
team_expected_assists=1.528
team_xa_to_xg_ratio=0.7097 | expected_goals: 0.0744 -> 0.1203 expected_assists: 0.1803 -> 0.2916 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 85.0) | match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.1133
goal_rate=0.0943
scorer_weight=0.1395 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.2529
assist_rate=0.1056
provider_weight=0.2333 | - |
|
| Antony | F | 77 | 0 | 0.30 | 0.20 | 48% | 3 | 2.7 | 7.1 | 58.7 | 41 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0084, quality 0.764) | market_value_eur=37000000
quality_factor=0.7641
boost_factor=1.0084
reference_quality=0.505
history_matches=41
history_shrink=0.1087 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0141) | blend_weight=0.0141
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=0.8556
prior_reliability=0.2
competition=La Liga | totalShots: 2.4151 -> 2.4414 totalCross: 1.5948 -> 1.6085 onTargetScoringAttempt: 0.9028 -> 0.9102 wasFouled: 1.2882 -> 1.2942 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Einar Galilea, Fernando Calero', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.305, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.1544, 'skill_edge': 0.147, 'height_edge': -0.042, 'attacker_skill': 0.7641, 'defender_skill': 0.4374, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Einar Galilea', 'market_value': 365000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'Fernando Calero', 'market_value': 2100000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.1875} | totalShots: 2.4414 -> 2.8184 shotOffTarget: 1.5123 -> 1.7458 onTargetScoringAttempt: 0.9102 -> 1.0507 bigChanceMissed: 0.3415 -> 0.3942 expectedGoalsOnTarget: 0.2475 -> 0.2857 goals: 0.2053 -> 0.237 expectedGoals: 0.1624 -> 0.1875 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.15 (squad xG sum 1.3311, xG scale 1.6175, xA scale 1.6175, team xA 1.53 = 0.71 x lambda) | scoreline_reset=true
team_lambda=2.153
squad_xg_sum=1.3311
squad_xa_sum=0.9447
team_expected_assists=1.528
team_xa_to_xg_ratio=0.7097 | expected_goals: 0.1875 -> 0.3033 expected_assists: 0.1197 -> 0.1936 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 81.0) | match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.2616
goal_rate=0.237
scorer_weight=0.3665 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.176
assist_rate=0.0446
provider_weight=0.1549 | - |
|
| Isco | M | 68 | 0 | 0.26 | 0.18 | 42% | 2 | 1.1 | 7.1 | 55.1 | 20 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9959, quality 0.445) | market_value_eur=3600000
quality_factor=0.4449
boost_factor=0.9959
reference_quality=0.505
history_matches=17
history_shrink=0.2273 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0128) | blend_weight=0.0128
history_matches=17
season_overlap_discount=1.0
per90_to_match_factor=0.7599
prior_reliability=0.0867
competition=La Liga | fouls: 0.5226 -> 0.5459 totalCross: 2.8878 -> 2.9032 onTargetScoringAttempt: 0.5218 -> 0.5368 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Einar Galilea', 'matchup_zone': 'LW vs CB', 'duel_win_rate': 0.399, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9696, 'skill_edge': 0.0034, 'height_edge': -0.024, 'attacker_skill': 0.4449, 'defender_skill': 0.4374, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Einar Galilea', 'market_value': 365000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.1619} | aerialWon: 0.0 -> 0.9 totalShots: 1.6959 -> 1.6444 shotOffTarget: 1.1591 -> 1.1239 onTargetScoringAttempt: 0.5368 -> 0.5205 expectedGoalsOnTarget: 0.4394 -> 0.426 bigChanceMissed: 0.1956 -> 0.1897 expectedGoals: 0.167 -> 0.1619 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.15 (squad xG sum 1.3311, xG scale 1.6175, xA scale 1.6175, team xA 1.53 = 0.71 x lambda) | scoreline_reset=true
team_lambda=2.153
squad_xg_sum=1.3311
squad_xa_sum=0.9447
team_expected_assists=1.528
team_xa_to_xg_ratio=0.7097 | expected_goals: 0.1619 -> 0.2619 expected_assists: 0.1602 -> 0.2591 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 83.0) | match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.2304
goal_rate=0.1473
scorer_weight=0.2439 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.2283
assist_rate=0.1198
provider_weight=0.2093 | - |
|
| Abdessamad Ezzalzouli | F | 84 | 1 | 0.61 | 0.24 | 154% | 3 | 1.9 | 7.2 | 61.7 | 32 | XGBoost F_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0106, quality 0.796) | market_value_eur=43000000
quality_factor=0.7957
boost_factor=1.0106
reference_quality=0.505
history_matches=36
history_shrink=0.122 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Einar Galilea, Fernando Calero', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.339, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.2046, 'skill_edge': 0.1612, 'height_edge': -0.022, 'attacker_skill': 0.7957, 'defender_skill': 0.4374, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Einar Galilea', 'market_value': 365000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'Fernando Calero', 'market_value': 2100000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.3778} | totalShots: 2.2172 -> 2.6708 onTargetScoringAttempt: 1.1331 -> 1.3649 shotOffTarget: 1.0841 -> 1.3059 expectedGoalsOnTarget: 0.4353 -> 0.5244 goals: 0.3357 -> 0.4044 expectedGoals: 0.3136 -> 0.3778 bigChanceMissed: 0.1607 -> 0.1936 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.15 (squad xG sum 1.3311, xG scale 1.6175, xA scale 1.6175, team xA 1.53 = 0.71 x lambda) | scoreline_reset=true
team_lambda=2.153
squad_xg_sum=1.3311
squad_xa_sum=0.9447
team_expected_assists=1.528
team_xa_to_xg_ratio=0.7097 | expected_goals: 0.3778 -> 0.6112 expected_assists: 0.1931 -> 0.3125 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 86.0) | match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=1
goal_probability=0.4573
goal_rate=0.4044
scorer_weight=0.6492 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=1
assist_probability=0.2684
assist_rate=0.0952
provider_weight=0.25 | - |
|
| Troy Parrott | F | 73 | 1 | 0.44 | 0.14 | 214% | 2 | 0.7 | 6.7 | 38.2 | 12 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0138, quality 0.615) | market_value_eur=18400000
quality_factor=0.615
boost_factor=1.0138
reference_quality=0.505
history_matches=7
history_shrink=0.4167 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0144) | blend_weight=0.0144
history_matches=7
season_overlap_discount=1.0
per90_to_match_factor=0.8061
prior_reliability=0.0533
competition=La Liga | wonTackle: 0.2831 -> 0.3227 totalShots: 1.5424 -> 1.5614 fouls: 0.0994 -> 0.1125 totalOffside: 0.0994 -> 0.1125 onTargetScoringAttempt: 0.6424 -> 0.6331 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Einar Galilea, Fernando Calero', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.29, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.1322, 'skill_edge': 0.0799, 'height_edge': 0.01, 'attacker_skill': 0.615, 'defender_skill': 0.4374, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Einar Galilea', 'market_value': 365000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'Fernando Calero', 'market_value': 2100000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.2727} | totalShots: 1.5614 -> 1.7678 shotOffTarget: 0.9 -> 1.019 onTargetScoringAttempt: 0.6331 -> 0.7168 bigChanceMissed: 0.4849 -> 0.549 goals: 0.2582 -> 0.2923 expectedGoals: 0.2409 -> 0.2727 expectedGoalsOnTarget: 0.0973 -> 0.1102 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.15 (squad xG sum 1.3311, xG scale 1.6175, xA scale 1.6175, team xA 1.53 = 0.71 x lambda) | scoreline_reset=true
team_lambda=2.153
squad_xg_sum=1.3311
squad_xa_sum=0.9447
team_expected_assists=1.528
team_xa_to_xg_ratio=0.7097 | expected_goals: 0.2727 -> 0.4411 expected_assists: 0.0588 -> 0.0951 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 17 by projected rating, fifa_overall 78.0) | match_squad_rank=17
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=1
goal_probability=0.3567
goal_rate=0.2923
scorer_weight=0.4679 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0907
assist_rate=0.1355
provider_weight=0.1189 | - |
|
| Natan | D | 89 | 0 | 0.12 | 0.02 | 404% | 1 | 0.2 | 6.9 | 49.5 | 33 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0074, quality 0.732) | market_value_eur=32000000
quality_factor=0.732
boost_factor=1.0074
reference_quality=0.505
history_matches=41
history_shrink=0.1087 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0094) | blend_weight=0.0094
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=0.9917
prior_reliability=0.1333
competition=La Liga | wonTackle: 0.709 -> 0.721 interceptionWon: 0.8995 -> 0.891 wasFouled: 0.6377 -> 0.6317 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'David Larrubia', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.15 (squad xG sum 1.3311, xG scale 1.6175, xA scale 1.6175, team xA 1.53 = 0.71 x lambda) | scoreline_reset=true
team_lambda=2.153
squad_xg_sum=1.3311
squad_xa_sum=0.9447
team_expected_assists=1.528
team_xa_to_xg_ratio=0.7097 | expected_goals: 0.0729 -> 0.1179 expected_assists: 0.0115 -> 0.0186 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 79.0) | match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.1112
goal_rate=0.0786
scorer_weight=0.1234 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0184
assist_rate=0.0
provider_weight=0.0151 | - |
|
| Diego Llorente | D | 81 | 0 | 0.02 | 0.01 | 107% | 0 | 0.1 | 6.8 | 49.8 | 28 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9964, quality 0.437) | market_value_eur=2600000
quality_factor=0.4374
boost_factor=0.9964
reference_quality=0.505
history_matches=23
history_shrink=0.1786 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0077) | blend_weight=0.0077
history_matches=23
season_overlap_discount=1.0
per90_to_match_factor=0.8962
prior_reliability=0.0667
competition=La Liga | interceptionWon: 1.1667 -> 1.1924 wonTackle: 0.7537 -> 0.7479 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=true | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Adrián Niño', 'matchup_zone': 'Shape fallback'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.15 (squad xG sum 1.3311, xG scale 1.6175, xA scale 1.6175, team xA 1.53 = 0.71 x lambda) | scoreline_reset=true
team_lambda=2.153
squad_xg_sum=1.3311
squad_xa_sum=0.9447
team_expected_assists=1.528
team_xa_to_xg_ratio=0.7097 | expected_goals: 0.0135 -> 0.0218 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 79.0) | match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0216
goal_rate=0.0
scorer_weight=0.0174 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0055
assist_rate=0.0
provider_weight=0.0051 | - |
|
| Angel Ortiz | D | 73 | 0 | 0.02 | 0.00 | 419% | 0 | 0.1 | 6.8 | 29.8 | 25 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9984, quality 0.482) | market_value_eur=6600000
quality_factor=0.4818
boost_factor=0.9984
reference_quality=0.505
history_matches=17
history_shrink=0.2273 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0079) | blend_weight=0.0079
history_matches=17
season_overlap_discount=1.0
per90_to_match_factor=0.8158
prior_reliability=0.0533
competition=La Liga | totalCross: 1.9026 -> 1.8876 interceptionWon: 0.8756 -> 0.8687 wasFouled: 0.6816 -> 0.6762 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Ramón Enríquez', 'matchup_zone': 'Left Wingback vs Right Back — Overlapping Run'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.15 (squad xG sum 1.3311, xG scale 1.6175, xA scale 1.6175, team xA 1.53 = 0.71 x lambda) | scoreline_reset=true
team_lambda=2.153
squad_xg_sum=1.3311
squad_xa_sum=0.9447
team_expected_assists=1.528
team_xa_to_xg_ratio=0.7097 | expected_goals: 0.0099 -> 0.016 expected_assists: 0.0553 -> 0.0894 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 70.0) | match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0159
goal_rate=0.0
scorer_weight=0.0134 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0855
assist_rate=0.0
provider_weight=0.0715 | - |
|
| Álvaro Valles | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 7.1 | 61.1 | 34 | FBref Prior G_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost G_service raw output over 3 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0003, quality 0.514) | market_value_eur=9300000
quality_factor=0.5142
boost_factor=1.0003
reference_quality=0.505
history_matches=38
history_shrink=0.1163 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0151) | blend_weight=0.0151
history_matches=38
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.2
competition=La Liga | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Adrián Niño, David Larrubia', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 0.7182} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.15 (squad xG sum 1.3311, xG scale 1.6175, xA scale 1.6175, team xA 1.53 = 0.71 x lambda) | scoreline_reset=true
team_lambda=2.153
squad_xg_sum=1.3311
squad_xa_sum=0.9447
team_expected_assists=1.528
team_xa_to_xg_ratio=0.7097 | shots_faced: 6.8 -> 7.9 expected_saves: 1.66 -> 1.93 high_pressure_saves: 0.57 -> 0.66 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 77.0) | match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=2.2809 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0
provider_weight=0.0
squad_weight_total=1.2992 | - |
|
| Team totals | 2 | 2.15 | | 15 | | 7.0 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Diego Conde | G | 4.4m | 10.9% | Market-value substitute prior |
| Valentín Gómez | D | 14.0m | 22.5% | Market-value substitute prior |
| Aitor Ruibal | D | 13.6m | 30.1% | Market-value substitute prior |
| Sergi Altimira | M | 22.7m | 53.2% | Market-value substitute prior |
| Nelson Deossa | M | 19.9m | 57.0% | Market-value substitute prior |
| Cucho Hernández | F | 25.9m | 58.7% | Market-value substitute prior |
Málaga — projected line vs season baseline (3-4-2-1)
| Player | Pos | Min | Proj G | Proj xG | Season xG/g | | Proj Sh | Season Sh/g | Proj Rtg | Season Rtg | Rec | Model / FBref Prior |
|---|
| Alfonso Herrero | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 7.0 | 54.4 | 13 | FBref Prior G_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost G_service raw output over 3 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9932, quality 0.437) | market_value_eur=420000
quality_factor=0.4374
boost_factor=0.9932
reference_quality=0.505
history_matches=10
history_shrink=0.3333 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0433) | blend_weight=0.0433
history_matches=10
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.2
competition=La Liga | saves: 2.8871 -> 2.9353 wasFouled: 0.1963 -> 0.1878 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Abdessamad Ezzalzouli, Troy Parrott', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.8149} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.83 (squad xG sum 0.7402, xG scale 1.1227, xA scale 1.1227, team xA 0.66 = 0.79 x lambda) | scoreline_reset=true
team_lambda=0.831
squad_xg_sum=0.7402
squad_xa_sum=0.5844
team_expected_assists=0.6561
team_xa_to_xg_ratio=0.7895 | shots_faced: 17.2 -> 20.5 expected_saves: 4.21 -> 5.02 high_pressure_saves: 1.45 -> 1.72 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 75.0) | match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=0.8662 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0
provider_weight=0.0
squad_weight_total=0.5932 | - |
|
| Einar Galilea | D | 82 | 0 | 0.00 | - | n/a | 0 | 0.0 | 6.9 | 36.5 | 13 | XGBoost D_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9916, quality 0.437) | market_value_eur=365000
quality_factor=0.4374
boost_factor=0.9916
reference_quality=0.505
history_matches=7
history_shrink=0.4167 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Isco', 'matchup_zone': 'LW vs CB'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.83 (squad xG sum 0.7402, xG scale 1.1227, xA scale 1.1227, team xA 0.66 = 0.79 x lambda) | scoreline_reset=true
team_lambda=0.831
squad_xg_sum=0.7402
squad_xa_sum=0.5844
team_expected_assists=0.6561
team_xa_to_xg_ratio=0.7895 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 69.0) | match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0
goal_rate=0.0
scorer_weight=0.001 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0063
assist_rate=0.0
provider_weight=0.0057 | - |
|
| Fernando Calero | D | 85 | 0 | 0.04 | 0.02 | 67% | 0 | 0.3 | 6.8 | 49.8 | 23 | XGBoost D_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9971, quality 0.437) | market_value_eur=2100000
quality_factor=0.4374
boost_factor=0.9971
reference_quality=0.505
history_matches=30
history_shrink=0.1429 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Abdessamad Ezzalzouli', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.83 (squad xG sum 0.7402, xG scale 1.1227, xA scale 1.1227, team xA 0.66 = 0.79 x lambda) | scoreline_reset=true
team_lambda=0.831
squad_xg_sum=0.7402
squad_xa_sum=0.5844
team_expected_assists=0.6561
team_xa_to_xg_ratio=0.7895 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 81.0) | match_squad_rank=11
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0385
goal_rate=0.0
scorer_weight=0.0314 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0131
assist_rate=0.0
provider_weight=0.0107 | - |
|
| Carlos Puga | D | 77 | 0 | 0.00 | 0.00 | 76% | 0 | 0.1 | 6.8 | 48.0 | 13 | XGBoost D_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9928, quality 0.437) | market_value_eur=1000000
quality_factor=0.4374
boost_factor=0.9928
reference_quality=0.505
history_matches=9
history_shrink=0.3571 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Abdessamad Ezzalzouli', 'matchup_zone': 'Shape fallback'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.83 (squad xG sum 0.7402, xG scale 1.1227, xA scale 1.1227, team xA 0.66 = 0.79 x lambda) | scoreline_reset=true
team_lambda=0.831
squad_xg_sum=0.7402
squad_xa_sum=0.5844
team_expected_assists=0.6561
team_xa_to_xg_ratio=0.7895 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 78.0) | match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0021
goal_rate=0.0
scorer_weight=0.002 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0309
assist_rate=0.0
provider_weight=0.0251 | - |
|
| Carlos Dotor | M | 80 | 0 | 0.07 | 0.04 | 58% | 1 | 0.5 | 6.9 | 52.8 | 13 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9928, quality 0.437) | market_value_eur=1200000
quality_factor=0.4374
boost_factor=0.9928
reference_quality=0.505
history_matches=9
history_shrink=0.3571 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0387) | blend_weight=0.0387
history_matches=9
season_overlap_discount=1.0
per90_to_match_factor=0.8833
prior_reliability=0.1667
competition=La Liga | fouls: 1.3689 -> 1.3296 wasFouled: 0.8002 -> 0.7692 wonTackle: 1.3961 -> 1.4241 totalShots: 0.8266 -> 0.8079 totalCross: 0.4866 -> 0.4951 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Marc Roca', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.423, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9606, 'skill_edge': -0.0108, 'height_edge': -0.016, 'attacker_skill': 0.4374, 'defender_skill': 0.4615, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Marc Roca', 'market_value': 4200000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4615}], 'xg_override': 0.0618} | aerialWon: 0.2137 -> 1.1 totalShots: 0.8298 -> 0.7971 shotOffTarget: 0.5637 -> 0.5415 onTargetScoringAttempt: 0.2661 -> 0.2556 expectedGoalsOnTarget: 0.1542 -> 0.1481 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.83 (squad xG sum 0.7402, xG scale 1.1227, xA scale 1.1227, team xA 0.66 = 0.79 x lambda) | scoreline_reset=true
team_lambda=0.831
squad_xg_sum=0.7402
squad_xa_sum=0.5844
team_expected_assists=0.6561
team_xa_to_xg_ratio=0.7895 | expected_goals: 0.0618 -> 0.0694 expected_assists: 0.0623 -> 0.0699 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 85.0) | match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.067
goal_rate=0.0702
scorer_weight=0.0746 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0675
assist_rate=0.0594
provider_weight=0.0681 | - |
|
| Ramón Enríquez | M | 80 | 0 | 0.04 | - | n/a | 0 | 0.0 | 6.9 | 41.9 | 13 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9928, quality 0.437) | market_value_eur=380000
quality_factor=0.4374
boost_factor=0.9928
reference_quality=0.505
history_matches=9
history_shrink=0.3571 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0031) | blend_weight=0.0031
history_matches=9
season_overlap_discount=1.0
per90_to_match_factor=0.8889
prior_reliability=0.0133
competition=La Liga | fouls: 0.1719 -> 0.1851 wasFouled: 1.2587 -> 1.2685 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Angel Ortiz', 'matchup_zone': 'Left Wingback vs Right Back — Overlapping Run', 'duel_win_rate': 0.389, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9835, 'skill_edge': -0.0352, 'height_edge': 0.024, 'attacker_skill': 0.4374, 'defender_skill': 0.5157, 'attacker_role': 'LWB', 'attacker_mv_price_index': 0.7, 'defender_adjusted_parts': [{'player': 'Angel Ortiz', 'market_value': 6600000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.5157}], 'xg_override': 0.0349} | aerialWon: 0.1938 -> 0.9 totalShots: 0.4079 -> 0.4012 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.83 (squad xG sum 0.7402, xG scale 1.1227, xA scale 1.1227, team xA 0.66 = 0.79 x lambda) | scoreline_reset=true
team_lambda=0.831
squad_xg_sum=0.7402
squad_xa_sum=0.5844
team_expected_assists=0.6561
team_xa_to_xg_ratio=0.7895 | expected_assists: 0.0431 -> 0.0484 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 65.0) | match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0384
goal_rate=0.0595
scorer_weight=0.049 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0472
assist_rate=0.0679
provider_weight=0.0605 | - |
|
| Adam Aznou | D | 83 | 0 | 0.07 | 0.01 | 407% | 1 | 0.1 | 6.7 | 18.0 | 14 | XGBoost D_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9947, quality 0.477) | market_value_eur=6200000
quality_factor=0.4769
boost_factor=0.9947
reference_quality=0.505
history_matches=3
history_shrink=0.625 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Troy Parrott', 'matchup_zone': 'Shape fallback'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.83 (squad xG sum 0.7402, xG scale 1.1227, xA scale 1.1227, team xA 0.66 = 0.79 x lambda) | scoreline_reset=true
team_lambda=0.831
squad_xg_sum=0.7402
squad_xa_sum=0.5844
team_expected_assists=0.6561
team_xa_to_xg_ratio=0.7895 | expected_goals: 0.0636 -> 0.0714 expected_assists: 0.0622 -> 0.0698 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 15 by projected rating, fifa_overall 67.0) | match_squad_rank=15
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0689
goal_rate=0.0
scorer_weight=0.0571 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0674
assist_rate=0.0
provider_weight=0.0558 | - |
|
| David Larrubia | F | 85 | 0 | 0.08 | 0.05 | 70% | 1 | 1.1 | 7.0 | 51.0 | 21 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9973, quality 0.478) | market_value_eur=6300000
quality_factor=0.4781
boost_factor=0.9973
reference_quality=0.505
history_matches=10
history_shrink=0.3333 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0347) | blend_weight=0.0347
history_matches=10
season_overlap_discount=1.0
per90_to_match_factor=0.9467
prior_reliability=0.16
competition=La Liga | totalCross: 1.5693 -> 1.5149 totalShots: 1.2176 -> 1.2715 wonTackle: 1.8489 -> 1.8805 onTargetScoringAttempt: 0.4049 -> 0.4184 totalOffside: 0.0624 -> 0.0739 fouls: 0.7026 -> 0.6919 interceptionWon: 0.5347 -> 0.5435 wasFouled: 1.039 -> 1.0303 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Marc Roca, Natan', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 0.8187, 'skill_edge': -0.0674, 'height_edge': -0.056, 'attacker_skill': 0.4781, 'defender_skill': 0.6278, 'attacker_role': 'SS', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Marc Roca', 'market_value': 4200000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4615}, {'player': 'Natan', 'market_value': 32000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7941}], 'xg_override': 0.0726} | totalShots: 1.2715 -> 1.041 shotOffTarget: 0.8127 -> 0.6654 onTargetScoringAttempt: 0.4184 -> 0.3425 goals: 0.1101 -> 0.0901 expectedGoals: 0.0887 -> 0.0726 expectedGoalsOnTarget: 0.0425 -> 0.0348 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.83 (squad xG sum 0.7402, xG scale 1.1227, xA scale 1.1227, team xA 0.66 = 0.79 x lambda) | scoreline_reset=true
team_lambda=0.831
squad_xg_sum=0.7402
squad_xa_sum=0.5844
team_expected_assists=0.6561
team_xa_to_xg_ratio=0.7895 | expected_goals: 0.0726 -> 0.0815 expected_assists: 0.1934 -> 0.2174 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 81.0) | match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0783
goal_rate=0.0901
scorer_weight=0.0931 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.1954
assist_rate=0.0
provider_weight=0.1739 | - |
|
| Dani Lorenzo | M | 81 | 0 | 0.05 | 0.02 | 119% | 1 | 0.2 | 6.9 | 51.6 | 12 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9928, quality 0.437) | market_value_eur=2300000
quality_factor=0.4374
boost_factor=0.9928
reference_quality=0.505
history_matches=9
history_shrink=0.3571 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0279) | blend_weight=0.0279
history_matches=9
season_overlap_discount=1.0
per90_to_match_factor=0.8971
prior_reliability=0.12
competition=La Liga | fouls: 1.3615 -> 1.3236 wonTackle: 1.73 -> 1.6957 totalShots: 0.6176 -> 0.6004 interceptionWon: 0.4863 -> 0.5005 totalCross: 0.3776 -> 0.3671 onTargetScoringAttempt: 0.21 -> 0.2041 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Marc Roca', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.407, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9371, 'skill_edge': -0.0108, 'height_edge': -0.032, 'attacker_skill': 0.4374, 'defender_skill': 0.4615, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Marc Roca', 'market_value': 4200000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4615}], 'xg_override': 0.043} | aerialWon: 0.1863 -> 0.9 totalShots: 0.6117 -> 0.5733 shotOffTarget: 0.4076 -> 0.382 onTargetScoringAttempt: 0.2041 -> 0.1913 bigChanceMissed: 0.1361 -> 0.1275 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.83 (squad xG sum 0.7402, xG scale 1.1227, xA scale 1.1227, team xA 0.66 = 0.79 x lambda) | scoreline_reset=true
team_lambda=0.831
squad_xg_sum=0.7402
squad_xa_sum=0.5844
team_expected_assists=0.6561
team_xa_to_xg_ratio=0.7895 | expected_goals: 0.043 -> 0.0483 expected_assists: 0.0582 -> 0.0653 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 72.0) | match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0472
goal_rate=0.0516
scorer_weight=0.0528 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0632
assist_rate=0.0647
provider_weight=0.0692 | - |
|
| Adrián Niño | F | 80 | 0 | 0.30 | 0.11 | 182% | 2 | 1.2 | 6.8 | 48.3 | 9 | XGBoost F_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9908, quality 0.437) | market_value_eur=1900000
quality_factor=0.4374
boost_factor=0.9908
reference_quality=0.505
history_matches=6
history_shrink=0.4545 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Marc Roca, Natan', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle', 'duel_win_rate': 0.184, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 0.8741, 'skill_edge': -0.0857, 'height_edge': 0.0, 'attacker_skill': 0.4374, 'defender_skill': 0.6278, 'attacker_role': 'SS', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Marc Roca', 'market_value': 4200000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4615}, {'player': 'Natan', 'market_value': 32000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7941}], 'xg_override': 0.2684} | totalShots: 2.3916 -> 2.0905 shotOffTarget: 1.4548 -> 1.2716 onTargetScoringAttempt: 0.9368 -> 0.8189 expectedGoalsOnTarget: 0.4226 -> 0.3694 goals: 0.3289 -> 0.2875 expectedGoals: 0.3071 -> 0.2684 bigChanceMissed: 0.238 -> 0.208 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.83 (squad xG sum 0.7402, xG scale 1.1227, xA scale 1.1227, team xA 0.66 = 0.79 x lambda) | scoreline_reset=true
team_lambda=0.831
squad_xg_sum=0.7402
squad_xa_sum=0.5844
team_expected_assists=0.6561
team_xa_to_xg_ratio=0.7895 | expected_goals: 0.2684 -> 0.3014 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 72.0) | match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.2602
goal_rate=0.2875
scorer_weight=0.3195 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0424
assist_rate=0.0
provider_weight=0.0346 | - |
|
| Rafa Garrido | D | 88 | 0 | 0.01 | 0.00 | 78% | 0 | 0.2 | 6.8 | 51.2 | 13 | XGBoost D_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9932, quality 0.437) | market_value_eur=1400000
quality_factor=0.4374
boost_factor=0.9932
reference_quality=0.505
history_matches=10
history_shrink=0.3333 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Antony', 'matchup_zone': 'Shape fallback'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.83 (squad xG sum 0.7402, xG scale 1.1227, xA scale 1.1227, team xA 0.66 = 0.79 x lambda) | scoreline_reset=true
team_lambda=0.831
squad_xg_sum=0.7402
squad_xa_sum=0.5844
team_expected_assists=0.6561
team_xa_to_xg_ratio=0.7895 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 79.0) | match_squad_rank=12
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0083
goal_rate=0.0
scorer_weight=0.0072 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0267
assist_rate=0.14
provider_weight=0.0339 | - |
|
| Team totals | 0 | 0.83 | | 9 | | 6.9 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Carlos Lopez | G | 4.4m | 10.9% | Market-value substitute prior |
| Jose Salinas | D | 13.6m | 29.9% | Market-value substitute prior |
| Diego Murillo | D | 13.6m | 29.9% | Market-value substitute prior |
| Jens-Lys Cajuste | M | 22.1m | 50.7% | Market-value substitute prior |
| Izan Merino | M | 22.1m | 50.3% | Market-value substitute prior |
| Chupete | F | 25.7m | 57.6% | Market-value substitute prior |
Antagonist / tactical summary
Midfield is evenly contested — Pablo Fornals vs Dani Lorenzo will be the pivotal duel. Total antagonist xG — Home: 1.00, Away: 0.48. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Shadow Striker vs CDM + CB — Zone 14 Battle.
Midfield — possession 50.4% / 49.6%, dominance ratio 0.52, key duel: Pablo Fornals vs Dani Lorenzo
Isco xG 0.16Abdessamad Ezzalzouli xG 0.38Antony xG 0.19David Larrubia xG 0.07Adrián Niño xG 0.27Ramón Enríquez xG 0.03
Summary
Antagonist matchup analysis for Real Betis vs Málaga. Most likely scoreline: 2-0. Lambdas derived from 4 home and 5 away individual player duels. Head-to-head: Real Betis 6W-0D-4L vs Málaga over 10 meetings.
Tactical parity between 4-2-3-1 and 3-4-2-1. Match outcome driven primarily by individual player quality. Midfield is evenly contested — Pablo Fornals vs Dani Lorenzo will be the pivotal duel. Total antagonist xG — Home: 1.00, Away: 0.48. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Shadow Striker vs CDM + CB — Zone 14 Battle.
Chelsea vs Man Utd
Premier League · 20261031 · 4-2-3-1 vs 4-2-3-1
Predicted 2-1Winner: ChelseaWinning H 2-1 (9.0%)Winning A 1-2 (7.7%)Confidence 0.71λ home/away 1.66 / 1.42Most-likely P 9.0%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset TracingAntagonist + XGBoost match analysis for Chelsea vs Man Utd. Player statistics regressed using position-specific XGBoost models (G, D, M, F) with 2026-2027 FBref priors. Micro-duels resolved across 4-2-3-1 vs 4-2-3-1 (duel lambdas: Home 1.810, Away 1.692). Final calibrated Poisson lambdas: Home 1.661, Away 1.422 (most likely score 2-1).
Home Starters 11/11 XGBoost (7 FBref) Away Starters 11/11 XGBoost (8 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.81 / 1.69 Final λ (H/A) 1.66 / 1.42
FBref Team Priors: Chelsea (Gls/90: 3.5, GA/90: 3.5 → E[λ]: 3.5) vs Manchester United (Gls/90: 2.0, GA/90: 2.5 → E[λ]: 3.5) | Blend Weight: 0.192
Modeling Pipeline Stages (5 layers)
- 1. XGBoost player regressions for volume & event rates with market-value quality scaling
- 2. Multi-source prior blending (FBref 2026-2027 tables + Sofascore season history)
- 3. Antagonist formation duel matrix resolving 1v1 and zonal matchups
- 4. Team-level prior calibration (FBref possession and attack/defense efficiencies)
- 5. Bivariate Poisson matrix with Dixon-Coles low-score correction
Standing & form context
| Metric | Chelsea | Man Utd |
|---|
| League position | 5.00 | 16.00 |
| Points per game | 1.51 | 1.08 |
| Attack index | 1.21 | 0.96 |
| Defense (concede) index | 1.07 | 1.14 |
| Form multiplier | 1.02 | 0.98 |
| Standing λ multiplier | 1.12 | 1.03 |
Lambda decomposition (how the goal rates were built)
| Stage | Chelsea λ | Man Utd λ |
|---|
| FBref Squad Prior E[λ] (weight 0.192) | 3.500 | 3.500 |
| Pre-competitive-floor | 1.963 | 1.664 |
| Pre-calibration (Micro-duels) | 1.810 | 1.692 |
| Final λ | 1.661 | 1.422 |
competition calibration scale 0.85competition observed total goals 2.781quality gap applied Falsemismatch score pressure applied Falsecompetitive underdog floor applied Falsestage discount 1.0
Scoreline distribution & markets
| Top 5 scorelines | P |
|---|
| 1-1 | 10.9% |
| 2-1 | 9.0% |
| 1-2 | 7.7% |
| 1-0 | 7.5% |
| 0-1 | 6.4% |
| Home win | 43.2% |
| Draw | 23.9% |
| Away win | 32.9% |
| Over 2.5 | 59.5% |
| BTTS yes | 61.5% |
Pregame fair line — favorite Chelsea (43.2%), fair total 3.08, fair spread 0.24
Projected players vs season baseline
Proj = projected for this match · Season = this season's per-game average from match data · deviation badge compares projected xG to the player's season xG/game.
Chelsea — projected line vs season baseline (4-2-3-1)
| Player | Pos | Min | Proj G | Proj xG | Season xG/g | | Proj Sh | Season Sh/g | Proj Rtg | Season Rtg | Rec | Model / FBref Prior |
|---|
| Mike Penders | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 6.8 | 9.1 | 14 | FBref Prior G_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost G_service raw output over 3 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0350, quality 0.669) | market_value_eur=24000000
quality_factor=0.6685
boost_factor=1.035
reference_quality=0.505
history_matches=2
history_shrink=0.7143 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Bryan Mbeumo, Bruno Fernandes', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.6917} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.66 (squad xG sum 0.8758, xG scale 1.8965, xA scale 1.8965, team xA 1.28 = 0.77 x lambda) | scoreline_reset=true
team_lambda=1.661
squad_xg_sum=0.8758
squad_xa_sum=0.6759
team_expected_assists=1.2818
team_xa_to_xg_ratio=0.7717 | shots_faced: 16.1 -> 13.5 expected_saves: 3.94 -> 3.3 high_pressure_saves: 1.35 -> 1.14 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 78.0) | match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.766 | - | integer_assist_projection | Team scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=2
assists_allocated=0
assist_probability=0.0
provider_weight=0.0
squad_weight_total=1.3609 | - |
|
| Josh Acheampong | D | 84 | 0 | 0.04 | 0.00 | 5166% | 0 | 0.0 | 6.6 | 35.5 | 31 | XGBoost D_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0106, quality 0.710) | market_value_eur=29000000
quality_factor=0.71
boost_factor=1.0106
reference_quality=0.505
history_matches=24
history_shrink=0.1724 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Bryan Mbeumo', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.66 (squad xG sum 0.8758, xG scale 1.8965, xA scale 1.8965, team xA 1.28 = 0.77 x lambda) | scoreline_reset=true
team_lambda=1.661
squad_xg_sum=0.8758
squad_xa_sum=0.6759
team_expected_assists=1.2818
team_xa_to_xg_ratio=0.7717 | expected_goals: 0.0196 -> 0.0372 expected_assists: 0.0089 -> 0.0169 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 17 by projected rating, fifa_overall 75.0) | match_squad_rank=17
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0365
goal_rate=0.0348
scorer_weight=0.0453 | - | integer_assist_projection | Team scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=2
assists_allocated=0
assist_probability=0.0168
assist_rate=0.0
provider_weight=0.0143 | - |
|
| Danny Welbeck | F | 75 | 0 | 0.28 | 0.16 | 72% | 1 | 0.9 | 6.6 | 51.7 | 32 | FBref Prior F_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9979, quality 0.439) | market_value_eur=3100000
quality_factor=0.4387
boost_factor=0.9979
reference_quality=0.505
history_matches=43
history_shrink=0.1042 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Ayden Heaven, Leny Yoro', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.7224, 'skill_edge': -0.1709, 'height_edge': -0.018, 'attacker_skill': 0.4387, 'defender_skill': 0.8184, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Ayden Heaven', 'market_value': 32000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7941}, {'player': 'Leny Yoro', 'market_value': 42000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8427}], 'xg_override': 0.1476} | totalShots: 1.2233 -> 0.8837 shotOffTarget: 0.7025 -> 0.5075 onTargetScoringAttempt: 0.5208 -> 0.3762 expectedGoalsOnTarget: 0.3095 -> 0.2236 bigChanceMissed: 0.3011 -> 0.2175 goals: 0.2111 -> 0.1525 expectedGoals: 0.2043 -> 0.1476 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.66 (squad xG sum 0.8758, xG scale 1.8965, xA scale 1.8965, team xA 1.28 = 0.77 x lambda) | scoreline_reset=true
team_lambda=1.661
squad_xg_sum=0.8758
squad_xa_sum=0.6759
team_expected_assists=1.2818
team_xa_to_xg_ratio=0.7717 | expected_goals: 0.1476 -> 0.2799 expected_assists: 0.0387 -> 0.0734 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 15 by projected rating, fifa_overall 80.0) | match_squad_rank=15
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.2441
goal_rate=0.1525
scorer_weight=0.2868 | - | integer_assist_projection | Team scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=2
assists_allocated=0
assist_probability=0.0708
assist_rate=0.0791
provider_weight=0.0918 | - |
|
| Cole Palmer | M | 87 | 1 | 0.40 | 0.31 | 30% | 3 | 2.4 | 7.1 | 59.7 | 35 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0149, quality 0.894) | market_value_eur=101000000
quality_factor=0.8936
boost_factor=1.0149
reference_quality=0.505
history_matches=34
history_shrink=0.1282 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0106) | blend_weight=0.0106
history_matches=34
season_overlap_discount=1.0
per90_to_match_factor=0.9677
prior_reliability=0.1267
competition=Premier League | totalShots: 2.3789 -> 2.4019 goals: 0.2276 -> 0.236 onTargetScoringAttempt: 0.746 -> 0.7542 fouls: 1.1524 -> 1.1456 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Diogo Dalot', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.535, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 1.0805, 'skill_edge': 0.0508, 'height_edge': 0.004, 'attacker_skill': 0.8936, 'defender_skill': 0.7808, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Diogo Dalot', 'market_value': 28000000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.7808}], 'xg_override': 0.2104} | aerialWon: 0.2108 -> 1.2 totalShots: 2.4019 -> 2.5953 shotOffTarget: 1.6329 -> 1.7643 onTargetScoringAttempt: 0.7542 -> 0.8149 goals: 0.236 -> 0.255 expectedGoals: 0.1947 -> 0.2104 expectedGoalsOnTarget: 0.1608 -> 0.1737 bigChanceMissed: 0.1485 -> 0.1605 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.66 (squad xG sum 0.8758, xG scale 1.8965, xA scale 1.8965, team xA 1.28 = 0.77 x lambda) | scoreline_reset=true
team_lambda=1.661
squad_xg_sum=0.8758
squad_xa_sum=0.6759
team_expected_assists=1.2818
team_xa_to_xg_ratio=0.7717 | expected_goals: 0.2104 -> 0.399 expected_assists: 0.1542 -> 0.2925 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 85.0) | match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=1
goal_probability=0.329
goal_rate=0.255
scorer_weight=0.4673 | - | integer_assist_projection | Team scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=2
assists_allocated=1
assist_probability=0.2536
assist_rate=0.1865
provider_weight=0.3388 | - |
|
| Geovany Quenda | F | 77 | 0 | 0.29 | 0.00 | 11448% | 1 | 0.1 | 6.7 | 16.7 | 23 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0499, quality 0.805) | market_value_eur=45000000
quality_factor=0.8047
boost_factor=1.0499
reference_quality=0.505
history_matches=4
history_shrink=0.5556 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0024) | blend_weight=0.0024
history_matches=4
season_overlap_discount=1.0
per90_to_match_factor=0.8592
prior_reliability=0.0067
competition=Premier League | totalOffside: 0.2023 -> 0.2226 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Ayden Heaven, Leny Yoro', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.9027, 'skill_edge': -0.0062, 'height_edge': -0.06, 'attacker_skill': 0.8047, 'defender_skill': 0.8184, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Ayden Heaven', 'market_value': 32000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7941}, {'player': 'Leny Yoro', 'market_value': 42000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8427}], 'xg_override': 0.1525} | totalShots: 1.3809 -> 1.2466 shotOffTarget: 0.8893 -> 0.8028 onTargetScoringAttempt: 0.4916 -> 0.4438 expectedGoals: 0.1689 -> 0.1525 goals: 0.1062 -> 0.0959 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.66 (squad xG sum 0.8758, xG scale 1.8965, xA scale 1.8965, team xA 1.28 = 0.77 x lambda) | scoreline_reset=true
team_lambda=1.661
squad_xg_sum=0.8758
squad_xa_sum=0.6759
team_expected_assists=1.2818
team_xa_to_xg_ratio=0.7717 | expected_goals: 0.1525 -> 0.2892 expected_assists: 0.0388 -> 0.0736 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 76.0) | match_squad_rank=14
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.2511
goal_rate=0.0959
scorer_weight=0.2314 | - | integer_assist_projection | Team scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=2
assists_allocated=0
assist_probability=0.071
assist_rate=0.0
provider_weight=0.0589 | - |
|
| Moisés Caicedo | M | 86 | 0 | 0.07 | 0.03 | 128% | 1 | 0.6 | 7.0 | 55.3 | 28 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0139, quality 0.895) | market_value_eur=104000000
quality_factor=0.8945
boost_factor=1.0139
reference_quality=0.505
history_matches=37
history_shrink=0.119 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0010) | blend_weight=0.001
history_matches=37
season_overlap_discount=1.0
per90_to_match_factor=0.9533
prior_reliability=0.0133
competition=Premier League | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Carlos Baleba', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.426, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 1.0085, 'skill_edge': 0.0098, 'height_edge': -0.004, 'attacker_skill': 0.8978, 'defender_skill': 0.876, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Carlos Baleba', 'market_value': 63000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.876}], 'xg_override': 0.0357} | aerialWon: 0.5487 -> 1.0 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.66 (squad xG sum 0.8758, xG scale 1.8965, xA scale 1.8965, team xA 1.28 = 0.77 x lambda) | scoreline_reset=true
team_lambda=1.661
squad_xg_sum=0.8758
squad_xa_sum=0.6759
team_expected_assists=1.2818
team_xa_to_xg_ratio=0.7717 | expected_goals: 0.0357 -> 0.0677 expected_assists: 0.0401 -> 0.076 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 86.0) | match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0655
goal_rate=0.0418
scorer_weight=0.0725 | - | integer_assist_projection | Team scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=2
assists_allocated=0
assist_probability=0.0732
assist_rate=0.0549
provider_weight=0.0885 | - |
|
| Jordan Henderson | M | 83 | 0 | 0.11 | 0.02 | 459% | 1 | 0.2 | 7.0 | 52.2 | 25 | XGBoost M_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9975, quality 0.437) | market_value_eur=1300000
quality_factor=0.4374
boost_factor=0.9975
reference_quality=0.505
history_matches=36
history_shrink=0.122 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Carlos Baleba', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.239, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.7334, 'skill_edge': -0.1974, 'height_edge': 0.016, 'attacker_skill': 0.4374, 'defender_skill': 0.876, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Carlos Baleba', 'market_value': 63000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.876}], 'xg_override': 0.0571} | aerialWon: 0.6958 -> 1.1 totalShots: 0.9681 -> 0.71 shotOffTarget: 0.6236 -> 0.4573 onTargetScoringAttempt: 0.3444 -> 0.2526 goals: 0.0994 -> 0.0729 expectedGoals: 0.0779 -> 0.0571 expectedGoalsOnTarget: 0.0772 -> 0.0566 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.66 (squad xG sum 0.8758, xG scale 1.8965, xA scale 1.8965, team xA 1.28 = 0.77 x lambda) | scoreline_reset=true
team_lambda=1.661
squad_xg_sum=0.8758
squad_xa_sum=0.6759
team_expected_assists=1.2818
team_xa_to_xg_ratio=0.7717 | expected_goals: 0.0571 -> 0.1083 expected_assists: 0.126 -> 0.239 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 78.0) | match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.1026
goal_rate=0.0729
scorer_weight=0.1243 | - | integer_assist_projection | Team scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=2
assists_allocated=0
assist_probability=0.2126
assist_rate=0.0997
provider_weight=0.2033 | - |
|
| Jorrel Hato | D | 74 | 0 | 0.00 | 0.01 | 64% | 0 | 0.2 | 6.7 | 51.1 | 35 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0140, quality 0.813) | market_value_eur=47000000
quality_factor=0.8129
boost_factor=1.014
reference_quality=0.505
history_matches=28
history_shrink=0.1515 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0112) | blend_weight=0.0112
history_matches=28
season_overlap_discount=1.0
per90_to_match_factor=0.8236
prior_reliability=0.1133
competition=Premier League | wonTackle: 1.2781 -> 1.2692 wasFouled: 0.1883 -> 0.197 fouls: 0.6436 -> 0.6364 interceptionWon: 0.9822 -> 0.9766 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Bryan Mbeumo', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.66 (squad xG sum 0.8758, xG scale 1.8965, xA scale 1.8965, team xA 1.28 = 0.77 x lambda) | scoreline_reset=true
team_lambda=1.661
squad_xg_sum=0.8758
squad_xa_sum=0.6759
team_expected_assists=1.2818
team_xa_to_xg_ratio=0.7717 | expected_assists: 0.0336 -> 0.0637 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 78.0) | match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0034
goal_rate=0.0
scorer_weight=0.0033 | - | integer_assist_projection | Team scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=2
assists_allocated=0
assist_probability=0.0617
assist_rate=0.186
provider_weight=0.0796 | - |
|
| Levi Colwill | D | 89 | 0 | 0.00 | 0.00 | 147% | 0 | 0.1 | 6.8 | 39.2 | 17 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0335, quality 0.840) | market_value_eur=55000000
quality_factor=0.8399
boost_factor=1.0335
reference_quality=0.505
history_matches=10
history_shrink=0.3333 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0260) | blend_weight=0.026
history_matches=10
season_overlap_discount=1.0
per90_to_match_factor=0.9858
prior_reliability=0.12
competition=Premier League | wonTackle: 0.7396 -> 0.7631 fouls: 0.9971 -> 0.9854 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Bryan Mbeumo', 'matchup_zone': 'Shape fallback'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.66 (squad xG sum 0.8758, xG scale 1.8965, xA scale 1.8965, team xA 1.28 = 0.77 x lambda) | scoreline_reset=true
team_lambda=1.661
squad_xg_sum=0.8758
squad_xa_sum=0.6759
team_expected_assists=1.2818
team_xa_to_xg_ratio=0.7717 | expected_assists: 0.0479 -> 0.0908 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 80.0) | match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0019
goal_rate=0.0
scorer_weight=0.0019 | - | integer_assist_projection | Team scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=2
assists_allocated=0
assist_probability=0.0868
assist_rate=0.0
provider_weight=0.0726 | - |
|
| Wesley Fofana | D | 79 | 0 | 0.03 | 0.02 | 82% | 0 | 0.2 | 6.8 | 42.8 | 30 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0103, quality 0.739) | market_value_eur=33000000
quality_factor=0.7389
boost_factor=1.0103
reference_quality=0.505
history_matches=29
history_shrink=0.1471 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0045) | blend_weight=0.0045
history_matches=29
season_overlap_discount=1.0
per90_to_match_factor=0.877
prior_reliability=0.0467
competition=Premier League | fouls: 1.2436 -> 1.238 wasFouled: 1.2027 -> 1.1973 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Bruno Fernandes', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.66 (squad xG sum 0.8758, xG scale 1.8965, xA scale 1.8965, team xA 1.28 = 0.77 x lambda) | scoreline_reset=true
team_lambda=1.661
squad_xg_sum=0.8758
squad_xa_sum=0.6759
team_expected_assists=1.2818
team_xa_to_xg_ratio=0.7717 | expected_goals: 0.0152 -> 0.0288 expected_assists: 0.0126 -> 0.0239 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 79.0) | match_squad_rank=11
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0284
goal_rate=0.0
scorer_weight=0.023 | - | integer_assist_projection | Team scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=2
assists_allocated=0
assist_probability=0.0236
assist_rate=0.0
provider_weight=0.0191 | - |
|
| Pedro Neto | F | 84 | 1 | 0.31 | 0.10 | 228% | 2 | 1.0 | 7.1 | 49.1 | 39 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0109, quality 0.848) | market_value_eur=58000000
quality_factor=0.8478
boost_factor=1.0109
reference_quality=0.505
history_matches=42
history_shrink=0.1064 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0041) | blend_weight=0.0041
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.9307
prior_reliability=0.06
competition=Premier League | onTargetScoringAttempt: 0.7649 -> 0.7702 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Ayden Heaven, Leny Yoro', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.9313, 'skill_edge': 0.0133, 'height_edge': -0.06, 'attacker_skill': 0.8478, 'defender_skill': 0.8184, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Ayden Heaven', 'market_value': 32000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7941}, {'player': 'Leny Yoro', 'market_value': 42000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8427}], 'xg_override': 0.1659} | totalShots: 1.9323 -> 1.7996 shotOffTarget: 1.1621 -> 1.0823 onTargetScoringAttempt: 0.7702 -> 0.7173 expectedGoalsOnTarget: 0.3172 -> 0.2954 goals: 0.2154 -> 0.2006 bigChanceMissed: 0.195 -> 0.1816 expectedGoals: 0.1781 -> 0.1659 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.66 (squad xG sum 0.8758, xG scale 1.8965, xA scale 1.8965, team xA 1.28 = 0.77 x lambda) | scoreline_reset=true
team_lambda=1.661
squad_xg_sum=0.8758
squad_xa_sum=0.6759
team_expected_assists=1.2818
team_xa_to_xg_ratio=0.7717 | expected_goals: 0.1659 -> 0.3146 expected_assists: 0.1417 -> 0.2687 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 81.0) | match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=1
goal_probability=0.2699
goal_rate=0.2006
scorer_weight=0.3652 | - | integer_assist_projection | Team scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=2
assists_allocated=1
assist_probability=0.2356
assist_rate=0.2219
provider_weight=0.3359 | - |
|
| Team totals | 2 | 1.66 | | 10 | | 6.8 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Robert Sánchez | G | 5.2m | 14.7% | Market-value substitute prior |
| Maxence Lacroix | D | 15.2m | 25.1% | Market-value substitute prior |
| Reece James | D | 19.5m | 44.4% | Market-value substitute prior |
| Morgan Rogers | M | 23.8m | 34.4% | Market-value substitute prior |
| Marco Palestra | M | 23.5m | 56.6% | Market-value substitute prior |
| João Pedro | F | 27.1m | 37.1% | Market-value substitute prior |
Man Utd — projected line vs season baseline (4-2-3-1)
| Player | Pos | Min | Proj G | Proj xG | Season xG/g | | Proj Sh | Season Sh/g | Proj Rtg | Season Rtg | Rec | Model / FBref Prior |
|---|
| Bryan Mbeumo | F | 87 | 1 | 0.38 | 0.39 | ok | 2 | 2.1 | 6.9 | 56.3 | 36 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0121, quality 0.875) | market_value_eur=73000000
quality_factor=0.8747
boost_factor=1.0121
reference_quality=0.505
history_matches=41
history_shrink=0.1087 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0094) | blend_weight=0.0094
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=0.9621
prior_reliability=0.1333
competition=Premier League | totalCross: 2.4798 -> 2.5244 totalShots: 2.3954 -> 2.4136 wonTackle: 0.3951 -> 0.4004 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Josh Acheampong, Jorrel Hato', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.9624, 'skill_edge': 0.0264, 'height_edge': -0.052, 'attacker_skill': 0.8747, 'defender_skill': 0.8159, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Josh Acheampong', 'market_value': 29000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7736}, {'player': 'Jorrel Hato', 'market_value': 47000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8582}], 'xg_override': 0.3415} | totalShots: 2.4136 -> 2.3228 shotOffTarget: 1.4701 -> 1.4148 onTargetScoringAttempt: 0.9302 -> 0.8952 bigChanceMissed: 0.6451 -> 0.6208 expectedGoalsOnTarget: 0.4838 -> 0.4656 goals: 0.3744 -> 0.3603 expectedGoals: 0.3548 -> 0.3415 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.42 (squad xG sum 1.2754, xG scale 1.1149, xA scale 1.1149, team xA 1.01 = 0.71 x lambda) | scoreline_reset=true
team_lambda=1.422
squad_xg_sum=1.2754
squad_xa_sum=0.9076
team_expected_assists=1.0119
team_xa_to_xg_ratio=0.7116 | expected_goals: 0.3415 -> 0.3808 expected_assists: 0.113 -> 0.126 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 84.0) | match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.3167
goal_rate=0.3603
scorer_weight=0.3991 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1184
assist_rate=0.0184
provider_weight=0.1008 | - |
|
| Mason Mount | M | 77 | 0 | 0.10 | 0.01 | 795% | 1 | 0.3 | 6.9 | 26.7 | 23 | XGBoost M_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0075, quality 0.660) | market_value_eur=23000000
quality_factor=0.6595
boost_factor=1.0075
reference_quality=0.505
history_matches=26
history_shrink=0.1613 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Moisés Caicedo, Jordan Henderson', 'matchup_zone': 'Attacking Mid vs Double Pivot — Tight Space Battle', 'duel_win_rate': 0.243, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 1.0048, 'skill_edge': 0.0012, 'height_edge': 0.002, 'attacker_skill': 0.6704, 'defender_skill': 0.6676, 'attacker_role': 'CAM', 'attacker_mv_price_index': 0.95, 'defender_adjusted_parts': [{'player': 'Moisés Caicedo', 'market_value': 104000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8978}, {'player': 'Jordan Henderson', 'market_value': 1300000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4374}], 'xg_override': 0.0877} | aerialWon: 0.2664 -> 1.1 totalShots: 1.1627 -> 1.1683 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.42 (squad xG sum 1.2754, xG scale 1.1149, xA scale 1.1149, team xA 1.01 = 0.71 x lambda) | scoreline_reset=true
team_lambda=1.422
squad_xg_sum=1.2754
squad_xa_sum=0.9076
team_expected_assists=1.0119
team_xa_to_xg_ratio=0.7116 | expected_goals: 0.0877 -> 0.0978 expected_assists: 0.1093 -> 0.1219 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 78.0) | match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0932
goal_rate=0.0714
scorer_weight=0.0862 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1148
assist_rate=0.0906
provider_weight=0.1076 | - |
|
| Bruno Fernandes | M | 90 | 0 | 0.23 | 0.20 | ok | 2 | 1.9 | 7.1 | 59.0 | 32 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0072, quality 0.732) | market_value_eur=32000000
quality_factor=0.732
boost_factor=1.0072
reference_quality=0.505
history_matches=42
history_shrink=0.1064 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0092) | blend_weight=0.0092
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.9954
prior_reliability=0.1333
competition=Premier League | totalShots: 2.3028 -> 2.332 onTargetScoringAttempt: 0.6891 -> 0.7011 goals: 0.2898 -> 0.3009 totalCross: 6.2853 -> 6.2916 wasFouled: 0.5979 -> 0.5924 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Wesley Fofana', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.415, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9049, 'skill_edge': -0.0367, 'height_edge': -0.028, 'attacker_skill': 0.732, 'defender_skill': 0.8135, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Wesley Fofana', 'market_value': 33000000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.8135}], 'xg_override': 0.21} | aerialWon: 0.2447 -> 1.0 totalShots: 2.332 -> 2.1102 shotOffTarget: 1.6136 -> 1.4601 onTargetScoringAttempt: 0.7011 -> 0.6344 goals: 0.3009 -> 0.2723 expectedGoals: 0.2321 -> 0.21 expectedGoalsOnTarget: 0.2223 -> 0.2012 bigChanceMissed: 0.1394 -> 0.1261 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.42 (squad xG sum 1.2754, xG scale 1.1149, xA scale 1.1149, team xA 1.01 = 0.71 x lambda) | scoreline_reset=true
team_lambda=1.422
squad_xg_sum=1.2754
squad_xa_sum=0.9076
team_expected_assists=1.0119
team_xa_to_xg_ratio=0.7116 | expected_goals: 0.21 -> 0.2341 expected_assists: 0.1996 -> 0.2225 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 89.0) | match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.2087
goal_rate=0.2723
scorer_weight=0.2902 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=1
assist_probability=0.1995
assist_rate=0.2571
provider_weight=0.2738 | - |
|
| Amad Diallo | F | 79 | 0 | 0.14 | 0.06 | 111% | 2 | 1.0 | 6.9 | 44.2 | 32 | XGBoost F_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0111, quality 0.800) | market_value_eur=44000000
quality_factor=0.8002
boost_factor=1.0111
reference_quality=0.505
history_matches=35
history_shrink=0.125 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=true | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Josh Acheampong, Jorrel Hato', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.9132, 'skill_edge': -0.0071, 'height_edge': -0.052, 'attacker_skill': 0.8002, 'defender_skill': 0.8159, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Josh Acheampong', 'market_value': 29000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7736}, {'player': 'Jorrel Hato', 'market_value': 47000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8582}], 'xg_override': 0.1215} | totalShots: 1.7589 -> 1.6063 shotOffTarget: 1.216 -> 1.1105 onTargetScoringAttempt: 0.5429 -> 0.4958 goals: 0.1878 -> 0.1715 bigChanceMissed: 0.1357 -> 0.1239 expectedGoals: 0.1331 -> 0.1215 expectedGoalsOnTarget: 0.1158 -> 0.1057 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.42 (squad xG sum 1.2754, xG scale 1.1149, xA scale 1.1149, team xA 1.01 = 0.71 x lambda) | scoreline_reset=true
team_lambda=1.422
squad_xg_sum=1.2754
squad_xa_sum=0.9076
team_expected_assists=1.0119
team_xa_to_xg_ratio=0.7116 | expected_goals: 0.1215 -> 0.1355 expected_assists: 0.0818 -> 0.0912 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 80.0) | match_squad_rank=11
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1267
goal_rate=0.1715
scorer_weight=0.1694 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0872
assist_rate=0.102
provider_weight=0.1052 | - |
|
| Carlos Baleba | M | 74 | 0 | 0.06 | 0.03 | 152% | 1 | 0.5 | 6.8 | 44.2 | 26 | XGBoost M_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0136, quality 0.859) | market_value_eur=63000000
quality_factor=0.8589
boost_factor=1.0136
reference_quality=0.505
history_matches=34
history_shrink=0.1282 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Moisés Caicedo', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.414, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9915, 'skill_edge': -0.0098, 'height_edge': 0.004, 'attacker_skill': 0.876, 'defender_skill': 0.8978, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Moisés Caicedo', 'market_value': 104000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8978}], 'xg_override': 0.0567} | aerialWon: 1.3513 -> 1.0 totalShots: 0.9028 -> 0.8952 shotOffTarget: 0.6981 -> 0.6922 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.42 (squad xG sum 1.2754, xG scale 1.1149, xA scale 1.1149, team xA 1.01 = 0.71 x lambda) | scoreline_reset=true
team_lambda=1.422
squad_xg_sum=1.2754
squad_xa_sum=0.9076
team_expected_assists=1.0119
team_xa_to_xg_ratio=0.7116 | expected_goals: 0.0567 -> 0.0632 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 80.0) | match_squad_rank=12
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0612
goal_rate=0.0547
scorer_weight=0.062 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.043
assist_rate=0.052
provider_weight=0.0501 | - |
|
| Youri Tielemans | M | 76 | 0 | 0.06 | 0.04 | 45% | 1 | 0.7 | 7.1 | 55.7 | 26 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0115, quality 0.796) | market_value_eur=43000000
quality_factor=0.7957
boost_factor=1.0115
reference_quality=0.505
history_matches=33
history_shrink=0.1316 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0097) | blend_weight=0.0097
history_matches=33
season_overlap_discount=1.0
per90_to_match_factor=0.8427
prior_reliability=0.1133
competition=Premier League | totalShots: 0.8928 -> 0.903 wasFouled: 1.9305 -> 1.9406 totalCross: 1.4576 -> 1.4483 onTargetScoringAttempt: 0.277 -> 0.2837 wonTackle: 1.1708 -> 1.1643 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Moisés Caicedo', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.384, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9467, 'skill_edge': -0.0322, 'height_edge': -0.004, 'attacker_skill': 0.8262, 'defender_skill': 0.8978, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Moisés Caicedo', 'market_value': 104000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8978}], 'xg_override': 0.0569} | totalShots: 0.903 -> 0.8549 shotOffTarget: 0.6158 -> 0.583 onTargetScoringAttempt: 0.2837 -> 0.2686 aerialWon: 1.0115 -> 1.0 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.42 (squad xG sum 1.2754, xG scale 1.1149, xA scale 1.1149, team xA 1.01 = 0.71 x lambda) | scoreline_reset=true
team_lambda=1.422
squad_xg_sum=1.2754
squad_xa_sum=0.9076
team_expected_assists=1.0119
team_xa_to_xg_ratio=0.7116 | expected_goals: 0.0569 -> 0.0634 expected_assists: 0.1138 -> 0.1269 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 85.0) | match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0614
goal_rate=0.0569
scorer_weight=0.0634 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1192
assist_rate=0.0858
provider_weight=0.1052 | - |
|
| Ayden Heaven | D | 82 | 0 | 0.05 | 0.01 | 258% | 0 | 0.1 | 6.8 | 20.3 | 30 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0136, quality 0.732) | market_value_eur=32000000
quality_factor=0.732
boost_factor=1.0136
reference_quality=0.505
history_matches=20
history_shrink=0.2 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0087) | blend_weight=0.0087
history_matches=20
season_overlap_discount=1.0
per90_to_match_factor=0.9136
prior_reliability=0.0667
competition=Premier League | totalShots: 0.4087 -> 0.421 interceptionWon: 0.8332 -> 0.826 wonTackle: 0.7836 -> 0.7768 wasFouled: 1.1588 -> 1.1646 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Pedro Neto', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.42 (squad xG sum 1.2754, xG scale 1.1149, xA scale 1.1149, team xA 1.01 = 0.71 x lambda) | scoreline_reset=true
team_lambda=1.422
squad_xg_sum=1.2754
squad_xa_sum=0.9076
team_expected_assists=1.0119
team_xa_to_xg_ratio=0.7116 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 75.0) | match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0456
goal_rate=0.0
scorer_weight=0.0374 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0128
assist_rate=0.0
provider_weight=0.0105 | - |
|
| Harry Maguire | D | 89 | 0 | 0.04 | 0.04 | ok | 1 | 0.6 | 7.0 | 53.3 | 30 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0000, quality 0.506) | market_value_eur=8600000
quality_factor=0.5059
boost_factor=1.0
reference_quality=0.505
history_matches=31
history_shrink=0.1389 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0120) | blend_weight=0.012
history_matches=31
season_overlap_discount=1.0
per90_to_match_factor=0.9936
prior_reliability=0.1333
competition=Premier League | totalShots: 0.6157 -> 0.6262 wonTackle: 0.7268 -> 0.7181 totalCross: 0.3638 -> 0.3714 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Danny Welbeck', 'matchup_zone': 'Shape fallback'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.42 (squad xG sum 1.2754, xG scale 1.1149, xA scale 1.1149, team xA 1.01 = 0.71 x lambda) | scoreline_reset=true
team_lambda=1.422
squad_xg_sum=1.2754
squad_xa_sum=0.9076
team_expected_assists=1.0119
team_xa_to_xg_ratio=0.7116 | expected_assists: 0.0448 -> 0.0499 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 82.0) | match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0435
goal_rate=0.0032
scorer_weight=0.0356 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0487
assist_rate=0.0235
provider_weight=0.0399 | - |
|
| Leny Yoro | D | 84 | 0 | 0.10 | 0.04 | 168% | 1 | 0.2 | 6.7 | 33.6 | 32 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0102, quality 0.791) | market_value_eur=42000000
quality_factor=0.7909
boost_factor=1.0102
reference_quality=0.505
history_matches=37
history_shrink=0.119 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0010) | blend_weight=0.001
history_matches=37
season_overlap_discount=1.0
per90_to_match_factor=0.9333
prior_reliability=0.0133
competition=Premier League | interceptionWon: 1.3362 -> 1.3444 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Pedro Neto', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.42 (squad xG sum 1.2754, xG scale 1.1149, xA scale 1.1149, team xA 1.01 = 0.71 x lambda) | scoreline_reset=true
team_lambda=1.422
squad_xg_sum=1.2754
squad_xa_sum=0.9076
team_expected_assists=1.0119
team_xa_to_xg_ratio=0.7116 | expected_goals: 0.0928 -> 0.1035 expected_assists: 0.0655 -> 0.073 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 17 by projected rating, fifa_overall 78.0) | match_squad_rank=17
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0983
goal_rate=0.0
scorer_weight=0.0828 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0704
assist_rate=0.0
provider_weight=0.0584 | - |
|
| Diogo Dalot | D | 88 | 0 | 0.06 | 0.03 | 85% | 1 | 0.7 | 6.8 | 53.0 | 32 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0063, quality 0.702) | market_value_eur=28000000
quality_factor=0.7022
boost_factor=1.0063
reference_quality=0.505
history_matches=42
history_shrink=0.1064 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0041) | blend_weight=0.0041
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.9806
prior_reliability=0.06
competition=Premier League | totalShots: 0.733 -> 0.7474 totalCross: 2.6469 -> 2.6585 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Cole Palmer', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.42 (squad xG sum 1.2754, xG scale 1.1149, xA scale 1.1149, team xA 1.01 = 0.71 x lambda) | scoreline_reset=true
team_lambda=1.422
squad_xg_sum=1.2754
squad_xa_sum=0.9076
team_expected_assists=1.0119
team_xa_to_xg_ratio=0.7116 | expected_goals: 0.0552 -> 0.0615 expected_assists: 0.0546 -> 0.0609 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 15 by projected rating, fifa_overall 78.0) | match_squad_rank=15
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0596
goal_rate=0.0022
scorer_weight=0.0492 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0591
assist_rate=0.0164
provider_weight=0.0487 | - |
|
| Senne Lammens | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 6.9 | 57.7 | 33 | FBref Prior G_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost G_service raw output over 3 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0088, quality 0.770) | market_value_eur=38000000
quality_factor=0.7699
boost_factor=1.0088
reference_quality=0.505
history_matches=40
history_shrink=0.1111 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0096) | blend_weight=0.0096
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Cole Palmer, Pedro Neto', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.8102} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.42 (squad xG sum 1.2754, xG scale 1.1149, xA scale 1.1149, team xA 1.01 = 0.71 x lambda) | scoreline_reset=true
team_lambda=1.422
squad_xg_sum=1.2754
squad_xa_sum=0.9076
team_expected_assists=1.0119
team_xa_to_xg_ratio=0.7116 | shots_faced: 17.2 -> 15.8 expected_saves: 4.21 -> 3.87 high_pressure_saves: 1.45 -> 1.33 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 82.0) | match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.4656 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0
provider_weight=0.0
squad_weight_total=0.9934 | - |
|
| Team totals | 1 | 1.42 | | 14 | | 6.9 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| André Onana | G | 4.7m | 12.3% | Market-value substitute prior |
| Lisandro Martínez | D | 15.1m | 24.8% | Market-value substitute prior |
| Matthijs de Ligt | D | 14.7m | 35.2% | Market-value substitute prior |
| Kobbie Mainoo | M | 23.9m | 53.5% | Market-value substitute prior |
| Andrey Santos | M | 16.6m | 52.9% | Market-value substitute prior |
| Matheus Cunha | F | 27.1m | 37.0% | Market-value substitute prior |
Antagonist / tactical summary
Midfield is evenly contested — Moisés Caicedo vs Carlos Baleba will be the pivotal duel. Total antagonist xG — Home: 0.77, Away: 0.87. Home danger zone: Left Wing vs Right Back — Flank Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Midfield — possession 50.2% / 49.8%, dominance ratio 0.48, key duel: Moisés Caicedo vs Carlos Baleba
Cole Palmer xG 0.21Pedro Neto xG 0.17Danny Welbeck xG 0.15Bruno Fernandes xG 0.21Mason Mount xG 0.09Bryan Mbeumo xG 0.34
Summary
Antagonist matchup analysis for Chelsea vs Man Utd. Most likely scoreline: 2-1. Lambdas derived from 6 home and 6 away individual player duels. Head-to-head: Chelsea 2W-4D-4L vs Man Utd over 10 meetings.
Tactical parity between 4-2-3-1 and 4-2-3-1. Match outcome driven primarily by individual player quality. Midfield is evenly contested — Moisés Caicedo vs Carlos Baleba will be the pivotal duel. Total antagonist xG — Home: 0.77, Away: 0.87. Home danger zone: Left Wing vs Right Back — Flank Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Brentford vs Forest
Premier League · 20261031 · 4-2-3-1 vs 3-4-2-1
Predicted 1-0Winner: BrentfordWinning H 1-0 (10.4%)Winning A 0-1 (6.7%)Confidence 0.75λ home/away 1.69 / 1.09Most-likely P 10.4%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset TracingAntagonist + XGBoost match analysis for Brentford vs Forest. Player statistics regressed using position-specific XGBoost models (G, D, M, F) with 2026-2027 FBref priors. Micro-duels resolved across 4-2-3-1 vs 3-4-2-1 (duel lambdas: Home 1.683, Away 1.167). Final calibrated Poisson lambdas: Home 1.692, Away 1.089 (most likely score 1-0).
Home Starters 11/11 XGBoost (10 FBref) Away Starters 11/11 XGBoost (9 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.68 / 1.17 Final λ (H/A) 1.69 / 1.09
FBref Team Priors: Brentford (Gls/90: 2.0, GA/90: 2.0 → E[λ]: 1.379) vs Nottingham Forest (Gls/90: 1.0, GA/90: 1.0 → E[λ]: 1.379) | Blend Weight: 0.192
Modeling Pipeline Stages (5 layers)
- 1. XGBoost player regressions for volume & event rates with market-value quality scaling
- 2. Multi-source prior blending (FBref 2026-2027 tables + Sofascore season history)
- 3. Antagonist formation duel matrix resolving 1v1 and zonal matchups
- 4. Team-level prior calibration (FBref possession and attack/defense efficiencies)
- 5. Bivariate Poisson matrix with Dixon-Coles low-score correction
Standing & form context
| Metric | Brentford | Forest |
|---|
| League position | 6.00 | 18.00 |
| Points per game | 1.37 | 1.01 |
| Attack index | 1.10 | 0.82 |
| Defense (concede) index | 0.96 | 0.92 |
| Form multiplier | 1.02 | 0.98 |
| Standing λ multiplier | 1.03 | 0.89 |
Lambda decomposition (how the goal rates were built)
| Stage | Brentford λ | Forest λ |
|---|
| FBref Squad Prior E[λ] (weight 0.192) | 1.379 | 1.379 |
| Pre-competitive-floor | 2.034 | 1.182 |
| Pre-calibration (Micro-duels) | 1.683 | 1.167 |
| Final λ | 1.692 | 1.089 |
competition calibration scale 0.865competition observed total goals 2.781quality gap applied Falsemismatch score pressure applied Falsecompetitive underdog floor applied Falsestage discount 1.0
Scoreline distribution & markets
| Top 5 scorelines | P |
|---|
| 1-1 | 11.5% |
| 1-0 | 10.4% |
| 2-1 | 9.7% |
| 2-0 | 8.9% |
| 0-1 | 6.7% |
| Home win | 51.4% |
| Draw | 24.3% |
| Away win | 24.3% |
| Over 2.5 | 52.6% |
| BTTS yes | 54.2% |
Pregame fair line — favorite Brentford (51.4%), fair total 2.78, fair spread 0.60
Projected players vs season baseline
Proj = projected for this match · Season = this season's per-game average from match data · deviation badge compares projected xG to the player's season xG/game.
Brentford — projected line vs season baseline (4-2-3-1)
| Player | Pos | Min | Proj G | Proj xG | Season xG/g | | Proj Sh | Season Sh/g | Proj Rtg | Season Rtg | Rec | Model / FBref Prior |
|---|
| Dango Ouattara | F | 74 | 0 | 0.26 | 0.16 | 62% | 2 | 1.2 | 6.9 | 49.7 | 39 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0084, quality 0.758) | market_value_eur=36000000
quality_factor=0.7581
boost_factor=1.0084
reference_quality=0.505
history_matches=40
history_shrink=0.1111 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0053) | blend_weight=0.0053
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=0.827
prior_reliability=0.0733
competition=Premier League | fouls: 0.7063 -> 0.7145 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Jair, Nikola Milenković', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 0.9173, 'skill_edge': 0.0037, 'height_edge': -0.06, 'attacker_skill': 0.7581, 'defender_skill': 0.7498, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Jair', 'market_value': 26000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7498}, {'player': 'Nikola Milenković', 'market_value': 26000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7498}], 'xg_override': 0.2233} | totalShots: 1.8811 -> 1.7255 shotOffTarget: 1.2645 -> 1.1599 onTargetScoringAttempt: 0.6108 -> 0.5603 bigChanceMissed: 0.4027 -> 0.3694 expectedGoalsOnTarget: 0.3502 -> 0.3212 goals: 0.2566 -> 0.2354 expectedGoals: 0.2434 -> 0.2233 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.69 (squad xG sum 1.4531, xG scale 1.1644, xA scale 1.3015, team xA 1.10 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.692
squad_xg_sum=1.4531
squad_xa_sum=0.845
team_expected_assists=1.0998
team_xa_to_xg_ratio=0.65 | expected_goals: 0.2233 -> 0.26 expected_assists: 0.0954 -> 0.1242 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 79.0) | match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.2289
goal_rate=0.2354
scorer_weight=0.2715 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1168
assist_rate=0.0648
provider_weight=0.0994 | - |
|
| Mathias Jensen | M | 79 | 0 | 0.06 | 0.06 | ok | 1 | 0.9 | 7.0 | 56.5 | 30 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9999, quality 0.502) | market_value_eur=8300000
quality_factor=0.5023
boost_factor=0.9999
reference_quality=0.505
history_matches=40
history_shrink=0.1111 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0034) | blend_weight=0.0034
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=0.8746
prior_reliability=0.0467
competition=Premier League | fouls: 0.917 -> 0.9265 totalCross: 4.651 -> 4.6564 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Jair', 'matchup_zone': 'LW vs CB', 'duel_win_rate': 0.249, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 0.748, 'skill_edge': -0.1114, 'height_edge': -0.06, 'attacker_skill': 0.5023, 'defender_skill': 0.7498, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Jair', 'market_value': 26000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7498}], 'xg_override': 0.052} | aerialWon: 0.1738 -> 1.1 totalShots: 1.0201 -> 0.763 shotOffTarget: 0.6702 -> 0.5013 onTargetScoringAttempt: 0.3481 -> 0.2604 bigChanceMissed: 0.1314 -> 0.0983 goals: 0.0761 -> 0.0569 expectedGoals: 0.0695 -> 0.052 expectedGoalsOnTarget: 0.0412 -> 0.0308 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.69 (squad xG sum 1.4531, xG scale 1.1644, xA scale 1.3015, team xA 1.10 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.692
squad_xg_sum=1.4531
squad_xa_sum=0.845
team_expected_assists=1.0998
team_xa_to_xg_ratio=0.65 | expected_goals: 0.052 -> 0.0605 expected_assists: 0.1559 -> 0.2028 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 80.0) | match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0587
goal_rate=0.0569
scorer_weight=0.0634 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1836
assist_rate=0.1054
provider_weight=0.1622 | - |
|
| Kevin Schade | F | 78 | 1 | 0.35 | 0.21 | 66% | 2 | 1.4 | 6.8 | 50.7 | 43 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0102, quality 0.831) | market_value_eur=52000000
quality_factor=0.8309
boost_factor=1.0102
reference_quality=0.505
history_matches=43
history_shrink=0.1042 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0090) | blend_weight=0.009
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=0.8719
prior_reliability=0.1333
competition=Premier League | totalShots: 2.1824 -> 2.1947 wonTackle: 0.8686 -> 0.8804 wasFouled: 0.9059 -> 0.9135 onTargetScoringAttempt: 0.7535 -> 0.7587 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Jair, Nikola Milenković', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.182, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 0.9742, 'skill_edge': 0.0365, 'height_edge': -0.054, 'attacker_skill': 0.8309, 'defender_skill': 0.7498, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Jair', 'market_value': 26000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7498}, {'player': 'Nikola Milenković', 'market_value': 26000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7498}], 'xg_override': 0.3031} | totalShots: 2.1947 -> 2.1381 shotOffTarget: 1.4288 -> 1.3919 onTargetScoringAttempt: 0.7587 -> 0.7391 goals: 0.3757 -> 0.366 expectedGoals: 0.3111 -> 0.3031 bigChanceMissed: 0.3105 -> 0.3025 expectedGoalsOnTarget: 0.2101 -> 0.2047 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.69 (squad xG sum 1.4531, xG scale 1.1644, xA scale 1.3015, team xA 1.10 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.692
squad_xg_sum=1.4531
squad_xa_sum=0.845
team_expected_assists=1.0998
team_xa_to_xg_ratio=0.65 | expected_goals: 0.3031 -> 0.3529 expected_assists: 0.0466 -> 0.0607 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 79.0) | match_squad_rank=11
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.2974
goal_rate=0.366
scorer_weight=0.4158 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0589
assist_rate=0.0116
provider_weight=0.0486 | - |
|
| Igor Thiago | F | 89 | 0 | 0.39 | 0.45 | ok | 3 | 1.9 | 6.7 | 55.7 | 34 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0107, quality 0.868) | market_value_eur=68000000
quality_factor=0.8677
boost_factor=1.0107
reference_quality=0.505
history_matches=46
history_shrink=0.098 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0081) | blend_weight=0.0081
history_matches=46
season_overlap_discount=1.0
per90_to_match_factor=0.9912
prior_reliability=0.1267
competition=Premier League | totalShots: 2.0827 -> 2.0952 fouls: 2.0748 -> 2.0623 wonTackle: 0.6592 -> 0.6539 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Jair, Nikola Milenković', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.231, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 1.0456, 'skill_edge': 0.053, 'height_edge': -0.022, 'attacker_skill': 0.8677, 'defender_skill': 0.7498, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Jair', 'market_value': 26000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7498}, {'player': 'Nikola Milenković', 'market_value': 26000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7498}], 'xg_override': 0.333} | totalShots: 2.0952 -> 2.1907 shotOffTarget: 1.4467 -> 1.5127 onTargetScoringAttempt: 0.6393 -> 0.6685 bigChanceMissed: 0.6065 -> 0.6342 expectedGoals: 0.3185 -> 0.333 goals: 0.3046 -> 0.3185 expectedGoalsOnTarget: 0.2239 -> 0.2341 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.69 (squad xG sum 1.4531, xG scale 1.1644, xA scale 1.3015, team xA 1.10 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.692
squad_xg_sum=1.4531
squad_xa_sum=0.845
team_expected_assists=1.0998
team_xa_to_xg_ratio=0.65 | expected_goals: 0.333 -> 0.3879 expected_assists: 0.1027 -> 0.1337 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 82.0) | match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.3215
goal_rate=0.3185
scorer_weight=0.3732 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=1
assist_probability=0.1251
assist_rate=0.28
provider_weight=0.1671 | - |
|
| Vitaly Janelt | M | 87 | 0 | 0.06 | 0.04 | ok | 1 | 0.4 | 6.9 | 52.3 | 26 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0055, quality 0.641) | market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.0055
reference_quality=0.505
history_matches=32
history_shrink=0.1351 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0117) | blend_weight=0.0117
history_matches=32
season_overlap_discount=1.0
per90_to_match_factor=0.9662
prior_reliability=0.1333
competition=Premier League | totalCross: 2.3897 -> 2.4126 interceptionWon: 2.5035 -> 2.5194 fouls: 1.3569 -> 1.3693 wonTackle: 1.2693 -> 1.2771 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Callum Hudson Odoi, Liam Delap, Morgan Gibbs-White', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.69 (squad xG sum 1.4531, xG scale 1.1644, xA scale 1.3015, team xA 1.10 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.692
squad_xg_sum=1.4531
squad_xa_sum=0.845
team_expected_assists=1.0998
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0481 -> 0.056 expected_assists: 0.0817 -> 0.1063 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 78.0) | match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0545
goal_rate=0.088
scorer_weight=0.07 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1008
assist_rate=0.0724
provider_weight=0.0988 | - |
|
| Mamadou Sangare | M | 81 | 0 | 0.07 | 0.03 | 124% | 1 | 0.4 | 6.9 | 39.7 | 14 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0364, quality 0.821) | market_value_eur=49000000
quality_factor=0.8206
boost_factor=1.0364
reference_quality=0.505
history_matches=8
history_shrink=0.3846 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0300) | blend_weight=0.03
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=0.9021
prior_reliability=0.12
competition=Premier League | interceptionWon: 1.5675 -> 1.6107 totalShots: 0.7153 -> 0.7528 wasFouled: 0.6396 -> 0.6655 totalCross: 0.3174 -> 0.3379 wonTackle: 1.9883 -> 1.9738 goalAssist: 0.054 -> 0.0674 onTargetScoringAttempt: 0.1837 -> 0.1931 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Daniel Muñoz', 'matchup_zone': 'Midfield lane'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.69 (squad xG sum 1.4531, xG scale 1.1644, xA scale 1.3015, team xA 1.10 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.692
squad_xg_sum=1.4531
squad_xa_sum=0.845
team_expected_assists=1.0998
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0567 -> 0.066 expected_assists: 0.0528 -> 0.0687 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 81.0) | match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0639
goal_rate=0.0578
scorer_weight=0.0667 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0664
assist_rate=0.0674
provider_weight=0.0785 | - |
|
| Keane Lewis-Potter | D | 80 | 0 | 0.15 | 0.10 | 42% | 1 | 1.0 | 6.7 | 55.0 | 34 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0063, quality 0.710) | market_value_eur=29000000
quality_factor=0.71
boost_factor=1.0063
reference_quality=0.505
history_matches=44
history_shrink=0.102 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0088) | blend_weight=0.0088
history_matches=44
season_overlap_discount=1.0
per90_to_match_factor=0.8917
prior_reliability=0.1333
competition=Premier League | wasFouled: 1.2614 -> 1.2502 totalCross: 3.2727 -> 3.2832 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Xaver Schlager', 'matchup_zone': 'Right Wingback vs Left Back — Overlapping Run'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.69 (squad xG sum 1.4531, xG scale 1.1644, xA scale 1.3015, team xA 1.10 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.692
squad_xg_sum=1.4531
squad_xa_sum=0.845
team_expected_assists=1.0998
team_xa_to_xg_ratio=0.65 | expected_goals: 0.1253 -> 0.1459 expected_assists: 0.0946 -> 0.1231 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 77.0) | match_squad_rank=12
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1358
goal_rate=0.203
scorer_weight=0.1824 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1158
assist_rate=0.0972
provider_weight=0.1253 | - |
|
| Kristoffer Ajer | D | 89 | 0 | 0.04 | 0.01 | 225% | 1 | 0.2 | 6.8 | 47.1 | 33 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0071, quality 0.694) | market_value_eur=27000000
quality_factor=0.6941
boost_factor=1.0071
reference_quality=0.505
history_matches=35
history_shrink=0.125 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0108) | blend_weight=0.0108
history_matches=35
season_overlap_discount=1.0
per90_to_match_factor=0.9842
prior_reliability=0.1333
competition=Premier League | wonTackle: 0.9516 -> 0.9466 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Callum Hudson Odoi', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.69 (squad xG sum 1.4531, xG scale 1.1644, xA scale 1.3015, team xA 1.10 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.692
squad_xg_sum=1.4531
squad_xa_sum=0.845
team_expected_assists=1.0998
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0313 -> 0.0364 expected_assists: 0.0368 -> 0.0479 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 77.0) | match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0357
goal_rate=0.1099
scorer_weight=0.0455 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0468
assist_rate=0.0
provider_weight=0.0383 | - |
|
| Caoimhin Kelleher | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 6.9 | 57.3 | 33 | FBref Prior G_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost G_service raw output over 3 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0061, quality 0.710) | market_value_eur=29000000
quality_factor=0.71
boost_factor=1.0061
reference_quality=0.505
history_matches=45
history_shrink=0.1 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0087) | blend_weight=0.0087
history_matches=45
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Liam Delap, Morgan Gibbs-White', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.1665} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.69 (squad xG sum 1.4531, xG scale 1.1644, xA scale 1.3015, team xA 1.10 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.692
squad_xg_sum=1.4531
squad_xa_sum=0.845
team_expected_assists=1.0998
team_xa_to_xg_ratio=0.65 | shots_faced: 11.1 -> 10.3 expected_saves: 2.72 -> 2.52 high_pressure_saves: 0.93 -> 0.87 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 80.0) | match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.7932 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0
provider_weight=0.0
squad_weight_total=1.0253 | - |
|
| Michael Kayode | D | 84 | 0 | 0.07 | 0.05 | 38% | 1 | 0.3 | 6.7 | 56.2 | 33 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0081, quality 0.775) | market_value_eur=39000000
quality_factor=0.7754
boost_factor=1.0081
reference_quality=0.505
history_matches=45
history_shrink=0.1 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0078) | blend_weight=0.0078
history_matches=45
season_overlap_discount=1.0
per90_to_match_factor=0.931
prior_reliability=0.12
competition=Premier League | totalShots: 0.6011 -> 0.6166 wasFouled: 1.0619 -> 1.0698 wonTackle: 1.2125 -> 1.2071 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'James McAtee', 'matchup_zone': 'Left Wingback vs Right Back — Overlapping Run'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.69 (squad xG sum 1.4531, xG scale 1.1644, xA scale 1.3015, team xA 1.10 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.692
squad_xg_sum=1.4531
squad_xa_sum=0.845
team_expected_assists=1.0998
team_xa_to_xg_ratio=0.65 | expected_goals: 0.057 -> 0.0664 expected_assists: 0.0735 -> 0.0957 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 15 by projected rating, fifa_overall 81.0) | match_squad_rank=15
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0642
goal_rate=0.0775
scorer_weight=0.0791 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0913
assist_rate=0.0182
provider_weight=0.0766 | - |
|
| Sepp van den Berg | D | 88 | 0 | 0.10 | 0.06 | 77% | 1 | 0.5 | 6.8 | 41.2 | 29 | XGBoost D_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0090, quality 0.739) | market_value_eur=33000000
quality_factor=0.7389
boost_factor=1.009
reference_quality=0.505
history_matches=34
history_shrink=0.1282 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Liam Delap', 'matchup_zone': 'Shape fallback'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.69 (squad xG sum 1.4531, xG scale 1.1644, xA scale 1.3015, team xA 1.10 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.692
squad_xg_sum=1.4531
squad_xa_sum=0.845
team_expected_assists=1.0998
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0878 -> 0.1022 expected_assists: 0.0354 -> 0.0461 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 78.0) | match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0972
goal_rate=0.0
scorer_weight=0.0818 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0451
assist_rate=0.0217
provider_weight=0.0387 | - |
|
| Team totals | 1 | 1.69 | | 16 | | 6.8 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Hákon Rafn Valdimarsson | G | 4.4m | 10.9% | Market-value substitute prior |
| El Hadji Malick Diouf | D | 14.8m | 35.6% | Market-value substitute prior |
| Nathan Collins | D | 14.7m | 23.9% | Market-value substitute prior |
| Yehor Yarmoliuk | M | 23.0m | 71.5% | Market-value substitute prior |
| Mikkel Damsgaard | M | 18.6m | 52.2% | Market-value substitute prior |
| Jaidon Anthony | F | 24.9m | 54.2% | Market-value substitute prior |
Forest — projected line vs season baseline (3-4-2-1)
| Player | Pos | Min | Proj G | Proj xG | Season xG/g | | Proj Sh | Season Sh/g | Proj Rtg | Season Rtg | Rec | Model / FBref Prior |
|---|
| Matz Sels | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 7.0 | 55.0 | 30 | FBref Prior G_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost G_service raw output over 3 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9980, quality 0.446) | market_value_eur=3700000
quality_factor=0.4461
boost_factor=0.998
reference_quality=0.505
history_matches=39
history_shrink=0.1136 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0098) | blend_weight=0.0098
history_matches=39
season_overlap_discount=1.0
per90_to_match_factor=0.9968
prior_reliability=0.1333
competition=Premier League | saves: 2.9184 -> 2.9093 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Igor Thiago, Kevin Schade', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.683} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.09 (squad xG sum 1.3706, xG scale 0.7945, xA scale 0.7945, team xA 0.76 = 0.70 x lambda) | scoreline_reset=true
team_lambda=1.089
squad_xg_sum=1.3706
squad_xa_sum=0.9608
team_expected_assists=0.7634
team_xa_to_xg_ratio=0.701 | shots_faced: 16.0 -> 16.1 expected_saves: 3.92 -> 3.94 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 81.0) | match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.0339 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0
provider_weight=0.0
squad_weight_total=0.6878 | - |
|
| Jair | D | 85 | 0 | 0.03 | 0.02 | 46% | 1 | 0.2 | 6.8 | 39.0 | 24 | XGBoost D_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0136, quality 0.686) | market_value_eur=26000000
quality_factor=0.6858
boost_factor=1.0136
reference_quality=0.505
history_matches=15
history_shrink=0.25 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Mathias Jensen', 'matchup_zone': 'LW vs CB'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.09 (squad xG sum 1.3706, xG scale 0.7945, xA scale 0.7945, team xA 0.76 = 0.70 x lambda) | scoreline_reset=true
team_lambda=1.089
squad_xg_sum=1.3706
squad_xa_sum=0.9608
team_expected_assists=0.7634
team_xa_to_xg_ratio=0.701 | expected_goals: 0.0355 -> 0.0282 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 80.0) | match_squad_rank=14
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0278
goal_rate=0.0
scorer_weight=0.0226 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0058
assist_rate=0.0
provider_weight=0.0051 | - |
|
| Nikola Milenković | D | 90 | 0 | 0.02 | 0.01 | 111% | 0 | 0.2 | 6.8 | 52.1 | 30 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0058, quality 0.686) | market_value_eur=26000000
quality_factor=0.6858
boost_factor=1.0058
reference_quality=0.505
history_matches=42
history_shrink=0.1064 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0092) | blend_weight=0.0092
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League | fouls: 1.1309 -> 1.1389 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Igor Thiago', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.09 (squad xG sum 1.3706, xG scale 0.7945, xA scale 0.7945, team xA 0.76 = 0.70 x lambda) | scoreline_reset=true
team_lambda=1.089
squad_xg_sum=1.3706
squad_xa_sum=0.9608
team_expected_assists=0.7634
team_xa_to_xg_ratio=0.701 | expected_goals: 0.0289 -> 0.023 expected_assists: 0.0346 -> 0.0275 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 80.0) | match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0227
goal_rate=0.0
scorer_weight=0.0184 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0271
assist_rate=0.0
provider_weight=0.022 | - |
|
| Murillo | D | 88 | 0 | 0.10 | 0.06 | 75% | 2 | 0.7 | 6.9 | 53.3 | 26 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0125, quality 0.821) | market_value_eur=49000000
quality_factor=0.8206
boost_factor=1.0125
reference_quality=0.505
history_matches=33
history_shrink=0.1316 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0114) | blend_weight=0.0114
history_matches=33
season_overlap_discount=1.0
per90_to_match_factor=0.9771
prior_reliability=0.1333
competition=Premier League | totalShots: 1.3873 -> 1.3771 fouls: 1.3427 -> 1.333 interceptionWon: 1.2173 -> 1.209 wonTackle: 1.0305 -> 1.0243 onTargetScoringAttempt: 0.5214 -> 0.5155 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Dango Ouattara', 'matchup_zone': 'Shape fallback'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.09 (squad xG sum 1.3706, xG scale 0.7945, xA scale 0.7945, team xA 0.76 = 0.70 x lambda) | scoreline_reset=true
team_lambda=1.089
squad_xg_sum=1.3706
squad_xa_sum=0.9608
team_expected_assists=0.7634
team_xa_to_xg_ratio=0.701 | expected_goals: 0.1259 -> 0.1 expected_assists: 0.0533 -> 0.0423 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 82.0) | match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0952
goal_rate=0.0034
scorer_weight=0.08 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0414
assist_rate=0.0788
provider_weight=0.0527 | - |
|
| Daniel Muñoz | M | 82 | 0 | 0.10 | 0.06 | 70% | 1 | 0.7 | 6.9 | 50.8 | 31 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0057, quality 0.660) | market_value_eur=23000000
quality_factor=0.6595
boost_factor=1.0057
reference_quality=0.505
history_matches=36
history_shrink=0.122 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0032) | blend_weight=0.0032
history_matches=36
season_overlap_discount=1.0
per90_to_match_factor=0.9069
prior_reliability=0.04
competition=Premier League | totalCross: 2.1344 -> 2.1276 totalShots: 1.1667 -> 1.1726 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Vitaly Janelt', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.449, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 0.999, 'skill_edge': 0.0033, 'height_edge': -0.004, 'attacker_skill': 0.6821, 'defender_skill': 0.6747, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Vitaly Janelt', 'market_value': 21000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.6747}], 'xg_override': 0.1212} | aerialWon: 1.9692 -> 1.1 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.09 (squad xG sum 1.3706, xG scale 0.7945, xA scale 0.7945, team xA 0.76 = 0.70 x lambda) | scoreline_reset=true
team_lambda=1.089
squad_xg_sum=1.3706
squad_xa_sum=0.9608
team_expected_assists=0.7634
team_xa_to_xg_ratio=0.701 | expected_goals: 0.1212 -> 0.0963 expected_assists: 0.0886 -> 0.0704 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 82.0) | match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0918
goal_rate=0.119
scorer_weight=0.0951 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.068
assist_rate=0.0862
provider_weight=0.0692 | - |
|
| James McAtee | M | 85 | 0 | 0.06 | 0.02 | 169% | 1 | 0.5 | 6.9 | 28.9 | 33 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0069, quality 0.629) | market_value_eur=19800000
quality_factor=0.6291
boost_factor=1.0069
reference_quality=0.505
history_matches=22
history_shrink=0.1852 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0144) | blend_weight=0.0144
history_matches=22
season_overlap_discount=1.0
per90_to_match_factor=0.949
prior_reliability=0.12
competition=Premier League | totalShots: 1.1809 -> 1.1638 fouls: 1.0198 -> 1.0051 interceptionWon: 0.7964 -> 0.7849 wonTackle: 1.5309 -> 1.524 totalCross: 3.3421 -> 3.3471 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Michael Kayode', 'matchup_zone': 'Left Wingback vs Right Back — Overlapping Run', 'duel_win_rate': 0.342, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.915, 'skill_edge': -0.0619, 'height_edge': 0.004, 'attacker_skill': 0.7044, 'defender_skill': 0.8419, 'attacker_role': 'LWB', 'attacker_mv_price_index': 0.7, 'defender_adjusted_parts': [{'player': 'Michael Kayode', 'market_value': 39000000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.8419}], 'xg_override': 0.0739} | aerialWon: 0.4062 -> 1.1 totalShots: 1.1761 -> 1.0762 shotOffTarget: 0.8535 -> 0.781 onTargetScoringAttempt: 0.3226 -> 0.2952 goals: 0.0877 -> 0.0802 expectedGoals: 0.0808 -> 0.0739 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.09 (squad xG sum 1.3706, xG scale 0.7945, xA scale 0.7945, team xA 0.76 = 0.70 x lambda) | scoreline_reset=true
team_lambda=1.089
squad_xg_sum=1.3706
squad_xa_sum=0.9608
team_expected_assists=0.7634
team_xa_to_xg_ratio=0.701 | expected_goals: 0.0739 -> 0.0587 expected_assists: 0.1292 -> 0.1027 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 73.0) | match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.057
goal_rate=0.0802
scorer_weight=0.0617 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0976
assist_rate=0.0947
provider_weight=0.0829 | - |
|
| Neco Williams | D | 89 | 0 | 0.09 | 0.06 | 50% | 1 | 1.2 | 6.8 | 59.2 | 38 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0061, quality 0.710) | market_value_eur=29000000
quality_factor=0.71
boost_factor=1.0061
reference_quality=0.505
history_matches=45
history_shrink=0.1 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0087) | blend_weight=0.0087
history_matches=45
season_overlap_discount=1.0
per90_to_match_factor=0.9841
prior_reliability=0.1333
competition=Premier League | wonTackle: 1.2354 -> 1.2545 totalCross: 5.7902 -> 5.7741 interceptionWon: 0.9884 -> 0.9798 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Igor Thiago', 'matchup_zone': 'Shape fallback'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.09 (squad xG sum 1.3706, xG scale 0.7945, xA scale 0.7945, team xA 0.76 = 0.70 x lambda) | scoreline_reset=true
team_lambda=1.089
squad_xg_sum=1.3706
squad_xa_sum=0.9608
team_expected_assists=0.7634
team_xa_to_xg_ratio=0.701 | expected_goals: 0.1178 -> 0.0936 expected_assists: 0.1415 -> 0.1124 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 80.0) | match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0894
goal_rate=0.1849
scorer_weight=0.117 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.1063
assist_rate=0.0316
provider_weight=0.0899 | - |
|
| Morgan Gibbs-White | M | 89 | 0 | 0.21 | 0.30 | ok | 3 | 1.8 | 7.1 | 61.6 | 37 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0114, quality 0.878) | market_value_eur=76000000
quality_factor=0.8781
boost_factor=1.0114
reference_quality=0.505
history_matches=44
history_shrink=0.102 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0088) | blend_weight=0.0088
history_matches=44
season_overlap_discount=1.0
per90_to_match_factor=0.9899
prior_reliability=0.1333
competition=Premier League | totalCross: 4.0121 -> 3.9941 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Vitaly Janelt', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.493, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 1.063, 'skill_edge': 0.0949, 'height_edge': -0.052, 'attacker_skill': 0.8855, 'defender_skill': 0.6747, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Vitaly Janelt', 'market_value': 21000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.6747}], 'xg_override': 0.2622} | aerialWon: 0.47 -> 0.8 totalShots: 2.2961 -> 2.4408 shotOffTarget: 1.4796 -> 1.5728 onTargetScoringAttempt: 0.8164 -> 0.8678 bigChanceMissed: 0.4621 -> 0.4912 expectedGoals: 0.2467 -> 0.2622 goals: 0.2295 -> 0.244 expectedGoalsOnTarget: 0.216 -> 0.2296 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.09 (squad xG sum 1.3706, xG scale 0.7945, xA scale 0.7945, team xA 0.76 = 0.70 x lambda) | scoreline_reset=true
team_lambda=1.089
squad_xg_sum=1.3706
squad_xa_sum=0.9608
team_expected_assists=0.7634
team_xa_to_xg_ratio=0.701 | expected_goals: 0.2622 -> 0.2083 expected_assists: 0.1998 -> 0.1588 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 83.0) | match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.188
goal_rate=0.244
scorer_weight=0.1962 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.1468
assist_rate=0.1528
provider_weight=0.1289 | - |
|
| Callum Hudson Odoi | F | 73 | 0 | 0.08 | 0.04 | 132% | 1 | 0.4 | 6.9 | 33.0 | 31 | XGBoost F_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0070, quality 0.686) | market_value_eur=26000000
quality_factor=0.6858
boost_factor=1.007
reference_quality=0.505
history_matches=34
history_shrink=0.1282 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Vitaly Janelt, Kristoffer Ajer', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle', 'duel_win_rate': 0.204, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 0.9033, 'skill_edge': -0.0138, 'height_edge': -0.052, 'attacker_skill': 0.6858, 'defender_skill': 0.7164, 'attacker_role': 'SS', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Vitaly Janelt', 'market_value': 21000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.6747}, {'player': 'Kristoffer Ajer', 'market_value': 27000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7581}], 'xg_override': 0.106} | totalShots: 1.2923 -> 1.1673 shotOffTarget: 0.8943 -> 0.8078 onTargetScoringAttempt: 0.398 -> 0.3595 goals: 0.1273 -> 0.115 expectedGoals: 0.1173 -> 0.106 expectedGoalsOnTarget: 0.0947 -> 0.0855 bigChanceMissed: 0.0856 -> 0.0773 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.09 (squad xG sum 1.3706, xG scale 0.7945, xA scale 0.7945, team xA 0.76 = 0.70 x lambda) | scoreline_reset=true
team_lambda=1.089
squad_xg_sum=1.3706
squad_xa_sum=0.9608
team_expected_assists=0.7634
team_xa_to_xg_ratio=0.701 | expected_goals: 0.106 -> 0.0842 expected_assists: 0.0874 -> 0.0694 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 78.0) | match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0808
goal_rate=0.115
scorer_weight=0.0891 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.067
assist_rate=0.305
provider_weight=0.0868 | - |
|
| Liam Delap | F | 82 | 0 | 0.27 | 0.18 | 50% | 3 | 1.3 | 6.8 | 51.1 | 32 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0097, quality 0.764) | market_value_eur=37000000
quality_factor=0.7641
boost_factor=1.0097
reference_quality=0.505
history_matches=35
history_shrink=0.125 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0016) | blend_weight=0.0016
history_matches=35
season_overlap_discount=1.0
per90_to_match_factor=0.9063
prior_reliability=0.02
competition=Premier League | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Vitaly Janelt, Kristoffer Ajer', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle', 'duel_win_rate': 0.275, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 1.008, 'skill_edge': 0.0215, 'height_edge': -0.016, 'attacker_skill': 0.7641, 'defender_skill': 0.7164, 'attacker_role': 'SS', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Vitaly Janelt', 'market_value': 21000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.6747}, {'player': 'Kristoffer Ajer', 'market_value': 27000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7581}], 'xg_override': 0.3392} | totalShots: 2.3631 -> 2.382 shotOffTarget: 1.545 -> 1.5574 onTargetScoringAttempt: 0.8152 -> 0.8217 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.09 (squad xG sum 1.3706, xG scale 0.7945, xA scale 0.7945, team xA 0.76 = 0.70 x lambda) | scoreline_reset=true
team_lambda=1.089
squad_xg_sum=1.3706
squad_xa_sum=0.9608
team_expected_assists=0.7634
team_xa_to_xg_ratio=0.701 | expected_goals: 0.3392 -> 0.2696 expected_assists: 0.062 -> 0.0493 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 77.0) | match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.2363
goal_rate=0.2886
scorer_weight=0.2346 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0481
assist_rate=0.0
provider_weight=0.0394 | - |
|
| Xaver Schlager | M | 86 | 0 | 0.04 | 0.02 | 73% | 1 | 0.8 | 6.9 | 40.6 | 14 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0075, quality 0.570) | market_value_eur=14200000
quality_factor=0.5704
boost_factor=1.0075
reference_quality=0.505
history_matches=8
history_shrink=0.3846 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0200) | blend_weight=0.02
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=0.957
prior_reliability=0.08
competition=Premier League | interceptionWon: 1.5628 -> 1.5315 fouls: 1.2287 -> 1.2041 wonTackle: 2.4026 -> 2.3864 totalShots: 1.016 -> 1.0278 totalCross: 0.4449 -> 0.452 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Keane Lewis-Potter', 'matchup_zone': 'Right Wingback vs Left Back — Overlapping Run', 'duel_win_rate': 0.347, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 0.9215, 'skill_edge': -0.0694, 'height_edge': 0.016, 'attacker_skill': 0.6339, 'defender_skill': 0.7881, 'attacker_role': 'RWB', 'attacker_mv_price_index': 0.7, 'defender_adjusted_parts': [{'player': 'Keane Lewis-Potter', 'market_value': 29000000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.7881}], 'xg_override': 0.0536} | aerialWon: 0.6782 -> 0.9 totalShots: 1.0278 -> 0.9471 shotOffTarget: 0.798 -> 0.7354 onTargetScoringAttempt: 0.2136 -> 0.1968 bigChanceMissed: 0.1161 -> 0.107 goals: 0.0701 -> 0.0646 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.09 (squad xG sum 1.3706, xG scale 0.7945, xA scale 0.7945, team xA 0.76 = 0.70 x lambda) | scoreline_reset=true
team_lambda=1.089
squad_xg_sum=1.3706
squad_xa_sum=0.9608
team_expected_assists=0.7634
team_xa_to_xg_ratio=0.701 | expected_goals: 0.0536 -> 0.0426 expected_assists: 0.0789 -> 0.0627 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 78.0) | match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0417
goal_rate=0.0646
scorer_weight=0.0471 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0608
assist_rate=0.0647
provider_weight=0.0558 | - |
|
| Team totals | 0 | 1.09 | | 16 | | 6.9 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| John Victor | G | 4.5m | 11.3% | Market-value substitute prior |
| Ousmane Diomande | D | 15.0m | 36.4% | Market-value substitute prior |
| Ola Aina | D | 14.2m | 23.0% | Market-value substitute prior |
| Omari Hutchinson | M | 23.0m | 54.6% | Market-value substitute prior |
| Ibrahim Sangaré | M | 22.8m | 32.3% | Market-value substitute prior |
| Dan Ndoye | F | 26.5m | 35.9% | Market-value substitute prior |
Antagonist / tactical summary
Midfield is evenly contested — Mamadou Sangare vs Morgan Gibbs-White will be the pivotal duel. Total antagonist xG — Home: 0.91, Away: 0.96. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Shadow Striker vs CDM + CB — Zone 14 Battle.
Midfield — possession 50.2% / 49.8%, dominance ratio 0.48, key duel: Mamadou Sangare vs Morgan Gibbs-White
Mathias Jensen xG 0.05Igor Thiago xG 0.33Dango Ouattara xG 0.22Callum Hudson Odoi xG 0.11Liam Delap xG 0.34James McAtee xG 0.07
Summary
Antagonist matchup analysis for Brentford vs Forest. Most likely scoreline: 1-0. Lambdas derived from 4 home and 6 away individual player duels. Head-to-head: Brentford 4W-3D-3L vs Forest over 10 meetings.
Tactical parity between 4-2-3-1 and 3-4-2-1. Match outcome driven primarily by individual player quality. Midfield is evenly contested — Mamadou Sangare vs Morgan Gibbs-White will be the pivotal duel. Total antagonist xG — Home: 0.91, Away: 0.96. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Shadow Striker vs CDM + CB — Zone 14 Battle.
Coventry vs Sunderland
Premier League · 20261031 · 4-2-3-1 vs 4-2-3-1
Predicted 1-1Winner: DrawWinning H 1-0 (8.5%)Winning A 0-1 (8.5%)Confidence 0.69λ home/away 1.39 / 1.39Most-likely P 12.1%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset TracingAntagonist + XGBoost match analysis for Coventry vs Sunderland. Player statistics regressed using position-specific XGBoost models (G, D, M, F) with 2026-2027 FBref priors. Micro-duels resolved across 4-2-3-1 vs 4-2-3-1 (duel lambdas: Home 1.200, Away 1.347). Final calibrated Poisson lambdas: Home 1.389, Away 1.392 (most likely score 1-1).
Home Starters 11/11 XGBoost (7 FBref) Away Starters 11/11 XGBoost (11 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.20 / 1.35 Final λ (H/A) 1.39 / 1.39
Modeling Pipeline Stages (5 layers)
- 1. XGBoost player regressions for volume & event rates with market-value quality scaling
- 2. Multi-source prior blending (FBref 2026-2027 tables + Sofascore season history)
- 3. Antagonist formation duel matrix resolving 1v1 and zonal matchups
- 4. Team-level prior calibration (FBref possession and attack/defense efficiencies)
- 5. Bivariate Poisson matrix with Dixon-Coles low-score correction
Standing & form context
| Metric | Coventry | Sunderland |
|---|
| League position | 19.00 | 20.00 |
| Points per game | 1.01 | 0.94 |
| Attack index | 0.82 | 0.82 |
| Defense (concede) index | 1.10 | 1.14 |
| Form multiplier | 1.00 | 1.00 |
| Standing λ multiplier | 0.96 | 0.97 |
Lambda decomposition (how the goal rates were built)
| Stage | Coventry λ | Sunderland λ |
|---|
| Pre-competitive-floor | 1.226 | 1.318 |
| Pre-calibration (Micro-duels) | 1.200 | 1.347 |
| Final λ | 1.389 | 1.392 |
competition calibration scale 1.093competition observed total goals 2.781quality gap applied Truemismatch score pressure applied Falsecompetitive underdog floor applied Falsestage discount 1.0
Scoreline distribution & markets
| Top 5 scorelines | P |
|---|
| 1-1 | 12.1% |
| 0-1 | 8.5% |
| 1-0 | 8.5% |
| 1-2 | 8.3% |
| 2-1 | 8.3% |
| Home win | 37.1% |
| Draw | 25.6% |
| Away win | 37.3% |
| Over 2.5 | 52.6% |
| BTTS yes | 56.5% |
Pregame fair line — favorite Sunderland (37.3%), fair total 2.78, fair spread -0.00
Projected players vs season baseline
Proj = projected for this match · Season = this season's per-game average from match data · deviation badge compares projected xG to the player's season xG/game.
Coventry — projected line vs season baseline (4-2-3-1)
| Player | Pos | Min | Proj G | Proj xG | Season xG/g | | Proj Sh | Season Sh/g | Proj Rtg | Season Rtg | Rec | Model / FBref Prior |
|---|
| Sidiki Cherif | F | 73 | 1 | 0.34 | 0.03 | 909% | 2 | 0.5 | 6.7 | 24.5 | 11 | XGBoost F_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0226, quality 0.641) | market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.0226
reference_quality=0.505
history_matches=4
history_shrink=0.5556 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Trai Hume, Reinildo Mandava', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.26, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.0875, 'skill_edge': 0.0275, 'height_edge': 0.032, 'attacker_skill': 0.6408, 'defender_skill': 0.5797, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Trai Hume', 'market_value': 20000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6914}, {'player': 'Reinildo Mandava', 'market_value': 4099999, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4679}], 'xg_override': 0.2302} | totalShots: 1.6308 -> 1.7735 shotOffTarget: 1.0258 -> 1.1156 onTargetScoringAttempt: 0.605 -> 0.6579 bigChanceMissed: 0.4289 -> 0.4664 goals: 0.231 -> 0.2512 expectedGoals: 0.2117 -> 0.2302 expectedGoalsOnTarget: 0.1057 -> 0.1149 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.39 (squad xG sum 0.9518, xG scale 1.4594, xA scale 1.5808, team xA 0.90 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.389
squad_xg_sum=0.9518
squad_xa_sum=0.5711
team_expected_assists=0.9029
team_xa_to_xg_ratio=0.65 | expected_goals: 0.2302 -> 0.336 expected_assists: 0.0311 -> 0.0492 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 15 by projected rating, fifa_overall 72.0) | match_squad_rank=15
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.2854
goal_rate=0.2512
scorer_weight=0.3612 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.048
assist_rate=0.0
provider_weight=0.0394 | - |
|
| Brandon Thomas-Asante | F | 79 | 0 | 0.25 | 0.05 | 435% | 2 | 0.9 | 6.8 | 41.6 | 16 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0104, quality 0.595) | market_value_eur=16500000
quality_factor=0.5953
boost_factor=1.0104
reference_quality=0.505
history_matches=8
history_shrink=0.3846 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0183) | blend_weight=0.0183
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=0.8749
prior_reliability=0.0733
competition=Premier League | totalShots: 1.7924 -> 1.7596 totalCross: 0.5064 -> 0.5263 interceptionWon: 2.2053 -> 2.2232 wasFouled: 3.091 -> 3.0781 onTargetScoringAttempt: 0.5777 -> 0.5671 fouls: 0.504 -> 0.4948 goalAssist: 0.4284 -> 0.4205 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Trai Hume, Reinildo Mandava', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.207, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.0103, 'skill_edge': 0.007, 'height_edge': 0.0, 'attacker_skill': 0.5953, 'defender_skill': 0.5797, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Trai Hume', 'market_value': 20000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6914}, {'player': 'Reinildo Mandava', 'market_value': 4099999, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4679}], 'xg_override': 0.1695} | totalShots: 1.7818 -> 1.8002 shotOffTarget: 1.2147 -> 1.2272 onTargetScoringAttempt: 0.5671 -> 0.5729 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.39 (squad xG sum 0.9518, xG scale 1.4594, xA scale 1.5808, team xA 0.90 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.389
squad_xg_sum=0.9518
squad_xa_sum=0.5711
team_expected_assists=0.9029
team_xa_to_xg_ratio=0.65 | expected_goals: 0.1695 -> 0.2474 expected_assists: 0.0289 -> 0.0457 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 73.0) | match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.2192
goal_rate=0.1908
scorer_weight=0.2714 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0447
assist_rate=0.4205
provider_weight=0.0571 | - |
|
| Jack Rudoni | M | 81 | 0 | 0.24 | 0.15 | 58% | 2 | 0.8 | 6.9 | 45.9 | 17 | XGBoost M_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0157, quality 0.641) | market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.0157
reference_quality=0.505
history_matches=8
history_shrink=0.3846 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Nordi Mukiele', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.466, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9791, 'skill_edge': -0.0142, 'height_edge': 0.0, 'attacker_skill': 0.6408, 'defender_skill': 0.6723, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Nordi Mukiele', 'market_value': 17100000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.6723}], 'xg_override': 0.1672} | aerialWon: 1.0917 -> 1.2 totalShots: 1.7751 -> 1.738 shotOffTarget: 1.1407 -> 1.1169 onTargetScoringAttempt: 0.6343 -> 0.621 expectedGoalsOnTarget: 0.3367 -> 0.3297 bigChanceMissed: 0.2666 -> 0.261 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.39 (squad xG sum 0.9518, xG scale 1.4594, xA scale 1.5808, team xA 0.90 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.389
squad_xg_sum=0.9518
squad_xa_sum=0.5711
team_expected_assists=0.9029
team_xa_to_xg_ratio=0.65 | expected_goals: 0.1672 -> 0.244 expected_assists: 0.1506 -> 0.238 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 75.0) | match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.2165
goal_rate=0.1982
scorer_weight=0.2788 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=1
assist_probability=0.2118
assist_rate=0.0972
provider_weight=0.1904 | - |
|
| Carl Rushworth | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 6.9 | 36.8 | 14 | FBref Prior G_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost G_service raw output over 3 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0157, quality 0.641) | market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.0157
reference_quality=0.505
history_matches=8
history_shrink=0.3846 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0333) | blend_weight=0.0333
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League | saves: 2.808 -> 2.7644 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Brian Brobbey, Enzo Le Fée', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.3471} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.39 (squad xG sum 0.9518, xG scale 1.4594, xA scale 1.5808, team xA 0.90 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.389
squad_xg_sum=0.9518
squad_xa_sum=0.5711
team_expected_assists=0.9029
team_xa_to_xg_ratio=0.65 | shots_faced: 12.8 -> 13.2 expected_saves: 3.13 -> 3.23 high_pressure_saves: 1.08 -> 1.11 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 76.0) | match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.5573 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0
provider_weight=0.0
squad_weight_total=0.8636 | - |
|
| Milan van Ewijk | D | 90 | 0 | 0.00 | 0.00 | 433% | 0 | 0.1 | 6.7 | 37.9 | 16 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0193, quality 0.660) | market_value_eur=23000000
quality_factor=0.6595
boost_factor=1.0193
reference_quality=0.505
history_matches=7
history_shrink=0.4167 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0361) | blend_weight=0.0361
history_matches=7
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League | wasFouled: 0.8553 -> 0.8244 wonTackle: 1.1908 -> 1.1659 interceptionWon: 1.1694 -> 1.1452 fouls: 0.5672 -> 0.5828 totalShots: 0.3901 -> 0.376 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Brian Brobbey', 'matchup_zone': 'Shape fallback'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.39 (squad xG sum 0.9518, xG scale 1.4594, xA scale 1.5808, team xA 0.90 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.389
squad_xg_sum=0.9518
squad_xa_sum=0.5711
team_expected_assists=0.9029
team_xa_to_xg_ratio=0.65 | expected_assists: 0.0583 -> 0.0922 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 75.0) | match_squad_rank=11
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0044
goal_rate=0.0
scorer_weight=0.0042 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0881
assist_rate=0.0
provider_weight=0.0738 | - |
|
| Stephen Mfuni | D | 90 | 0 | 0.15 | 0.02 | 603% | 1 | 0.3 | 6.7 | 15.5 | 14 | XGBoost D_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9873, quality 0.437) | market_value_eur=2700000
quality_factor=0.4374
boost_factor=0.9873
reference_quality=0.505
history_matches=3
history_shrink=0.625 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Brian Brobbey', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.39 (squad xG sum 0.9518, xG scale 1.4594, xA scale 1.5808, team xA 0.90 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.389
squad_xg_sum=0.9518
squad_xa_sum=0.5711
team_expected_assists=0.9029
team_xa_to_xg_ratio=0.65 | expected_goals: 0.1026 -> 0.1497 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 69.0) | match_squad_rank=14
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.139
goal_rate=0.3262
scorer_weight=0.1871 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0096
assist_rate=0.0
provider_weight=0.0086 | - |
|
| Ethan Pinnock | D | 88 | 0 | 0.03 | 0.01 | 441% | 1 | 0.1 | 6.7 | 16.3 | 34 | XGBoost D_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9937, quality 0.437) | market_value_eur=2800000
quality_factor=0.4374
boost_factor=0.9937
reference_quality=0.505
history_matches=11
history_shrink=0.3125 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Brian Brobbey', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.39 (squad xG sum 0.9518, xG scale 1.4594, xA scale 1.5808, team xA 0.90 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.389
squad_xg_sum=0.9518
squad_xa_sum=0.5711
team_expected_assists=0.9029
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0203 -> 0.0296 expected_assists: 0.0143 -> 0.0226 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 75.0) | match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0292
goal_rate=0.0
scorer_weight=0.0237 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0223
assist_rate=0.0
provider_weight=0.0181 | - |
|
| Jay DaSilva | D | 90 | 0 | 0.08 | 0.05 | 66% | 0 | 0.3 | 6.7 | 44.0 | 17 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0042, quality 0.541) | market_value_eur=11600000
quality_factor=0.5411
boost_factor=1.0042
reference_quality=0.505
history_matches=8
history_shrink=0.3846 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0333) | blend_weight=0.0333
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=0.9959
prior_reliability=0.1333
competition=Premier League | interceptionWon: 0.8395 -> 0.8281 onTargetScoringAttempt: 0.2053 -> 0.2151 goalAssist: 0.1496 -> 0.1446 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Granit Xhaka', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.39 (squad xG sum 0.9518, xG scale 1.4594, xA scale 1.5808, team xA 0.90 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.389
squad_xg_sum=0.9518
squad_xa_sum=0.5711
team_expected_assists=0.9029
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0549 -> 0.0801 expected_assists: 0.087 -> 0.1375 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 73.0) | match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.077
goal_rate=0.1229
scorer_weight=0.1001 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1285
assist_rate=0.1446
provider_weight=0.1719 | - |
|
| Matt Grimes | M | 88 | 0 | 0.05 | 0.01 | 359% | 0 | 0.4 | 6.9 | 39.0 | 14 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9953, quality 0.465) | market_value_eur=5200000
quality_factor=0.4646
boost_factor=0.9953
reference_quality=0.505
history_matches=8
history_shrink=0.3846 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0333) | blend_weight=0.0333
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=0.9761
prior_reliability=0.1333
competition=Premier League | totalCross: 2.0676 -> 2.1613 fouls: 0.7791 -> 0.7531 wonTackle: 0.6086 -> 0.5883 wasFouled: 0.4719 -> 0.4887 interceptionWon: 0.3916 -> 0.3785 onTargetScoringAttempt: 0.1526 -> 0.1475 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Noah Sadiki', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.284, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.8004, 'skill_edge': -0.1558, 'height_edge': 0.02, 'attacker_skill': 0.4759, 'defender_skill': 0.8221, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Noah Sadiki', 'market_value': 42000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8221}], 'xg_override': 0.036} | aerialWon: 0.7309 -> 1.0 totalShots: 0.5891 -> 0.4715 shotOffTarget: 0.44 -> 0.3522 onTargetScoringAttempt: 0.1475 -> 0.1181 goals: 0.0549 -> 0.0439 expectedGoals: 0.045 -> 0.036 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.39 (squad xG sum 0.9518, xG scale 1.4594, xA scale 1.5808, team xA 0.90 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.389
squad_xg_sum=0.9518
squad_xa_sum=0.5711
team_expected_assists=0.9029
team_xa_to_xg_ratio=0.65 | expected_goals: 0.036 -> 0.0525 expected_assists: 0.068 -> 0.1075 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 76.0) | match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0511
goal_rate=0.0439
scorer_weight=0.0573 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1019
assist_rate=0.0615
provider_weight=0.1016 | - |
|
| Caleb Yirenkyi | M | 75 | 0 | 0.05 | 0.00 | 2008% | 1 | 0.1 | 6.7 | 37.1 | 14 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0178, quality 0.660) | market_value_eur=23000000
quality_factor=0.6595
boost_factor=1.0178
reference_quality=0.505
history_matches=8
history_shrink=0.3846 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0250) | blend_weight=0.025
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=0.8281
prior_reliability=0.1
competition=Premier League | interceptionWon: 1.0472 -> 1.021 wonTackle: 0.3542 -> 0.3453 fouls: 1.9683 -> 1.9605 totalCross: 0.2785 -> 0.2853 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Noah Sadiki', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.399, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9686, 'skill_edge': -0.0573, 'height_edge': 0.036, 'attacker_skill': 0.6946, 'defender_skill': 0.8221, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Noah Sadiki', 'market_value': 42000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8221}], 'xg_override': 0.0355} | aerialWon: 0.8202 -> 1.1 totalShots: 0.5422 -> 0.5252 shotOffTarget: 0.3957 -> 0.3833 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.39 (squad xG sum 0.9518, xG scale 1.4594, xA scale 1.5808, team xA 0.90 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.389
squad_xg_sum=0.9518
squad_xa_sum=0.5711
team_expected_assists=0.9029
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0355 -> 0.0518 expected_assists: 0.0364 -> 0.0575 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 73.0) | match_squad_rank=12
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0505
goal_rate=0.0447
scorer_weight=0.0574 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0559
assist_rate=0.059
provider_weight=0.0719 | - |
|
| Tatsuhiro Sakamoto | F | 81 | 0 | 0.14 | 0.01 | 1167% | 1 | 0.2 | 6.8 | 16.4 | 25 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9914, quality 0.454) | market_value_eur=4300000
quality_factor=0.4535
boost_factor=0.9914
reference_quality=0.505
history_matches=4
history_shrink=0.5556 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0096) | blend_weight=0.0096
history_matches=4
season_overlap_discount=1.0
per90_to_match_factor=0.9018
prior_reliability=0.0267
competition=Premier League | totalCross: 1.7243 -> 1.7729 wonTackle: 1.3155 -> 1.3463 totalShots: 1.1772 -> 1.1903 wasFouled: 1.0648 -> 1.0545 fouls: 0.8867 -> 0.8782 interceptionWon: 0.5359 -> 0.5307 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Trai Hume, Reinildo Mandava', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 0.8578, 'skill_edge': -0.0567, 'height_edge': -0.04, 'attacker_skill': 0.4535, 'defender_skill': 0.5797, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Trai Hume', 'market_value': 20000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6914}, {'player': 'Reinildo Mandava', 'market_value': 4099999, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4679}], 'xg_override': 0.096} | totalShots: 1.1903 -> 1.021 shotOffTarget: 0.7915 -> 0.6789 onTargetScoringAttempt: 0.3819 -> 0.3276 goals: 0.1303 -> 0.1118 expectedGoals: 0.1119 -> 0.096 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.39 (squad xG sum 0.9518, xG scale 1.4594, xA scale 1.5808, team xA 0.90 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.389
squad_xg_sum=0.9518
squad_xa_sum=0.5711
team_expected_assists=0.9029
team_xa_to_xg_ratio=0.65 | expected_goals: 0.096 -> 0.1401 expected_assists: 0.0395 -> 0.0624 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 74.0) | match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1307
goal_rate=0.1118
scorer_weight=0.1553 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0605
assist_rate=0.0
provider_weight=0.0499 | - |
|
| Team totals | 1 | 1.39 | | 10 | | 6.8 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Daniel Bentley | G | 4.4m | 10.9% | Market-value substitute prior |
| Bobby Thomas | D | 14.4m | 23.3% | Market-value substitute prior |
| Aurèle Amenda | D | 14.2m | 22.9% | Market-value substitute prior |
| Victor Torp | M | 23.9m | 70.3% | Market-value substitute prior |
| Josh Eccles | M | 22.3m | 51.3% | Market-value substitute prior |
| Loum Tchaouna | F | 26.0m | 34.9% | Market-value substitute prior |
Sunderland — projected line vs season baseline (4-2-3-1)
| Player | Pos | Min | Proj G | Proj xG | Season xG/g | | Proj Sh | Season Sh/g | Proj Rtg | Season Rtg | Rec | Model / FBref Prior |
|---|
| Trai Hume | D | 87 | 0 | 0.04 | 0.05 | ok | 1 | 0.9 | 6.8 | 54.1 | 36 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0038, quality 0.631) | market_value_eur=20000000
quality_factor=0.6311
boost_factor=1.0038
reference_quality=0.505
history_matches=45
history_shrink=0.1 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0082) | blend_weight=0.0082
history_matches=45
season_overlap_discount=1.0
per90_to_match_factor=0.9672
prior_reliability=0.1267
competition=Premier League | wonTackle: 1.0986 -> 1.1063 wasFouled: 0.6325 -> 0.6273 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Sidiki Cherif', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.39 (squad xG sum 1.3995, xG scale 0.9947, xA scale 1.1255, team xA 0.90 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.392
squad_xg_sum=1.3995
squad_xa_sum=0.8039
team_expected_assists=0.9048
team_xa_to_xg_ratio=0.65 | expected_assists: 0.069 -> 0.0777 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 78.0) | match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0394
goal_rate=0.0703
scorer_weight=0.0503 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0748
assist_rate=0.001
provider_weight=0.0622 | - |
|
| Luke O'Nien | D | 87 | 0 | 0.05 | 0.01 | 515% | 1 | 0.2 | 6.8 | 22.9 | 38 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9949, quality 0.437) | market_value_eur=660000
quality_factor=0.4374
boost_factor=0.9949
reference_quality=0.505
history_matches=15
history_shrink=0.25 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0076) | blend_weight=0.0076
history_matches=15
season_overlap_discount=1.0
per90_to_match_factor=0.9627
prior_reliability=0.0467
competition=Premier League | fouls: 0.7124 -> 0.7279 totalCross: 1.4 -> 1.4102 interceptionWon: 0.8092 -> 0.8031 wasFouled: 0.7525 -> 0.7468 wonTackle: 0.7108 -> 0.7054 totalShots: 0.6552 -> 0.6602 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Tatsuhiro Sakamoto', 'matchup_zone': 'Shape fallback'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.39 (squad xG sum 1.3995, xG scale 0.9947, xA scale 1.1255, team xA 0.90 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.392
squad_xg_sum=1.3995
squad_xa_sum=0.8039
team_expected_assists=0.9048
team_xa_to_xg_ratio=0.65 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 73.0) | match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0493
goal_rate=0.0
scorer_weight=0.0405 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0188
assist_rate=0.1575
provider_weight=0.0238 | - |
|
| Nordi Mukiele | D | 83 | 0 | 0.09 | 0.07 | 42% | 1 | 0.8 | 6.9 | 51.4 | 31 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0033, quality 0.602) | market_value_eur=17100000
quality_factor=0.6016
boost_factor=1.0033
reference_quality=0.505
history_matches=39
history_shrink=0.1136 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0049) | blend_weight=0.0049
history_matches=39
season_overlap_discount=1.0
per90_to_match_factor=0.9248
prior_reliability=0.0667
competition=Premier League | totalCross: 2.6647 -> 2.6561 totalShots: 1.2723 -> 1.266 wonTackle: 1.23 -> 1.2239 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Jack Rudoni', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.39 (squad xG sum 1.3995, xG scale 0.9947, xA scale 1.1255, team xA 0.90 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.392
squad_xg_sum=1.3995
squad_xa_sum=0.8039
team_expected_assists=0.9048
team_xa_to_xg_ratio=0.65 | expected_assists: 0.0652 -> 0.0734 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 81.0) | match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.089
goal_rate=0.0506
scorer_weight=0.0746 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0708
assist_rate=0.0255
provider_weight=0.0587 | - |
|
| Reinildo Mandava | D | 86 | 0 | 0.00 | 0.00 | 49% | 0 | 0.0 | 6.7 | 48.5 | 26 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9978, quality 0.451) | market_value_eur=4099999
quality_factor=0.4511
boost_factor=0.9978
reference_quality=0.505
history_matches=32
history_shrink=0.1351 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0117) | blend_weight=0.0117
history_matches=32
season_overlap_discount=1.0
per90_to_match_factor=0.9611
prior_reliability=0.1333
competition=Premier League | fouls: 1.2211 -> 1.2349 totalCross: 0.6665 -> 0.6756 interceptionWon: 1.1924 -> 1.2009 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Sidiki Cherif', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.39 (squad xG sum 1.3995, xG scale 0.9947, xA scale 1.1255, team xA 0.90 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.392
squad_xg_sum=1.3995
squad_xa_sum=0.8039
team_expected_assists=0.9048
team_xa_to_xg_ratio=0.65 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 80.0) | match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0013
goal_rate=0.0
scorer_weight=0.0013 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0346
assist_rate=0.013
provider_weight=0.0282 | - |
|
| Granit Xhaka | M | 90 | 0 | 0.05 | 0.02 | 130% | 1 | 0.5 | 7.2 | 59.0 | 30 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0000, quality 0.505) | market_value_eur=8500000
quality_factor=0.5047
boost_factor=1.0
reference_quality=0.505
history_matches=42
history_shrink=0.1064 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0092) | blend_weight=0.0092
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.996
prior_reliability=0.1333
competition=Premier League | wasFouled: 1.7737 -> 1.7895 totalShots: 0.681 -> 0.6747 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Jay DaSilva', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.499, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0278, 'skill_edge': -0.0411, 'height_edge': 0.06, 'attacker_skill': 0.5047, 'defender_skill': 0.5961, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Jay DaSilva', 'market_value': 11600000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.5961}], 'xg_override': 0.0487} | aerialWon: 0.7194 -> 1.2 totalShots: 0.679 -> 0.6979 shotOffTarget: 0.4729 -> 0.486 onTargetScoringAttempt: 0.2061 -> 0.2118 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.39 (squad xG sum 1.3995, xG scale 0.9947, xA scale 1.1255, team xA 0.90 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.392
squad_xg_sum=1.3995
squad_xa_sum=0.8039
team_expected_assists=0.9048
team_xa_to_xg_ratio=0.65 | expected_assists: 0.1624 -> 0.1828 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 85.0) | match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0472
goal_rate=0.0464
scorer_weight=0.0473 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=1
assist_probability=0.1671
assist_rate=0.099
provider_weight=0.1462 | - |
|
| Noah Sadiki | M | 86 | 0 | 0.08 | 0.05 | 56% | 1 | 0.6 | 6.8 | 54.6 | 31 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0093, quality 0.791) | market_value_eur=42000000
quality_factor=0.7909
boost_factor=1.0093
reference_quality=0.505
history_matches=41
history_shrink=0.1087 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0094) | blend_weight=0.0094
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=0.9541
prior_reliability=0.1333
competition=Premier League | wonTackle: 0.6898 -> 0.6968 wasFouled: 1.1767 -> 1.1836 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Matt Grimes', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.556, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.1996, 'skill_edge': 0.1558, 'height_edge': -0.02, 'attacker_skill': 0.8221, 'defender_skill': 0.4759, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Matt Grimes', 'market_value': 5200000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4759}], 'xg_override': 0.0819} | aerialWon: 0.5138 -> 0.9 totalShots: 0.8317 -> 0.9977 shotOffTarget: 0.4966 -> 0.5957 onTargetScoringAttempt: 0.3351 -> 0.402 bigChanceMissed: 0.1504 -> 0.1804 goals: 0.0765 -> 0.0918 expectedGoals: 0.0683 -> 0.0819 expectedGoalsOnTarget: 0.0301 -> 0.0361 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.39 (squad xG sum 1.3995, xG scale 0.9947, xA scale 1.1255, team xA 0.90 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.392
squad_xg_sum=1.3995
squad_xa_sum=0.8039
team_expected_assists=0.9048
team_xa_to_xg_ratio=0.65 | expected_assists: 0.0675 -> 0.076 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 80.0) | match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0783
goal_rate=0.0918
scorer_weight=0.0876 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0732
assist_rate=0.1112
provider_weight=0.095 | - |
|
| Chris Rigg | M | 73 | 0 | 0.11 | 0.02 | 539% | 1 | 0.3 | 6.7 | 25.4 | 34 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0091, quality 0.669) | market_value_eur=24000000
quality_factor=0.6685
boost_factor=1.0091
reference_quality=0.505
history_matches=22
history_shrink=0.1852 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0016) | blend_weight=0.0016
history_matches=22
season_overlap_discount=1.0
per90_to_match_factor=0.8064
prior_reliability=0.0133
competition=Premier League | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Matt Grimes', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.519, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.1451, 'skill_edge': 0.1027, 'height_edge': -0.004, 'attacker_skill': 0.704, 'defender_skill': 0.4759, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Matt Grimes', 'market_value': 5200000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4759}], 'xg_override': 0.1145} | aerialWon: 0.28 -> 1.0 totalShots: 1.1327 -> 1.2971 shotOffTarget: 0.7085 -> 0.8113 onTargetScoringAttempt: 0.4242 -> 0.4858 expectedGoals: 0.1 -> 0.1145 expectedGoalsOnTarget: 0.0985 -> 0.1128 goals: 0.0935 -> 0.1071 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.39 (squad xG sum 1.3995, xG scale 0.9947, xA scale 1.1255, team xA 0.90 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.392
squad_xg_sum=1.3995
squad_xa_sum=0.8039
team_expected_assists=0.9048
team_xa_to_xg_ratio=0.65 | expected_assists: 0.059 -> 0.0664 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 74.0) | match_squad_rank=14
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1077
goal_rate=0.1071
scorer_weight=0.1088 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0642
assist_rate=0.0749
provider_weight=0.0761 | - |
|
| Enzo Le Fée | M | 87 | 0 | 0.16 | 0.15 | ok | 2 | 1.1 | 6.9 | 57.3 | 33 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0060, quality 0.702) | market_value_eur=28000000
quality_factor=0.7022
boost_factor=1.006
reference_quality=0.505
history_matches=44
history_shrink=0.102 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0084) | blend_weight=0.0084
history_matches=44
season_overlap_discount=1.0
per90_to_match_factor=0.9634
prior_reliability=0.1267
competition=Premier League | totalCross: 3.0227 -> 3.0143 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Matt Grimes, Caleb Yirenkyi', 'matchup_zone': 'Attacking Mid vs Double Pivot — Tight Space Battle', 'duel_win_rate': 0.27, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.0438, 'skill_edge': 0.0578, 'height_edge': -0.028, 'attacker_skill': 0.7136, 'defender_skill': 0.5852, 'attacker_role': 'CAM', 'attacker_mv_price_index': 0.95, 'defender_adjusted_parts': [{'player': 'Matt Grimes', 'market_value': 5200000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4759}, {'player': 'Caleb Yirenkyi', 'market_value': 23000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.6946}], 'xg_override': 0.1606} | aerialWon: 0.4435 -> 0.9 totalShots: 1.5885 -> 1.6581 shotOffTarget: 1.0833 -> 1.1307 onTargetScoringAttempt: 0.5014 -> 0.5234 expectedGoalsOnTarget: 0.1656 -> 0.1729 goals: 0.1613 -> 0.1684 expectedGoals: 0.1539 -> 0.1606 bigChanceMissed: 0.1445 -> 0.1508 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.39 (squad xG sum 1.3995, xG scale 0.9947, xA scale 1.1255, team xA 0.90 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.392
squad_xg_sum=1.3995
squad_xa_sum=0.8039
team_expected_assists=0.9048
team_xa_to_xg_ratio=0.65 | expected_assists: 0.1462 -> 0.1645 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 80.0) | match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1476
goal_rate=0.1684
scorer_weight=0.1656 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1517
assist_rate=0.108
provider_weight=0.1325 | - |
|
| Nilson Angulo | F | 71 | 0 | 0.16 | 0.07 | 132% | 2 | 0.6 | 6.8 | 41.0 | 32 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0090, quality 0.625) | market_value_eur=19400000
quality_factor=0.6251
boost_factor=1.009
reference_quality=0.505
history_matches=15
history_shrink=0.25 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0152) | blend_weight=0.0152
history_matches=15
season_overlap_discount=1.0
per90_to_match_factor=0.7931
prior_reliability=0.0933
competition=Premier League | totalCross: 0.9321 -> 0.9523 wasFouled: 1.1039 -> 1.1215 interceptionWon: 1.1776 -> 1.1683 goals: 0.1787 -> 0.1846 totalShots: 1.5176 -> 1.5124 fouls: 1.4681 -> 1.463 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Ethan Pinnock, Stephen Mfuni', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.235, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.0511, 'skill_edge': 0.0807, 'height_edge': -0.046, 'attacker_skill': 0.6251, 'defender_skill': 0.4457, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Ethan Pinnock', 'market_value': 2800000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4465}, {'player': 'Stephen Mfuni', 'market_value': 2700000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4449}], 'xg_override': 0.1559} | totalShots: 1.5176 -> 1.5951 shotOffTarget: 0.9337 -> 0.9814 onTargetScoringAttempt: 0.5839 -> 0.6137 bigChanceMissed: 0.3327 -> 0.3497 goals: 0.1846 -> 0.194 expectedGoals: 0.1483 -> 0.1559 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.39 (squad xG sum 1.3995, xG scale 0.9947, xA scale 1.1255, team xA 0.90 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.392
squad_xg_sum=1.3995
squad_xa_sum=0.8039
team_expected_assists=0.9048
team_xa_to_xg_ratio=0.65 | expected_assists: 0.0704 -> 0.0792 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 73.0) | match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1437
goal_rate=0.194
scorer_weight=0.1838 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0761
assist_rate=0.1255
provider_weight=0.099 | - |
|
| Robin Roefs | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 6.7 | 53.8 | 31 | FBref Prior G_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost G_service raw output over 3 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0069, quality 0.725) | market_value_eur=31000000
quality_factor=0.7249
boost_factor=1.0069
reference_quality=0.505
history_matches=43
history_shrink=0.1042 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0090) | blend_weight=0.009
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League | saves: 2.8496 -> 2.8284 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Sidiki Cherif, Brandon Thomas-Asante', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.1997} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.39 (squad xG sum 1.3995, xG scale 0.9947, xA scale 1.1255, team xA 0.90 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.392
squad_xg_sum=1.3995
squad_xa_sum=0.8039
team_expected_assists=0.9048
team_xa_to_xg_ratio=0.65 | shots_faced: 11.4 -> 13.2 expected_saves: 2.79 -> 3.23 high_pressure_saves: 0.96 -> 1.11 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 81.0) | match_squad_rank=11
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.5422 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0
provider_weight=0.0
squad_weight_total=0.8379 | - |
|
| Brian Brobbey | F | 79 | 1 | 0.52 | 0.27 | 91% | 4 | 1.4 | 7.0 | 53.3 | 30 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0118, quality 0.834) | market_value_eur=53000000
quality_factor=0.834
boost_factor=1.0118
reference_quality=0.505
history_matches=37
history_shrink=0.119 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0072) | blend_weight=0.0072
history_matches=37
season_overlap_discount=1.0
per90_to_match_factor=0.8738
prior_reliability=0.0933
competition=Premier League | wasFouled: 1.9205 -> 1.9111 totalOffside: 0.7753 -> 0.7832 totalShots: 2.6429 -> 2.6369 onTargetScoringAttempt: 1.3294 -> 1.3242 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Ethan Pinnock, Stephen Mfuni', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.321, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.1775, 'skill_edge': 0.1747, 'height_edge': -0.054, 'attacker_skill': 0.834, 'defender_skill': 0.4457, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Ethan Pinnock', 'market_value': 2800000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4465}, {'player': 'Stephen Mfuni', 'market_value': 2700000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4449}], 'xg_override': 0.521} | totalShots: 2.6377 -> 3.1059 onTargetScoringAttempt: 1.3242 -> 1.5592 shotOffTarget: 1.3135 -> 1.5466 goals: 0.5666 -> 0.6672 expectedGoalsOnTarget: 0.5294 -> 0.6234 bigChanceMissed: 0.4833 -> 0.5691 expectedGoals: 0.4425 -> 0.521 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | goals: 1.0 -> 0 | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.39 (squad xG sum 1.3995, xG scale 0.9947, xA scale 1.1255, team xA 0.90 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.392
squad_xg_sum=1.3995
squad_xa_sum=0.8039
team_expected_assists=0.9048
team_xa_to_xg_ratio=0.65 | expected_assists: 0.0446 -> 0.0502 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 78.0) | match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.4043
goal_rate=0.6672
scorer_weight=0.6476 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.049
assist_rate=0.0
provider_weight=0.0402 | - |
|
| Team totals | 1 | 1.39 | | 17 | | 6.8 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Anthony Patterson | G | 4.6m | 11.9% | Market-value substitute prior |
| Daniel Ballard | D | 14.6m | 23.8% | Market-value substitute prior |
| Lutsharel Geertruida | D | 14.4m | 33.7% | Market-value substitute prior |
| Habib Diarra | M | 18.7m | 71.8% | Market-value substitute prior |
| Dayann Methalie | M | 23.0m | 54.5% | Market-value substitute prior |
| Malick Fofana | F | 26.4m | 60.8% | Market-value substitute prior |
Antagonist / tactical summary
Midfield is evenly contested — Caleb Yirenkyi vs Noah Sadiki will be the pivotal duel. Total antagonist xG — Home: 0.73, Away: 1.08. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Midfield — possession 48.5% / 51.5%, dominance ratio 0.46, key duel: Caleb Yirenkyi vs Noah Sadiki
Jack Rudoni xG 0.17Sidiki Cherif xG 0.23Brandon Thomas-Asante xG 0.17Granit Xhaka xG 0.05Enzo Le Fée xG 0.16Brian Brobbey xG 0.52
Summary
Antagonist matchup analysis for Coventry vs Sunderland. Most likely scoreline: 1-1. Lambdas derived from 6 home and 6 away individual player duels. Head-to-head: Coventry 4W-5D-1L vs Sunderland over 10 meetings.
Tactical parity between 4-2-3-1 and 4-2-3-1. Match outcome driven primarily by individual player quality. Midfield is evenly contested — Caleb Yirenkyi vs Noah Sadiki will be the pivotal duel. Total antagonist xG — Home: 0.73, Away: 1.08. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Generated 2026-10-31 13:37:35 UTC · Soccer prediction reporting