Soccer predictions: actual data vs predicted data
Slate 20261108 · 10 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
Man Utd vs Aston Villa
Premier League · 20261108 · 4-2-3-1 vs 4-2-3-1
Predicted 1-0Winner: Man UtdWinning H 1-0 (10.4%)Winning A 0-1 (6.6%)Confidence 0.68λ home/away 1.70 / 1.08Most-likely P 10.4%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset TracingAntagonist + XGBoost match analysis for Man Utd vs Aston Villa. 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.573, Away 1.085). Final calibrated Poisson lambdas: Home 1.698, Away 1.083 (most likely score 1-0).
Home Starters 11/11 XGBoost (9 FBref) Away Starters 11/11 XGBoost (9 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.57 / 1.08 Final λ (H/A) 1.70 / 1.08
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 Utd | Aston Villa |
|---|
| League position | 17.00 | 9.00 |
| Points per game | 1.01 | 1.34 |
| Attack index | 0.96 | 0.88 |
| Defense (concede) index | 0.98 | 1.15 |
| Form multiplier | 0.98 | 1.02 |
| Standing λ multiplier | 0.97 | 1.01 |
Lambda decomposition (how the goal rates were built)
| Stage | Man Utd λ | Aston Villa λ |
|---|
| Pre-competitive-floor | 1.779 | 1.022 |
| Pre-calibration (Micro-duels) | 1.573 | 1.085 |
| Final λ | 1.698 | 1.083 |
competition calibration scale 0.993competition 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 | 11.5% |
| 1-0 | 10.4% |
| 2-1 | 9.7% |
| 2-0 | 8.9% |
| 0-1 | 6.6% |
| Home win | 51.7% |
| Draw | 24.2% |
| Away win | 24.1% |
| Over 2.5 | 52.6% |
| BTTS yes | 54.1% |
Pregame fair line — favorite Man Utd (51.7%), fair total 2.78, fair spread 0.61
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 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 |
|---|
| Senne Lammens | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 6.9 | 60.0 | 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.770) | market_value_eur=38000000
quality_factor=0.7699
boost_factor=1.0086
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=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.085} | - | 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.70 (squad xG sum 1.2053, xG scale 1.4087, xA scale 1.4087, team xA 1.16 = 0.68 x lambda) | scoreline_reset=true
team_lambda=1.698
squad_xg_sum=1.2053
squad_xa_sum=0.8253
team_expected_assists=1.1626
team_xa_to_xg_ratio=0.6847 | - | 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: 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.7229 | - | 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.1277 | - |
|
| Matthijs de Ligt | D | 90 | 0 | 0.19 | - | n/a | 1 | 0.0 | 6.9 | - | 8 | 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.0151, quality 0.686) | market_value_eur=26000000
quality_factor=0.6858
boost_factor=1.0151
reference_quality=0.505
history_matches=13
history_shrink=0.2778 | - | 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 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.70 (squad xG sum 1.2053, xG scale 1.4087, xA scale 1.4087, team xA 1.16 = 0.68 x lambda) | scoreline_reset=true
team_lambda=1.698
squad_xg_sum=1.2053
squad_xa_sum=0.8253
team_expected_assists=1.1626
team_xa_to_xg_ratio=0.6847 | expected_goals: 0.1327 -> 0.1869 expected_assists: 0.0644 -> 0.0907 | 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.1705
goal_rate=0.1252
scorer_weight=0.1792 | - | 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.0867
assist_rate=0.0
provider_weight=0.0726 | - |
|
| Harry Maguire | D | 90 | 0 | 0.05 | 0.04 | ok | 1 | 0.6 | 6.9 | 55.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.0000, quality 0.506) | market_value_eur=8600000
quality_factor=0.5059
boost_factor=1.0
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.9944
prior_reliability=0.1333
competition=Premier League | totalShots: 0.5777 -> 0.5884 wonTackle: 0.7832 -> 0.774 totalCross: 0.3087 -> 0.3167 | 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 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.70 (squad xG sum 1.2053, xG scale 1.4087, xA scale 1.4087, team xA 1.16 = 0.68 x lambda) | scoreline_reset=true
team_lambda=1.698
squad_xg_sum=1.2053
squad_xa_sum=0.8253
team_expected_assists=1.1626
team_xa_to_xg_ratio=0.6847 | expected_goals: 0.0339 -> 0.0478 expected_assists: 0.0385 -> 0.0542 | 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.0467
goal_rate=0.0027
scorer_weight=0.0382 | - | 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.0528
assist_rate=0.02
provider_weight=0.0434 | - |
|
| Luke Shaw | D | 85 | 0 | 0.02 | 0.02 | ok | 1 | 0.4 | 6.8 | 56.0 | 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.9996, quality 0.493) | market_value_eur=7500000
quality_factor=0.4927
boost_factor=0.9996
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.9459
prior_reliability=0.12
competition=Premier League | totalCross: 1.5215 -> 1.539 fouls: 0.9998 -> 0.9917 | 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': 'Lamare Bogarde', '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.70 (squad xG sum 1.2053, xG scale 1.4087, xA scale 1.4087, team xA 1.16 = 0.68 x lambda) | scoreline_reset=true
team_lambda=1.698
squad_xg_sum=1.2053
squad_xa_sum=0.8253
team_expected_assists=1.1626
team_xa_to_xg_ratio=0.6847 | expected_goals: 0.0175 -> 0.0247 expected_assists: 0.0837 -> 0.1179 | 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=0
goal_probability=0.0244
goal_rate=0.059
scorer_weight=0.0309 | - | 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.1112
assist_rate=0.1082
provider_weight=0.1395 | - |
|
| Lisandro Martínez | D | 80 | 0 | 0.03 | 0.01 | 133% | 1 | 0.5 | 6.9 | 53.3 | 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 1.0151, quality 0.817) | market_value_eur=48000000
quality_factor=0.8168
boost_factor=1.0151
reference_quality=0.505
history_matches=26
history_shrink=0.1613 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0070) | blend_weight=0.007
history_matches=26
season_overlap_discount=1.0
per90_to_match_factor=0.8864
prior_reliability=0.0667
competition=Premier League | fouls: 1.0243 -> 1.0171 interceptionWon: 0.9449 -> 0.9383 wonTackle: 0.7598 -> 0.7545 | 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 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.70 (squad xG sum 1.2053, xG scale 1.4087, xA scale 1.4087, team xA 1.16 = 0.68 x lambda) | scoreline_reset=true
team_lambda=1.698
squad_xg_sum=1.2053
squad_xa_sum=0.8253
team_expected_assists=1.1626
team_xa_to_xg_ratio=0.6847 | expected_goals: 0.0248 -> 0.0349 expected_assists: 0.0271 -> 0.0382 | 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: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0343
goal_rate=0.0
scorer_weight=0.0279 | - | 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.0375
assist_rate=0.0
provider_weight=0.0306 | - |
|
| Bruno Fernandes | M | 90 | 0 | 0.36 | 0.21 | 68% | 3 | 2.0 | 7.2 | 60.8 | 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.0071, quality 0.732) | market_value_eur=32000000
quality_factor=0.732
boost_factor=1.0071
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.9959
prior_reliability=0.1333
competition=Premier League | totalShots: 2.0306 -> 2.0617 onTargetScoringAttempt: 0.6521 -> 0.6642 goals: 0.2543 -> 0.2655 wasFouled: 0.8104 -> 0.8031 wonTackle: 1.1007 -> 1.0953 | 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': 'Victor Lindelöf', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.559, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.1164, 'skill_edge': 0.1112, 'height_edge': -0.032, 'attacker_skill': 0.732, 'defender_skill': 0.4849, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Victor Lindelöf', 'market_value': 4800000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.4849}], 'xg_override': 0.2522} | aerialWon: 0.208 -> 1.0 totalShots: 2.0617 -> 2.3017 shotOffTarget: 1.3784 -> 1.5388 onTargetScoringAttempt: 0.6642 -> 0.7415 bigChanceMissed: 0.2721 -> 0.3038 goals: 0.2655 -> 0.2964 expectedGoals: 0.2259 -> 0.2522 expectedGoalsOnTarget: 0.1889 -> 0.2109 | 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.70 (squad xG sum 1.2053, xG scale 1.4087, xA scale 1.4087, team xA 1.16 = 0.68 x lambda) | scoreline_reset=true
team_lambda=1.698
squad_xg_sum=1.2053
squad_xa_sum=0.8253
team_expected_assists=1.1626
team_xa_to_xg_ratio=0.6847 | expected_goals: 0.2522 -> 0.3553 expected_assists: 0.1977 -> 0.2786 | 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.299
goal_rate=0.2964
scorer_weight=0.4073 | - | 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.2432
assist_rate=0.2146
provider_weight=0.2976 | - |
|
| Youri Tielemans | M | 76 | 0 | 0.08 | 0.04 | 90% | 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 | wasFouled: 1.9305 -> 1.9406 totalShots: 0.9137 -> 0.9237 totalCross: 1.4576 -> 1.4483 onTargetScoringAttempt: 0.2856 -> 0.2922 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': 'Ian Maatsen', 'matchup_zone': 'Right Wing vs Left Back — Flank Battle', 'duel_win_rate': 0.468, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9823, 'skill_edge': -0.008, 'height_edge': -0.004, 'attacker_skill': 0.7957, 'defender_skill': 0.8135, 'attacker_role': 'RW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Ian Maatsen', 'market_value': 33000000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.8135}], 'xg_override': 0.0592} | totalShots: 0.9237 -> 0.9074 aerialWon: 1.0115 -> 1.0 shotOffTarget: 0.6281 -> 0.617 onTargetScoringAttempt: 0.2922 -> 0.287 | 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.70 (squad xG sum 1.2053, xG scale 1.4087, xA scale 1.4087, team xA 1.16 = 0.68 x lambda) | scoreline_reset=true
team_lambda=1.698
squad_xg_sum=1.2053
squad_xa_sum=0.8253
team_expected_assists=1.1626
team_xa_to_xg_ratio=0.6847 | expected_goals: 0.0592 -> 0.0834 expected_assists: 0.1124 -> 0.1583 | 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
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.08
goal_rate=0.0586
scorer_weight=0.0829 | - | 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.1464
assist_rate=0.0831
provider_weight=0.1297 | - |
|
| Carlos Baleba | M | 72 | 0 | 0.08 | 0.03 | 222% | 1 | 0.6 | 6.9 | 46.5 | 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.0133, quality 0.859) | market_value_eur=63000000
quality_factor=0.8589
boost_factor=1.0133
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': 'Boubacar Kamara, João Gomes', 'matchup_zone': 'Attacking Mid vs Double Pivot — Tight Space Battle', 'duel_win_rate': 0.256, 'pressing_faced': 'HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 1.024, 'skill_edge': 0.0203, 'height_edge': -0.004, 'attacker_skill': 0.865, 'defender_skill': 0.8198, 'attacker_role': 'CAM', 'attacker_mv_price_index': 0.95, 'defender_adjusted_parts': [{'player': 'Boubacar Kamara', 'market_value': 49000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.847}, {'player': 'João Gomes', 'market_value': 36000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.7926}], 'xg_override': 0.0591} | aerialWon: 1.2996 -> 1.0 totalShots: 0.9085 -> 0.9303 shotOffTarget: 0.6997 -> 0.7165 | 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.70 (squad xG sum 1.2053, xG scale 1.4087, xA scale 1.4087, team xA 1.16 = 0.68 x lambda) | scoreline_reset=true
team_lambda=1.698
squad_xg_sum=1.2053
squad_xa_sum=0.8253
team_expected_assists=1.1626
team_xa_to_xg_ratio=0.6847 | expected_goals: 0.0591 -> 0.0833 expected_assists: 0.0362 -> 0.051 | 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: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0799
goal_rate=0.0622
scorer_weight=0.0857 | - | 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.0497
assist_rate=0.0571
provider_weight=0.0634 | - |
|
| Kobbie Mainoo | M | 87 | 0 | 0.07 | 0.02 | 202% | 1 | 0.6 | 7.1 | 58.9 | 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.0140, quality 0.879) | market_value_eur=77000000
quality_factor=0.8792
boost_factor=1.014
reference_quality=0.505
history_matches=35
history_shrink=0.125 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0060) | blend_weight=0.006
history_matches=35
season_overlap_discount=1.0
per90_to_match_factor=0.966
prior_reliability=0.0733
competition=Premier League | totalShots: 0.7147 -> 0.7306 fouls: 0.9276 -> 0.9221 | 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': 'Boubacar Kamara', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.439, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 1.028, 'skill_edge': 0.0191, 'height_edge': 0.0, 'attacker_skill': 0.8893, 'defender_skill': 0.847, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Boubacar Kamara', 'market_value': 49000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.847}], 'xg_override': 0.0525} | aerialWon: 0.3665 -> 1.1 totalShots: 0.7306 -> 0.7511 shotOffTarget: 0.535 -> 0.55 onTargetScoringAttempt: 0.1786 -> 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.70 (squad xG sum 1.2053, xG scale 1.4087, xA scale 1.4087, team xA 1.16 = 0.68 x lambda) | scoreline_reset=true
team_lambda=1.698
squad_xg_sum=1.2053
squad_xa_sum=0.8253
team_expected_assists=1.1626
team_xa_to_xg_ratio=0.6847 | expected_goals: 0.0525 -> 0.074 expected_assists: 0.0748 -> 0.1054 | 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.0713
goal_rate=0.0512
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.1
assist_rate=0.0675
provider_weight=0.0992 | - |
|
| Andrey Santos | M | 78 | 0 | 0.08 | 0.04 | 92% | 1 | 0.2 | 6.9 | 41.8 | 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.0117, quality 0.800) | market_value_eur=44000000
quality_factor=0.8002
boost_factor=1.0117
reference_quality=0.505
history_matches=33
history_shrink=0.1316 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0051) | blend_weight=0.0051
history_matches=33
season_overlap_discount=1.0
per90_to_match_factor=0.8611
prior_reliability=0.06
competition=Premier League | interceptionWon: 1.2386 -> 1.2322 | 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': 'Boubacar Kamara', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.396, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9653, 'skill_edge': -0.0076, 'height_edge': -0.016, 'attacker_skill': 0.8301, 'defender_skill': 0.847, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Boubacar Kamara', 'market_value': 49000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.847}], 'xg_override': 0.0545} | aerialWon: 0.9972 -> 1.1 totalShots: 0.5928 -> 0.5722 shotOffTarget: 0.4315 -> 0.4165 onTargetScoringAttempt: 0.1613 -> 0.1557 | 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.70 (squad xG sum 1.2053, xG scale 1.4087, xA scale 1.4087, team xA 1.16 = 0.68 x lambda) | scoreline_reset=true
team_lambda=1.698
squad_xg_sum=1.2053
squad_xa_sum=0.8253
team_expected_assists=1.1626
team_xa_to_xg_ratio=0.6847 | expected_goals: 0.0545 -> 0.0768 expected_assists: 0.037 -> 0.0521 | 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.0739
goal_rate=0.0515
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.0508
assist_rate=0.0539
provider_weight=0.0622 | - |
|
| Bryan Mbeumo | F | 87 | 1 | 0.55 | 0.39 | 41% | 3 | 2.1 | 6.9 | 58.4 | 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.0118, quality 0.875) | market_value_eur=73000000
quality_factor=0.8747
boost_factor=1.0118
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.9671
prior_reliability=0.1333
competition=Premier League | totalCross: 2.1067 -> 2.1541 totalShots: 2.3987 -> 2.4167 wonTackle: 0.3357 -> 0.3415 wasFouled: 1.0741 -> 1.0687 interceptionWon: 0.5556 -> 0.5505 | 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, Tyrone Mings', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.277, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.1126, 'skill_edge': 0.1366, 'height_edge': -0.06, 'attacker_skill': 0.8747, 'defender_skill': 0.5712, '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': 'Tyrone Mings', 'market_value': 3200000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4531}], 'xg_override': 0.3881} | totalShots: 2.4167 -> 2.6888 shotOffTarget: 1.4418 -> 1.6041 onTargetScoringAttempt: 0.9615 -> 1.0698 bigChanceMissed: 0.5462 -> 0.6077 expectedGoalsOnTarget: 0.422 -> 0.4695 expectedGoals: 0.3488 -> 0.3881 goals: 0.3367 -> 0.3746 | 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.70 (squad xG sum 1.2053, xG scale 1.4087, xA scale 1.4087, team xA 1.16 = 0.68 x lambda) | scoreline_reset=true
team_lambda=1.698
squad_xg_sum=1.2053
squad_xa_sum=0.8253
team_expected_assists=1.1626
team_xa_to_xg_ratio=0.6847 | expected_goals: 0.3881 -> 0.5466 expected_assists: 0.1128 -> 0.1589 | 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=1
goal_probability=0.4211
goal_rate=0.3746
scorer_weight=0.5298 | - | 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.1469
assist_rate=0.0157
provider_weight=0.1271 | - |
|
| Team totals | 1 | 1.70 | | 16 | | 7.0 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Dermot Mee | G | 4.4m | 10.9% | Market-value substitute prior |
| Leny Yoro | D | 16.1m | 63.1% | Market-value substitute prior |
| Ayden Heaven | D | 14.7m | 24.1% | Market-value substitute prior |
| Patrick Dorgu | M | 16.5m | 52.4% | Market-value substitute prior |
| Mason Mount | M | 22.9m | 53.9% | Market-value substitute prior |
| Matheus Cunha | F | 27.1m | 37.0% | Market-value substitute prior |
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.3 | 42.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.0254, quality 0.725) | market_value_eur=31000000
quality_factor=0.7249
boost_factor=1.0254
reference_quality=0.505
history_matches=8
history_shrink=0.3846 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0167) | blend_weight=0.0167
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.0667
competition=Premier League | saves: 3.162 -> 3.1259 wasFouled: 0.4561 -> 0.4485 | 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.573} | - | 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.08 (squad xG sum 1.1472, xG scale 0.9440, xA scale 1.2035, team xA 0.70 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.083
squad_xg_sum=1.1472
squad_xa_sum=0.5849
team_expected_assists=0.7039
team_xa_to_xg_ratio=0.65 | shots_faced: 14.9 -> 16.1 expected_saves: 3.64 -> 3.94 high_pressure_saves: 1.26 -> 1.36 | 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 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.1046 | - | 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.722 | - |
|
| Victor Lindelöf | D | 88 | 0 | 0.03 | 0.02 | 49% | 0 | 0.1 | 6.9 | 38.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 0.9978, quality 0.460) | market_value_eur=4800000
quality_factor=0.4597
boost_factor=0.9978
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.9756
prior_reliability=0.1333
competition=Premier League | interceptionWon: 0.7641 -> 0.7534 wonTackle: 0.575 -> 0.567 | 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 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.08 (squad xG sum 1.1472, xG scale 0.9440, xA scale 1.2035, team xA 0.70 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.083
squad_xg_sum=1.1472
squad_xa_sum=0.5849
team_expected_assists=0.7039
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 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 skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0328
goal_rate=0.0
scorer_weight=0.0266 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0158
assist_rate=0.007
provider_weight=0.0143 | - |
|
| Ian Maatsen | D | 85 | 0 | 0.05 | 0.04 | 37% | 1 | 0.7 | 6.7 | 50.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.0086, quality 0.739) | market_value_eur=33000000
quality_factor=0.7389
boost_factor=1.0086
reference_quality=0.505
history_matches=36
history_shrink=0.122 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0100) | blend_weight=0.01
history_matches=36
season_overlap_discount=1.0
per90_to_match_factor=0.9476
prior_reliability=0.1267
competition=Premier League | fouls: 0.9756 -> 0.9908 totalCross: 1.7818 -> 1.7689 wonTackle: 1.4636 -> 1.4539 interceptionWon: 1.1209 -> 1.1297 totalShots: 0.889 -> 0.8951 | 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': 'Youri Tielemans', 'matchup_zone': 'Right Wing vs Left 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.08 (squad xG sum 1.1472, xG scale 0.9440, xA scale 1.2035, team xA 0.70 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.083
squad_xg_sum=1.1472
squad_xa_sum=0.5849
team_expected_assists=0.7039
team_xa_to_xg_ratio=0.65 | expected_assists: 0.0923 -> 0.1111 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 79.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 skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0516
goal_rate=0.0
scorer_weight=0.0424 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.1052
assist_rate=0.0355
provider_weight=0.0889 | - |
|
| Matty Cash | D | 88 | 0 | 0.02 | 0.02 | ok | 1 | 0.6 | 6.7 | 56.2 | 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.0039, quality 0.629) | market_value_eur=19800000
quality_factor=0.6291
boost_factor=1.0039
reference_quality=0.505
history_matches=43
history_shrink=0.1042 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0086) | blend_weight=0.0086
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=0.9749
prior_reliability=0.1267
competition=Premier League | totalCross: 2.2294 -> 2.2103 wonTackle: 1.4452 -> 1.4548 wasFouled: 1.1825 -> 1.19 | 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 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.08 (squad xG sum 1.1472, xG scale 0.9440, xA scale 1.2035, team xA 0.70 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.083
squad_xg_sum=1.1472
squad_xa_sum=0.5849
team_expected_assists=0.7039
team_xa_to_xg_ratio=0.65 | expected_assists: 0.052 -> 0.0626 | 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 skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0222
goal_rate=0.0038
scorer_weight=0.0179 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0607
assist_rate=0.0407
provider_weight=0.0557 | - |
|
| Tyrone Mings | D | 89 | 0 | 0.05 | 0.04 | ok | 1 | 0.3 | 6.8 | 36.6 | 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.9965, quality 0.440) | market_value_eur=3200000
quality_factor=0.4399
boost_factor=0.9965
reference_quality=0.505
history_matches=23
history_shrink=0.1786 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0015) | blend_weight=0.0015
history_matches=23
season_overlap_discount=1.0
per90_to_match_factor=0.9889
prior_reliability=0.0133
competition=Premier League | wonTackle: 0.5261 -> 0.5329 | 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 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.08 (squad xG sum 1.1472, xG scale 0.9440, xA scale 1.2035, team xA 0.70 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.083
squad_xg_sum=1.1472
squad_xa_sum=0.5849
team_expected_assists=0.7039
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 77.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.0519
goal_rate=0.0
scorer_weight=0.0426 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0201
assist_rate=0.0
provider_weight=0.0162 | - |
|
| Boubacar Kamara | M | 87 | 0 | 0.04 | 0.01 | 173% | 0 | 0.2 | 6.9 | 48.4 | 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.0148, quality 0.821) | market_value_eur=49000000
quality_factor=0.8206
boost_factor=1.0148
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.963
prior_reliability=0.1333
competition=Premier League | wasFouled: 2.4387 -> 2.4122 wonTackle: 1.7789 -> 1.7679 totalShots: 0.5149 -> 0.5079 fouls: 1.9986 -> 2.0041 interceptionWon: 0.8701 -> 0.8648 totalCross: 0.0988 -> 0.104 | 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': 'Kobbie Mainoo', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.401, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.972, 'skill_edge': -0.0191, 'height_edge': 0.0, 'attacker_skill': 0.847, 'defender_skill': 0.8893, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Kobbie Mainoo', 'market_value': 77000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8893}], 'xg_override': 0.0417} | aerialWon: 1.2149 -> 1.1 totalShots: 0.5129 -> 0.4986 shotOffTarget: 0.3693 -> 0.359 | 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.08 (squad xG sum 1.1472, xG scale 0.9440, xA scale 1.2035, team xA 0.70 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.083
squad_xg_sum=1.1472
squad_xa_sum=0.5849
team_expected_assists=0.7039
team_xa_to_xg_ratio=0.65 | expected_assists: 0.0333 -> 0.0401 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 84.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.0386
goal_rate=0.0502
scorer_weight=0.0431 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0393
assist_rate=0.0573
provider_weight=0.0501 | - |
|
| Amadou Onana | M | 85 | 0 | 0.08 | 0.08 | ok | 1 | 0.8 | 6.8 | 45.3 | 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.0130, quality 0.764) | market_value_eur=37000000
quality_factor=0.7641
boost_factor=1.013
reference_quality=0.505
history_matches=25
history_shrink=0.1667 | - | 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': 'Kobbie Mainoo, Andrey Santos', 'matchup_zone': 'Attacking Mid vs Double Pivot — Tight Space Battle', 'duel_win_rate': 0.254, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 1.0205, 'skill_edge': -0.038, 'height_edge': 0.052, 'attacker_skill': 0.7752, 'defender_skill': 0.8597, 'attacker_role': 'CAM', 'attacker_mv_price_index': 0.95, 'defender_adjusted_parts': [{'player': 'Kobbie Mainoo', 'market_value': 77000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8893}, {'player': 'Andrey Santos', 'market_value': 44000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8301}], 'xg_override': 0.0844} | aerialWon: 1.9008 -> 1.4 totalShots: 1.0254 -> 1.0464 shotOffTarget: 0.7464 -> 0.7617 bigChanceMissed: 0.4305 -> 0.4393 onTargetScoringAttempt: 0.279 -> 0.2847 | 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.08 (squad xG sum 1.1472, xG scale 0.9440, xA scale 1.2035, team xA 0.70 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.083
squad_xg_sum=1.1472
squad_xa_sum=0.5849
team_expected_assists=0.7039
team_xa_to_xg_ratio=0.65 | expected_assists: 0.0372 -> 0.0448 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 81.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.0766
goal_rate=0.0651
scorer_weight=0.0683 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0438
assist_rate=0.0542
provider_weight=0.0535 | - |
|
| João Gomes | M | 82 | 0 | 0.03 | 0.02 | ok | 0 | 0.4 | 6.8 | 53.9 | 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.0083, quality 0.758) | market_value_eur=36000000
quality_factor=0.7581
boost_factor=1.0083
reference_quality=0.505
history_matches=41
history_shrink=0.1087 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0019) | blend_weight=0.0019
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=0.9076
prior_reliability=0.0267
competition=Premier League | wonTackle: 1.7996 -> 1.8048 | 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': 'Kobbie Mainoo', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.344, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.889, 'skill_edge': -0.0435, 'height_edge': -0.032, 'attacker_skill': 0.7926, 'defender_skill': 0.8893, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Kobbie Mainoo', 'market_value': 77000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8893}], 'xg_override': 0.0274} | aerialWon: 0.5536 -> 0.9 totalShots: 0.5093 -> 0.4528 shotOffTarget: 0.3613 -> 0.3212 onTargetScoringAttempt: 0.148 -> 0.1316 goals: 0.0465 -> 0.0413 | 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.08 (squad xG sum 1.1472, xG scale 0.9440, xA scale 1.2035, team xA 0.70 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.083
squad_xg_sum=1.1472
squad_xa_sum=0.5849
team_expected_assists=0.7039
team_xa_to_xg_ratio=0.65 | expected_assists: 0.05 -> 0.0602 | 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 skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0256
goal_rate=0.0413
scorer_weight=0.0306 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0584
assist_rate=0.0576
provider_weight=0.0648 | - |
|
| Johan Manzambi | M | 76 | 0 | 0.24 | 0.15 | 65% | 3 | 1.5 | 7.0 | 39.3 | 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.0501, quality 0.872) | market_value_eur=71000000
quality_factor=0.8721
boost_factor=1.0501
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': 'Lisandro Martínez', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.51, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 1.0435, 'skill_edge': 0.0016, 'height_edge': 0.028, 'attacker_skill': 0.8721, 'defender_skill': 0.8686, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Lisandro Martínez', 'market_value': 48000000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.8686}], 'xg_override': 0.2546} | aerialWon: 0.0 -> 1.1 totalShots: 2.6802 -> 2.7968 shotOffTarget: 1.7668 -> 1.8437 onTargetScoringAttempt: 0.9133 -> 0.953 expectedGoalsOnTarget: 0.2916 -> 0.3043 goals: 0.2472 -> 0.258 expectedGoals: 0.244 -> 0.2546 | 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.08 (squad xG sum 1.1472, xG scale 0.9440, xA scale 1.2035, team xA 0.70 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.083
squad_xg_sum=1.1472
squad_xa_sum=0.5849
team_expected_assists=0.7039
team_xa_to_xg_ratio=0.65 | expected_goals: 0.2546 -> 0.2403 expected_assists: 0.1173 -> 0.1411 | 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 skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.2136
goal_rate=0.258
scorer_weight=0.243 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.1316
assist_rate=0.1634
provider_weight=0.1764 | - |
|
| Lamare Bogarde | M | 80 | 0 | 0.04 | - | n/a | 1 | 0.0 | 6.7 | 30.7 | 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.0044, quality 0.606) | market_value_eur=17500000
quality_factor=0.6058
boost_factor=1.0044
reference_quality=0.505
history_matches=29
history_shrink=0.1471 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0013) | blend_weight=0.0013
history_matches=29
season_overlap_discount=1.0
per90_to_match_factor=0.8942
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': 'Luke Shaw', 'matchup_zone': 'Right Wing vs Left Back — Flank Battle', 'duel_win_rate': 0.534, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.079, 'skill_edge': 0.0337, 'height_edge': 0.02, 'attacker_skill': 0.6058, 'defender_skill': 0.5308, 'attacker_role': 'RW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Luke Shaw', 'market_value': 7500000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.5308}], 'xg_override': 0.0387} | aerialWon: 0.4989 -> 1.1 totalShots: 0.6079 -> 0.6559 shotOffTarget: 0.4272 -> 0.4609 onTargetScoringAttempt: 0.1807 -> 0.195 | 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.08 (squad xG sum 1.1472, xG scale 0.9440, xA scale 1.2035, team xA 0.70 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.083
squad_xg_sum=1.1472
squad_xa_sum=0.5849
team_expected_assists=0.7039
team_xa_to_xg_ratio=0.65 | expected_assists: 0.0338 -> 0.0407 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 74.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.0358
goal_rate=0.0636
scorer_weight=0.0456 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0399
assist_rate=0.0455
provider_weight=0.0464 | - |
|
| Nicolas Jackson | F | 82 | 0 | 0.37 | 0.17 | 124% | 3 | 1.6 | 7.2 | 46.6 | 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.0341, quality 0.800) | market_value_eur=44000000
quality_factor=0.8002
boost_factor=1.0341
reference_quality=0.505
history_matches=8
history_shrink=0.3846 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0133) | blend_weight=0.0133
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=0.9122
prior_reliability=0.0533
competition=Premier League | totalShots: 2.466 -> 2.4331 wasFouled: 1.2927 -> 1.2755 onTargetScoringAttempt: 0.9066 -> 0.8945 totalCross: 0.2601 -> 0.2718 totalOffside: 0.6975 -> 0.6882 goals: 0.4099 -> 0.4044 fouls: 0.3872 -> 0.382 | 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': 'Matthijs de Ligt, Harry Maguire', '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.0735, 'skill_edge': 0.07, 'height_edge': -0.02, 'attacker_skill': 0.8002, 'defender_skill': 0.6447, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Matthijs de Ligt', 'market_value': 26000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7498}, {'player': 'Harry Maguire', 'market_value': 8600000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5395}], 'xg_override': 0.3933} | totalShots: 2.4539 -> 2.6343 shotOffTarget: 1.5594 -> 1.674 onTargetScoringAttempt: 0.8945 -> 0.9602 goals: 0.4044 -> 0.4341 expectedGoalsOnTarget: 0.3669 -> 0.3939 expectedGoals: 0.3664 -> 0.3933 bigChanceMissed: 0.2654 -> 0.2849 | 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.08 (squad xG sum 1.1472, xG scale 0.9440, xA scale 1.2035, team xA 0.70 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.083
squad_xg_sum=1.1472
squad_xa_sum=0.5849
team_expected_assists=0.7039
team_xa_to_xg_ratio=0.65 | expected_goals: 0.3933 -> 0.3713 expected_assists: 0.0658 -> 0.0792 | 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 skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.3102
goal_rate=0.4341
scorer_weight=0.4055 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0761
assist_rate=0.0
provider_weight=0.0634 | - |
|
| Team totals | 0 | 1.08 | | 14 | | 6.9 | | |
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 |
| Leon Goretzka | M | 22.3m | 51.2% | Market-value substitute prior |
| Ross Barkley | M | 22.0m | 30.8% | Market-value substitute prior |
| Ibrahim Mbaye | F | 26.4m | 60.8% | Market-value substitute prior |
Antagonist / tactical summary
Midfield is evenly contested — Kobbie Mainoo vs Johan Manzambi will be the pivotal duel. Total antagonist xG — Home: 0.87, Away: 0.84. 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.1% / 49.9%, dominance ratio 0.52, key duel: Kobbie Mainoo vs Johan Manzambi
Bruno Fernandes xG 0.25Youri Tielemans xG 0.06Carlos Baleba xG 0.06Johan Manzambi xG 0.25Lamare Bogarde xG 0.04Amadou Onana xG 0.08
Summary
Antagonist matchup analysis for Man Utd vs Aston Villa. Most likely scoreline: 1-0. Lambdas derived from 6 home and 6 away individual player duels. Head-to-head: Man Utd 6W-2D-2L vs Aston Villa 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 — Kobbie Mainoo vs Johan Manzambi will be the pivotal duel. Total antagonist xG — Home: 0.87, Away: 0.84. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Atlético Madrid vs Barcelona
LaLiga · 20261108 · 4-4-2 vs 4-3-3
Predicted 1-2Winner: BarcelonaWinning H 2-1 (6.4%)Winning A 1-2 (9.0%)Confidence 0.69λ home/away 1.52 / 2.12Most-likely P 9.0%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset TracingAntagonist + XGBoost match analysis for Atlético Madrid vs Barcelona. Player statistics regressed using position-specific XGBoost models (G, D, M, F) with 2026-2027 FBref priors. Micro-duels resolved across 4-4-2 vs 4-3-3 (duel lambdas: Home 1.585, Away 2.675). Final calibrated Poisson lambdas: Home 1.521, Away 2.119 (most likely score 1-2).
Home Starters 11/11 XGBoost (7 FBref) Away Starters 11/11 XGBoost (11 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.58 / 2.67 Final λ (H/A) 1.52 / 2.12
FBref Team Priors: Atlético Madrid (Gls/90: 2.3333333333333335, GA/90: 2.33 → E[λ]: 3.5) vs FC Barcelona (Gls/90: 3.6666666666666665, GA/90: 4.0 → 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 | Atlético Madrid | Barcelona |
|---|
| League position | 2.00 | 1.00 |
| Points per game | 2.13 | 2.25 |
| Attack index | 1.21 | 1.77 |
| Defense (concede) index | 0.83 | 0.79 |
| Form multiplier | 0.99 | 1.01 |
| Standing λ multiplier | 1.00 | 1.15 |
Lambda decomposition (how the goal rates were built)
| Stage | Atlético Madrid λ | Barcelona λ |
|---|
| FBref Squad Prior E[λ] (weight 0.228) | 3.500 | 3.500 |
| Pre-competitive-floor | 1.551 | 2.732 |
| Pre-calibration (Micro-duels) | 1.585 | 2.675 |
| Final λ | 1.521 | 2.119 |
competition calibration scale 0.85competition 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-2 | 9.0% |
| 1-1 | 8.5% |
| 2-2 | 6.8% |
| 2-1 | 6.4% |
| 1-3 | 6.3% |
| Home win | 27.6% |
| Draw | 21.0% |
| Away win | 51.4% |
| Over 2.5 | 70.4% |
| BTTS yes | 68.8% |
Pregame fair line — favorite Barcelona (51.4%), fair total 3.64, 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.
Atlético Madrid — 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 |
|---|
| Jan Oblak | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 7.0 | 59.2 | 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=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=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': 'Raphinha, Lamine Yamal', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 2.6747} | - | 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.52 (squad xG sum 1.0663, xG scale 1.4264, xA scale 1.1809, team xA 1.22 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.521
squad_xg_sum=1.0663
squad_xa_sum=1.0304
team_expected_assists=1.2168
team_xa_to_xg_ratio=0.8 | shots_faced: 25.4 -> 20.1 expected_saves: 6.22 -> 4.92 high_pressure_saves: 2.14 -> 1.7 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 88.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.0
scorer_weight=0.0
squad_weight_total=1.6848 | - | 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.1637 | - |
|
| Cristian Romero | D | 79 | 0 | 0.17 | 0.08 | 114% | 1 | 0.8 | 7.1 | 57.6 | 19 | 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 1.0114, quality 0.764) | market_value_eur=37000000
quality_factor=0.7641
boost_factor=1.0114
reference_quality=0.505
history_matches=29
history_shrink=0.1471 | - | 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': '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.52 (squad xG sum 1.0663, xG scale 1.4264, xA scale 1.1809, team xA 1.22 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.521
squad_xg_sum=1.0663
squad_xa_sum=1.0304
team_expected_assists=1.2168
team_xa_to_xg_ratio=0.8 | expected_goals: 0.1169 -> 0.1667 expected_assists: 0.0609 -> 0.0719 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 82.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.1535
goal_rate=0.2199
scorer_weight=0.2084 | - | 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.0694
assist_rate=0.0036
provider_weight=0.0575 | - |
|
| Marc Pubill | D | 83 | 0 | 0.06 | 0.04 | 76% | 0 | 0.4 | 7.0 | 51.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.0142, quality 0.817) | market_value_eur=48000000
quality_factor=0.8168
boost_factor=1.0142
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.9213
prior_reliability=0.1133
competition=La Liga | interceptionWon: 0.8736 -> 0.8639 totalShots: 0.4825 -> 0.489 totalCross: 0.5212 -> 0.5275 goals: 0.0924 -> 0.0974 | 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': 'Anthony Gordon', '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.52 (squad xG sum 1.0663, xG scale 1.4264, xA scale 1.1809, team xA 1.22 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.521
squad_xg_sum=1.0663
squad_xa_sum=1.0304
team_expected_assists=1.2168
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0455 -> 0.0649 | 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_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.0628
goal_rate=0.0974
scorer_weight=0.0811 | - | 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.0214
assist_rate=0.006
provider_weight=0.0177 | - |
|
| Marcos Llorente | D | 85 | 0 | 0.06 | 0.04 | 65% | 1 | 0.6 | 7.1 | 62.7 | 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.0045, quality 0.641) | market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.0045
reference_quality=0.505
history_matches=40
history_shrink=0.1111 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0072) | blend_weight=0.0072
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=0.9429
prior_reliability=0.1
competition=La Liga | fouls: 0.9675 -> 0.9878 totalCross: 1.5559 -> 1.5447 interceptionWon: 1.0244 -> 1.0352 wasFouled: 0.1724 -> 0.1802 | 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': '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.52 (squad xG sum 1.0663, xG scale 1.4264, xA scale 1.1809, team xA 1.22 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.521
squad_xg_sum=1.0663
squad_xa_sum=1.0304
team_expected_assists=1.2168
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0438 -> 0.0625 expected_assists: 0.0746 -> 0.0881 | 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: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0606
goal_rate=0.0
scorer_weight=0.05 | - | 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.0843
assist_rate=0.079
provider_weight=0.0912 | - |
|
| Dávid Hancko | D | 88 | 0 | 0.07 | 0.05 | 57% | 1 | 0.7 | 7.0 | 56.0 | 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.0083, quality 0.758) | market_value_eur=36000000
quality_factor=0.7581
boost_factor=1.0083
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.9832
prior_reliability=0.2
competition=La Liga | interceptionWon: 0.9477 -> 0.9621 wasFouled: 0.1548 -> 0.1665 wonTackle: 0.7045 -> 0.7131 | 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': 'Anthony Gordon', '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.52 (squad xG sum 1.0663, xG scale 1.4264, xA scale 1.1809, team xA 1.22 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.521
squad_xg_sum=1.0663
squad_xa_sum=1.0304
team_expected_assists=1.2168
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0521 -> 0.0743 expected_assists: 0.0397 -> 0.0469 | 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.0716
goal_rate=0.0
scorer_weight=0.0594 | - | 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.0458
assist_rate=0.1271
provider_weight=0.0586 | - |
|
| Pablo Barrios | M | 71 | 0 | 0.09 | 0.04 | 157% | 1 | 0.8 | 7.2 | 61.9 | 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.0156, quality 0.879) | market_value_eur=77000000
quality_factor=0.8792
boost_factor=1.0156
reference_quality=0.505
history_matches=31
history_shrink=0.1389 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0138) | blend_weight=0.0138
history_matches=31
season_overlap_discount=1.0
per90_to_match_factor=0.7857
prior_reliability=0.1533
competition=La Liga | wasFouled: 0.7257 -> 0.7393 totalCross: 0.9926 -> 0.9836 totalShots: 0.919 -> 0.9111 | 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.297, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.9954, 'skill_edge': 0.0029, 'height_edge': -0.006, 'attacker_skill': 0.8863, '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.0634} | aerialWon: 0.6727 -> 1.1 | 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.52 (squad xG sum 1.0663, xG scale 1.4264, xA scale 1.1809, team xA 1.22 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.521
squad_xg_sum=1.0663
squad_xa_sum=1.0304
team_expected_assists=1.2168
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0634 -> 0.0904 expected_assists: 0.1154 -> 0.1363 | 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: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0864
goal_rate=0.062
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.1274
assist_rate=0.0942
provider_weight=0.1188 | - |
|
| Alejandro Grimaldo | M | 89 | 0 | 0.19 | 0.18 | ok | 1 | 1.2 | 7.1 | 54.9 | 21 | 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.0120, quality 0.625) | market_value_eur=19400000
quality_factor=0.6251
boost_factor=1.012
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': 'Eric García', 'matchup_zone': 'Left Mid vs Right Back — Wide Channel', 'duel_win_rate': 0.32, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.7947, 'skill_edge': -0.0956, 'height_edge': -0.044, 'attacker_skill': 0.6461, 'defender_skill': 0.8586, 'attacker_role': 'LM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Eric García', 'market_value': 44000000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.8586}], 'xg_override': 0.1302} | aerialWon: 0.2793 -> 0.8 totalShots: 1.6114 -> 1.2806 shotOffTarget: 1.0006 -> 0.7952 onTargetScoringAttempt: 0.6108 -> 0.4854 expectedGoalsOnTarget: 0.3581 -> 0.2846 goals: 0.1664 -> 0.1322 expectedGoals: 0.1638 -> 0.1302 bigChanceMissed: 0.1314 -> 0.1044 | 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.52 (squad xG sum 1.0663, xG scale 1.4264, xA scale 1.1809, team xA 1.22 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.521
squad_xg_sum=1.0663
squad_xa_sum=1.0304
team_expected_assists=1.2168
team_xa_to_xg_ratio=0.8 | expected_goals: 0.1302 -> 0.1857 expected_assists: 0.1628 -> 0.1922 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 89.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: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1695
goal_rate=0.1322
scorer_weight=0.1878 | - | 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.1749
assist_rate=0.1625
provider_weight=0.1919 | - |
|
| Obed Vargas | M | 82 | 0 | 0.06 | 0.01 | 741% | 0 | 0.2 | 6.8 | 34.5 | 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 1.0008, quality 0.514) | market_value_eur=9300000
quality_factor=0.5142
boost_factor=1.0008
reference_quality=0.505
history_matches=12
history_shrink=0.2941 | - | 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': 'Xavi Espart', 'matchup_zone': 'Right Mid vs Left Back — Wide Channel', 'duel_win_rate': 0.353, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 0.8422, 'skill_edge': -0.1074, 'height_edge': 0.0, 'attacker_skill': 0.5264, 'defender_skill': 0.765, 'attacker_role': 'RM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Xavi Espart', 'market_value': 26000000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.765}], 'xg_override': 0.0444} | aerialWon: 0.2407 -> 0.9 totalShots: 0.5864 -> 0.4939 shotOffTarget: 0.4147 -> 0.3493 onTargetScoringAttempt: 0.1717 -> 0.1446 goals: 0.0599 -> 0.0504 expectedGoals: 0.0527 -> 0.0444 | 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.52 (squad xG sum 1.0663, xG scale 1.4264, xA scale 1.1809, team xA 1.22 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.521
squad_xg_sum=1.0663
squad_xa_sum=1.0304
team_expected_assists=1.2168
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0444 -> 0.0633 expected_assists: 0.0459 -> 0.0542 | 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.0613
goal_rate=0.0504
scorer_weight=0.0673 | - | 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.0528
assist_rate=0.0643
provider_weight=0.0646 | - |
|
| Giuliano Simeone | M | 80 | 0 | 0.19 | 0.11 | 74% | 2 | 1.0 | 7.1 | 61.3 | 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.0094, quality 0.800) | market_value_eur=44000000
quality_factor=0.8002
boost_factor=1.0094
reference_quality=0.505
history_matches=42
history_shrink=0.1064 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0111) | blend_weight=0.0111
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.8879
prior_reliability=0.16
competition=La Liga | interceptionWon: 0.624 -> 0.6335 wonTackle: 1.3249 -> 1.3307 | 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.235, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.9046, 'skill_edge': -0.0269, 'height_edge': -0.038, 'attacker_skill': 0.8202, '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.1365} | aerialWon: 1.7213 -> 0.9 totalShots: 1.5374 -> 1.3907 shotOffTarget: 0.9537 -> 0.8627 onTargetScoringAttempt: 0.5819 -> 0.5264 goals: 0.1738 -> 0.1572 expectedGoals: 0.1509 -> 0.1365 expectedGoalsOnTarget: 0.1238 -> 0.112 bigChanceMissed: 0.0705 -> 0.0638 | 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.52 (squad xG sum 1.0663, xG scale 1.4264, xA scale 1.1809, team xA 1.22 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.521
squad_xg_sum=1.0663
squad_xa_sum=1.0304
team_expected_assists=1.2168
team_xa_to_xg_ratio=0.8 | expected_goals: 0.1365 -> 0.1947 expected_assists: 0.1244 -> 0.1469 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 81.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.1769
goal_rate=0.1572
scorer_weight=0.2163 | - | 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.1366
assist_rate=0.1045
provider_weight=0.1301 | - |
|
| Kang-in Lee | F | 72 | 0 | 0.16 | 0.15 | ok | 2 | 2.1 | 7.1 | 56.7 | 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.0243, quality 0.764) | market_value_eur=37000000
quality_factor=0.7641
boost_factor=1.0243
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': 'Pau Cubarsí, Gerard Martín', '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.8677, 'skill_edge': -0.042, 'height_edge': -0.048, 'attacker_skill': 0.7641, 'defender_skill': 0.8575, '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': 'Gerard Martín', 'market_value': 36000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8168}], 'xg_override': 0.1111} | totalShots: 2.2502 -> 1.9525 shotOffTarget: 1.5687 -> 1.3612 onTargetScoringAttempt: 0.6815 -> 0.5913 goals: 0.1824 -> 0.1583 expectedGoalsOnTarget: 0.1657 -> 0.1438 expectedGoals: 0.128 -> 0.1111 bigChanceMissed: 0.1127 -> 0.0978 | 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.52 (squad xG sum 1.0663, xG scale 1.4264, xA scale 1.1809, team xA 1.22 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.521
squad_xg_sum=1.0663
squad_xa_sum=1.0304
team_expected_assists=1.2168
team_xa_to_xg_ratio=0.8 | expected_goals: 0.1111 -> 0.1585 expected_assists: 0.185 -> 0.2185 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 80.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.1466
goal_rate=0.1583
scorer_weight=0.1981 | - | 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.1963
assist_rate=0.0641
provider_weight=0.1748 | - |
|
| Ademola Lookman | F | 61 | 1 | 0.22 | 0.21 | ok | 2 | 1.4 | 6.8 | 59.7 | 28 | 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.0158, quality 0.800) | market_value_eur=44000000
quality_factor=0.8002
boost_factor=1.0158
reference_quality=0.505
history_matches=23
history_shrink=0.1786 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0201) | blend_weight=0.0201
history_matches=23
season_overlap_discount=1.0
per90_to_match_factor=0.678
prior_reliability=0.1733
competition=La Liga | wasFouled: 0.6804 -> 0.6929 totalCross: 0.9711 -> 0.9621 interceptionWon: 0.012 -> 0.017 | 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í, Gerard Martín', '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.8975, 'skill_edge': -0.0257, 'height_edge': -0.044, 'attacker_skill': 0.8002, 'defender_skill': 0.8575, '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': 'Gerard Martín', 'market_value': 36000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8168}], 'xg_override': 0.1574} | totalShots: 1.6412 -> 1.473 shotOffTarget: 1.0032 -> 0.9004 onTargetScoringAttempt: 0.638 -> 0.5726 bigChanceMissed: 0.3449 -> 0.3095 goals: 0.2191 -> 0.1966 expectedGoals: 0.1754 -> 0.1574 expectedGoalsOnTarget: 0.1115 -> 0.1001 | 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.52 (squad xG sum 1.0663, xG scale 1.4264, xA scale 1.1809, team xA 1.22 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.521
squad_xg_sum=1.0663
squad_xa_sum=1.0304
team_expected_assists=1.2168
team_xa_to_xg_ratio=0.8 | expected_goals: 0.1574 -> 0.2246 expected_assists: 0.0766 -> 0.0905 | 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: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.2012
goal_rate=0.1966
scorer_weight=0.267 | - | 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.0865
assist_rate=0.0
provider_weight=0.0724 | - |
|
| Team totals | 1 | 1.52 | | 14 | | 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 |
| Robin Le Normand | D | 14.2m | 23.0% | Market-value substitute prior |
| Jorge Domínguez | D | 13.8m | 22.2% | Market-value substitute prior |
| Morten Hjulmand | M | 17.7m | 46.6% | Market-value substitute prior |
| Rodrigo Mendoza | M | 13.6m | 45.2% | Market-value substitute prior |
| Julián Alvarez | F | 25.9m | 75.6% | Market-value substitute prior |
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 | 87 | 0 | 0.00 | - | n/a | | 0.0 | 6.9 | 63.1 | 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.0101, quality 0.809) | market_value_eur=46000000
quality_factor=0.8089
boost_factor=1.0101
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.9627
prior_reliability=0.2
competition=La Liga | saves: 2.714 -> 2.698 | 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': 'Ademola Lookman, Giuliano Simeone', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.5854} | - | 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.12 (squad xG sum 2.2093, xG scale 0.9591, xA scale 0.9591, team xA 1.45 = 0.68 x lambda) | scoreline_reset=true
team_lambda=2.119
squad_xg_sum=2.2093
squad_xa_sum=1.5111
team_expected_assists=1.4494
team_xa_to_xg_ratio=0.684 | shots_faced: 15.1 -> 14.4 expected_saves: 3.7 -> 3.52 high_pressure_saves: 1.27 -> 1.22 | 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: 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.4716 | - | 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.6516 | - |
|
| Pau Cubarsí | D | 87 | 0 | 0.03 | 0.02 | ok | 0 | 0.2 | 7.2 | 55.7 | 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.0132, quality 0.891) | market_value_eur=94000000
quality_factor=0.891
boost_factor=1.0132
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.9674
prior_reliability=0.1333
competition=La Liga | interceptionWon: 1.1901 -> 1.1831 totalShots: 0.3374 -> 0.3436 wonTackle: 0.9014 -> 0.9068 | 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': '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.12 (squad xG sum 2.2093, xG scale 0.9591, xA scale 0.9591, team xA 1.45 = 0.68 x lambda) | scoreline_reset=true
team_lambda=2.119
squad_xg_sum=2.2093
squad_xa_sum=1.5111
team_expected_assists=1.4494
team_xa_to_xg_ratio=0.684 | - | 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.0247
goal_rate=0.0069
scorer_weight=0.02 | - | 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.0778
assist_rate=0.2178
provider_weight=0.1013 | - |
|
| Xavi Espart | D | 79 | 0 | 0.04 | 0.01 | 176% | 1 | 0.4 | 6.9 | 31.6 | 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.0160, quality 0.686) | market_value_eur=26000000
quality_factor=0.6858
boost_factor=1.016
reference_quality=0.505
history_matches=12
history_shrink=0.2941 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0382) | blend_weight=0.0382
history_matches=12
season_overlap_discount=1.0
per90_to_match_factor=0.8827
prior_reliability=0.2
competition=La Liga | fouls: 1.6331 -> 1.6044 totalCross: 0.4689 -> 0.496 wasFouled: 1.004 -> 0.9769 goalAssist: 0.1516 -> 0.1683 interceptionWon: 1.0828 -> 1.0976 totalShots: 0.8839 -> 0.8727 | 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': 'Obed Vargas', 'matchup_zone': 'Right Mid vs Left Back — Wide Channel'} | - | 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.12 (squad xG sum 2.2093, xG scale 0.9591, xA scale 0.9591, team xA 1.45 = 0.68 x lambda) | scoreline_reset=true
team_lambda=2.119
squad_xg_sum=2.2093
squad_xa_sum=1.5111
team_expected_assists=1.4494
team_xa_to_xg_ratio=0.684 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 67.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.0361
goal_rate=0.1171
scorer_weight=0.046 | - | 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.0645
assist_rate=0.1683
provider_weight=0.0834 | - |
|
| Eric García | D | 82 | 0 | 0.03 | 0.08 | 65% | 1 | 0.6 | 7.1 | 58.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.0094, quality 0.800) | market_value_eur=44000000
quality_factor=0.8002
boost_factor=1.0094
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.9074
prior_reliability=0.1267
competition=La Liga | wonTackle: 0.8947 -> 0.9078 | 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 Mid vs Right Back — Wide Channel'} | - | 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.12 (squad xG sum 2.2093, xG scale 0.9591, xA scale 0.9591, team xA 1.45 = 0.68 x lambda) | scoreline_reset=true
team_lambda=2.119
squad_xg_sum=2.2093
squad_xa_sum=1.5111
team_expected_assists=1.4494
team_xa_to_xg_ratio=0.684 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 85.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.0265
goal_rate=0.0007
scorer_weight=0.0215 | - | 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.0684
assist_rate=0.0127
provider_weight=0.0567 | - |
|
| Gerard Martín | D | 80 | 0 | 0.02 | 0.01 | 88% | 0 | 0.2 | 7.1 | 57.8 | 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.0081, quality 0.758) | market_value_eur=36000000
quality_factor=0.7581
boost_factor=1.0081
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.888
prior_reliability=0.1333
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': 'Kang-in Lee', '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.12 (squad xG sum 2.2093, xG scale 0.9591, xA scale 0.9591, team xA 1.45 = 0.68 x lambda) | scoreline_reset=true
team_lambda=2.119
squad_xg_sum=2.2093
squad_xa_sum=1.5111
team_expected_assists=1.4494
team_xa_to_xg_ratio=0.684 | - | 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.0191
goal_rate=0.0
scorer_weight=0.0154 | - | 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.0431
assist_rate=0.0
provider_weight=0.0353 | - |
|
| Rodri | M | 84 | 0 | 0.07 | 0.07 | ok | 1 | 0.7 | 7.4 | 70.4 | 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.0138, quality 0.837) | market_value_eur=54000000
quality_factor=0.837
boost_factor=1.0138
reference_quality=0.505
history_matches=31
history_shrink=0.1389 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0036) | blend_weight=0.0036
history_matches=31
season_overlap_discount=1.0
per90_to_match_factor=0.9367
prior_reliability=0.04
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': 'Pablo Barrios', 'matchup_zone': 'Holding Mid vs Central Mid — Midfield Anchor Duel', 'duel_win_rate': 0.428, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 1.0414, 'skill_edge': -0.0119, 'height_edge': 0.04, 'attacker_skill': 0.8599, 'defender_skill': 0.8863, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Pablo Barrios', 'market_value': 77000000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.8863}], 'xg_override': 0.0726} | aerialWon: 1.4841 -> 1.3 totalShots: 0.7147 -> 0.7443 shotOffTarget: 0.4803 -> 0.5002 onTargetScoringAttempt: 0.2344 -> 0.2441 | 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.12 (squad xG sum 2.2093, xG scale 0.9591, xA scale 0.9591, team xA 1.45 = 0.68 x lambda) | scoreline_reset=true
team_lambda=2.119
squad_xg_sum=2.2093
squad_xa_sum=1.5111
team_expected_assists=1.4494
team_xa_to_xg_ratio=0.684 | - | 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: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0672
goal_rate=0.088
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.11
assist_rate=0.247
provider_weight=0.1456 | - |
|
| Pedri | M | 77 | 0 | 0.06 | 0.04 | 56% | 1 | 0.5 | 7.3 | 65.6 | 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.0132, quality 0.900) | market_value_eur=164000000
quality_factor=0.8997
boost_factor=1.0132
reference_quality=0.505
history_matches=40
history_shrink=0.1111 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0111) | blend_weight=0.0111
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=0.8581
prior_reliability=0.1533
competition=La Liga | wonTackle: 0.7808 -> 0.7887 interceptionWon: 0.5149 -> 0.5092 | 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 Barrios', 'matchup_zone': 'Central Mid vs Central Mid — Box-to-Box Midfield Contest', 'duel_win_rate': 0.398, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9678, 'skill_edge': 0.0061, 'height_edge': -0.028, 'attacker_skill': 0.8999, 'defender_skill': 0.8863, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Pablo Barrios', 'market_value': 77000000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.8863}], 'xg_override': 0.0675} | aerialWon: 0.1882 -> 0.9 totalShots: 0.7383 -> 0.7145 shotOffTarget: 0.5399 -> 0.5225 onTargetScoringAttempt: 0.1961 -> 0.1898 | 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.12 (squad xG sum 2.2093, xG scale 0.9591, xA scale 0.9591, team xA 1.45 = 0.68 x lambda) | scoreline_reset=true
team_lambda=2.119
squad_xg_sum=2.2093
squad_xa_sum=1.5111
team_expected_assists=1.4494
team_xa_to_xg_ratio=0.684 | expected_assists: 0.1897 -> 0.1819 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 90.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.0627
goal_rate=0.0846
scorer_weight=0.0741 | - | 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.1663
assist_rate=0.1621
provider_weight=0.161 | - |
|
| Fermín López | M | 79 | 0 | 0.18 | 0.25 | ok | 2 | 1.9 | 7.1 | 65.2 | 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.0130, quality 0.896) | market_value_eur=113000000
quality_factor=0.8965
boost_factor=1.013
reference_quality=0.505
history_matches=40
history_shrink=0.1111 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0111) | blend_weight=0.0111
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=0.8771
prior_reliability=0.1533
competition=La Liga | onTargetScoringAttempt: 0.7664 -> 0.779 goals: 0.2235 -> 0.2337 wasFouled: 0.7252 -> 0.7341 wonTackle: 0.5721 -> 0.5784 | 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 Barrios', 'matchup_zone': 'Central Mid vs Central Mid — Box-to-Box Midfield Contest', 'duel_win_rate': 0.405, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9784, 'skill_edge': 0.0053, 'height_edge': -0.02, 'attacker_skill': 0.8981, 'defender_skill': 0.8863, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Pablo Barrios', 'market_value': 77000000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.8863}], 'xg_override': 0.1871} | aerialWon: 0.4589 -> 0.9 totalShots: 2.1743 -> 2.1274 shotOffTarget: 1.3953 -> 1.3652 onTargetScoringAttempt: 0.779 -> 0.7622 expectedGoalsOnTarget: 0.4777 -> 0.4674 goals: 0.2337 -> 0.2287 | 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.12 (squad xG sum 2.2093, xG scale 0.9591, xA scale 0.9591, team xA 1.45 = 0.68 x lambda) | scoreline_reset=true
team_lambda=2.119
squad_xg_sum=2.2093
squad_xa_sum=1.5111
team_expected_assists=1.4494
team_xa_to_xg_ratio=0.684 | expected_goals: 0.1871 -> 0.1795 expected_assists: 0.1922 -> 0.1843 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 90.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: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.1643
goal_rate=0.2287
scorer_weight=0.211 | - | 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.1683
assist_rate=0.2038
provider_weight=0.1931 | - |
|
| Lamine Yamal | F | 82 | 1 | 0.57 | 0.50 | ok | 6 | 3.8 | 8.4 | 69.3 | 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.0135, quality 0.900) | market_value_eur=237000000
quality_factor=0.9
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.0133) | blend_weight=0.0133
history_matches=39
season_overlap_discount=1.0
per90_to_match_factor=0.9064
prior_reliability=0.18
competition=La Liga | totalOffside: 0.6054 -> 0.6241 totalCross: 2.4648 -> 2.4811 goalAssist: 0.7137 -> 0.7042 fouls: 1.2605 -> 1.2527 | 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': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.558, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 1.1148, 'skill_edge': 0.0821, 'height_edge': -0.004, 'attacker_skill': 0.9, 'defender_skill': 0.7176, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Marcos Llorente', 'market_value': 21000000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.7176}], 'xg_override': 0.5924} | totalShots: 5.0286 -> 5.6059 shotOffTarget: 3.5176 -> 3.9214 onTargetScoringAttempt: 1.511 -> 1.6845 goals: 0.8143 -> 0.9078 expectedGoalsOnTarget: 0.68 -> 0.7581 expectedGoals: 0.5314 -> 0.5924 bigChanceMissed: 0.5155 -> 0.5747 | 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 assists: 1.0 -> 0 | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.12 (squad xG sum 2.2093, xG scale 0.9591, xA scale 0.9591, team xA 1.45 = 0.68 x lambda) | scoreline_reset=true
team_lambda=2.119
squad_xg_sum=2.2093
squad_xa_sum=1.5111
team_expected_assists=1.4494
team_xa_to_xg_ratio=0.684 | expected_goals: 0.5924 -> 0.5682 expected_assists: 0.37 -> 0.355 | 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: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=1
goal_probability=0.4335
goal_rate=0.9078
scorer_weight=0.7103 | - | 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.2988
assist_rate=0.7042
provider_weight=0.4437 | - |
|
| Raphinha | F | 76 | 1 | 0.62 | 0.59 | ok | 4 | 2.4 | 7.5 | 61.8 | 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.0143, quality 0.859) | market_value_eur=63000000
quality_factor=0.8589
boost_factor=1.0143
reference_quality=0.505
history_matches=32
history_shrink=0.1351 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0146) | blend_weight=0.0146
history_matches=32
season_overlap_discount=1.0
per90_to_match_factor=0.8487
prior_reliability=0.1667
competition=La Liga | goals: 0.8049 -> 0.818 onTargetScoringAttempt: 1.6487 -> 1.6592 totalCross: 2.6884 -> 2.6987 fouls: 0.3963 -> 0.4054 totalOffside: 0.4905 -> 0.4982 | 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': 'Cristian Romero', 'matchup_zone': 'Right Wing vs Left Back — Flank Battle', 'duel_win_rate': 0.455, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9638, 'skill_edge': 0.0114, 'height_edge': -0.036, 'attacker_skill': 0.8589, 'defender_skill': 0.8336, 'attacker_role': 'RW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Cristian Romero', 'market_value': 37000000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.8336}], 'xg_override': 0.6492} | totalShots: 3.5302 -> 3.4024 shotOffTarget: 1.871 -> 1.8033 onTargetScoringAttempt: 1.6592 -> 1.5991 expectedGoalsOnTarget: 1.0861 -> 1.0468 goals: 0.818 -> 0.7884 bigChanceMissed: 0.6852 -> 0.6604 expectedGoals: 0.6736 -> 0.6492 | 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.12 (squad xG sum 2.2093, xG scale 0.9591, xA scale 0.9591, team xA 1.45 = 0.68 x lambda) | scoreline_reset=true
team_lambda=2.119
squad_xg_sum=2.2093
squad_xa_sum=1.5111
team_expected_assists=1.4494
team_xa_to_xg_ratio=0.684 | expected_goals: 0.6492 -> 0.6227 expected_assists: 0.1267 -> 0.1215 | 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: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=1
goal_probability=0.4635
goal_rate=0.7884
scorer_weight=0.7467 | - | 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.216
provider_weight=0.1519 | - |
|
| Anthony Gordon | F | 78 | 0 | 0.30 | 0.26 | ok | 3 | 1.7 | 7.3 | 54.9 | 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.0139, quality 0.884) | market_value_eur=82000000
quality_factor=0.8837
boost_factor=1.0139
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.8626
prior_reliability=0.1333
competition=La Liga | totalCross: 1.7488 -> 1.7349 goalAssist: 0.1713 -> 0.1832 totalOffside: 0.3281 -> 0.3337 | 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 Pubill, Dávid Hancko', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.196, 'pressing_faced': 'HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.9944, 'skill_edge': 0.0202, 'height_edge': -0.024, 'attacker_skill': 0.8837, 'defender_skill': 0.8388, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Marc Pubill', 'market_value': 48000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8608}, {'player': 'Dávid Hancko', 'market_value': 36000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8168}], 'xg_override': 0.3118} | totalShots: 2.6382 -> 2.6234 shotOffTarget: 1.4009 -> 1.3931 onTargetScoringAttempt: 1.2339 -> 1.227 | 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.12 (squad xG sum 2.2093, xG scale 0.9591, xA scale 0.9591, team xA 1.45 = 0.68 x lambda) | scoreline_reset=true
team_lambda=2.119
squad_xg_sum=2.2093
squad_xa_sum=1.5111
team_expected_assists=1.4494
team_xa_to_xg_ratio=0.684 | expected_goals: 0.3118 -> 0.2991 expected_assists: 0.1326 -> 0.1272 | 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: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.2585
goal_rate=0.3354
scorer_weight=0.3186 | - | 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.1194
assist_rate=0.1832
provider_weight=0.159 | - |
|
| Team totals | 2 | 2.12 | | 22 | | 7.3 | | |
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.7% | Market-value substitute prior |
| Alejandro Balde | D | 15.0m | 36.4% | Market-value substitute prior |
| Dani Olmo | M | 25.5m | 59.7% | Market-value substitute prior |
| Marc Bernal | M | 23.3m | 33.4% | Market-value substitute prior |
| Karim Adeyemi | F | 19.1m | 61.9% | Market-value substitute prior |
Antagonist / tactical summary
Midfield is evenly contested — Pablo Barrios vs Pedri will be the pivotal duel. Total antagonist xG — Home: 0.64, Away: 1.88. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Right Wing vs Left Back — Flank Battle.
Midfield — possession 48.8% / 51.2%, dominance ratio 0.45, key duel: Pablo Barrios vs Pedri
Kang-in Lee xG 0.11Ademola Lookman xG 0.16Alejandro Grimaldo xG 0.13Lamine Yamal xG 0.59Raphinha xG 0.65Anthony Gordon xG 0.31
Summary
Antagonist matchup analysis for Atlético Madrid vs Barcelona. Most likely scoreline: 1-2. Lambdas derived from 6 home and 6 away individual player duels. Head-to-head: Atlético Madrid 3W-1D-6L vs Barcelona over 10 meetings.
Tactical parity between 4-4-2 and 4-3-3. Match outcome driven primarily by individual player quality. Midfield is evenly contested — Pablo Barrios vs Pedri will be the pivotal duel. Total antagonist xG — Home: 0.64, Away: 1.88. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Right Wing vs Left Back — Flank Battle.
Elche vs Real Betis
LaLiga · 20261108 · 4-3-3 vs 4-2-3-1
Predicted 2-1Winner: ElcheWinning H 2-1 (8.8%)Winning A 1-2 (7.9%)Confidence 0.65λ home/away 1.57 / 1.41Most-likely P 8.8%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset TracingAntagonist + XGBoost match analysis for Elche vs Real Betis. 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.171, Away 1.294). Final calibrated Poisson lambdas: Home 1.574, Away 1.410 (most likely score 2-1).
Home Starters 11/11 XGBoost (9 FBref) Away Starters 11/11 XGBoost (9 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.17 / 1.29 Final λ (H/A) 1.57 / 1.41
FBref Team Priors: Elche (Gls/90: 1.0, GA/90: 1.0 → E[λ]: 0.985) vs Real Betis (Gls/90: 1.3333333333333333, GA/90: 1.33 → E[λ]: 0.988) | 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 | Elche | Real Betis |
|---|
| League position | 16.00 | 4.00 |
| Points per game | 1.14 | 1.84 |
| Attack index | 0.97 | 1.00 |
| Defense (concede) index | 0.91 | 1.06 |
| Form multiplier | 0.96 | 1.04 |
| Standing λ multiplier | 0.94 | 1.03 |
Lambda decomposition (how the goal rates were built)
| Stage | Elche λ | Real Betis λ |
|---|
| FBref Squad Prior E[λ] (weight 0.228) | 0.985 | 0.988 |
| Pre-competitive-floor | 1.251 | 1.291 |
| Pre-calibration (Micro-duels) | 1.171 | 1.294 |
| Final λ | 1.574 | 1.410 |
competition calibration scale 1.174competition 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.3% |
| 2-1 | 8.8% |
| 1-2 | 7.9% |
| 1-0 | 7.9% |
| 0-1 | 7.0% |
| Home win | 41.4% |
| Draw | 24.5% |
| Away win | 34.2% |
| Over 2.5 | 57.3% |
| BTTS yes | 60.0% |
Pregame fair line — favorite Elche (41.4%), fair total 2.98, fair spread 0.16
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.
Elche — 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 |
|---|
| Matías Dituro | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 7.3 | 54.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 0.9973, quality 0.437) | market_value_eur=105000
quality_factor=0.4374
boost_factor=0.9973
reference_quality=0.505
history_matches=32
history_shrink=0.1351 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0176) | blend_weight=0.0176
history_matches=32
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.2
competition=La Liga | saves: 2.9148 -> 2.9046 | 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, Pablo Fornals', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.2935} | - | 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.57 (squad xG sum 0.9357, xG scale 1.6822, xA scale 1.6822, team xA 1.04 = 0.66 x lambda) | scoreline_reset=true
team_lambda=1.574
squad_xg_sum=0.9357
squad_xa_sum=0.6189
team_expected_assists=1.0411
team_xa_to_xg_ratio=0.6615 | shots_faced: 12.3 -> 13.4 expected_saves: 3.01 -> 3.28 high_pressure_saves: 1.03 -> 1.13 | 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.0
scorer_weight=0.0
squad_weight_total=1.7598 | - | 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.0833 | - |
|
| Buba Sangaré | D | 77 | 0 | 0.01 | 0.01 | ok | 0 | 0.1 | 6.7 | 51.0 | 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 0.9975, quality 0.461) | market_value_eur=4900000
quality_factor=0.4609
boost_factor=0.9975
reference_quality=0.505
history_matches=21
history_shrink=0.1923 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0242) | blend_weight=0.0242
history_matches=21
season_overlap_discount=1.0
per90_to_match_factor=0.8517
prior_reliability=0.1933
competition=La Liga | wonTackle: 1.0755 -> 1.0921 interceptionWon: 0.712 -> 0.7019 totalCross: 0.9708 -> 0.9615 goals: 0.0602 -> 0.0658 onTargetScoringAttempt: 0.0602 -> 0.0657 fouls: 1.2586 -> 1.2637 | 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 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.57 (squad xG sum 0.9357, xG scale 1.6822, xA scale 1.6822, team xA 1.04 = 0.66 x lambda) | scoreline_reset=true
team_lambda=1.574
squad_xg_sum=0.9357
squad_xa_sum=0.6189
team_expected_assists=1.0411
team_xa_to_xg_ratio=0.6615 | expected_assists: 0.014 -> 0.0236 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 17 by projected rating, fifa_overall 69.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.0062
goal_rate=0.0657
scorer_weight=0.0077 | - | 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.0233
assist_rate=0.0
provider_weight=0.0189 | - |
|
| Víctor Chust | D | 90 | 0 | 0.05 | 0.02 | 162% | 1 | 0.3 | 6.9 | 62.1 | 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.9978, quality 0.437) | market_value_eur=2700000
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.0141) | blend_weight=0.0141
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=0.9958
prior_reliability=0.2
competition=La Liga | totalCross: 0.9215 -> 0.9366 | 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 Fornals', '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 1.57 (squad xG sum 0.9357, xG scale 1.6822, xA scale 1.6822, team xA 1.04 = 0.66 x lambda) | scoreline_reset=true
team_lambda=1.574
squad_xg_sum=0.9357
squad_xa_sum=0.6189
team_expected_assists=1.0411
team_xa_to_xg_ratio=0.6615 | expected_goals: 0.0326 -> 0.0548 expected_assists: 0.0306 -> 0.0515 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 74.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.0533
goal_rate=0.033
scorer_weight=0.0551 | - | 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.0502
assist_rate=0.056
provider_weight=0.0644 | - |
|
| Roy Revivo | D | 89 | 0 | 0.03 | 0.02 | 57% | 1 | 0.3 | 6.8 | 48.3 | 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.9940, quality 0.457) | market_value_eur=4600000
quality_factor=0.4572
boost_factor=0.994
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': '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 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.57 (squad xG sum 0.9357, xG scale 1.6822, xA scale 1.6822, team xA 1.04 = 0.66 x lambda) | scoreline_reset=true
team_lambda=1.574
squad_xg_sum=0.9357
squad_xa_sum=0.6189
team_expected_assists=1.0411
team_xa_to_xg_ratio=0.6615 | expected_goals: 0.0199 -> 0.0335 expected_assists: 0.1244 -> 0.2092 | 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: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0329
goal_rate=0.0
scorer_weight=0.0268 | - | 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.1888
assist_rate=0.294
provider_weight=0.2615 | - |
|
| Pedro Bigas | D | 81 | 0 | 0.03 | 0.02 | 48% | 0 | 0.3 | 6.8 | 44.6 | 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.9973, quality 0.437) | market_value_eur=310000
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.0046) | blend_weight=0.0046
history_matches=33
season_overlap_discount=1.0
per90_to_match_factor=0.9043
prior_reliability=0.0533
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': 'Isco', '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.57 (squad xG sum 0.9357, xG scale 1.6822, xA scale 1.6822, team xA 1.04 = 0.66 x lambda) | scoreline_reset=true
team_lambda=1.574
squad_xg_sum=0.9357
squad_xa_sum=0.6189
team_expected_assists=1.0411
team_xa_to_xg_ratio=0.6615 | expected_goals: 0.0163 -> 0.0274 expected_assists: 0.0373 -> 0.0627 | 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_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.027
goal_rate=0.0587
scorer_weight=0.0343 | - | 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.0608
assist_rate=0.1275
provider_weight=0.0784 | - |
|
| Marc Aguado | M | 69 | 0 | 0.06 | 0.01 | 487% | 0 | 0.2 | 6.8 | 56.6 | 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.9981, quality 0.446) | market_value_eur=3700000
quality_factor=0.4461
boost_factor=0.9981
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.7677
prior_reliability=0.1467
competition=La Liga | interceptionWon: 1.0397 -> 1.0289 | 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.421, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9579, 'skill_edge': -0.0046, 'height_edge': -0.024, 'attacker_skill': 0.4512, '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.0331} | aerialWon: 0.1803 -> 1.0 totalShots: 0.5061 -> 0.4848 shotOffTarget: 0.3835 -> 0.3674 onTargetScoringAttempt: 0.1226 -> 0.1174 | 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.57 (squad xG sum 0.9357, xG scale 1.6822, xA scale 1.6822, team xA 1.04 = 0.66 x lambda) | scoreline_reset=true
team_lambda=1.574
squad_xg_sum=0.9357
squad_xa_sum=0.6189
team_expected_assists=1.0411
team_xa_to_xg_ratio=0.6615 | expected_goals: 0.0331 -> 0.0557 expected_assists: 0.027 -> 0.0454 | 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: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0542
goal_rate=0.0477
scorer_weight=0.0655 | - | 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.0444
assist_rate=0.0489
provider_weight=0.0568 | - |
|
| Gonzalo Villar | M | 76 | 0 | 0.12 | 0.03 | 390% | 1 | 0.4 | 6.9 | 52.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.9962, quality 0.437) | market_value_eur=1700000
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.0241) | blend_weight=0.0241
history_matches=22
season_overlap_discount=1.0
per90_to_match_factor=0.8427
prior_reliability=0.2
competition=La Liga | wasFouled: 1.93 -> 1.9782 totalCross: 1.0878 -> 1.1225 fouls: 1.3978 -> 1.4182 onTargetScoringAttempt: 0.2613 -> 0.2753 totalShots: 0.8491 -> 0.8556 | 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.427, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9665, 'skill_edge': -0.0108, 'height_edge': -0.012, '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.0737} | aerialWon: 0.6516 -> 1.1 totalShots: 0.8631 -> 0.8342 shotOffTarget: 0.5878 -> 0.5681 onTargetScoringAttempt: 0.2753 -> 0.2661 | 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.57 (squad xG sum 0.9357, xG scale 1.6822, xA scale 1.6822, team xA 1.04 = 0.66 x lambda) | scoreline_reset=true
team_lambda=1.574
squad_xg_sum=0.9357
squad_xa_sum=0.6189
team_expected_assists=1.0411
team_xa_to_xg_ratio=0.6615 | expected_goals: 0.0737 -> 0.124 expected_assists: 0.0909 -> 0.1529 | 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: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.1166
goal_rate=0.067
scorer_weight=0.1173 | - | 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.1418
assist_rate=0.102
provider_weight=0.1649 | - |
|
| Javi Morcillo | M | 87 | 0 | 0.06 | 0.02 | 281% | 1 | 0.2 | 6.7 | 41.8 | 21 | 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.9944, quality 0.437) | market_value_eur=2100000
quality_factor=0.4374
boost_factor=0.9944
reference_quality=0.505
history_matches=13
history_shrink=0.2778 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0048) | blend_weight=0.0048
history_matches=13
season_overlap_discount=1.0
per90_to_match_factor=0.9707
prior_reliability=0.0267
competition=La Liga | fouls: 0.725 -> 0.7332 wonTackle: 1.1344 -> 1.1406 interceptionWon: 1.0719 -> 1.0667 | 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': 'CDM vs CDM', 'duel_win_rate': 0.405, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9782, 'skill_edge': -0.0108, 'height_edge': -0.004, 'attacker_skill': 0.4374, 'defender_skill': 0.4615, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Marc Roca', 'market_value': 4200000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4615}], 'xg_override': 0.0385} | aerialWon: 0.6603 -> 1.1 totalShots: 0.5542 -> 0.5422 shotOffTarget: 0.424 -> 0.4148 | 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.57 (squad xG sum 0.9357, xG scale 1.6822, xA scale 1.6822, team xA 1.04 = 0.66 x lambda) | scoreline_reset=true
team_lambda=1.574
squad_xg_sum=0.9357
squad_xa_sum=0.6189
team_expected_assists=1.0411
team_xa_to_xg_ratio=0.6615 | expected_goals: 0.0385 -> 0.0648 expected_assists: 0.0258 -> 0.0434 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 79.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: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0627
goal_rate=0.0519
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.0425
assist_rate=0.044
provider_weight=0.0538 | - |
|
| Germán Valera | F | 86 | 0 | 0.22 | 0.05 | 393% | 1 | 0.5 | 7.0 | 58.5 | 42 | 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.9992, quality 0.477) | market_value_eur=6200000
quality_factor=0.4769
boost_factor=0.9992
reference_quality=0.505
history_matches=46
history_shrink=0.098 | - | 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': 'Junior Firpo', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.431, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9286, 'skill_edge': 0.0074, 'height_edge': -0.056, 'attacker_skill': 0.4769, 'defender_skill': 0.4604, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Junior Firpo', 'market_value': 3400000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.4604}], 'xg_override': 0.1334} | totalShots: 1.1989 -> 1.1133 shotOffTarget: 0.7187 -> 0.6674 onTargetScoringAttempt: 0.4801 -> 0.4458 goals: 0.2152 -> 0.1998 expectedGoals: 0.1437 -> 0.1334 expectedGoalsOnTarget: 0.0807 -> 0.0749 | 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.57 (squad xG sum 0.9357, xG scale 1.6822, xA scale 1.6822, team xA 1.04 = 0.66 x lambda) | scoreline_reset=true
team_lambda=1.574
squad_xg_sum=0.9357
squad_xa_sum=0.6189
team_expected_assists=1.0411
team_xa_to_xg_ratio=0.6615 | expected_goals: 0.1334 -> 0.2244 expected_assists: 0.1162 -> 0.1955 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 82.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: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.201
goal_rate=0.1998
scorer_weight=0.2805 | - | 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.1776
assist_rate=0.0349
provider_weight=0.1564 | - |
|
| Fernando Niño | F | 73 | 1 | 0.57 | 0.32 | 81% | 2 | 1.2 | 6.8 | 54.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 0.9940, quality 0.445) | market_value_eur=3600000
quality_factor=0.4449
boost_factor=0.994
reference_quality=0.505
history_matches=10
history_shrink=0.3333 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0361) | blend_weight=0.0361
history_matches=10
season_overlap_discount=1.0
per90_to_match_factor=0.8061
prior_reliability=0.1667
competition=La Liga | totalShots: 2.1609 -> 2.1291 fouls: 1.0612 -> 1.0345 totalOffside: 0.3119 -> 0.3006 wasFouled: 1.354 -> 1.3633 wonTackle: 0.8152 -> 0.8207 interceptionWon: 0.1843 -> 0.1893 | 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': 'Natan, Diego Llorente', '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.9056, 'skill_edge': -0.0782, 'height_edge': 0.014, 'attacker_skill': 0.4449, 'defender_skill': 0.6187, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Natan', 'market_value': 32000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7941}, {'player': 'Diego Llorente', 'market_value': 2600000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4432}], 'xg_override': 0.3386} | totalShots: 2.1576 -> 1.9539 shotOffTarget: 1.1103 -> 1.0055 onTargetScoringAttempt: 1.0473 -> 0.9484 expectedGoalsOnTarget: 0.6831 -> 0.6186 goals: 0.4092 -> 0.3706 expectedGoals: 0.3739 -> 0.3386 bigChanceMissed: 0.1567 -> 0.1419 | 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.57 (squad xG sum 0.9357, xG scale 1.6822, xA scale 1.6822, team xA 1.04 = 0.66 x lambda) | scoreline_reset=true
team_lambda=1.574
squad_xg_sum=0.9357
squad_xa_sum=0.6189
team_expected_assists=1.0411
team_xa_to_xg_ratio=0.6615 | expected_goals: 0.3386 -> 0.5695 expected_assists: 0.0385 -> 0.0648 | 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=1
goal_probability=0.4342
goal_rate=0.3706
scorer_weight=0.6164 | - | 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.0627
assist_rate=0.0
provider_weight=0.0518 | - |
|
| Ali Houary | F | 67 | 1 | 0.23 | 0.14 | 67% | 2 | 0.8 | 6.9 | 30.3 | 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 0.9899, quality 0.437) | market_value_eur=620000
quality_factor=0.4374
boost_factor=0.9899
reference_quality=0.505
history_matches=5
history_shrink=0.5 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0455) | blend_weight=0.0455
history_matches=5
season_overlap_discount=1.0
per90_to_match_factor=0.7434
prior_reliability=0.14
competition=La Liga | fouls: 1.5921 -> 1.5519 totalShots: 1.4119 -> 1.4285 totalCross: 0.4197 -> 0.4328 wasFouled: 0.5947 -> 0.5837 goals: 0.2361 -> 0.2254 wonTackle: 0.4961 -> 0.4896 onTargetScoringAttempt: 0.5839 -> 0.5898 totalOffside: 0.2269 -> 0.2327 | 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': 'Fran García', 'matchup_zone': 'Right Wing vs Left Back — Flank Battle', 'duel_win_rate': 0.474, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9919, 'skill_edge': -0.0375, 'height_edge': 0.032, 'attacker_skill': 0.4374, 'defender_skill': 0.5208, 'attacker_role': 'RW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Fran García', 'market_value': 6900000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.5208}], 'xg_override': 0.1363} | totalShots: 1.4285 -> 1.4169 shotOffTarget: 0.828 -> 0.8213 | 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.57 (squad xG sum 0.9357, xG scale 1.6822, xA scale 1.6822, team xA 1.04 = 0.66 x lambda) | scoreline_reset=true
team_lambda=1.574
squad_xg_sum=0.9357
squad_xa_sum=0.6189
team_expected_assists=1.0411
team_xa_to_xg_ratio=0.6615 | expected_goals: 0.1363 -> 0.2293 expected_assists: 0.0701 -> 0.1179 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 65.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=1
goal_probability=0.2049
goal_rate=0.2236
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.1112
assist_rate=0.0
provider_weight=0.0943 | - |
|
| Team totals | 2 | 1.57 | | 11 | | 6.9 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Alejandro Iturbe | G | 4.4m | 10.9% | Market-value substitute prior |
| Kevin Lomónaco | D | 13.7m | 30.4% | Market-value substitute prior |
| Rubén Sánchez | D | 13.6m | 29.9% | Market-value substitute prior |
| Martim Neto | M | 24.8m | 50.0% | Market-value substitute prior |
| Federico Redondo | M | 22.0m | 30.7% | Market-value substitute prior |
| Facundo Buonanotte | F | 26.4m | 53.4% | Market-value substitute prior |
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 |
|---|
| Álvaro Valles | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 7.2 | 63.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=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=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': 'Fernando Niño, Ali Houary', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.1709} | - | 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 1.0814, xG scale 1.3039, xA scale 1.1830, team xA 1.13 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.41
squad_xg_sum=1.0814
squad_xa_sum=0.9535
team_expected_assists=1.128
team_xa_to_xg_ratio=0.8 | shots_faced: 11.1 -> 15.0 expected_saves: 2.71 -> 3.68 high_pressure_saves: 0.94 -> 1.26 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 77.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.5061 | - | 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.0036 | - |
|
| Natan | D | 89 | 0 | 0.08 | 0.02 | 245% | 1 | 0.2 | 6.9 | 51.7 | 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.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.9929
prior_reliability=0.1333
competition=La Liga | wonTackle: 0.6913 -> 0.7032 interceptionWon: 0.8458 -> 0.838 | 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': 'Fernando Niño', '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 1.0814, xG scale 1.3039, xA scale 1.1830, team xA 1.13 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.41
squad_xg_sum=1.0814
squad_xa_sum=0.9535
team_expected_assists=1.128
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0619 -> 0.0807 | 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.0775
goal_rate=0.0667
scorer_weight=0.0842 | - | 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.013
assist_rate=0.0
provider_weight=0.0107 | - |
|
| Diego Llorente | D | 81 | 0 | 0.02 | 0.01 | 67% | 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.2469 -> 1.2719 wonTackle: 0.7347 -> 0.729 | 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': 'Fernando Niño', '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 1.0814, xG scale 1.3039, xA scale 1.1830, team xA 1.13 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.41
squad_xg_sum=1.0814
squad_xa_sum=0.9535
team_expected_assists=1.128
team_xa_to_xg_ratio=0.8 | - | 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=0
goal_probability=0.0174
goal_rate=0.0
scorer_weight=0.0141 | - | 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.004
assist_rate=0.0
provider_weight=0.0037 | - |
|
| Fran García | D | 89 | 0 | 0.02 | 0.02 | ok | 1 | 0.2 | 6.7 | 33.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 0.9989, quality 0.485) | market_value_eur=6900000
quality_factor=0.4854
boost_factor=0.9989
reference_quality=0.505
history_matches=22
history_shrink=0.1852 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0193) | blend_weight=0.0193
history_matches=22
season_overlap_discount=1.0
per90_to_match_factor=0.9883
prior_reliability=0.16
competition=La Liga | totalCross: 2.866 -> 2.898 totalShots: 0.5249 -> 0.5148 goalAssist: 0.0225 -> 0.03 wasFouled: 1.1303 -> 1.1244 | 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': 'Ali Houary', '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.41 (squad xG sum 1.0814, xG scale 1.3039, xA scale 1.1830, team xA 1.13 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.41
squad_xg_sum=1.0814
squad_xa_sum=0.9535
team_expected_assists=1.128
team_xa_to_xg_ratio=0.8 | expected_assists: 0.0472 -> 0.0558 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 17 by projected rating, fifa_overall 77.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.0197
goal_rate=0.0
scorer_weight=0.0159 | - | 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.0543
assist_rate=0.03
provider_weight=0.0459 | - |
|
| Junior Firpo | D | 79 | 0 | 0.03 | 0.00 | 888% | 0 | 0.0 | 6.8 | 22.1 | 21 | 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.9951, quality 0.442) | market_value_eur=3400000
quality_factor=0.4424
boost_factor=0.9951
reference_quality=0.505
history_matches=14
history_shrink=0.2632 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0068) | blend_weight=0.0068
history_matches=14
season_overlap_discount=1.0
per90_to_match_factor=0.8747
prior_reliability=0.04
competition=La Liga | totalCross: 1.4357 -> 1.4458 wonTackle: 1.2813 -> 1.2725 interceptionWon: 1.0311 -> 1.024 | 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': 'Germán Valera', '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.41 (squad xG sum 1.0814, xG scale 1.3039, xA scale 1.1830, team xA 1.13 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.41
squad_xg_sum=1.0814
squad_xa_sum=0.9535
team_expected_assists=1.128
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0194 -> 0.0253 expected_assists: 0.054 -> 0.0639 | 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: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.025
goal_rate=0.0
scorer_weight=0.0202 | - | 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.0619
assist_rate=0.034
provider_weight=0.0516 | - |
|
| Marc Roca | M | 86 | 0 | 0.06 | 0.02 | 153% | 1 | 0.5 | 7.1 | 51.3 | 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=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.9579
prior_reliability=0.1133
competition=La Liga | totalShots: 0.5759 -> 0.5854 wonTackle: 0.8983 -> 0.9052 fouls: 1.6966 -> 1.6916 | 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 Aguado', 'matchup_zone': 'Holding Mid vs Central Mid — Midfield Anchor Duel', 'duel_win_rate': 0.429, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0421, 'skill_edge': 0.0046, 'height_edge': 0.024, 'attacker_skill': 0.4615, 'defender_skill': 0.4512, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Marc Aguado', 'market_value': 3700000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.4512}], 'xg_override': 0.0447} | aerialWon: 0.5233 -> 1.1 totalShots: 0.5854 -> 0.61 shotOffTarget: 0.4365 -> 0.4549 onTargetScoringAttempt: 0.1382 -> 0.144 | 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 1.0814, xG scale 1.3039, xA scale 1.1830, team xA 1.13 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.41
squad_xg_sum=1.0814
squad_xa_sum=0.9535
team_expected_assists=1.128
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0447 -> 0.0583 expected_assists: 0.071 -> 0.084 | 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.0566
goal_rate=0.0469
scorer_weight=0.0597 | - | 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.0806
assist_rate=0.0653
provider_weight=0.08 | - |
|
| Isco | M | 68 | 0 | 0.20 | 0.19 | ok | 2 | 1.2 | 7.2 | 58.9 | 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.9961, quality 0.445) | market_value_eur=3600000
quality_factor=0.4449
boost_factor=0.9961
reference_quality=0.505
history_matches=18
history_shrink=0.2174 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0123) | blend_weight=0.0123
history_matches=18
season_overlap_discount=1.0
per90_to_match_factor=0.7518
prior_reliability=0.0867
competition=La Liga | fouls: 0.6204 -> 0.6411 onTargetScoringAttempt: 0.6292 -> 0.642 totalCross: 3.1144 -> 3.1258 | 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 Bigas', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.467, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9814, 'skill_edge': 0.0034, 'height_edge': -0.016, 'attacker_skill': 0.4449, 'defender_skill': 0.4374, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Pedro Bigas', 'market_value': 310000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.4374}], 'xg_override': 0.153} | aerialWon: 0.0 -> 0.9 totalShots: 1.8279 -> 1.7939 shotOffTarget: 1.1859 -> 1.1638 onTargetScoringAttempt: 0.642 -> 0.6301 expectedGoalsOnTarget: 0.4169 -> 0.4091 | 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 1.0814, xG scale 1.3039, xA scale 1.1830, team xA 1.13 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.41
squad_xg_sum=1.0814
squad_xa_sum=0.9535
team_expected_assists=1.128
team_xa_to_xg_ratio=0.8 | expected_goals: 0.153 -> 0.1995 expected_assists: 0.1915 -> 0.2267 | 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: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1809
goal_rate=0.1486
scorer_weight=0.1952 | - | 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.2028
assist_rate=0.1938
provider_weight=0.2289 | - |
|
| Pablo Fornals | M | 80 | 0 | 0.21 | 0.09 | 149% | 2 | 1.1 | 7.2 | 62.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.0000, quality 0.503) | market_value_eur=8400000
quality_factor=0.5035
boost_factor=1.0
reference_quality=0.505
history_matches=47
history_shrink=0.0962 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0092) | blend_weight=0.0092
history_matches=47
season_overlap_discount=1.0
per90_to_match_factor=0.8914
prior_reliability=0.1467
competition=La Liga | totalShots: 1.5056 -> 1.5136 wasFouled: 0.8332 -> 0.8256 interceptionWon: 0.8785 -> 0.8853 | 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': 'Víctor Chust', 'matchup_zone': 'Right Wing vs Left Back — Flank Battle', 'duel_win_rate': 0.489, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0131, 'skill_edge': 0.0249, 'height_edge': -0.016, 'attacker_skill': 0.5035, 'defender_skill': 0.4481, 'attacker_role': 'RW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Víctor Chust', 'market_value': 2700000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.4481}], 'xg_override': 0.1632} | aerialWon: 0.2656 -> 1.0 totalShots: 1.5136 -> 1.5334 shotOffTarget: 1.0467 -> 1.0604 onTargetScoringAttempt: 0.4547 -> 0.4607 | 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 1.0814, xG scale 1.3039, xA scale 1.1830, team xA 1.13 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.41
squad_xg_sum=1.0814
squad_xa_sum=0.9535
team_expected_assists=1.128
team_xa_to_xg_ratio=0.8 | expected_goals: 0.1632 -> 0.2128 expected_assists: 0.1885 -> 0.223 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 85.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.1917
goal_rate=0.1435
scorer_weight=0.1931 | - | 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.1999
assist_rate=0.1326
provider_weight=0.1784 | - |
|
| Facundo Bernal | M | 75 | 0 | 0.07 | 0.02 | 299% | 1 | 0.5 | 6.8 | 48.4 | 11 | 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.0016, quality 0.519) | market_value_eur=9700000
quality_factor=0.5189
boost_factor=1.0016
reference_quality=0.505
history_matches=8
history_shrink=0.3846 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0400) | blend_weight=0.04
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=0.8366
prior_reliability=0.16
competition=La Liga | wonTackle: 0.9687 -> 0.9439 fouls: 0.8657 -> 0.845 interceptionWon: 1.2349 -> 1.2552 totalShots: 0.7182 -> 0.7306 onTargetScoringAttempt: 0.1867 -> 0.193 | 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 Aguado', 'matchup_zone': 'Holding Mid vs Central Mid — Midfield Anchor Duel', 'duel_win_rate': 0.475, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.1109, 'skill_edge': 0.0395, 'height_edge': 0.036, 'attacker_skill': 0.5389, 'defender_skill': 0.4512, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Marc Aguado', 'market_value': 3700000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.4512}], 'xg_override': 0.0545} | aerialWon: 0.3811 -> 1.2 totalShots: 0.7306 -> 0.8116 shotOffTarget: 0.5315 -> 0.5904 onTargetScoringAttempt: 0.193 -> 0.2144 goals: 0.0568 -> 0.0631 expectedGoals: 0.0491 -> 0.0545 | 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 1.0814, xG scale 1.3039, xA scale 1.1830, team xA 1.13 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.41
squad_xg_sum=1.0814
squad_xa_sum=0.9535
team_expected_assists=1.128
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0545 -> 0.0711 expected_assists: 0.0278 -> 0.0329 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 74.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.0686
goal_rate=0.0631
scorer_weight=0.077 | - | 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.0324
assist_rate=0.0432
provider_weight=0.0394 | - |
|
| Giovani Lo Celso | M | 68 | 0 | 0.12 | 0.04 | 182% | 1 | 0.5 | 6.9 | 43.9 | 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 0.9990, quality 0.484) | market_value_eur=6800000
quality_factor=0.4842
boost_factor=0.999
reference_quality=0.505
history_matches=27
history_shrink=0.1562 | - | 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 Morcillo', 'matchup_zone': 'Attacking Mid vs Single Holding Mid — Space Creator Duel', 'duel_win_rate': 0.459, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9985, 'skill_edge': 0.023, 'height_edge': -0.024, 'attacker_skill': 0.4885, 'defender_skill': 0.4374, 'attacker_role': 'CAM', 'attacker_mv_price_index': 0.95, 'defender_adjusted_parts': [{'player': 'Javi Morcillo', 'market_value': 2100000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4374}], 'xg_override': 0.0904} | aerialWon: 0.3946 -> 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.41 (squad xG sum 1.0814, xG scale 1.3039, xA scale 1.1830, team xA 1.13 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.41
squad_xg_sum=1.0814
squad_xa_sum=0.9535
team_expected_assists=1.128
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0904 -> 0.1179 expected_assists: 0.1259 -> 0.1489 | 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.1112
goal_rate=0.0817
scorer_weight=0.1106 | - | 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.1383
assist_rate=0.1031
provider_weight=0.1296 | - |
|
| Abdessamad Ezzalzouli | F | 85 | 1 | 0.48 | 0.24 | 99% | 3 | 2.0 | 7.2 | 62.1 | 33 | 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.0104, quality 0.796) | market_value_eur=43000000
quality_factor=0.7957
boost_factor=1.0104
reference_quality=0.505
history_matches=37
history_shrink=0.119 | - | 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': 'Buba Sangaré, Roy Revivo', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.317, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.1716, 'skill_edge': 0.1427, 'height_edge': -0.026, 'attacker_skill': 0.7957, 'defender_skill': 0.4785, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Buba Sangaré', 'market_value': 4900000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4809}, {'player': 'Roy Revivo', 'market_value': 4600000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4761}], 'xg_override': 0.3716} | totalShots: 2.6976 -> 3.1605 shotOffTarget: 1.5849 -> 1.8569 onTargetScoringAttempt: 1.1127 -> 1.3036 goals: 0.4456 -> 0.5221 expectedGoalsOnTarget: 0.3696 -> 0.433 expectedGoals: 0.3172 -> 0.3716 bigChanceMissed: 0.3074 -> 0.3601 | 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.41 (squad xG sum 1.0814, xG scale 1.3039, xA scale 1.1830, team xA 1.13 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.41
squad_xg_sum=1.0814
squad_xa_sum=0.9535
team_expected_assists=1.128
team_xa_to_xg_ratio=0.8 | expected_goals: 0.3716 -> 0.4845 expected_assists: 0.184 -> 0.2177 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 86.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: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.384
goal_rate=0.5221
scorer_weight=0.6056 | - | 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.1956
assist_rate=0.0808
provider_weight=0.1742 | - |
|
| Team totals | 1 | 1.41 | | 14 | | 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 |
| Angel Ortiz | D | 13.8m | 22.1% | Market-value substitute prior |
| Nelson Deossa | M | 19.9m | 57.0% | Market-value substitute prior |
| Dani Ceballos | M | 22.1m | 50.6% | Market-value substitute prior |
| Antony | F | 26.6m | 36.0% | Market-value substitute prior |
Antagonist / tactical summary
Midfield is evenly contested — Marc Aguado vs Facundo Bernal will be the pivotal duel. Total antagonist xG — Home: 0.75, Away: 0.88. 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.9% / 51.1%, dominance ratio 0.45, key duel: Marc Aguado vs Facundo Bernal
Germán Valera xG 0.13Ali Houary xG 0.14Fernando Niño xG 0.34Isco xG 0.15Pablo Fornals xG 0.16Giovani Lo Celso xG 0.09
Summary
Antagonist matchup analysis for Elche vs Real Betis. Most likely scoreline: 2-1. Lambdas derived from 6 home and 6 away individual player duels. Head-to-head: Elche 2W-2D-6L vs Real Betis over 10 meetings.
Tactical parity between 4-3-3 and 4-2-3-1. Match outcome driven primarily by individual player quality. Midfield is evenly contested — Marc Aguado vs Facundo Bernal will be the pivotal duel. Total antagonist xG — Home: 0.75, Away: 0.88. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Ipswich vs Bournemouth
Premier League · 20261108 · 4-2-3-1 vs 4-2-3-1
Predicted 1-1Winner: DrawWinning H 1-0 (8.4%)Winning A 0-1 (8.6%)Confidence 0.64λ home/away 1.37 / 1.41Most-likely P 12.1%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset TracingAntagonist + XGBoost match analysis for Ipswich vs Bournemouth. 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.210, Away 1.351). Final calibrated Poisson lambdas: Home 1.370, Away 1.411 (most likely score 1-1).
Home Starters 11/11 XGBoost (9 FBref) Away Starters 11/11 XGBoost (10 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.21 / 1.35 Final λ (H/A) 1.37 / 1.41
FBref Team Priors: Ipswich Town (Gls/90: 2.0, GA/90: 2.0 → E[λ]: 1.379) vs Bournemouth (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 | Ipswich | Bournemouth |
|---|
| League position | 13.00 | 7.00 |
| Points per game | 1.28 | 1.34 |
| Attack index | 1.11 | 1.01 |
| Defense (concede) index | 0.98 | 1.26 |
| Form multiplier | 1.00 | 1.00 |
| Standing λ multiplier | 1.03 | 1.10 |
Lambda decomposition (how the goal rates were built)
| Stage | Ipswich λ | Bournemouth λ |
|---|
| FBref Squad Prior E[λ] (weight 0.192) | 1.379 | 1.379 |
| Pre-competitive-floor | 1.210 | 1.351 |
| Pre-calibration (Micro-duels) | 1.210 | 1.351 |
| Final λ | 1.370 | 1.411 |
competition calibration scale 1.086competition 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.6% |
| 1-2 | 8.5% |
| 1-0 | 8.4% |
| 2-1 | 8.2% |
| Home win | 36.3% |
| Draw | 25.6% |
| Away win | 38.1% |
| Over 2.5 | 52.6% |
| BTTS yes | 56.5% |
Pregame fair line — favorite Bournemouth (38.1%), 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.
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 | 7.0 | 22.9 | 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.9899, quality 0.437) | market_value_eur=2600000
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': 'Rayan, Justin Kluivert', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.3505} | - | 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 0.9028, xG scale 1.5176, xA scale 1.5176, team xA 0.98 = 0.72 x lambda) | scoreline_reset=true
team_lambda=1.37
squad_xg_sum=0.9028
squad_xa_sum=0.6471
team_expected_assists=0.982
team_xa_to_xg_ratio=0.7168 | shots_faced: 12.8 -> 13.4 expected_saves: 3.13 -> 3.28 high_pressure_saves: 1.08 -> 1.13 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 73.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.0
scorer_weight=0.0
squad_weight_total=1.4124 | - | 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.0631 | - |
|
| Issa Diop | D | 90 | 0 | 0.06 | 0.03 | 100% | 0 | 0.1 | 6.9 | 36.9 | 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=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.998
prior_reliability=0.1333
competition=Premier League | fouls: 0.8618 -> 0.872 interceptionWon: 1.0645 -> 1.0714 totalShots: 0.3714 -> 0.3654 | 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 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 0.9028, xG scale 1.5176, xA scale 1.5176, team xA 0.98 = 0.72 x lambda) | scoreline_reset=true
team_lambda=1.37
squad_xg_sum=0.9028
squad_xa_sum=0.6471
team_expected_assists=0.982
team_xa_to_xg_ratio=0.7168 | expected_goals: 0.0383 -> 0.0581 expected_assists: 0.0148 -> 0.0225 | 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.0564
goal_rate=0.0365
scorer_weight=0.0569 | - | 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.018 | - |
|
| Leif Davis | D | 90 | 0 | 0.21 | 0.12 | 79% | 1 | 0.5 | 6.7 | 43.6 | 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.0194, quality 0.686) | market_value_eur=26000000
quality_factor=0.6858
boost_factor=1.0194
reference_quality=0.505
history_matches=9
history_shrink=0.3571 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0309) | blend_weight=0.0309
history_matches=9
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League | totalCross: 2.7087 -> 2.6713 onTargetScoringAttempt: 0.2159 -> 0.2402 wonTackle: 0.7174 -> 0.6952 fouls: 0.7127 -> 0.6906 totalShots: 0.5185 -> 0.5334 goals: 0.1521 -> 0.1629 | 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 Christie', '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.37 (squad xG sum 0.9028, xG scale 1.5176, xA scale 1.5176, team xA 0.98 = 0.72 x lambda) | scoreline_reset=true
team_lambda=1.37
squad_xg_sum=0.9028
squad_xa_sum=0.6471
team_expected_assists=0.982
team_xa_to_xg_ratio=0.7168 | expected_goals: 0.1386 -> 0.2103 expected_assists: 0.0644 -> 0.0977 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 75.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.1897
goal_rate=0.1629
scorer_weight=0.2374 | - | 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.0931
assist_rate=0.0856
provider_weight=0.1158 | - |
|
| Dara O'Shea | D | 90 | 0 | 0.05 | 0.02 | 129% | 0 | 0.1 | 6.8 | 43.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.0145, quality 0.641) | market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.0145
reference_quality=0.505
history_matches=9
history_shrink=0.3571 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0309) | blend_weight=0.0309
history_matches=9
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League | fouls: 0.5768 -> 0.6054 interceptionWon: 1.2112 -> 1.1892 wonTackle: 0.9626 -> 0.9483 totalCross: 0.6867 -> 0.6964 wasFouled: 0.784 -> 0.7907 | 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': '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.37 (squad xG sum 0.9028, xG scale 1.5176, xA scale 1.5176, team xA 0.98 = 0.72 x lambda) | scoreline_reset=true
team_lambda=1.37
squad_xg_sum=0.9028
squad_xa_sum=0.6471
team_expected_assists=0.982
team_xa_to_xg_ratio=0.7168 | expected_goals: 0.033 -> 0.0501 expected_assists: 0.0264 -> 0.0401 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 75.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.0489
goal_rate=0.1178
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.0393
assist_rate=0.0
provider_weight=0.0321 | - |
|
| Jacob Greaves | D | 89 | 0 | 0.01 | 0.00 | 484% | 0 | 0.1 | 6.8 | 22.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.0132, quality 0.593) | market_value_eur=16300000
quality_factor=0.5932
boost_factor=1.0132
reference_quality=0.505
history_matches=5
history_shrink=0.5 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0433) | blend_weight=0.0433
history_matches=5
season_overlap_discount=1.0
per90_to_match_factor=0.9942
prior_reliability=0.1333
competition=Premier League | wasFouled: 1.0914 -> 1.1303 interceptionWon: 0.8577 -> 0.8205 wonTackle: 0.8215 -> 0.8505 totalShots: 0.3316 -> 0.3172 fouls: 0.8568 -> 0.8628 | 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 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 0.9028, xG scale 1.5176, xA scale 1.5176, team xA 0.98 = 0.72 x lambda) | scoreline_reset=true
team_lambda=1.37
squad_xg_sum=0.9028
squad_xa_sum=0.6471
team_expected_assists=0.982
team_xa_to_xg_ratio=0.7168 | expected_assists: 0.0162 -> 0.0246 | 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.0091
goal_rate=0.0
scorer_weight=0.0081 | - | 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.0243
assist_rate=0.0
provider_weight=0.0197 | - |
|
| Saša Lukić | M | 83 | 0 | 0.07 | 0.03 | 157% | 1 | 0.4 | 7.0 | 47.3 | 24 | 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.515) | market_value_eur=9400000
quality_factor=0.5154
boost_factor=1.0004
reference_quality=0.505
history_matches=32
history_shrink=0.1351 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0105) | blend_weight=0.0105
history_matches=32
season_overlap_discount=1.0
per90_to_match_factor=0.9228
prior_reliability=0.12
competition=Premier League | wonTackle: 0.9597 -> 0.9658 wasFouled: 0.4797 -> 0.4746 | 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': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.527, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0692, 'skill_edge': 0.0351, 'height_edge': 0.012, 'attacker_skill': 0.5154, 'defender_skill': 0.4374, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Adam Smith', 'market_value': 310000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.4374}], 'xg_override': 0.048} | aerialWon: 0.4507 -> 1.1 totalShots: 0.5189 -> 0.5548 shotOffTarget: 0.3529 -> 0.3773 onTargetScoringAttempt: 0.1642 -> 0.1756 | 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 0.9028, xG scale 1.5176, xA scale 1.5176, team xA 0.98 = 0.72 x lambda) | scoreline_reset=true
team_lambda=1.37
squad_xg_sum=0.9028
squad_xa_sum=0.6471
team_expected_assists=0.982
team_xa_to_xg_ratio=0.7168 | expected_goals: 0.048 -> 0.0728 expected_assists: 0.1042 -> 0.1581 | 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.0702
goal_rate=0.0525
scorer_weight=0.0761 | - | 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.1462
assist_rate=0.1055
provider_weight=0.1594 | - |
|
| Julio Enciso | M | 83 | 0 | 0.28 | 0.14 | 106% | 3 | 2.0 | 7.0 | 45.8 | 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.0211, quality 0.702) | market_value_eur=28000000
quality_factor=0.7022
boost_factor=1.0211
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.924
prior_reliability=0.12
competition=Premier League | totalCross: 1.0371 -> 1.0082 goalAssist: 0.1513 -> 0.1757 totalShots: 2.5288 -> 2.5454 wasFouled: 1.4724 -> 1.4886 wonTackle: 0.631 -> 0.642 interceptionWon: 0.3487 -> 0.339 onTargetScoringAttempt: 0.8267 -> 0.8181 goals: 0.1953 -> 0.1899 | 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': 'Right Wing vs Left Back — Flank Battle', 'duel_win_rate': 0.418, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9087, 'skill_edge': -0.0501, 'height_edge': -0.012, 'attacker_skill': 0.7022, 'defender_skill': 0.8135, 'attacker_role': 'RW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Adrien Truffert', 'market_value': 33000000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.8135}], 'xg_override': 0.1869} | aerialWon: 0.0884 -> 0.9 totalShots: 2.5454 -> 2.313 shotOffTarget: 1.7021 -> 1.5467 onTargetScoringAttempt: 0.8181 -> 0.7434 expectedGoalsOnTarget: 0.3533 -> 0.321 bigChanceMissed: 0.2842 -> 0.2583 expectedGoals: 0.2057 -> 0.1869 goals: 0.1899 -> 0.1726 | 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 0.9028, xG scale 1.5176, xA scale 1.5176, team xA 0.98 = 0.72 x lambda) | scoreline_reset=true
team_lambda=1.37
squad_xg_sum=0.9028
squad_xa_sum=0.6471
team_expected_assists=0.982
team_xa_to_xg_ratio=0.7168 | expected_goals: 0.1869 -> 0.2836 expected_assists: 0.152 -> 0.2306 | 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.2469
goal_rate=0.1726
scorer_weight=0.2665 | - | 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.2059
assist_rate=0.1757
provider_weight=0.2576 | - |
|
| Florentino Luís | M | 76 | 0 | 0.07 | 0.01 | 531% | 1 | 0.2 | 6.8 | 47.2 | 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.0028, quality 0.585) | market_value_eur=15500000
quality_factor=0.5846
boost_factor=1.0028
reference_quality=0.505
history_matches=37
history_shrink=0.119 | - | 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': 'CDM vs CDM', 'duel_win_rate': 0.39, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9553, 'skill_edge': -0.0664, 'height_edge': 0.036, 'attacker_skill': 0.6134, 'defender_skill': 0.761, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Tyler Adams', 'market_value': 31000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.761}], 'xg_override': 0.0473} | aerialWon: 0.942 -> 1.1 totalShots: 0.612 -> 0.5846 shotOffTarget: 0.4331 -> 0.4137 onTargetScoringAttempt: 0.1788 -> 0.1708 | 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 0.9028, xG scale 1.5176, xA scale 1.5176, team xA 0.98 = 0.72 x lambda) | scoreline_reset=true
team_lambda=1.37
squad_xg_sum=0.9028
squad_xa_sum=0.6471
team_expected_assists=0.982
team_xa_to_xg_ratio=0.7168 | expected_goals: 0.0473 -> 0.0718 expected_assists: 0.0376 -> 0.0571 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 80.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.0693
goal_rate=0.0499
scorer_weight=0.0737 | - | 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.0555
assist_rate=0.0502
provider_weight=0.0653 | - |
|
| Exequiel Palacios | M | 87 | 0 | 0.05 | - | n/a | 0 | 0.0 | 7.1 | 43.2 | 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.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.0050) | blend_weight=0.005
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=0.9671
prior_reliability=0.02
competition=Premier League | interceptionWon: 1.0987 -> 1.1254 fouls: 1.1861 -> 1.1963 wonTackle: 1.2394 -> 1.2493 wasFouled: 1.2881 -> 1.2978 | 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, Lewis Cook', 'matchup_zone': 'Attacking Mid vs Double Pivot — Tight Space Battle', 'duel_win_rate': 0.264, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 1.0346, 'skill_edge': 0.0155, 'height_edge': 0.008, 'attacker_skill': 0.6971, 'defender_skill': 0.6626, 'attacker_role': 'CAM', 'attacker_mv_price_index': 0.95, 'defender_adjusted_parts': [{'player': 'Tyler Adams', 'market_value': 31000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.761}, {'player': 'Lewis Cook', 'market_value': 11600000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.5643}], 'xg_override': 0.0347} | aerialWon: 0.2458 -> 1.0 totalShots: 0.4125 -> 0.4268 shotOffTarget: 0.307 -> 0.3176 | 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 0.9028, xG scale 1.5176, xA scale 1.5176, team xA 0.98 = 0.72 x lambda) | scoreline_reset=true
team_lambda=1.37
squad_xg_sum=0.9028
squad_xa_sum=0.6471
team_expected_assists=0.982
team_xa_to_xg_ratio=0.7168 | expected_goals: 0.0347 -> 0.0527 expected_assists: 0.059 -> 0.0895 | 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: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0513
goal_rate=0.0441
scorer_weight=0.0585 | - | 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.0553
provider_weight=0.0865 | - |
|
| Abdoul Ouattara | M | 89 | 0 | 0.06 | 0.01 | 544% | 1 | 0.2 | 6.9 | 48.5 | 21 | 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.0097, quality 0.595) | market_value_eur=16500000
quality_factor=0.5953
boost_factor=1.0097
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.9873
prior_reliability=0.02
competition=Premier League | totalCross: 1.9085 -> 1.8996 interceptionWon: 1.3234 -> 1.3173 wonTackle: 1.2916 -> 1.2856 | 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': 'CDM vs CDM', 'duel_win_rate': 0.379, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9396, 'skill_edge': -0.0611, 'height_edge': 0.02, 'attacker_skill': 0.6252, 'defender_skill': 0.761, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Tyler Adams', 'market_value': 31000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.761}], 'xg_override': 0.0415} | aerialWon: 0.3639 -> 1.1 totalShots: 0.5401 -> 0.5075 shotOffTarget: 0.3944 -> 0.3706 onTargetScoringAttempt: 0.1457 -> 0.1369 | 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 0.9028, xG scale 1.5176, xA scale 1.5176, team xA 0.98 = 0.72 x lambda) | scoreline_reset=true
team_lambda=1.37
squad_xg_sum=0.9028
squad_xa_sum=0.6471
team_expected_assists=0.982
team_xa_to_xg_ratio=0.7168 | expected_goals: 0.0415 -> 0.063 expected_assists: 0.0794 -> 0.1205 | 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.0611
goal_rate=0.0432
scorer_weight=0.0642 | - | 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.1135
assist_rate=0.0921
provider_weight=0.1323 | - |
|
| Emersonn | F | 71 | 1 | 0.42 | 0.19 | 118% | 2 | 1.1 | 6.7 | 43.4 | 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.0175, quality 0.669) | market_value_eur=24000000
quality_factor=0.6685
boost_factor=1.0175
reference_quality=0.505
history_matches=9
history_shrink=0.3571 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0186) | blend_weight=0.0186
history_matches=9
season_overlap_discount=1.0
per90_to_match_factor=0.7926
prior_reliability=0.08
competition=Premier League | totalOffside: 0.8892 -> 0.8727 onTargetScoringAttempt: 0.6919 -> 0.7032 totalCross: 0.0541 -> 0.0654 wonTackle: 0.2327 -> 0.2406 goals: 0.2919 -> 0.2987 wasFouled: 1.6671 -> 1.6607 | 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 Hill, António Silva', '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.9199, 'skill_edge': -0.0565, 'height_edge': 0.002, 'attacker_skill': 0.6685, 'defender_skill': 0.7941, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'James Hill', 'market_value': 32000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7941}, {'player': 'António Silva', 'market_value': 32000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7941}], 'xg_override': 0.2741} | totalShots: 2.111 -> 1.9419 shotOffTarget: 1.4078 -> 1.295 onTargetScoringAttempt: 0.7032 -> 0.6469 goals: 0.2987 -> 0.2748 expectedGoals: 0.298 -> 0.2741 bigChanceMissed: 0.2866 -> 0.2636 expectedGoalsOnTarget: 0.1338 -> 0.1231 | 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 0.9028, xG scale 1.5176, xA scale 1.5176, team xA 0.98 = 0.72 x lambda) | scoreline_reset=true
team_lambda=1.37
squad_xg_sum=0.9028
squad_xa_sum=0.6471
team_expected_assists=0.982
team_xa_to_xg_ratio=0.7168 | expected_goals: 0.2741 -> 0.416 expected_assists: 0.0435 -> 0.066 | 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: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.3403
goal_rate=0.2748
scorer_weight=0.4169 | - | 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.0639
assist_rate=0.0865
provider_weight=0.0825 | - |
|
| Team totals | 1 | 1.37 | | 10 | | 6.9 | | |
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 |
| Cédric Kipré | D | 13.6m | 29.9% | Market-value substitute prior |
| Darnell Furlong | D | 16.0m | 60.2% | 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 |
| Abdul Fatawu Issahaku | F | 26.2m | 35.3% | Market-value substitute prior |
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 |
|---|
| Đorđe Petrović | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 6.9 | 58.5 | 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.0059, quality 0.710) | market_value_eur=29000000
quality_factor=0.71
boost_factor=1.0059
reference_quality=0.505
history_matches=47
history_shrink=0.0962 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0083) | blend_weight=0.0083
history_matches=47
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League | saves: 2.7329 -> 2.7476 | 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.2104} | - | 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 1.1126, xG scale 1.2682, xA scale 1.2682, team xA 1.12 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.411
squad_xg_sum=1.1126
squad_xa_sum=0.8871
team_expected_assists=1.125
team_xa_to_xg_ratio=0.7973 | shots_faced: 11.5 -> 13.0 expected_saves: 2.81 -> 3.18 high_pressure_saves: 0.97 -> 1.1 | 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.0
scorer_weight=0.0
squad_weight_total=1.4986 | - | 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.1331 | - |
|
| Adrien Truffert | D | 89 | 0 | 0.04 | 0.04 | ok | 1 | 0.4 | 6.9 | 58.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.0067, quality 0.739) | market_value_eur=33000000
quality_factor=0.7389
boost_factor=1.0067
reference_quality=0.505
history_matches=47
history_shrink=0.0962 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0083) | blend_weight=0.0083
history_matches=47
season_overlap_discount=1.0
per90_to_match_factor=0.9938
prior_reliability=0.1333
competition=Premier League | totalCross: 3.6485 -> 3.6388 wonTackle: 1.3299 -> 1.323 totalShots: 0.6246 -> 0.6194 | 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': '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.41 (squad xG sum 1.1126, xG scale 1.2682, xA scale 1.2682, team xA 1.12 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.411
squad_xg_sum=1.1126
squad_xa_sum=0.8871
team_expected_assists=1.125
team_xa_to_xg_ratio=0.7973 | expected_goals: 0.0309 -> 0.0392 expected_assists: 0.1253 -> 0.1589 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 80.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.0384
goal_rate=0.0158
scorer_weight=0.0319 | - | 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.1469
assist_rate=0.2079
provider_weight=0.1986 | - |
|
| James Hill | D | 90 | 0 | 0.02 | 0.02 | ok | 1 | 0.4 | 7.2 | 60.9 | 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.0079, quality 0.732) | market_value_eur=32000000
quality_factor=0.732
boost_factor=1.0079
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.9996
prior_reliability=0.1333
competition=Premier League | totalShots: 0.6993 -> 0.6923 fouls: 0.8455 -> 0.8521 | 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 1.1126, xG scale 1.2682, xA scale 1.2682, team xA 1.12 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.411
squad_xg_sum=1.1126
squad_xa_sum=0.8871
team_expected_assists=1.125
team_xa_to_xg_ratio=0.7973 | expected_assists: 0.0603 -> 0.0765 | 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.0201
goal_rate=0.0
scorer_weight=0.0162 | - | 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.0736
assist_rate=0.0123
provider_weight=0.0612 | - |
|
| Adam Smith | D | 85 | 0 | 0.08 | 0.02 | 357% | 0 | 0.1 | 6.7 | 37.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.9972, quality 0.437) | market_value_eur=310000
quality_factor=0.4374
boost_factor=0.9972
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.9391
prior_reliability=0.1333
competition=Premier League | interceptionWon: 0.8741 -> 0.8805 | 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': 'Saša Lukić', '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.41 (squad xG sum 1.1126, xG scale 1.2682, xA scale 1.2682, team xA 1.12 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.411
squad_xg_sum=1.1126
squad_xa_sum=0.8871
team_expected_assists=1.125
team_xa_to_xg_ratio=0.7973 | expected_goals: 0.0604 -> 0.0766 expected_assists: 0.0487 -> 0.0618 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 73.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.0737
goal_rate=0.0
scorer_weight=0.0613 | - | 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.0599
assist_rate=0.0366
provider_weight=0.0542 | - |
|
| António Silva | D | 90 | 0 | 0.16 | 0.09 | 70% | 1 | 0.4 | 7.0 | 44.7 | 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.0243, quality 0.732) | market_value_eur=32000000
quality_factor=0.732
boost_factor=1.0243
reference_quality=0.505
history_matches=9
history_shrink=0.3571 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0309) | blend_weight=0.0309
history_matches=9
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League | fouls: 0.8511 -> 0.8402 interceptionWon: 1.2634 -> 1.2552 totalShots: 0.7379 -> 0.7305 wonTackle: 0.7893 -> 0.7958 onTargetScoringAttempt: 0.1982 -> 0.1921 | 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 1.1126, xG scale 1.2682, xA scale 1.2682, team xA 1.12 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.411
squad_xg_sum=1.1126
squad_xa_sum=0.8871
team_expected_assists=1.125
team_xa_to_xg_ratio=0.7973 | expected_goals: 0.1242 -> 0.1575 expected_assists: 0.034 -> 0.0431 | 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: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1457
goal_rate=0.0
scorer_weight=0.126 | - | 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.0422
assist_rate=0.0
provider_weight=0.0345 | - |
|
| Alex Scott | M | 89 | 0 | 0.13 | 0.12 | ok | 1 | 1.1 | 7.2 | 60.0 | 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.0119, quality 0.877) | market_value_eur=75000000
quality_factor=0.877
boost_factor=1.0119
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.9889
prior_reliability=0.1333
competition=Premier League | wonTackle: 1.0163 -> 1.0252 wasFouled: 2.7468 -> 2.7397 totalCross: 3.199 -> 3.206 | 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, Abdoul Ouattara', 'matchup_zone': 'Attacking Mid vs Double Pivot — Tight Space Battle', 'duel_win_rate': 0.342, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.1496, 'skill_edge': 0.1178, 'height_edge': -0.016, 'attacker_skill': 0.8811, 'defender_skill': 0.6193, 'attacker_role': 'CAM', 'attacker_mv_price_index': 0.95, 'defender_adjusted_parts': [{'player': 'Florentino Luís', 'market_value': 15500000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.6134}, {'player': 'Abdoul Ouattara', 'market_value': 16500000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.6252}], 'xg_override': 0.1004} | totalShots: 1.1684 -> 1.3432 aerialWon: 0.8709 -> 1.0 shotOffTarget: 0.8235 -> 0.9467 onTargetScoringAttempt: 0.3449 -> 0.3965 bigChanceMissed: 0.149 -> 0.1713 expectedGoalsOnTarget: 0.118 -> 0.1357 goals: 0.1115 -> 0.1282 expectedGoals: 0.0873 -> 0.1004 | 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 1.1126, xG scale 1.2682, xA scale 1.2682, team xA 1.12 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.411
squad_xg_sum=1.1126
squad_xa_sum=0.8871
team_expected_assists=1.125
team_xa_to_xg_ratio=0.7973 | expected_goals: 0.1004 -> 0.1273 expected_assists: 0.1513 -> 0.1919 | 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.1195
goal_rate=0.1282
scorer_weight=0.1508 | - | 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.1746
assist_rate=0.0984
provider_weight=0.1535 | - |
|
| Tyler Adams | M | 84 | 0 | 0.06 | 0.01 | 497% | 1 | 0.2 | 6.9 | 51.4 | 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.0085, quality 0.725) | market_value_eur=31000000
quality_factor=0.7249
boost_factor=1.0085
reference_quality=0.505
history_matches=34
history_shrink=0.1282 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0022) | blend_weight=0.0022
history_matches=34
season_overlap_discount=1.0
per90_to_match_factor=0.9381
prior_reliability=0.0267
competition=Premier League | interceptionWon: 1.3629 -> 1.3703 | 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': 'CDM vs CDM', 'duel_win_rate': 0.45, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0447, 'skill_edge': 0.0664, 'height_edge': -0.036, 'attacker_skill': 0.761, 'defender_skill': 0.6134, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Florentino Luís', 'market_value': 15500000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.6134}], 'xg_override': 0.0438} | aerialWon: 1.0965 -> 0.9 totalShots: 0.507 -> 0.5297 shotOffTarget: 0.3812 -> 0.3982 onTargetScoringAttempt: 0.1258 -> 0.1314 | 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 1.1126, xG scale 1.2682, xA scale 1.2682, team xA 1.12 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.411
squad_xg_sum=1.1126
squad_xa_sum=0.8871
team_expected_assists=1.125
team_xa_to_xg_ratio=0.7973 | expected_goals: 0.0438 -> 0.0555 expected_assists: 0.0335 -> 0.0425 | 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: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.054
goal_rate=0.0545
scorer_weight=0.0618 | - | 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.0416
assist_rate=0.0481
provider_weight=0.0499 | - |
|
| Justin Kluivert | M | 73 | 0 | 0.21 | 0.10 | 117% | 2 | 1.1 | 6.8 | 41.4 | 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.0077, quality 0.669) | market_value_eur=24000000
quality_factor=0.6685
boost_factor=1.0077
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.8144
prior_reliability=0.1133
competition=Premier League | onTargetScoringAttempt: 0.5704 -> 0.5802 totalCross: 2.2455 -> 2.2362 fouls: 1.7088 -> 1.7002 totalShots: 1.718 -> 1.7256 wonTackle: 0.4093 -> 0.4156 | 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': "Dara O'Shea", 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.398, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 0.8794, 'skill_edge': -0.0221, 'height_edge': -0.06, 'attacker_skill': 0.6685, 'defender_skill': 0.7176, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': "Dara O'Shea", 'market_value': 21000000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.7176}], 'xg_override': 0.1626} | aerialWon: 0.4679 -> 0.8 totalShots: 1.7278 -> 1.5194 shotOffTarget: 1.1476 -> 1.0092 onTargetScoringAttempt: 0.5802 -> 0.5102 expectedGoalsOnTarget: 0.2487 -> 0.2187 goals: 0.1866 -> 0.1641 expectedGoals: 0.1849 -> 0.1626 bigChanceMissed: 0.0927 -> 0.0815 | 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 1.1126, xG scale 1.2682, xA scale 1.2682, team xA 1.12 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.411
squad_xg_sum=1.1126
squad_xa_sum=0.8871
team_expected_assists=1.125
team_xa_to_xg_ratio=0.7973 | expected_goals: 0.1626 -> 0.2062 expected_assists: 0.1067 -> 0.1353 | 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
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.1863
goal_rate=0.1641
scorer_weight=0.2077 | - | 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.1265
assist_rate=0.1417
provider_weight=0.1655 | - |
|
| Ryan Christie | M | 73 | 0 | 0.09 | 0.06 | 49% | 1 | 0.9 | 6.9 | 53.3 | 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=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': 'Leif Davis', 'matchup_zone': 'Right Wing vs Left Back — Flank Battle', 'duel_win_rate': 0.347, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 0.8051, 'skill_edge': -0.1166, 'height_edge': -0.016, 'attacker_skill': 0.5059, 'defender_skill': 0.765, 'attacker_role': 'RW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Leif Davis', 'market_value': 26000000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.765}], 'xg_override': 0.0728} | totalShots: 1.1548 -> 0.9297 shotOffTarget: 0.8289 -> 0.6673 onTargetScoringAttempt: 0.3259 -> 0.2624 aerialWon: 1.0612 -> 1.0 bigChanceMissed: 0.1805 -> 0.1453 expectedGoals: 0.0904 -> 0.0728 goals: 0.0796 -> 0.0641 expectedGoalsOnTarget: 0.0433 -> 0.0349 | 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 1.1126, xG scale 1.2682, xA scale 1.2682, team xA 1.12 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.411
squad_xg_sum=1.1126
squad_xa_sum=0.8871
team_expected_assists=1.125
team_xa_to_xg_ratio=0.7973 | expected_goals: 0.0728 -> 0.0923 expected_assists: 0.0852 -> 0.108 | 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.0882
goal_rate=0.0641
scorer_weight=0.0858 | - | 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.1024
assist_rate=0.078
provider_weight=0.1022 | - |
|
| Lewis Cook | M | 80 | 0 | 0.04 | 0.00 | 1023% | 1 | 0.0 | 6.8 | 50.7 | 23 | 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.0017, quality 0.541) | market_value_eur=11600000
quality_factor=0.5411
boost_factor=1.0017
reference_quality=0.505
history_matches=27
history_shrink=0.1562 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0108) | blend_weight=0.0108
history_matches=27
season_overlap_discount=1.0
per90_to_match_factor=0.8884
prior_reliability=0.1067
competition=Premier League | totalCross: 2.6407 -> 2.6121 wonTackle: 0.9905 -> 0.9798 fouls: 0.6912 -> 0.6837 totalShots: 0.6043 -> 0.5978 wasFouled: 0.5697 -> 0.5635 | 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': 'CDM vs CDM', 'duel_win_rate': 0.362, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9146, 'skill_edge': -0.0221, 'height_edge': -0.036, 'attacker_skill': 0.5643, 'defender_skill': 0.6134, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Florentino Luís', 'market_value': 15500000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.6134}], 'xg_override': 0.0325} | aerialWon: 0.8463 -> 0.9 totalShots: 0.6029 -> 0.5514 shotOffTarget: 0.4728 -> 0.4324 onTargetScoringAttempt: 0.1301 -> 0.119 goals: 0.0593 -> 0.0542 | 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 1.1126, xG scale 1.2682, xA scale 1.2682, team xA 1.12 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.411
squad_xg_sum=1.1126
squad_xa_sum=0.8871
team_expected_assists=1.125
team_xa_to_xg_ratio=0.7973 | expected_goals: 0.0325 -> 0.0412 expected_assists: 0.0674 -> 0.0855 | 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.0404
goal_rate=0.0542
scorer_weight=0.0515 | - | 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.0819
assist_rate=0.0762
provider_weight=0.0919 | - |
|
| Rayan | F | 86 | 1 | 0.42 | 0.17 | 142% | 3 | 1.8 | 7.1 | 50.6 | 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.0177, quality 0.848) | market_value_eur=58000000
quality_factor=0.8478
boost_factor=1.0177
reference_quality=0.505
history_matches=24
history_shrink=0.1724 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0149) | blend_weight=0.0149
history_matches=24
season_overlap_discount=1.0
per90_to_match_factor=0.9583
prior_reliability=0.1333
competition=Premier League | totalCross: 1.5508 -> 1.5276 wasFouled: 1.1721 -> 1.1546 fouls: 1.1236 -> 1.1068 wonTackle: 0.7131 -> 0.7024 totalShots: 2.2305 -> 2.2406 interceptionWon: 1.1515 -> 1.1415 onTargetScoringAttempt: 0.8147 -> 0.8243 goals: 0.3817 -> 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': 'Issa Diop, Jacob Greaves', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.275, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.1097, 'skill_edge': 0.1086, 'height_edge': -0.034, 'attacker_skill': 0.8478, 'defender_skill': 0.6065, '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': 'Jacob Greaves', 'market_value': 16300000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6478}], 'xg_override': 0.3331} | totalShots: 2.2406 -> 2.4864 shotOffTarget: 1.4158 -> 1.5711 onTargetScoringAttempt: 0.8243 -> 0.9147 bigChanceMissed: 0.7808 -> 0.8665 goals: 0.376 -> 0.4172 expectedGoals: 0.3002 -> 0.3331 expectedGoalsOnTarget: 0.2802 -> 0.3109 | 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 1.1126, xG scale 1.2682, xA scale 1.2682, team xA 1.12 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.411
squad_xg_sum=1.1126
squad_xa_sum=0.8871
team_expected_assists=1.125
team_xa_to_xg_ratio=0.7973 | expected_goals: 0.3331 -> 0.4225 expected_assists: 0.087 -> 0.1103 | 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=1
goal_probability=0.3446
goal_rate=0.4172
scorer_weight=0.5152 | - | 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.1044
assist_rate=0.0187
provider_weight=0.0882 | - |
|
| Team totals | 1 | 1.41 | | 15 | | 6.9 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Michele Di Gregorio | G | 4.6m | 11.9% | Market-value substitute prior |
| Bafodé Diakité | D | 14.3m | 33.4% | Market-value substitute prior |
| Veljko Milosavljević | D | 14.3m | 33.1% | Market-value substitute prior |
| Alex Tóth | M | 18.9m | 70.2% | Market-value substitute prior |
| Juanlu Sánchez | M | 22.3m | 51.3% | Market-value substitute prior |
| Eli Junior Kroupi | F | 27.0m | 63.7% | Market-value substitute prior |
Antagonist / tactical summary
Midfield is evenly contested — Julio Enciso vs Alex Scott will be the pivotal duel. Total antagonist xG — Home: 0.63, Away: 0.75. 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.1% / 49.9%, dominance ratio 0.48, key duel: Julio Enciso vs Alex Scott
Saša Lukić xG 0.05Julio Enciso xG 0.19Exequiel Palacios xG 0.03Justin Kluivert xG 0.16Ryan Christie xG 0.07Alex Scott xG 0.10
Summary
Antagonist matchup analysis for Ipswich vs Bournemouth. Most likely scoreline: 1-1. Lambdas derived from 6 home and 6 away individual player duels. Head-to-head: Ipswich 1W-4D-1L vs Bournemouth over 6 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 — Julio Enciso vs Alex Scott will be the pivotal duel. Total antagonist xG — Home: 0.63, Away: 0.75. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Brighton vs Brentford
Premier League · 20261108 · 4-2-3-1 vs 4-2-3-1
Predicted 2-1Winner: BrightonWinning H 2-1 (8.8%)Winning A 1-2 (7.9%)Confidence 0.66λ home/away 1.65 / 1.47Most-likely P 8.8%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset TracingAntagonist + XGBoost match analysis for Brighton vs Brentford. 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.878, Away 1.462). Final calibrated Poisson lambdas: Home 1.649, Away 1.472 (most likely score 2-1).
Home Starters 11/11 XGBoost (9 FBref) Away Starters 11/11 XGBoost (11 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.88 / 1.46 Final λ (H/A) 1.65 / 1.47
FBref Team Priors: Brighton & Hove Albion (Gls/90: 2.5, GA/90: 3.5 → E[λ]: 3.448) vs Brentford (Gls/90: 2.0, GA/90: 2.0 → 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 | Brighton | Brentford |
|---|
| League position | 3.00 | 6.00 |
| Points per game | 1.81 | 1.48 |
| Attack index | 1.48 | 1.08 |
| Defense (concede) index | 0.84 | 0.86 |
| Form multiplier | 1.02 | 0.98 |
| Standing λ multiplier | 1.10 | 0.96 |
Lambda decomposition (how the goal rates were built)
| Stage | Brighton λ | Brentford λ |
|---|
| FBref Squad Prior E[λ] (weight 0.192) | 3.448 | 3.500 |
| Pre-competitive-floor | 1.930 | 1.742 |
| Pre-calibration (Micro-duels) | 1.878 | 1.462 |
| Final λ | 1.649 | 1.472 |
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.8% |
| 2-1 | 8.8% |
| 1-2 | 7.9% |
| 1-0 | 7.2% |
| 2-2 | 6.5% |
| Home win | 41.9% |
| Draw | 23.8% |
| Away win | 34.3% |
| Over 2.5 | 60.3% |
| BTTS yes | 62.3% |
Pregame fair line — favorite Brighton (41.9%), fair total 3.12, fair spread 0.18
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.
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.1 | 60.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.0075, quality 0.764) | market_value_eur=37000000
quality_factor=0.7641
boost_factor=1.0075
reference_quality=0.505
history_matches=47
history_shrink=0.0962 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0083) | blend_weight=0.0083
history_matches=47
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League | saves: 3.076 -> 3.0545 | 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, Mikkel Damsgaard', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.4619} | - | 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.65 (squad xG sum 1.3905, xG scale 1.1859, xA scale 1.2086, team xA 1.07 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.649
squad_xg_sum=1.3905
squad_xa_sum=0.8869
team_expected_assists=1.0718
team_xa_to_xg_ratio=0.65 | shots_faced: 13.9 -> 14.0 expected_saves: 3.4 -> 3.43 high_pressure_saves: 1.17 -> 1.18 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 81.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.0
scorer_weight=0.0
squad_weight_total=1.6715 | - | 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.1039 | - |
|
| Ferdi Kadıoğlu | D | 76 | 0 | 0.04 | 0.05 | ok | 1 | 0.7 | 6.8 | 55.3 | 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.0086, quality 0.786) | market_value_eur=41000000
quality_factor=0.7859
boost_factor=1.0086
reference_quality=0.505
history_matches=44
history_shrink=0.102 | - | 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 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.65 (squad xG sum 1.3905, xG scale 1.1859, xA scale 1.2086, team xA 1.07 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.649
squad_xg_sum=1.3905
squad_xa_sum=0.8869
team_expected_assists=1.0718
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0311 -> 0.0369 expected_assists: 0.0536 -> 0.0648 | 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: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0362
goal_rate=0.0256
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.0627
assist_rate=0.0
provider_weight=0.0518 | - |
|
| Maxim De Cuyper | D | 80 | 0 | 0.17 | 0.10 | 67% | 1 | 0.7 | 6.8 | 50.1 | 39 | 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.0070, quality 0.710) | market_value_eur=29000000
quality_factor=0.71
boost_factor=1.007
reference_quality=0.505
history_matches=39
history_shrink=0.1136 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0094) | blend_weight=0.0094
history_matches=39
season_overlap_discount=1.0
per90_to_match_factor=0.8934
prior_reliability=0.1267
competition=Premier League | totalCross: 3.938 -> 3.9584 totalShots: 0.7959 -> 0.8109 wasFouled: 1.3743 -> 1.3614 fouls: 1.2782 -> 1.2838 | 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': 'Mikkel Damsgaard', '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 1.65 (squad xG sum 1.3905, xG scale 1.1859, xA scale 1.2086, team xA 1.07 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.649
squad_xg_sum=1.3905
squad_xa_sum=0.8869
team_expected_assists=1.0718
team_xa_to_xg_ratio=0.65 | expected_goals: 0.1468 -> 0.1741 expected_assists: 0.1577 -> 0.1906 | 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: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.1598
goal_rate=0.1463
scorer_weight=0.1737 | - | 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.1735
assist_rate=0.3273
provider_weight=0.2382 | - |
|
| Olivier Boscagli | D | 77 | 0 | 0.02 | 0.01 | 138% | 1 | 0.2 | 6.8 | 39.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.0064, quality 0.616) | market_value_eur=18500000
quality_factor=0.6161
boost_factor=1.0064
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.8527
prior_reliability=0.1333
competition=Premier League | fouls: 0.8919 -> 0.9055 onTargetScoringAttempt: 0.0511 -> 0.0574 wasFouled: 0.8992 -> 0.9055 totalCross: 2.4376 -> 2.4325 | 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': '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.65 (squad xG sum 1.3905, xG scale 1.1859, xA scale 1.2086, team xA 1.07 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.649
squad_xg_sum=1.3905
squad_xa_sum=0.8869
team_expected_assists=1.0718
team_xa_to_xg_ratio=0.65 | expected_assists: 0.0666 -> 0.0805 | 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.0158
goal_rate=0.0
scorer_weight=0.0127 | - | 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.0773
assist_rate=0.127
provider_weight=0.1006 | - |
|
| Luka Vušković | D | 89 | 0 | 0.17 | 0.09 | 95% | 1 | 1.1 | 7.0 | 47.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.0390, quality 0.869) | market_value_eur=69000000
quality_factor=0.8692
boost_factor=1.039
reference_quality=0.505
history_matches=9
history_shrink=0.3571 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0309) | blend_weight=0.0309
history_matches=9
season_overlap_discount=1.0
per90_to_match_factor=0.9906
prior_reliability=0.1333
competition=Premier League | interceptionWon: 1.33 -> 1.2888 wasFouled: 0.8317 -> 0.806 totalShots: 1.2364 -> 1.2594 totalCross: 0.3254 -> 0.3153 fouls: 1.2324 -> 1.2249 wonTackle: 0.7207 -> 0.7137 onTargetScoringAttempt: 0.2231 -> 0.2162 | 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 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.65 (squad xG sum 1.3905, xG scale 1.1859, xA scale 1.2086, team xA 1.07 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.649
squad_xg_sum=1.3905
squad_xa_sum=0.8869
team_expected_assists=1.0718
team_xa_to_xg_ratio=0.65 | expected_goals: 0.1463 -> 0.1735 | 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: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.1593
goal_rate=0.0741
scorer_weight=0.1388 | - | 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.0263
assist_rate=0.0
provider_weight=0.0214 | - |
|
| Diego Gómez | M | 84 | 1 | 0.20 | 0.13 | 56% | 2 | 1.4 | 7.0 | 56.5 | 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.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.0090) | blend_weight=0.009
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=0.9312
prior_reliability=0.1267
competition=Premier League | totalShots: 1.8663 -> 1.8839 wonTackle: 1.1319 -> 1.1393 onTargetScoringAttempt: 0.6873 -> 0.694 | 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 Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.455, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9626, 'skill_edge': -0.0494, 'height_edge': 0.024, 'attacker_skill': 0.732, 'defender_skill': 0.8419, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Michael Kayode', 'market_value': 39000000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.8419}], 'xg_override': 0.1698} | aerialWon: 3.4181 -> 1.2 totalShots: 1.8839 -> 1.8134 shotOffTarget: 1.179 -> 1.1349 onTargetScoringAttempt: 0.694 -> 0.668 bigChanceMissed: 0.3824 -> 0.3681 goals: 0.222 -> 0.2137 expectedGoals: 0.1764 -> 0.1698 | 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.65 (squad xG sum 1.3905, xG scale 1.1859, xA scale 1.2086, team xA 1.07 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.649
squad_xg_sum=1.3905
squad_xa_sum=0.8869
team_expected_assists=1.0718
team_xa_to_xg_ratio=0.65 | expected_goals: 0.1698 -> 0.2014 expected_assists: 0.1099 -> 0.1328 | 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: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=1
goal_probability=0.1824
goal_rate=0.2137
scorer_weight=0.2416 | - | 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.1244
assist_rate=0.114
provider_weight=0.1362 | - |
|
| Pascal Groß | M | 88 | 0 | 0.14 | 0.11 | 32% | 1 | 0.9 | 7.1 | 60.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.9969, quality 0.437) | market_value_eur=2300000
quality_factor=0.4374
boost_factor=0.9969
reference_quality=0.505
history_matches=28
history_shrink=0.1515 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0131) | blend_weight=0.0131
history_matches=28
season_overlap_discount=1.0
per90_to_match_factor=0.9752
prior_reliability=0.1333
competition=Premier League | totalCross: 5.9665 -> 6.0034 totalShots: 1.2941 -> 1.2835 interceptionWon: 0.3873 -> 0.3822 wonTackle: 0.5949 -> 0.5999 | 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 Wing vs Left Back — Flank Battle', 'duel_win_rate': 0.366, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 0.8327, 'skill_edge': -0.1578, 'height_edge': 0.044, 'attacker_skill': 0.4374, 'defender_skill': 0.7881, 'attacker_role': 'RW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Keane Lewis-Potter', 'market_value': 29000000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.7881}], 'xg_override': 0.1218} | aerialWon: 0.6008 -> 1.1 totalShots: 1.2936 -> 1.0772 shotOffTarget: 0.7666 -> 0.6383 onTargetScoringAttempt: 0.527 -> 0.4388 goals: 0.1727 -> 0.1438 expectedGoals: 0.1463 -> 0.1218 expectedGoalsOnTarget: 0.09 -> 0.0749 bigChanceMissed: 0.0596 -> 0.0496 | 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.65 (squad xG sum 1.3905, xG scale 1.1859, xA scale 1.2086, team xA 1.07 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.649
squad_xg_sum=1.3905
squad_xa_sum=0.8869
team_expected_assists=1.0718
team_xa_to_xg_ratio=0.65 | expected_goals: 0.1218 -> 0.1444 expected_assists: 0.191 -> 0.2308 | 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: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.1345
goal_rate=0.1438
scorer_weight=0.1629 | - | 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.2061
assist_rate=0.1392
provider_weight=0.1846 | - |
|
| Yasin Ayari | M | 85 | 0 | 0.19 | 0.09 | 116% | 2 | 1.0 | 6.9 | 51.3 | 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.0100, quality 0.786) | market_value_eur=41000000
quality_factor=0.7859
boost_factor=1.01
reference_quality=0.505
history_matches=37
history_shrink=0.119 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0036) | blend_weight=0.0036
history_matches=37
season_overlap_discount=1.0
per90_to_match_factor=0.9446
prior_reliability=0.0467
competition=Premier League | fouls: 0.4628 -> 0.4709 | 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': 'CDM vs CDM', 'duel_win_rate': 0.436, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 1.024, 'skill_edge': 0.0643, 'height_edge': -0.048, 'attacker_skill': 0.8177, 'defender_skill': 0.6747, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Vitaly Janelt', 'market_value': 21000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.6747}], 'xg_override': 0.1606} | aerialWon: 0.4093 -> 0.8 totalShots: 1.6406 -> 1.68 shotOffTarget: 1.1141 -> 1.1408 onTargetScoringAttempt: 0.5208 -> 0.5333 expectedGoalsOnTarget: 0.3026 -> 0.3099 | 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.65 (squad xG sum 1.3905, xG scale 1.1859, xA scale 1.2086, team xA 1.07 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.649
squad_xg_sum=1.3905
squad_xa_sum=0.8869
team_expected_assists=1.0718
team_xa_to_xg_ratio=0.65 | expected_goals: 0.1606 -> 0.1905 expected_assists: 0.0644 -> 0.0778 | 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: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.1735
goal_rate=0.1502
scorer_weight=0.1811 | - | 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.0749
assist_rate=0.0722
provider_weight=0.0831 | - |
|
| Chema Andrés | M | 77 | 0 | 0.08 | 0.04 | 68% | 1 | 0.3 | 6.8 | 35.1 | 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.0211, quality 0.660) | market_value_eur=23000000
quality_factor=0.6595
boost_factor=1.0211
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': 'Vitaly Janelt', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.453, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 1.0484, 'skill_edge': 0.0089, 'height_edge': 0.024, 'attacker_skill': 0.6946, 'defender_skill': 0.6747, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Vitaly Janelt', 'market_value': 21000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.6747}], 'xg_override': 0.0636} | aerialWon: 0.9176 -> 1.3 totalShots: 0.6162 -> 0.646 shotOffTarget: 0.4349 -> 0.4559 onTargetScoringAttempt: 0.1813 -> 0.1901 expectedGoalsOnTarget: 0.1336 -> 0.1401 | 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.65 (squad xG sum 1.3905, xG scale 1.1859, xA scale 1.2086, team xA 1.07 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.649
squad_xg_sum=1.3905
squad_xa_sum=0.8869
team_expected_assists=1.0718
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0636 -> 0.0754 expected_assists: 0.0308 -> 0.0372 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 86.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.0726
goal_rate=0.0746
scorer_weight=0.0827 | - | 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.0466
provider_weight=0.0445 | - |
|
| Jack Hinshelwood | M | 79 | 0 | 0.22 | 0.26 | ok | 2 | 1.3 | 6.8 | 50.6 | 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.0100, quality 0.746) | market_value_eur=34000000
quality_factor=0.7455
boost_factor=1.01
reference_quality=0.505
history_matches=31
history_shrink=0.1389 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0042) | blend_weight=0.0042
history_matches=31
season_overlap_discount=1.0
per90_to_match_factor=0.8776
prior_reliability=0.0467
competition=Premier League | goals: 0.1583 -> 0.1682 totalShots: 1.8318 -> 1.8399 onTargetScoringAttempt: 0.6814 -> 0.6891 wonTackle: 0.7615 -> 0.7689 wasFouled: 0.9029 -> 0.9097 | 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, Mamadou Sangare', 'matchup_zone': 'Attacking Mid vs Double Pivot — Tight Space Battle', 'duel_win_rate': 0.236, 'pressing_faced': 'HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.9944, 'skill_edge': -0.0018, 'height_edge': -0.002, 'attacker_skill': 0.7569, 'defender_skill': 0.7609, 'attacker_role': 'CAM', 'attacker_mv_price_index': 0.95, 'defender_adjusted_parts': [{'player': 'Vitaly Janelt', 'market_value': 21000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.6747}, {'player': 'Mamadou Sangare', 'market_value': 49000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.847}], 'xg_override': 0.1839} | aerialWon: 0.5215 -> 1.1 totalShots: 1.8399 -> 1.8296 shotOffTarget: 1.1504 -> 1.144 | 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.65 (squad xG sum 1.3905, xG scale 1.1859, xA scale 1.2086, team xA 1.07 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.649
squad_xg_sum=1.3905
squad_xa_sum=0.8869
team_expected_assists=1.0718
team_xa_to_xg_ratio=0.65 | expected_goals: 0.1839 -> 0.2181 expected_assists: 0.0653 -> 0.0789 | 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: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.196
goal_rate=0.1673
scorer_weight=0.2026 | - | 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.0759
assist_rate=0.0646
provider_weight=0.0784 | - |
|
| Charalampos Kostoulas | F | 77 | 1 | 0.31 | 0.13 | 148% | 2 | 1.1 | 6.8 | 45.4 | 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.0125, quality 0.796) | market_value_eur=43000000
quality_factor=0.7957
boost_factor=1.0125
reference_quality=0.505
history_matches=30
history_shrink=0.1429 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0074) | blend_weight=0.0074
history_matches=30
season_overlap_discount=1.0
per90_to_match_factor=0.8606
prior_reliability=0.08
competition=Premier League | wasFouled: 1.3645 -> 1.3544 | 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': 'Nathan Collins, Kristoffer Ajer', '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.9638, 'skill_edge': 0.0134, 'height_edge': -0.038, 'attacker_skill': 0.7957, 'defender_skill': 0.7659, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Nathan Collins', 'market_value': 29000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7736}, {'player': 'Kristoffer Ajer', 'market_value': 27000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7581}], 'xg_override': 0.2654} | totalShots: 2.0809 -> 2.0056 shotOffTarget: 1.3439 -> 1.2953 onTargetScoringAttempt: 0.7362 -> 0.7095 goals: 0.2895 -> 0.279 expectedGoals: 0.2754 -> 0.2654 expectedGoalsOnTarget: 0.269 -> 0.2593 bigChanceMissed: 0.2596 -> 0.2502 | 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.65 (squad xG sum 1.3905, xG scale 1.1859, xA scale 1.2086, team xA 1.07 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.649
squad_xg_sum=1.3905
squad_xa_sum=0.8869
team_expected_assists=1.0718
team_xa_to_xg_ratio=0.65 | expected_goals: 0.2654 -> 0.3147 expected_assists: 0.0622 -> 0.0752 | 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: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=1
goal_probability=0.27
goal_rate=0.279
scorer_weight=0.3283 | - | 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.0724
assist_rate=0.277
provider_weight=0.094 | - |
|
| Team totals | 2 | 1.65 | | 16 | | 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 |
| Mats Wieffer | D | 14.5m | 23.6% | Market-value substitute prior |
| Pascal Struijk | D | 14.4m | 33.9% | Market-value substitute prior |
| Malick Yalcouyé | M | 13.0m | 51.7% | Market-value substitute prior |
| Matt O'Riley | M | 22.6m | 52.7% | Market-value substitute prior |
| Yankuba Minteh | F | 26.8m | 62.9% | Market-value substitute prior |
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 |
|---|
| Caoimhin Kelleher | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 6.8 | 59.4 | 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 | - | 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, Jack Hinshelwood', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.8777} | - | 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.47 (squad xG sum 1.0237, xG scale 1.4379, xA scale 1.4069, team xA 1.18 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.472
squad_xg_sum=1.0237
squad_xa_sum=0.837
team_expected_assists=1.1776
team_xa_to_xg_ratio=0.8 | shots_faced: 17.8 -> 15.7 expected_saves: 4.35 -> 3.85 high_pressure_saves: 1.5 -> 1.32 | 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: 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.6042 | - | 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.0952 | - |
|
| Keane Lewis-Potter | D | 82 | 0 | 0.15 | 0.10 | 49% | 1 | 1.0 | 6.7 | 57.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.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.9078
prior_reliability=0.1333
competition=Premier League | totalCross: 2.9299 -> 2.9438 wasFouled: 1.2226 -> 1.212 | 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': 'Pascal Groß', '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.47 (squad xG sum 1.0237, xG scale 1.4379, xA scale 1.4069, team xA 1.18 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.472
squad_xg_sum=1.0237
squad_xa_sum=0.837
team_expected_assists=1.1776
team_xa_to_xg_ratio=0.8 | expected_goals: 0.1063 -> 0.1528 expected_assists: 0.0832 -> 0.1171 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 77.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.1417
goal_rate=0.1719
scorer_weight=0.191 | - | 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.1105
assist_rate=0.0831
provider_weight=0.117 | - |
|
| Nathan Collins | D | 80 | 0 | 0.14 | 0.06 | 149% | 1 | 0.5 | 6.8 | 43.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.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=0.8846
prior_reliability=0.1333
competition=Premier League | totalShots: 0.8522 -> 0.8659 | 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 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.47 (squad xG sum 1.0237, xG scale 1.4379, xA scale 1.4069, team xA 1.18 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.472
squad_xg_sum=1.0237
squad_xa_sum=0.837
team_expected_assists=1.1776
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0956 -> 0.1375 expected_assists: 0.0466 -> 0.0656 | 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=0
goal_probability=0.1285
goal_rate=0.0124
scorer_weight=0.11 | - | 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.0635
assist_rate=0.0243
provider_weight=0.0525 | - |
|
| Kristoffer Ajer | D | 89 | 0 | 0.04 | 0.01 | 241% | 0 | 0.2 | 6.8 | 49.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.0069, quality 0.694) | market_value_eur=27000000
quality_factor=0.6941
boost_factor=1.0069
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.9866
prior_reliability=0.1333
competition=Premier League | wonTackle: 0.9715 -> 0.9664 | 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 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.47 (squad xG sum 1.0237, xG scale 1.4379, xA scale 1.4069, team xA 1.18 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.472
squad_xg_sum=1.0237
squad_xa_sum=0.837
team_expected_assists=1.1776
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0266 -> 0.0382 expected_assists: 0.0312 -> 0.0439 | 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.0375
goal_rate=0.0931
scorer_weight=0.0478 | - | 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.0
provider_weight=0.0351 | - |
|
| Michael Kayode | D | 85 | 0 | 0.07 | 0.05 | 45% | 1 | 0.3 | 6.7 | 58.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.0080, quality 0.775) | market_value_eur=39000000
quality_factor=0.7754
boost_factor=1.008
reference_quality=0.505
history_matches=46
history_shrink=0.098 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0076) | blend_weight=0.0076
history_matches=46
season_overlap_discount=1.0
per90_to_match_factor=0.9412
prior_reliability=0.12
competition=Premier League | totalShots: 0.5697 -> 0.5854 wasFouled: 0.9025 -> 0.9116 | 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': 'Diego Gómez', '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.47 (squad xG sum 1.0237, xG scale 1.4379, xA scale 1.4069, team xA 1.18 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.472
squad_xg_sum=1.0237
squad_xa_sum=0.837
team_expected_assists=1.1776
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0485 -> 0.0697 expected_assists: 0.0679 -> 0.0955 | 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
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.0673
goal_rate=0.0659
scorer_weight=0.082 | - | 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.0911
assist_rate=0.0154
provider_weight=0.0764 | - |
|
| Vitaly Janelt | M | 87 | 0 | 0.07 | 0.04 | 52% | 1 | 0.4 | 7.0 | 55.0 | 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.0054, quality 0.641) | market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.0054
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.9709
prior_reliability=0.1333
competition=Premier League | totalCross: 2.1767 -> 2.2017 fouls: 1.3028 -> 1.3156 interceptionWon: 2.891 -> 2.9023 wonTackle: 1.3832 -> 1.3896 | 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': 'Yasin Ayari', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.404, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.976, 'skill_edge': -0.0643, 'height_edge': 0.048, 'attacker_skill': 0.6747, 'defender_skill': 0.8177, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Yasin Ayari', 'market_value': 41000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8177}], 'xg_override': 0.0464} | aerialWon: 0.7577 -> 1.1 totalShots: 0.5908 -> 0.5766 shotOffTarget: 0.4326 -> 0.4222 | 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.47 (squad xG sum 1.0237, xG scale 1.4379, xA scale 1.4069, team xA 1.18 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.472
squad_xg_sum=1.0237
squad_xa_sum=0.837
team_expected_assists=1.1776
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0464 -> 0.0667 expected_assists: 0.0744 -> 0.1047 | 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.0645
goal_rate=0.0918
scorer_weight=0.0834 | - | 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.0994
assist_rate=0.0605
provider_weight=0.093 | - |
|
| Mathias Jensen | M | 76 | 0 | 0.10 | 0.06 | 65% | 1 | 0.9 | 6.9 | 58.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 0.9999, quality 0.502) | market_value_eur=8300000
quality_factor=0.5023
boost_factor=0.9999
reference_quality=0.505
history_matches=41
history_shrink=0.1087 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0033) | blend_weight=0.0033
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=0.8488
prior_reliability=0.0467
competition=Premier League | fouls: 0.7784 -> 0.7878 totalCross: 4.0992 -> 4.1057 | 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': 'Olivier Boscagli', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.392, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.8703, 'skill_edge': -0.0842, 'height_edge': -0.004, 'attacker_skill': 0.5023, 'defender_skill': 0.6894, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Olivier Boscagli', 'market_value': 18500000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.6894}], 'xg_override': 0.0678} | aerialWon: 0.1476 -> 1.1 totalShots: 1.0992 -> 0.9566 shotOffTarget: 0.7398 -> 0.6438 onTargetScoringAttempt: 0.358 -> 0.3116 bigChanceMissed: 0.111 -> 0.0966 expectedGoals: 0.0779 -> 0.0678 goals: 0.0774 -> 0.0674 | 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.47 (squad xG sum 1.0237, xG scale 1.4379, xA scale 1.4069, team xA 1.18 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.472
squad_xg_sum=1.0237
squad_xa_sum=0.837
team_expected_assists=1.1776
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0678 -> 0.0975 expected_assists: 0.1377 -> 0.1937 | 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.0929
goal_rate=0.0674
scorer_weight=0.0972 | - | 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.1761
assist_rate=0.1071
provider_weight=0.1621 | - |
|
| Yehor Yarmoliuk | M | 75 | 0 | 0.07 | 0.03 | 134% | 1 | 0.3 | 6.8 | 56.5 | 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.0065, quality 0.718) | market_value_eur=30000000
quality_factor=0.7176
boost_factor=1.0065
reference_quality=0.505
history_matches=44
history_shrink=0.102 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0022) | blend_weight=0.0022
history_matches=44
season_overlap_discount=1.0
per90_to_match_factor=0.8307
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': 'Yasin Ayari, Chema Andrés', 'matchup_zone': 'Attacking Mid vs Double Pivot — Tight Space Battle', 'duel_win_rate': 0.224, 'pressing_faced': 'HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.9762, 'skill_edge': -0.0122, 'height_edge': -0.004, 'attacker_skill': 0.7291, 'defender_skill': 0.7562, 'attacker_role': 'CAM', 'attacker_mv_price_index': 0.95, 'defender_adjusted_parts': [{'player': 'Yasin Ayari', 'market_value': 41000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8177}, {'player': 'Chema Andrés', 'market_value': 23000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.6946}], 'xg_override': 0.0483} | aerialWon: 1.1343 -> 1.1 totalShots: 0.7063 -> 0.6895 shotOffTarget: 0.4951 -> 0.4833 onTargetScoringAttempt: 0.2087 -> 0.2037 | 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.47 (squad xG sum 1.0237, xG scale 1.4379, xA scale 1.4069, team xA 1.18 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.472
squad_xg_sum=1.0237
squad_xa_sum=0.837
team_expected_assists=1.1776
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0483 -> 0.0694 expected_assists: 0.0686 -> 0.0965 | 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.067
goal_rate=0.0557
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.092
assist_rate=0.067
provider_weight=0.0952 | - |
|
| Mamadou Sangare | M | 78 | 0 | 0.09 | 0.03 | 159% | 1 | 0.6 | 6.9 | 44.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.0338, quality 0.821) | market_value_eur=49000000
quality_factor=0.8206
boost_factor=1.0338
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.8648
prior_reliability=0.12
competition=Premier League | totalShots: 0.8625 -> 0.891 interceptionWon: 1.9338 -> 1.9602 totalCross: 0.2405 -> 0.2606 wasFouled: 0.7333 -> 0.753 goalAssist: 0.0543 -> 0.0662 wonTackle: 1.7547 -> 1.746 onTargetScoringAttempt: 0.2075 -> 0.215 fouls: 1.1889 -> 1.1959 | 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': 'Yasin Ayari', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.469, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 1.0723, 'skill_edge': 0.0132, 'height_edge': 0.036, 'attacker_skill': 0.847, 'defender_skill': 0.8177, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Yasin Ayari', 'market_value': 41000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8177}], 'xg_override': 0.0618} | aerialWon: 1.4109 -> 1.1 totalShots: 0.891 -> 0.9554 shotOffTarget: 0.655 -> 0.7024 onTargetScoringAttempt: 0.215 -> 0.2305 | 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.47 (squad xG sum 1.0237, xG scale 1.4379, xA scale 1.4069, team xA 1.18 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.472
squad_xg_sum=1.0237
squad_xa_sum=0.837
team_expected_assists=1.1776
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0618 -> 0.0889 expected_assists: 0.0477 -> 0.0671 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 81.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.0851
goal_rate=0.0661
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.0649
assist_rate=0.0662
provider_weight=0.0798 | - |
|
| Mikkel Damsgaard | M | 80 | 0 | 0.12 | 0.06 | 105% | 1 | 0.8 | 7.0 | 55.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 1.0067, quality 0.710) | market_value_eur=29000000
quality_factor=0.71
boost_factor=1.0067
reference_quality=0.505
history_matches=41
history_shrink=0.1087 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0042) | blend_weight=0.0042
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=0.8942
prior_reliability=0.06
competition=Premier League | totalCross: 3.3114 -> 3.3311 | 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': 'Right Wing vs Left Back — Flank Battle', 'duel_win_rate': 0.433, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 0.9307, 'skill_edge': -0.0351, 'height_edge': -0.012, 'attacker_skill': 0.71, 'defender_skill': 0.7881, 'attacker_role': 'RW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Maxim De Cuyper', 'market_value': 29000000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.7881}], 'xg_override': 0.0855} | aerialWon: 0.8051 -> 1.1 totalShots: 1.2208 -> 1.1362 shotOffTarget: 0.822 -> 0.765 onTargetScoringAttempt: 0.3981 -> 0.3705 goals: 0.0998 -> 0.0929 expectedGoals: 0.0919 -> 0.0855 | 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.47 (squad xG sum 1.0237, xG scale 1.4379, xA scale 1.4069, team xA 1.18 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.472
squad_xg_sum=1.0237
squad_xa_sum=0.837
team_expected_assists=1.1776
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0855 -> 0.1229 expected_assists: 0.1427 -> 0.2008 | 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: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1156
goal_rate=0.0929
scorer_weight=0.1296 | - | 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.1819
assist_rate=0.1073
provider_weight=0.1639 | - |
|
| Igor Thiago | F | 89 | 1 | 0.47 | 0.46 | ok | 2 | 2.0 | 7.0 | 58.0 | 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.0105, quality 0.868) | market_value_eur=68000000
quality_factor=0.8677
boost_factor=1.0105
reference_quality=0.505
history_matches=47
history_shrink=0.0962 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0079) | blend_weight=0.0079
history_matches=47
season_overlap_discount=1.0
per90_to_match_factor=0.992
prior_reliability=0.1267
competition=Premier League | totalShots: 2.0495 -> 2.062 fouls: 2.0664 -> 2.0542 wasFouled: 1.2622 -> 1.2522 wonTackle: 0.7118 -> 0.7062 | 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': 'Ferdi Kadıoğlu, Luka Vušković', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.231, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 1.0462, 'skill_edge': 0.0014, 'height_edge': 0.03, 'attacker_skill': 0.8677, 'defender_skill': 0.8645, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Ferdi Kadıoğlu', 'market_value': 41000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.839}, {'player': 'Luka Vušković', 'market_value': 69000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.89}], 'xg_override': 0.324} | totalShots: 2.062 -> 2.1573 shotOffTarget: 1.3359 -> 1.3976 onTargetScoringAttempt: 0.7162 -> 0.7493 bigChanceMissed: 0.5143 -> 0.5381 goals: 0.3501 -> 0.3663 expectedGoals: 0.3097 -> 0.324 expectedGoalsOnTarget: 0.291 -> 0.3044 | 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.47 (squad xG sum 1.0237, xG scale 1.4379, xA scale 1.4069, team xA 1.18 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.472
squad_xg_sum=1.0237
squad_xa_sum=0.837
team_expected_assists=1.1776
team_xa_to_xg_ratio=0.8 | expected_goals: 0.324 -> 0.466 expected_assists: 0.0814 -> 0.1145 | 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=1
goal_probability=0.3725
goal_rate=0.3663
scorer_weight=0.5187 | - | 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.1082
assist_rate=0.238
provider_weight=0.1431 | - |
|
| Team totals | 1 | 1.47 | | 12 | | 6.9 | | |
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 |
| Sepp van den Berg | D | 14.8m | 35.3% | Market-value substitute prior |
| Antoni Milambo | M | 22.6m | 52.5% | Market-value substitute prior |
| Josh Dasilva | M | 22.0m | 49.9% | Market-value substitute prior |
| Kevin Schade | F | 26.9m | 36.6% | Market-value substitute prior |
Antagonist / tactical summary
Midfield is evenly contested — Yasin Ayari vs Mamadou Sangare will be the pivotal duel. Total antagonist xG — Home: 0.97, Away: 0.63. 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.6% / 50.4%, dominance ratio 0.50, key duel: Yasin Ayari vs Mamadou Sangare
Diego Gómez xG 0.17Pascal Groß xG 0.12Jack Hinshelwood xG 0.18Mathias Jensen xG 0.07Mikkel Damsgaard xG 0.09Yehor Yarmoliuk xG 0.05
Summary
Antagonist matchup analysis for Brighton vs Brentford. Most likely scoreline: 2-1. Lambdas derived from 6 home and 6 away individual player duels. Head-to-head: Brighton 4W-3D-3L vs Brentford 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 — Yasin Ayari vs Mamadou Sangare will be the pivotal duel. Total antagonist xG — Home: 0.97, Away: 0.63. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Sunderland vs Chelsea
Premier League · 20261108 · 4-2-3-1 vs 4-2-3-1
Predicted 1-2Winner: ChelseaWinning H 2-1 (6.7%)Winning A 1-2 (9.6%)Confidence 0.68λ home/away 1.20 / 1.73Most-likely P 9.6%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset TracingAntagonist + XGBoost match analysis for Sunderland vs Chelsea. 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.388, Away 1.919). Final calibrated Poisson lambdas: Home 1.201, Away 1.733 (most likely score 1-2).
Home Starters 11/11 XGBoost (9 FBref) Away Starters 11/11 XGBoost (10 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.39 / 1.92 Final λ (H/A) 1.20 / 1.73
FBref Team Priors: Sunderland (Gls/90: 1.0, GA/90: 1.0 → E[λ]: 2.414) vs Chelsea (Gls/90: 3.5, GA/90: 3.5 → E[λ]: 2.414) | 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 | Sunderland | Chelsea |
|---|
| League position | 20.00 | 4.00 |
| Points per game | 0.88 | 1.61 |
| Attack index | 0.86 | 1.18 |
| Defense (concede) index | 1.04 | 1.22 |
| Form multiplier | 0.96 | 1.04 |
| Standing λ multiplier | 0.95 | 1.17 |
Lambda decomposition (how the goal rates were built)
| Stage | Sunderland λ | Chelsea λ |
|---|
| FBref Squad Prior E[λ] (weight 0.192) | 2.414 | 2.414 |
| Pre-mismatch | 1.356 | 2.096 |
| Pre-competitive-floor | 1.327 | 2.268 |
| Pre-calibration (Micro-duels) | 1.388 | 1.919 |
| Final λ | 1.201 | 1.733 |
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 |
|---|
| 1-1 | 11.1% |
| 1-2 | 9.6% |
| 0-1 | 9.1% |
| 0-2 | 8.0% |
| 2-1 | 6.7% |
| Home win | 26.4% |
| Draw | 23.8% |
| Away win | 49.8% |
| Over 2.5 | 56.2% |
| BTTS yes | 57.6% |
Pregame fair line — favorite Chelsea (49.8%), fair total 2.93, fair spread -0.53
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.
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 |
|---|
| Robin Roefs | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 7.0 | 55.7 | 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.0067, quality 0.725) | market_value_eur=31000000
quality_factor=0.7249
boost_factor=1.0067
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=1.0
prior_reliability=0.1333
competition=Premier League | saves: 2.7914 -> 2.7711 | 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 Pedro, Cole Palmer', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.9191} | - | 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.20 (squad xG sum 1.1254, xG scale 1.0672, xA scale 1.0672, team xA 0.82 = 0.68 x lambda) | scoreline_reset=true
team_lambda=1.201
squad_xg_sum=1.1254
squad_xa_sum=0.7648
team_expected_assists=0.8162
team_xa_to_xg_ratio=0.6796 | shots_faced: 18.2 -> 16.5 expected_saves: 4.45 -> 4.04 high_pressure_saves: 1.54 -> 1.39 | 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.0
scorer_weight=0.0
squad_weight_total=1.165 | - | 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.7435 | - |
|
| Kevin Danso | D | 79 | 0 | 0.07 | 0.03 | 121% | 1 | 0.5 | 6.6 | 36.7 | 28 | 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.0053, quality 0.625) | market_value_eur=19400000
quality_factor=0.6251
boost_factor=1.0053
reference_quality=0.505
history_matches=29
history_shrink=0.1471 | - | 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 Pedro', '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.20 (squad xG sum 1.1254, xG scale 1.0672, xA scale 1.0672, team xA 0.82 = 0.68 x lambda) | scoreline_reset=true
team_lambda=1.201
squad_xg_sum=1.1254
squad_xa_sum=0.7648
team_expected_assists=0.8162
team_xa_to_xg_ratio=0.6796 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 18 by projected rating, fifa_overall 79.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.0656
goal_rate=0.0
scorer_weight=0.0543 | - | 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.0255
assist_rate=0.0
provider_weight=0.0206 | - |
|
| Nordi Mukiele | D | 83 | 0 | 0.10 | 0.07 | 53% | 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 wonTackle: 1.2388 -> 1.2327 totalShots: 1.1747 -> 1.1689 | 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': 'Jordan Henderson', '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.20 (squad xG sum 1.1254, xG scale 1.0672, xA scale 1.0672, team xA 0.82 = 0.68 x lambda) | scoreline_reset=true
team_lambda=1.201
squad_xg_sum=1.1254
squad_xa_sum=0.7648
team_expected_assists=0.8162
team_xa_to_xg_ratio=0.6796 | expected_goals: 0.0937 -> 0.1 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 81.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.0952
goal_rate=0.0506
scorer_weight=0.08 | - | 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.0672
assist_rate=0.0255
provider_weight=0.0557 | - |
|
| Reinildo Mandava | D | 87 | 0 | 0.01 | 0.00 | 61% | 0 | 0.1 | 6.7 | 50.8 | 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.9979, quality 0.451) | market_value_eur=4099999
quality_factor=0.4511
boost_factor=0.9979
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.967
prior_reliability=0.1333
competition=Premier League | fouls: 1.0369 -> 1.0526 interceptionWon: 1.1636 -> 1.1724 totalCross: 0.8673 -> 0.8739 | 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.20 (squad xG sum 1.1254, xG scale 1.0672, xA scale 1.0672, team xA 0.82 = 0.68 x lambda) | scoreline_reset=true
team_lambda=1.201
squad_xg_sum=1.1254
squad_xa_sum=0.7648
team_expected_assists=0.8162
team_xa_to_xg_ratio=0.6796 | - | 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_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.0059
goal_rate=0.0
scorer_weight=0.0053 | - | 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.0317
assist_rate=0.0111
provider_weight=0.0258 | - |
|
| Daniel Ballard | D | 84 | 0 | 0.07 | 0.06 | ok | 1 | 0.6 | 6.8 | 52.3 | 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.0073, quality 0.694) | market_value_eur=27000000
quality_factor=0.6941
boost_factor=1.0073
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.938
prior_reliability=0.1333
competition=Premier League | interceptionWon: 1.073 -> 1.0663 wonTackle: 0.9431 -> 0.9378 | 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 Pedro', '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.20 (squad xG sum 1.1254, xG scale 1.0672, xA scale 1.0672, team xA 0.82 = 0.68 x lambda) | scoreline_reset=true
team_lambda=1.201
squad_xg_sum=1.1254
squad_xa_sum=0.7648
team_expected_assists=0.8162
team_xa_to_xg_ratio=0.6796 | - | 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.0709
goal_rate=0.0052
scorer_weight=0.0588 | - | 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.0284
assist_rate=0.0
provider_weight=0.023 | - |
|
| Noah Sadiki | M | 84 | 0 | 0.06 | 0.05 | ok | 1 | 0.6 | 6.8 | 56.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.0091, quality 0.791) | market_value_eur=42000000
quality_factor=0.7909
boost_factor=1.0091
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.9368
prior_reliability=0.1333
competition=Premier League | wonTackle: 0.5861 -> 0.5936 wasFouled: 1.3029 -> 1.3082 | 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.366, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9205, 'skill_edge': -0.0341, 'height_edge': -0.02, 'attacker_skill': 0.8221, '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.0607} | aerialWon: 0.4365 -> 0.9 totalShots: 0.6433 -> 0.5922 shotOffTarget: 0.38 -> 0.3498 onTargetScoringAttempt: 0.2625 -> 0.2416 bigChanceMissed: 0.1271 -> 0.117 goals: 0.0684 -> 0.063 expectedGoals: 0.0659 -> 0.0607 | 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.20 (squad xG sum 1.1254, xG scale 1.0672, xA scale 1.0672, team xA 0.82 = 0.68 x lambda) | scoreline_reset=true
team_lambda=1.201
squad_xg_sum=1.1254
squad_xa_sum=0.7648
team_expected_assists=0.8162
team_xa_to_xg_ratio=0.6796 | - | 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.0627
goal_rate=0.063
scorer_weight=0.0661 | - | 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.0695
assist_rate=0.0874
provider_weight=0.0842 | - |
|
| Enzo Le Fée | M | 87 | 0 | 0.18 | 0.18 | ok | 1 | 1.2 | 6.9 | 59.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.0059, quality 0.702) | market_value_eur=28000000
quality_factor=0.7022
boost_factor=1.0059
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.9687
prior_reliability=0.1267
competition=Premier League | totalCross: 2.7197 -> 2.7141 | 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, Roméo Lavia', 'matchup_zone': 'Attacking Mid vs Double Pivot — Tight Space Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.9071, 'skill_edge': -0.0372, 'height_edge': -0.026, 'attacker_skill': 0.7136, 'defender_skill': 0.7962, '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': 'Roméo Lavia', 'market_value': 23000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.6946}], 'xg_override': 0.1645} | aerialWon: 0.3769 -> 0.9 totalShots: 1.5349 -> 1.3923 shotOffTarget: 1.0651 -> 0.9662 onTargetScoringAttempt: 0.4657 -> 0.4224 expectedGoalsOnTarget: 0.2686 -> 0.2436 expectedGoals: 0.1814 -> 0.1645 goals: 0.1439 -> 0.1305 bigChanceMissed: 0.1221 -> 0.1108 | 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.20 (squad xG sum 1.1254, xG scale 1.0672, xA scale 1.0672, team xA 0.82 = 0.68 x lambda) | scoreline_reset=true
team_lambda=1.201
squad_xg_sum=1.1254
squad_xa_sum=0.7648
team_expected_assists=0.8162
team_xa_to_xg_ratio=0.6796 | expected_goals: 0.1645 -> 0.1756 expected_assists: 0.1506 -> 0.1607 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 80.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.161
goal_rate=0.1305
scorer_weight=0.1478 | - | 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.1485
assist_rate=0.1176
provider_weight=0.1343 | - |
|
| Granit Xhaka | M | 90 | 0 | 0.04 | 0.02 | 69% | 1 | 0.5 | 7.3 | 61.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 1.0000, quality 0.505) | market_value_eur=8500000
quality_factor=0.5047
boost_factor=1.0
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.9963
prior_reliability=0.1333
competition=Premier League | wasFouled: 1.6575 -> 1.674 totalShots: 0.651 -> 0.6451 | 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.337, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.7898, 'skill_edge': -0.139, 'height_edge': -0.004, 'attacker_skill': 0.5047, '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.0334} | aerialWon: 0.7615 -> 1.2 totalShots: 0.6492 -> 0.5127 shotOffTarget: 0.4519 -> 0.3569 onTargetScoringAttempt: 0.1973 -> 0.1558 goals: 0.0487 -> 0.0385 expectedGoalsOnTarget: 0.0433 -> 0.0342 expectedGoals: 0.0423 -> 0.0334 | 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.20 (squad xG sum 1.1254, xG scale 1.0672, xA scale 1.0672, team xA 0.82 = 0.68 x lambda) | scoreline_reset=true
team_lambda=1.201
squad_xg_sum=1.1254
squad_xa_sum=0.7648
team_expected_assists=0.8162
team_xa_to_xg_ratio=0.6796 | expected_assists: 0.16 -> 0.1709 | 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.035
goal_rate=0.0385
scorer_weight=0.0378 | - | 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.1571
assist_rate=0.0916
provider_weight=0.1367 | - |
|
| Chris Rigg | M | 70 | 0 | 0.10 | 0.02 | 341% | 1 | 0.4 | 6.8 | 27.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.0088, quality 0.669) | market_value_eur=24000000
quality_factor=0.6685
boost_factor=1.0088
reference_quality=0.505
history_matches=23
history_shrink=0.1786 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0015) | blend_weight=0.0015
history_matches=23
season_overlap_discount=1.0
per90_to_match_factor=0.783
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': 'Moisés Caicedo', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.329, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.8659, 'skill_edge': -0.0872, 'height_edge': -0.004, 'attacker_skill': 0.704, '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.094} | aerialWon: 0.5704 -> 1.0 totalShots: 1.2769 -> 1.1057 shotOffTarget: 0.837 -> 0.7248 onTargetScoringAttempt: 0.4399 -> 0.3809 expectedGoals: 0.1085 -> 0.094 goals: 0.0965 -> 0.0836 expectedGoalsOnTarget: 0.0883 -> 0.0765 | 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.20 (squad xG sum 1.1254, xG scale 1.0672, xA scale 1.0672, team xA 0.82 = 0.68 x lambda) | scoreline_reset=true
team_lambda=1.201
squad_xg_sum=1.1254
squad_xa_sum=0.7648
team_expected_assists=0.8162
team_xa_to_xg_ratio=0.6796 | expected_goals: 0.094 -> 0.1003 | 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.0954
goal_rate=0.0836
scorer_weight=0.0931 | - | 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.067
assist_rate=0.0712
provider_weight=0.0731 | - |
|
| Dayann Methalie | M | 87 | 0 | 0.05 | 0.00 | 1266% | 0 | 0.1 | 6.8 | 11.5 | 15 | 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.0405, quality 0.694) | market_value_eur=27000000
quality_factor=0.6941
boost_factor=1.0405
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=true | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Levi Colwill', 'matchup_zone': 'Right Wing vs Left Back — Flank Battle', 'duel_win_rate': 0.392, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.8707, 'skill_edge': -0.084, 'height_edge': -0.004, 'attacker_skill': 0.6941, 'defender_skill': 0.8807, 'attacker_role': 'RW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Levi Colwill', 'market_value': 55000000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.8807}], 'xg_override': 0.0459} | aerialWon: 0.9561 -> 1.2 totalShots: 0.5176 -> 0.4507 shotOffTarget: 0.3663 -> 0.3189 onTargetScoringAttempt: 0.1513 -> 0.1317 expectedGoals: 0.0527 -> 0.0459 goals: 0.0459 -> 0.04 | 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.20 (squad xG sum 1.1254, xG scale 1.0672, xA scale 1.0672, team xA 0.82 = 0.68 x lambda) | scoreline_reset=true
team_lambda=1.201
squad_xg_sum=1.1254
squad_xa_sum=0.7648
team_expected_assists=0.8162
team_xa_to_xg_ratio=0.6796 | - | 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.0478
goal_rate=0.04
scorer_weight=0.046 | - | 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.0546
assist_rate=0.071
provider_weight=0.0662 | - |
|
| Brian Brobbey | F | 80 | 1 | 0.39 | 0.28 | 37% | 2 | 1.4 | 6.8 | 55.5 | 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.0115, quality 0.834) | market_value_eur=53000000
quality_factor=0.834
boost_factor=1.0115
reference_quality=0.505
history_matches=38
history_shrink=0.1163 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0071) | blend_weight=0.0071
history_matches=38
season_overlap_discount=1.0
per90_to_match_factor=0.8918
prior_reliability=0.0933
competition=Premier League | wasFouled: 1.9355 -> 1.9263 totalOffside: 0.6403 -> 0.6493 | 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': 'Jorrel Hato, Maxence Lacroix', '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.9336, 'skill_edge': -0.0172, 'height_edge': -0.028, 'attacker_skill': 0.834, 'defender_skill': 0.8722, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Jorrel Hato', 'market_value': 47000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8582}, {'player': 'Maxence Lacroix', 'market_value': 64000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8862}], 'xg_override': 0.3615} | totalShots: 2.4402 -> 2.2782 shotOffTarget: 1.2774 -> 1.1926 onTargetScoringAttempt: 1.1628 -> 1.0856 expectedGoalsOnTarget: 0.4491 -> 0.4193 goals: 0.4331 -> 0.4043 bigChanceMissed: 0.4081 -> 0.381 expectedGoals: 0.3872 -> 0.3615 | 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.20 (squad xG sum 1.1254, xG scale 1.0672, xA scale 1.0672, team xA 0.82 = 0.68 x lambda) | scoreline_reset=true
team_lambda=1.201
squad_xg_sum=1.1254
squad_xa_sum=0.7648
team_expected_assists=0.8162
team_xa_to_xg_ratio=0.6796 | expected_goals: 0.3615 -> 0.3857 | 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=1
goal_probability=0.32
goal_rate=0.4043
scorer_weight=0.4258 | - | 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.0408
assist_rate=0.0
provider_weight=0.0334 | - |
|
| Team totals | 1 | 1.20 | | 12 | | 6.9 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Melker Ellborg | G | 4.4m | 10.9% | Market-value substitute prior |
| Trai Hume | D | 14.3m | 23.3% | Market-value substitute prior |
| Omar Alderete | D | 19.5m | 60.9% | Market-value substitute prior |
| Habib Diarra | M | 18.7m | 71.8% | Market-value substitute prior |
| Jules Ahoka | M | 22.2m | 50.7% | Market-value substitute prior |
| Malick Fofana | F | 26.4m | 60.8% | Market-value substitute prior |
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 |
|---|
| Emiliano Martínez | G | 88 | 0 | 0.00 | - | n/a | | 0.0 | 7.0 | 58.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.0004, quality 0.518) | market_value_eur=9600000
quality_factor=0.5177
boost_factor=1.0004
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.9739
prior_reliability=0.0667
competition=Premier League | wasFouled: 0.5351 -> 0.5422 | 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.3881} | - | 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.73 (squad xG sum 1.3618, xG scale 1.2726, xA scale 1.5089, team xA 1.13 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.733
squad_xg_sum=1.3618
squad_xa_sum=0.7465
team_expected_assists=1.1265
team_xa_to_xg_ratio=0.65 | shots_faced: 13.2 -> 11.4 expected_saves: 3.23 -> 2.79 high_pressure_saves: 1.11 -> 0.96 | 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.0
scorer_weight=0.0
squad_weight_total=1.8217 | - | 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.1285 | - |
|
| Levi Colwill | D | 89 | 0 | 0.00 | 0.00 | ok | 0 | 0.1 | 6.8 | 43.8 | 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.0314, quality 0.840) | market_value_eur=55000000
quality_factor=0.8399
boost_factor=1.0314
reference_quality=0.505
history_matches=11
history_shrink=0.3125 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0244) | blend_weight=0.0244
history_matches=11
season_overlap_discount=1.0
per90_to_match_factor=0.9882
prior_reliability=0.12
competition=Premier League | wonTackle: 0.7511 -> 0.7729 fouls: 1.1945 -> 1.1788 | 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': 'Dayann Methalie', '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 1.73 (squad xG sum 1.3618, xG scale 1.2726, xA scale 1.5089, team xA 1.13 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.733
squad_xg_sum=1.3618
squad_xa_sum=0.7465
team_expected_assists=1.1265
team_xa_to_xg_ratio=0.65 | expected_assists: 0.0541 -> 0.0816 | 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: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.001
goal_rate=0.0
scorer_weight=0.001 | - | 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.0784
assist_rate=0.0
provider_weight=0.0653 | - |
|
| Jorrel Hato | D | 74 | 0 | 0.00 | 0.01 | 76% | 0 | 0.2 | 6.8 | 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 | wasFouled: 0.1883 -> 0.197 wonTackle: 1.2483 -> 1.2398 fouls: 0.6436 -> 0.6364 interceptionWon: 1.0013 -> 0.9955 | 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 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.73 (squad xG sum 1.3618, xG scale 1.2726, xA scale 1.5089, team xA 1.13 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.733
squad_xg_sum=1.3618
squad_xa_sum=0.7465
team_expected_assists=1.1265
team_xa_to_xg_ratio=0.65 | expected_assists: 0.0336 -> 0.0507 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 78.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.0023
goal_rate=0.0
scorer_weight=0.0022 | - | 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.0494
assist_rate=0.186
provider_weight=0.0634 | - |
|
| Wesley Fofana | D | 81 | 0 | 0.04 | 0.02 | 110% | 1 | 0.3 | 7.0 | 45.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 1.0100, quality 0.739) | market_value_eur=33000000
quality_factor=0.7389
boost_factor=1.01
reference_quality=0.505
history_matches=30
history_shrink=0.1429 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0043) | blend_weight=0.0043
history_matches=30
season_overlap_discount=1.0
per90_to_match_factor=0.8954
prior_reliability=0.0467
competition=Premier League | wasFouled: 1.3271 -> 1.3213 | 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 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.73 (squad xG sum 1.3618, xG scale 1.2726, xA scale 1.5089, team xA 1.13 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.733
squad_xg_sum=1.3618
squad_xa_sum=0.7465
team_expected_assists=1.1265
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0335 -> 0.0426 expected_assists: 0.0133 -> 0.0201 | 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.0417
goal_rate=0.0
scorer_weight=0.0341 | - | 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.0199
assist_rate=0.0
provider_weight=0.0161 | - |
|
| Maxence Lacroix | D | 88 | 0 | 0.09 | 0.07 | 30% | 1 | 0.6 | 6.8 | 55.1 | 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.0111, quality 0.861) | market_value_eur=64000000
quality_factor=0.8608
boost_factor=1.0111
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.9804
prior_reliability=0.1333
competition=Premier League | wonTackle: 0.9113 -> 0.9208 | 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 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.73 (squad xG sum 1.3618, xG scale 1.2726, xA scale 1.5089, team xA 1.13 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.733
squad_xg_sum=1.3618
squad_xa_sum=0.7465
team_expected_assists=1.1265
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0686 -> 0.0873 expected_assists: 0.0204 -> 0.0308 | 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: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0836
goal_rate=0.0138
scorer_weight=0.0698 | - | 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.0303
assist_rate=0.0625
provider_weight=0.0385 | - |
|
| Morgan Rogers | M | 88 | 0 | 0.35 | 0.22 | 56% | 3 | 2.3 | 7.1 | 61.0 | 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.0115, quality 0.897) | market_value_eur=115000000
quality_factor=0.8968
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.0081) | blend_weight=0.0081
history_matches=46
season_overlap_discount=1.0
per90_to_match_factor=0.983
prior_reliability=0.1267
competition=Premier League | totalShots: 2.2659 -> 2.2727 | 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, Chris Rigg', 'matchup_zone': 'Attacking Mid vs Double Pivot — Tight Space Battle', 'duel_win_rate': 0.349, 'pressing_faced': 'HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 1.1596, 'skill_edge': 0.0606, 'height_edge': 0.048, 'attacker_skill': 0.8977, 'defender_skill': 0.763, 'attacker_role': 'CAM', 'attacker_mv_price_index': 0.95, 'defender_adjusted_parts': [{'player': 'Noah Sadiki', 'market_value': 42000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8221}, {'player': 'Chris Rigg', 'market_value': 24000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.704}], 'xg_override': 0.2718} | totalShots: 2.2727 -> 2.6354 shotOffTarget: 1.4058 -> 1.6302 onTargetScoringAttempt: 0.8574 -> 0.9942 aerialWon: 1.0662 -> 1.2 goals: 0.2564 -> 0.2973 expectedGoals: 0.2344 -> 0.2718 expectedGoalsOnTarget: 0.2125 -> 0.2464 bigChanceMissed: 0.2096 -> 0.2431 | 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.73 (squad xG sum 1.3618, xG scale 1.2726, xA scale 1.5089, team xA 1.13 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.733
squad_xg_sum=1.3618
squad_xa_sum=0.7465
team_expected_assists=1.1265
team_xa_to_xg_ratio=0.65 | expected_goals: 0.2718 -> 0.3459 expected_assists: 0.1388 -> 0.2094 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 84.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.2924
goal_rate=0.2973
scorer_weight=0.3733 | - | 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.1889
assist_rate=0.1262
provider_weight=0.1954 | - |
|
| Cole Palmer | M | 87 | 1 | 0.36 | 0.34 | ok | 3 | 2.5 | 7.0 | 61.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.0146, quality 0.894) | market_value_eur=101000000
quality_factor=0.8936
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.0103) | blend_weight=0.0103
history_matches=35
season_overlap_discount=1.0
per90_to_match_factor=0.9706
prior_reliability=0.1267
competition=Premier League | totalShots: 2.4641 -> 2.4858 goals: 0.2482 -> 0.2562 onTargetScoringAttempt: 0.8618 -> 0.8686 fouls: 1.1314 -> 1.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': 'Reinildo Mandava', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.689, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.3078, 'skill_edge': 0.1894, 'height_edge': 0.02, 'attacker_skill': 0.8936, 'defender_skill': 0.4727, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Reinildo Mandava', 'market_value': 4099999, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.4727}], 'xg_override': 0.2864} | aerialWon: 0.3319 -> 1.2 totalShots: 2.4858 -> 3.2509 shotOffTarget: 1.6023 -> 2.0955 onTargetScoringAttempt: 0.8686 -> 1.136 goals: 0.2562 -> 0.3351 expectedGoalsOnTarget: 0.2559 -> 0.3347 expectedGoals: 0.219 -> 0.2864 bigChanceMissed: 0.1256 -> 0.1643 | 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.73 (squad xG sum 1.3618, xG scale 1.2726, xA scale 1.5089, team xA 1.13 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.733
squad_xg_sum=1.3618
squad_xa_sum=0.7465
team_expected_assists=1.1265
team_xa_to_xg_ratio=0.65 | expected_goals: 0.2864 -> 0.3645 expected_assists: 0.1631 -> 0.2462 | 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
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.3055
goal_rate=0.3351
scorer_weight=0.4173 | - | 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.2182
assist_rate=0.1615
provider_weight=0.2444 | - |
|
| Moisés Caicedo | M | 86 | 0 | 0.05 | 0.03 | 66% | 1 | 0.6 | 7.0 | 58.0 | 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.0136, quality 0.895) | market_value_eur=104000000
quality_factor=0.8945
boost_factor=1.0136
reference_quality=0.505
history_matches=38
history_shrink=0.1163 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0010) | blend_weight=0.001
history_matches=38
season_overlap_discount=1.0
per90_to_match_factor=0.9553
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': 'Noah Sadiki', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.474, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 1.0795, 'skill_edge': 0.0341, 'height_edge': 0.02, 'attacker_skill': 0.8978, '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.0388} | aerialWon: 0.4661 -> 1.0 totalShots: 0.5108 -> 0.5514 shotOffTarget: 0.3937 -> 0.425 onTargetScoringAttempt: 0.1171 -> 0.1264 | 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.73 (squad xG sum 1.3618, xG scale 1.2726, xA scale 1.5089, team xA 1.13 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.733
squad_xg_sum=1.3618
squad_xa_sum=0.7465
team_expected_assists=1.1265
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0388 -> 0.0494 expected_assists: 0.0359 -> 0.0542 | 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.0482
goal_rate=0.0481
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.0528
assist_rate=0.051
provider_weight=0.0637 | - |
|
| Jordan Henderson | M | 83 | 0 | 0.08 | 0.02 | 339% | 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=true | - | 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': 'Right Wing vs Left Back — Flank Battle', 'duel_win_rate': 0.366, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.8329, 'skill_edge': -0.1057, 'height_edge': -0.008, 'attacker_skill': 0.4374, 'defender_skill': 0.6723, 'attacker_role': 'RW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Nordi Mukiele', 'market_value': 17100000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.6723}], 'xg_override': 0.0667} | aerialWon: 0.6958 -> 1.1 totalShots: 0.9953 -> 0.829 shotOffTarget: 0.6619 -> 0.5513 onTargetScoringAttempt: 0.3334 -> 0.2777 goals: 0.103 -> 0.0858 expectedGoals: 0.0801 -> 0.0667 expectedGoalsOnTarget: 0.0772 -> 0.0643 | 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.73 (squad xG sum 1.3618, xG scale 1.2726, xA scale 1.5089, team xA 1.13 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.733
squad_xg_sum=1.3618
squad_xa_sum=0.7465
team_expected_assists=1.1265
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0667 -> 0.0849 expected_assists: 0.1205 -> 0.1818 | 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: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0814
goal_rate=0.0858
scorer_weight=0.0988 | - | 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.1662
assist_rate=0.1012
provider_weight=0.1612 | - |
|
| Roméo Lavia | M | 72 | 0 | 0.06 | 0.04 | 50% | 1 | 0.2 | 6.8 | 40.2 | 24 | 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.0097, quality 0.660) | market_value_eur=23000000
quality_factor=0.6595
boost_factor=1.0097
reference_quality=0.505
history_matches=19
history_shrink=0.2083 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0135) | blend_weight=0.0135
history_matches=19
season_overlap_discount=1.0
per90_to_match_factor=0.7976
prior_reliability=0.1
competition=Premier League | onTargetScoringAttempt: 0.14 -> 0.1529 interceptionWon: 1.7743 -> 1.7647 totalShots: 0.5631 -> 0.5703 goals: 0.058 -> 0.0644 fouls: 0.9228 -> 0.9175 | 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.395, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9627, 'skill_edge': -0.0573, 'height_edge': 0.032, '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.047} | aerialWon: 0.2299 -> 1.1 totalShots: 0.576 -> 0.5545 shotOffTarget: 0.4231 -> 0.4073 onTargetScoringAttempt: 0.1529 -> 0.1472 expectedGoalsOnTarget: 0.1518 -> 0.1461 | 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.73 (squad xG sum 1.3618, xG scale 1.2726, xA scale 1.5089, team xA 1.13 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.733
squad_xg_sum=1.3618
squad_xa_sum=0.7465
team_expected_assists=1.1265
team_xa_to_xg_ratio=0.65 | expected_goals: 0.047 -> 0.0598 expected_assists: 0.0388 -> 0.0585 | 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: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.058
goal_rate=0.062
scorer_weight=0.069 | - | 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.0555
provider_weight=0.0695 | - |
|
| João Pedro | F | 85 | 1 | 0.56 | 0.43 | 31% | 3 | 2.1 | 7.1 | 60.0 | 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.0126, quality 0.890) | market_value_eur=92000000
quality_factor=0.89
boost_factor=1.0126
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.9492
prior_reliability=0.1333
competition=Premier League | totalShots: 2.6388 -> 2.6542 goalAssist: 0.2805 -> 0.2868 goals: 0.3926 -> 0.3978 totalCross: 0.5376 -> 0.5325 | 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': 'Kevin Danso, Daniel Ballard', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.266, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 1.0968, 'skill_edge': 0.0759, 'height_edge': -0.01, 'attacker_skill': 0.89, 'defender_skill': 0.7214, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Kevin Danso', 'market_value': 19400000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6847}, {'player': 'Daniel Ballard', 'market_value': 27000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7581}], 'xg_override': 0.4394} | totalShots: 2.6542 -> 2.9111 shotOffTarget: 1.5459 -> 1.6955 onTargetScoringAttempt: 1.0959 -> 1.202 expectedGoalsOnTarget: 0.5532 -> 0.6067 bigChanceMissed: 0.4122 -> 0.4521 expectedGoals: 0.4006 -> 0.4394 goals: 0.3978 -> 0.4363 | 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.73 (squad xG sum 1.3618, xG scale 1.2726, xA scale 1.5089, team xA 1.13 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.733
squad_xg_sum=1.3618
squad_xa_sum=0.7465
team_expected_assists=1.1265
team_xa_to_xg_ratio=0.65 | expected_goals: 0.4394 -> 0.5592 expected_assists: 0.0612 -> 0.0923 | 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: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=1
goal_probability=0.4283
goal_rate=0.4363
scorer_weight=0.5557 | - | 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.0882
assist_rate=0.2868
provider_weight=0.1154 | - |
|
| Team totals | 2 | 1.73 | | 15 | | 7.0 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Mike Penders | G | 5.3m | 15.0% | Market-value substitute prior |
| Reece James | D | 19.5m | 44.4% | Market-value substitute prior |
| Malo Gusto | D | 14.8m | 24.3% | Market-value substitute prior |
| Marco Palestra | M | 23.5m | 56.6% | Market-value substitute prior |
| Valentín Barco | M | 15.5m | 72.1% | Market-value substitute prior |
| Estêvão | F | 27.1m | 63.9% | Market-value substitute prior |
Antagonist / tactical summary
Midfield is evenly contested — Noah Sadiki vs Morgan Rogers will be the pivotal duel. Total antagonist xG — Home: 0.76, Away: 1.15. 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.3% / 50.7%, dominance ratio 0.47, key duel: Noah Sadiki vs Morgan Rogers
Granit Xhaka xG 0.03Dayann Methalie xG 0.05Enzo Le Fée xG 0.16Cole Palmer xG 0.29Jordan Henderson xG 0.07Morgan Rogers xG 0.27
Summary
Antagonist matchup analysis for Sunderland vs Chelsea. Most likely scoreline: 1-2. Lambdas derived from 6 home and 6 away individual player duels. Head-to-head: Sunderland 5W-1D-4L vs Chelsea 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 — Noah Sadiki vs Morgan Rogers will be the pivotal duel. Total antagonist xG — Home: 0.76, Away: 1.15. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Villarreal vs Getafe
LaLiga · 20261108 · 4-4-2 vs 5-4-1
Predicted 2-0Winner: VillarrealWinning H 2-0 (11.6%)Winning A 0-1 (4.2%)Confidence 0.73λ home/away 2.14 / 0.84Most-likely P 11.6%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset TracingAntagonist + XGBoost match analysis for Villarreal vs Getafe. Player statistics regressed using position-specific XGBoost models (G, D, M, F) with 2026-2027 FBref priors. Micro-duels resolved across 4-4-2 vs 5-4-1 (duel lambdas: Home 1.604, Away 0.740). Final calibrated Poisson lambdas: Home 2.143, Away 0.840 (most likely score 2-0).
Home Starters 11/11 XGBoost (8 FBref) Away Starters 11/11 XGBoost (11 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.60 / 0.74 Final λ (H/A) 2.14 / 0.84
FBref Team Priors: Villarreal (Gls/90: 1.3333333333333333, GA/90: 1.33 → E[λ]: 0.326) vs Getafe (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 | Villarreal | Getafe |
|---|
| League position | 8.00 | 18.00 |
| Points per game | 1.19 | 1.08 |
| Attack index | 1.00 | 0.70 |
| Defense (concede) index | 1.00 | 1.00 |
| Form multiplier | 1.01 | 0.99 |
| Standing λ multiplier | 1.00 | 0.87 |
Lambda decomposition (how the goal rates were built)
| Stage | Villarreal λ | Getafe λ |
|---|
| FBref Squad Prior E[λ] (weight 0.228) | 0.326 | 0.328 |
| Pre-mismatch | 1.815 | 0.698 |
| Pre-calibration (Micro-duels) | 1.604 | 0.740 |
| Final λ | 2.143 | 0.840 |
competition calibration scale 1.187competition 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.6% |
| 1-0 | 10.8% |
| 2-1 | 9.8% |
| 1-1 | 9.2% |
| 3-0 | 8.3% |
| Home win | 67.3% |
| Draw | 19.3% |
| Away win | 13.5% |
| Over 2.5 | 57.3% |
| BTTS yes | 50.2% |
Pregame fair line — favorite Villarreal (67.3%), fair total 2.98, fair spread 1.30
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.
Villarreal — 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 |
|---|
| Luiz Júnior | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 7.0 | 36.5 | 35 | 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.0018, quality 0.550) | market_value_eur=12400000
quality_factor=0.5502
boost_factor=1.0018
reference_quality=0.505
history_matches=32
history_shrink=0.1351 | - | 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': 'Martín Satriano, Ramón Terrats', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 0.7396} | - | 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.14 (squad xG sum 1.0517, xG scale 2.0376, xA scale 1.7540, team xA 1.71 = 0.80 x lambda) | scoreline_reset=true
team_lambda=2.143
squad_xg_sum=1.0517
squad_xa_sum=0.9774
team_expected_assists=1.7144
team_xa_to_xg_ratio=0.8 | shots_faced: 7.0 -> 8.0 expected_saves: 1.71 -> 1.96 high_pressure_saves: 0.59 -> 0.67 | 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: 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.3628 | - | 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.701 | - |
|
| Renato Veiga | D | 90 | 0 | 0.03 | 0.01 | 200% | 1 | 0.2 | 7.1 | 58.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.0065, quality 0.710) | market_value_eur=29000000
quality_factor=0.71
boost_factor=1.0065
reference_quality=0.505
history_matches=42
history_shrink=0.1064 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0138) | blend_weight=0.0138
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.9988
prior_reliability=0.2
competition=La Liga | wonTackle: 0.6117 -> 0.6032 | 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': 'Martín Satriano', '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.14 (squad xG sum 1.0517, xG scale 2.0376, xA scale 1.7540, team xA 1.71 = 0.80 x lambda) | scoreline_reset=true
team_lambda=2.143
squad_xg_sum=1.0517
squad_xa_sum=0.9774
team_expected_assists=1.7144
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0135 -> 0.0275 expected_assists: 0.0994 -> 0.1743 | 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.0271
goal_rate=0.0
scorer_weight=0.022 | - | 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.16
assist_rate=0.0662
provider_weight=0.1394 | - |
|
| Juan Foyth | D | 78 | 0 | 0.07 | 0.02 | 176% | 1 | 0.3 | 7.0 | 53.9 | 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.0001, quality 0.506) | market_value_eur=8600000
quality_factor=0.5059
boost_factor=1.0001
reference_quality=0.505
history_matches=19
history_shrink=0.2083 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0271) | blend_weight=0.0271
history_matches=19
season_overlap_discount=1.0
per90_to_match_factor=0.8703
prior_reliability=0.2
competition=La Liga | interceptionWon: 1.1421 -> 1.1662 totalShots: 0.5069 -> 0.5245 wonTackle: 0.9478 -> 0.9614 fouls: 0.6301 -> 0.6209 onTargetScoringAttempt: 0.0973 -> 0.1024 wasFouled: 0.3964 -> 0.4014 | 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': 'Francho Serrano', 'matchup_zone': 'Right Mid vs Left Back — Wide Channel'} | - | 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.14 (squad xG sum 1.0517, xG scale 2.0376, xA scale 1.7540, team xA 1.71 = 0.80 x lambda) | scoreline_reset=true
team_lambda=2.143
squad_xg_sum=1.0517
squad_xa_sum=0.9774
team_expected_assists=1.7144
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0334 -> 0.0681 expected_assists: 0.0391 -> 0.0686 | 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.0658
goal_rate=0.0
scorer_weight=0.0545 | - | 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.0663
assist_rate=0.0
provider_weight=0.0549 | - |
|
| Pau Navarro | D | 85 | 0 | 0.01 | 0.00 | 319% | 0 | 0.0 | 6.8 | 44.3 | 35 | 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 1.0031, quality 0.575) | market_value_eur=14600000
quality_factor=0.5748
boost_factor=1.0031
reference_quality=0.505
history_matches=29
history_shrink=0.1471 | - | 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': 'Martín Satriano', '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.14 (squad xG sum 1.0517, xG scale 2.0376, xA scale 1.7540, team xA 1.71 = 0.80 x lambda) | scoreline_reset=true
team_lambda=2.143
squad_xg_sum=1.0517
squad_xa_sum=0.9774
team_expected_assists=1.7144
team_xa_to_xg_ratio=0.8 | expected_assists: 0.0079 -> 0.0139 | 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.0061
goal_rate=0.0
scorer_weight=0.0058 | - | 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.0138
assist_rate=0.0
provider_weight=0.012 | - |
|
| Sergi Cardona | D | 82 | 0 | 0.07 | 0.01 | 406% | 1 | 0.4 | 6.8 | 48.3 | 35 | 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 1.0000, quality 0.506) | market_value_eur=8600000
quality_factor=0.5059
boost_factor=1.0
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': 'Ramón Terrats', 'matchup_zone': 'Left Mid vs Right Back — Wide Channel'} | - | 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.14 (squad xG sum 1.0517, xG scale 2.0376, xA scale 1.7540, team xA 1.71 = 0.80 x lambda) | scoreline_reset=true
team_lambda=2.143
squad_xg_sum=1.0517
squad_xa_sum=0.9774
team_expected_assists=1.7144
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0367 -> 0.0748 expected_assists: 0.1071 -> 0.1879 | 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
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.0721
goal_rate=0.0405
scorer_weight=0.0781 | - | 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.1713
assist_rate=0.0081
provider_weight=0.1503 | - |
|
| Tajon Buchanan | M | 74 | 1 | 0.38 | 0.09 | 330% | 2 | 1.1 | 6.9 | 58.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.0016, quality 0.557) | market_value_eur=13000000
quality_factor=0.557
boost_factor=1.0016
reference_quality=0.505
history_matches=43
history_shrink=0.1042 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0063) | blend_weight=0.0063
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=0.8183
prior_reliability=0.0933
competition=La Liga | totalCross: 2.7078 -> 2.7239 wasFouled: 1.6067 -> 1.6187 fouls: 0.9082 -> 0.9135 | 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': 'Djené', 'matchup_zone': 'LM vs CB', 'duel_win_rate': 0.501, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.1191, 'skill_edge': 0.061, 'height_edge': 0.02, 'attacker_skill': 0.5731, 'defender_skill': 0.4374, 'attacker_role': 'LM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Djené', 'market_value': 1500000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.1852} | aerialWon: 0.5398 -> 1.1 totalShots: 2.0298 -> 2.2715 shotOffTarget: 1.3395 -> 1.499 onTargetScoringAttempt: 0.6903 -> 0.7725 goals: 0.1989 -> 0.2226 expectedGoals: 0.1655 -> 0.1852 bigChanceMissed: 0.1241 -> 0.1389 expectedGoalsOnTarget: 0.0834 -> 0.0933 | 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.14 (squad xG sum 1.0517, xG scale 2.0376, xA scale 1.7540, team xA 1.71 = 0.80 x lambda) | scoreline_reset=true
team_lambda=2.143
squad_xg_sum=1.0517
squad_xa_sum=0.9774
team_expected_assists=1.7144
team_xa_to_xg_ratio=0.8 | expected_goals: 0.1852 -> 0.3774 expected_assists: 0.1523 -> 0.2671 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 76.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=1
goal_probability=0.3144
goal_rate=0.2226
scorer_weight=0.4374 | - | 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.2344
assist_rate=0.1231
provider_weight=0.2286 | - |
|
| Santi Comesaña | M | 73 | 0 | 0.11 | 0.07 | 59% | 1 | 0.4 | 6.9 | 63.2 | 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.0000, quality 0.503) | market_value_eur=8400000
quality_factor=0.5035
boost_factor=1.0
reference_quality=0.505
history_matches=44
history_shrink=0.102 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0097) | blend_weight=0.0097
history_matches=44
season_overlap_discount=1.0
per90_to_match_factor=0.8117
prior_reliability=0.1467
competition=La Liga | wasFouled: 1.2021 -> 1.194 wonTackle: 0.6616 -> 0.6695 totalShots: 0.6804 -> 0.6738 totalCross: 0.5438 -> 0.5385 | 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': 'Djené', 'matchup_zone': 'RM vs CB', 'duel_win_rate': 0.491, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.104, 'skill_edge': 0.0347, 'height_edge': 0.036, 'attacker_skill': 0.5146, 'defender_skill': 0.4374, 'attacker_role': 'RM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Djené', 'market_value': 1500000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.0562} | aerialWon: 0.4888 -> 1.2 totalShots: 0.6787 -> 0.7493 shotOffTarget: 0.51 -> 0.563 onTargetScoringAttempt: 0.1687 -> 0.1862 bigChanceMissed: 0.1141 -> 0.126 expectedGoalsOnTarget: 0.0741 -> 0.0818 goals: 0.052 -> 0.0574 expectedGoals: 0.0509 -> 0.0562 | 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.14 (squad xG sum 1.0517, xG scale 2.0376, xA scale 1.7540, team xA 1.71 = 0.80 x lambda) | scoreline_reset=true
team_lambda=2.143
squad_xg_sum=1.0517
squad_xa_sum=0.9774
team_expected_assists=1.7144
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0562 -> 0.1145 expected_assists: 0.0782 -> 0.1372 | 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: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.1082
goal_rate=0.0574
scorer_weight=0.1158 | - | 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.1282
assist_rate=0.0654
provider_weight=0.1235 | - |
|
| Pape Gueye | M | 79 | 0 | 0.40 | 0.15 | 171% | 3 | 1.4 | 7.1 | 62.2 | 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.0090, quality 0.775) | market_value_eur=39000000
quality_factor=0.7754
boost_factor=1.009
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.8823
prior_reliability=0.2
competition=La Liga | totalShots: 1.7229 -> 1.7108 | 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': 'Mario Martín', 'matchup_zone': 'Central Mid vs Central Mid — Box-to-Box Midfield Contest', 'duel_win_rate': 0.574, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.226, 'skill_edge': 0.1138, 'height_edge': 0.04, 'attacker_skill': 0.7972, 'defender_skill': 0.5444, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Mario Martín', 'market_value': 10700000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.5444}], 'xg_override': 0.197} | aerialWon: 0.3346 -> 1.2 totalShots: 1.7201 -> 2.1089 shotOffTarget: 1.2406 -> 1.521 onTargetScoringAttempt: 0.4795 -> 0.5879 expectedGoals: 0.1607 -> 0.197 goals: 0.1556 -> 0.1908 expectedGoalsOnTarget: 0.0716 -> 0.0878 bigChanceMissed: 0.0471 -> 0.0577 | 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.14 (squad xG sum 1.0517, xG scale 2.0376, xA scale 1.7540, team xA 1.71 = 0.80 x lambda) | scoreline_reset=true
team_lambda=2.143
squad_xg_sum=1.0517
squad_xa_sum=0.9774
team_expected_assists=1.7144
team_xa_to_xg_ratio=0.8 | expected_goals: 0.197 -> 0.4014 expected_assists: 0.1078 -> 0.1891 | 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.3306
goal_rate=0.1908
scorer_weight=0.3913 | - | 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.1723
assist_rate=0.0916
provider_weight=0.1697 | - |
|
| Carlos Maciá | M | 84 | 0 | 0.10 | 0.01 | 1250% | 1 | 0.1 | 6.9 | 32.2 | 19 | 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.0061, quality 0.574) | market_value_eur=14500000
quality_factor=0.5737
boost_factor=1.0061
reference_quality=0.505
history_matches=12
history_shrink=0.2941 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0064) | blend_weight=0.0064
history_matches=12
season_overlap_discount=1.0
per90_to_match_factor=0.9373
prior_reliability=0.0333
competition=La Liga | wonTackle: 2.2948 -> 2.316 | 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': 'Mario Martín', 'matchup_zone': 'Central Mid vs Central Mid — Box-to-Box Midfield Contest', 'duel_win_rate': 0.501, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.1191, 'skill_edge': 0.021, 'height_edge': 0.06, 'attacker_skill': 0.5912, 'defender_skill': 0.5444, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Mario Martín', 'market_value': 10700000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.5444}], 'xg_override': 0.0496} | aerialWon: 1.056 -> 1.4 totalShots: 0.5626 -> 0.6296 shotOffTarget: 0.4307 -> 0.482 onTargetScoringAttempt: 0.1319 -> 0.1476 goals: 0.0555 -> 0.0621 expectedGoals: 0.0443 -> 0.0496 | 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.14 (squad xG sum 1.0517, xG scale 2.0376, xA scale 1.7540, team xA 1.71 = 0.80 x lambda) | scoreline_reset=true
team_lambda=2.143
squad_xg_sum=1.0517
squad_xa_sum=0.9774
team_expected_assists=1.7144
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0496 -> 0.1011 expected_assists: 0.034 -> 0.0596 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 65.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.0962
goal_rate=0.0621
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.0579
assist_rate=0.0499
provider_weight=0.0709 | - |
|
| Ilias Akhomach | F | 72 | 0 | 0.23 | 0.07 | 238% | 2 | 1.1 | 7.0 | 54.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 1.0013, quality 0.535) | market_value_eur=11100000
quality_factor=0.5353
boost_factor=1.0013
reference_quality=0.505
history_matches=29
history_shrink=0.1471 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0032) | blend_weight=0.0032
history_matches=29
season_overlap_discount=1.0
per90_to_match_factor=0.7984
prior_reliability=0.0333
competition=La Liga | totalCross: 3.4019 -> 3.4317 totalShots: 1.77 -> 1.7644 wasFouled: 1.5983 -> 1.6034 | 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': 'Djené, Nemanja Gudelj', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.214, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.0206, 'skill_edge': 0.044, 'height_edge': -0.03, 'attacker_skill': 0.5353, 'defender_skill': 0.4374, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Djené', 'market_value': 1500000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'Nemanja Gudelj', 'market_value': 1900000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.1125} | totalShots: 1.7682 -> 1.8046 shotOffTarget: 1.206 -> 1.2308 onTargetScoringAttempt: 0.5622 -> 0.5738 | 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.14 (squad xG sum 1.0517, xG scale 2.0376, xA scale 1.7540, team xA 1.71 = 0.80 x lambda) | scoreline_reset=true
team_lambda=2.143
squad_xg_sum=1.0517
squad_xa_sum=0.9774
team_expected_assists=1.7144
team_xa_to_xg_ratio=0.8 | expected_goals: 0.1125 -> 0.2292 expected_assists: 0.1352 -> 0.2371 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 75.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.2048
goal_rate=0.1578
scorer_weight=0.2865 | - | 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.2111
assist_rate=0.1895
provider_weight=0.2964 | - |
|
| Alberto Moleiro | F | 77 | 1 | 0.60 | 0.16 | 279% | 3 | 1.1 | 7.1 | 61.8 | 45 | 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.0094, quality 0.837) | market_value_eur=54000000
quality_factor=0.837
boost_factor=1.0094
reference_quality=0.505
history_matches=48
history_shrink=0.0943 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0065) | blend_weight=0.0065
history_matches=48
season_overlap_discount=1.0
per90_to_match_factor=0.8587
prior_reliability=0.1067
competition=La Liga | totalShots: 2.1428 -> 2.1288 wonTackle: 0.5379 -> 0.5449 onTargetScoringAttempt: 0.9432 -> 0.937 | 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': 'Djené, Nemanja Gudelj', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.338, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.2026, 'skill_edge': 0.1798, 'height_edge': -0.042, 'attacker_skill': 0.837, 'defender_skill': 0.4374, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Djené', 'market_value': 1500000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'Nemanja Gudelj', 'market_value': 1900000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.2922} | totalShots: 2.1366 -> 2.5695 shotOffTarget: 1.1996 -> 1.4426 onTargetScoringAttempt: 0.937 -> 1.1268 bigChanceMissed: 0.4984 -> 0.5994 expectedGoalsOnTarget: 0.3206 -> 0.3856 goals: 0.2865 -> 0.3445 expectedGoals: 0.243 -> 0.2922 | 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.14 (squad xG sum 1.0517, xG scale 2.0376, xA scale 1.7540, team xA 1.71 = 0.80 x lambda) | scoreline_reset=true
team_lambda=2.143
squad_xg_sum=1.0517
squad_xa_sum=0.9774
team_expected_assists=1.7144
team_xa_to_xg_ratio=0.8 | expected_goals: 0.2922 -> 0.5953 expected_assists: 0.183 -> 0.321 | 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_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.4486
goal_rate=0.3445
scorer_weight=0.6863 | - | 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.2746
assist_rate=0.2791
provider_weight=0.4012 | - |
|
| Team totals | 2 | 2.14 | | 16 | | 7.0 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Péter Gulácsi | G | 4.4m | 10.9% | Market-value substitute prior |
| Carlos Romero | D | 14.5m | 23.6% | Market-value substitute prior |
| Santiago Mouriño | D | 14.3m | 23.2% | Market-value substitute prior |
| Nathan-Dylan Saliba | M | 22.5m | 52.2% | Market-value substitute prior |
| Alassane Diatta | M | 22.1m | 50.3% | Market-value substitute prior |
| Georges Mikautadze | F | 26.7m | 36.3% | Market-value substitute prior |
Getafe — 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 |
|---|
| David Soria | G | 84 | 0 | 0.00 | - | n/a | | 0.0 | 6.9 | 66.0 | 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.9981, quality 0.437) | market_value_eur=2700000
quality_factor=0.4374
boost_factor=0.9981
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=0.9328
prior_reliability=0.2
competition=La Liga | saves: 2.9518 -> 2.9461 wasFouled: 0.2123 -> 0.2173 | 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': 'Alberto Moleiro, Pape Gueye', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.6044} | - | 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.84 (squad xG sum 0.7867, xG scale 1.0678, xA scale 1.0678, team xA 0.60 = 0.71 x lambda) | scoreline_reset=true
team_lambda=0.84
squad_xg_sum=0.7867
squad_xa_sum=0.5598
team_expected_assists=0.5978
team_xa_to_xg_ratio=0.7116 | shots_faced: 15.2 -> 20.4 expected_saves: 3.72 -> 5.0 high_pressure_saves: 1.28 -> 1.71 | 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.0
scorer_weight=0.0
squad_weight_total=0.8513 | - | 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.6041 | - |
|
| Zaid Romero | D | 80 | 0 | 0.02 | 0.04 | 37% | 1 | 0.5 | 6.8 | 63.4 | 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 0.9975, quality 0.460) | market_value_eur=4800000
quality_factor=0.4597
boost_factor=0.9975
reference_quality=0.505
history_matches=22
history_shrink=0.1852 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0241) | blend_weight=0.0241
history_matches=22
season_overlap_discount=1.0
per90_to_match_factor=0.8944
prior_reliability=0.2
competition=La Liga | totalCross: 0.3339 -> 0.3546 totalShots: 0.5349 -> 0.522 fouls: 0.7487 -> 0.7379 | 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': 'Ilias Akhomach', '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.84 (squad xG sum 0.7867, xG scale 1.0678, xA scale 1.0678, team xA 0.60 = 0.71 x lambda) | scoreline_reset=true
team_lambda=0.84
squad_xg_sum=0.7867
squad_xa_sum=0.5598
team_expected_assists=0.5978
team_xa_to_xg_ratio=0.7116 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 77.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.0246
goal_rate=0.0361
scorer_weight=0.0292 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0112
assist_rate=0.0
provider_weight=0.0093 | - |
|
| Djené | D | 75 | 0 | 0.00 | - | n/a | 0 | 0.0 | 6.6 | 58.1 | 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.9979, quality 0.437) | market_value_eur=1500000
quality_factor=0.4374
boost_factor=0.9979
reference_quality=0.505
history_matches=43
history_shrink=0.1042 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0131) | blend_weight=0.0131
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=0.8328
prior_reliability=0.1933
competition=La Liga | fouls: 0.9704 -> 0.9765 | 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': 'Tajon Buchanan', 'matchup_zone': 'LM 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.84 (squad xG sum 0.7867, xG scale 1.0678, xA scale 1.0678, team xA 0.60 = 0.71 x lambda) | scoreline_reset=true
team_lambda=0.84
squad_xg_sum=0.7867
squad_xa_sum=0.5598
team_expected_assists=0.5978
team_xa_to_xg_ratio=0.7116 | - | 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_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.0003
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.01
assist_rate=0.0
provider_weight=0.0085 | - |
|
| Kiko Femenía | D | 62 | 0 | 0.02 | 0.02 | ok | 0 | 0.2 | 6.5 | 56.1 | 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.9974, quality 0.437) | market_value_eur=525000
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.0083) | blend_weight=0.0083
history_matches=34
season_overlap_discount=1.0
per90_to_match_factor=0.689
prior_reliability=0.1
competition=La Liga | interceptionWon: 0.7846 -> 0.7781 | 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': 'Alberto Moleiro', '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.84 (squad xG sum 0.7867, xG scale 1.0678, xA scale 1.0678, team xA 0.60 = 0.71 x lambda) | scoreline_reset=true
team_lambda=0.84
squad_xg_sum=0.7867
squad_xa_sum=0.5598
team_expected_assists=0.5978
team_xa_to_xg_ratio=0.7116 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 18 by projected rating, fifa_overall 74.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 skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0189
goal_rate=0.0266
scorer_weight=0.0215 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0532
assist_rate=0.0036
provider_weight=0.0438 | - |
|
| Johan Mojica | D | 80 | 0 | 0.02 | 0.01 | 44% | 1 | 0.4 | 6.7 | 59.9 | 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 0.9979, quality 0.437) | market_value_eur=1400000
quality_factor=0.4374
boost_factor=0.9979
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.8896
prior_reliability=0.1333
competition=La Liga | totalCross: 6.4211 -> 6.443 wasFouled: 1.174 -> 1.1872 | 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': 'Alberto Moleiro', '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.84 (squad xG sum 0.7867, xG scale 1.0678, xA scale 1.0678, team xA 0.60 = 0.71 x lambda) | scoreline_reset=true
team_lambda=0.84
squad_xg_sum=0.7867
squad_xa_sum=0.5598
team_expected_assists=0.5978
team_xa_to_xg_ratio=0.7116 | expected_assists: 0.0925 -> 0.0988 | 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 skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0212
goal_rate=0.0
scorer_weight=0.0171 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0941
assist_rate=0.0315
provider_weight=0.079 | - |
|
| Nemanja Gudelj | D | 81 | 0 | 0.04 | 0.03 | 40% | 1 | 0.8 | 6.7 | 56.3 | 42 | 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.437) | market_value_eur=1900000
quality_factor=0.4374
boost_factor=0.9978
reference_quality=0.505
history_matches=42
history_shrink=0.1064 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0009) | blend_weight=0.0009
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.9048
prior_reliability=0.0133
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': 'Ilias Akhomach', '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.84 (squad xG sum 0.7867, xG scale 1.0678, xA scale 1.0678, team xA 0.60 = 0.71 x lambda) | scoreline_reset=true
team_lambda=0.84
squad_xg_sum=0.7867
squad_xa_sum=0.5598
team_expected_assists=0.5978
team_xa_to_xg_ratio=0.7116 | - | 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_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.0406
goal_rate=0.027
scorer_weight=0.0359 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0231
assist_rate=0.0
provider_weight=0.0187 | - |
|
| Mario Martín | M | 72 | 0 | 0.08 | 0.08 | ok | 1 | 0.7 | 6.7 | 59.9 | 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.0008, quality 0.531) | market_value_eur=10700000
quality_factor=0.5306
boost_factor=1.0008
reference_quality=0.505
history_matches=42
history_shrink=0.1064 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0032) | blend_weight=0.0032
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.804
prior_reliability=0.0467
competition=La Liga | wasFouled: 1.2657 -> 1.2764 | 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': 'Pape Gueye', 'matchup_zone': 'Central Mid vs Central Mid — Box-to-Box Midfield Contest', 'duel_win_rate': 0.266, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.774, 'skill_edge': -0.1138, 'height_edge': -0.04, 'attacker_skill': 0.5444, 'defender_skill': 0.7972, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Pape Gueye', 'market_value': 39000000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.7972}], 'xg_override': 0.0774} | aerialWon: 1.4382 -> 1.0 totalShots: 1.1238 -> 0.8698 shotOffTarget: 0.735 -> 0.5689 onTargetScoringAttempt: 0.3888 -> 0.3009 bigChanceMissed: 0.1342 -> 0.1039 expectedGoals: 0.1 -> 0.0774 goals: 0.0896 -> 0.0694 expectedGoalsOnTarget: 0.0249 -> 0.0193 | 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.84 (squad xG sum 0.7867, xG scale 1.0678, xA scale 1.0678, team xA 0.60 = 0.71 x lambda) | scoreline_reset=true
team_lambda=0.84
squad_xg_sum=0.7867
squad_xa_sum=0.5598
team_expected_assists=0.5978
team_xa_to_xg_ratio=0.7116 | expected_goals: 0.0774 -> 0.0826 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 74.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.0793
goal_rate=0.0694
scorer_weight=0.0774 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0487
assist_rate=0.0645
provider_weight=0.0591 | - |
|
| Ramón Terrats | M | 71 | 0 | 0.15 | 0.07 | 103% | 1 | 1.0 | 6.8 | 59.2 | 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.9977, quality 0.440) | market_value_eur=3200000
quality_factor=0.4399
boost_factor=0.9977
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=0.7922
prior_reliability=0.2
competition=La Liga | totalCross: 1.4756 -> 1.5052 totalShots: 1.6682 -> 1.6831 wasFouled: 2.0806 -> 2.0891 fouls: 0.8907 -> 0.8972 | 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': 'Sergi Cardona', 'matchup_zone': 'Left Mid vs Right Back — Wide Channel', 'duel_win_rate': 0.385, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.8897, 'skill_edge': -0.0471, 'height_edge': -0.028, 'attacker_skill': 0.4443, 'defender_skill': 0.5489, 'attacker_role': 'LM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Sergi Cardona', 'market_value': 8600000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.5489}], 'xg_override': 0.1394} | aerialWon: 0.7146 -> 1.0 totalShots: 1.6831 -> 1.4975 shotOffTarget: 1.1314 -> 1.0066 onTargetScoringAttempt: 0.5367 -> 0.4775 bigChanceMissed: 0.1694 -> 0.1507 expectedGoals: 0.1567 -> 0.1394 goals: 0.1482 -> 0.1319 expectedGoalsOnTarget: 0.141 -> 0.1254 | 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.84 (squad xG sum 0.7867, xG scale 1.0678, xA scale 1.0678, team xA 0.60 = 0.71 x lambda) | scoreline_reset=true
team_lambda=0.84
squad_xg_sum=0.7867
squad_xa_sum=0.5598
team_expected_assists=0.5978
team_xa_to_xg_ratio=0.7116 | expected_goals: 0.1394 -> 0.1488 expected_assists: 0.1046 -> 0.1116 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 82.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 skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.1383
goal_rate=0.1319
scorer_weight=0.1429 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.1056
assist_rate=0.1106
provider_weight=0.1159 | - |
|
| Francho Serrano | M | 79 | 0 | 0.06 | 0.01 | 395% | 1 | 0.3 | 6.8 | 44.7 | 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.9923, quality 0.439) | market_value_eur=3100000
quality_factor=0.4387
boost_factor=0.9923
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.8789
prior_reliability=0.12
competition=La Liga | totalCross: 1.3016 -> 1.3358 totalShots: 0.8835 -> 0.857 interceptionWon: 0.6562 -> 0.6805 wonTackle: 0.1061 -> 0.1176 onTargetScoringAttempt: 0.2622 -> 0.2543 | 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': 'Juan Foyth', 'matchup_zone': 'Right Mid vs Left Back — Wide Channel', 'duel_win_rate': 0.372, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.8711, 'skill_edge': -0.0477, 'height_edge': -0.04, 'attacker_skill': 0.4429, 'defender_skill': 0.5489, 'attacker_role': 'RM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Juan Foyth', 'market_value': 8600000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.5489}], 'xg_override': 0.0524} | aerialWon: 0.1727 -> 1.0 totalShots: 0.8756 -> 0.7627 shotOffTarget: 0.6213 -> 0.5412 onTargetScoringAttempt: 0.2543 -> 0.2215 goals: 0.0641 -> 0.0558 expectedGoals: 0.0602 -> 0.0524 | 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.84 (squad xG sum 0.7867, xG scale 1.0678, xA scale 1.0678, team xA 0.60 = 0.71 x lambda) | scoreline_reset=true
team_lambda=0.84
squad_xg_sum=0.7867
squad_xa_sum=0.5598
team_expected_assists=0.5978
team_xa_to_xg_ratio=0.7116 | - | 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_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.0545
goal_rate=0.0558
scorer_weight=0.0579 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0732
assist_rate=0.0712
provider_weight=0.076 | - |
|
| Orel Mangala | M | 87 | 0 | 0.04 | 0.02 | 124% | 1 | 0.3 | 6.8 | 46.0 | 10 | 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.0001, quality 0.506) | market_value_eur=8600000
quality_factor=0.5059
boost_factor=1.0001
reference_quality=0.505
history_matches=7
history_shrink=0.4167 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0542) | blend_weight=0.0542
history_matches=7
season_overlap_discount=1.0
per90_to_match_factor=0.9683
prior_reliability=0.2
competition=La Liga | interceptionWon: 2.4551 -> 2.4095 wasFouled: 0.9361 -> 0.9728 totalCross: 0.4455 -> 0.4214 wonTackle: 0.2326 -> 0.255 totalShots: 0.6792 -> 0.6949 onTargetScoringAttempt: 0.18 -> 0.1702 fouls: 2.091 -> 2.1001 | 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': 'Pape Gueye', 'matchup_zone': 'Central Mid vs Central Mid — Box-to-Box Midfield Contest', 'duel_win_rate': 0.258, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.7619, 'skill_edge': -0.126, 'height_edge': -0.036, 'attacker_skill': 0.5172, 'defender_skill': 0.7972, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Pape Gueye', 'market_value': 39000000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.7972}], 'xg_override': 0.0347} | aerialWon: 0.3877 -> 1.0 totalShots: 0.6949 -> 0.5294 shotOffTarget: 0.4992 -> 0.3803 onTargetScoringAttempt: 0.1702 -> 0.1297 expectedGoals: 0.0456 -> 0.0347 goals: 0.044 -> 0.0335 | 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.84 (squad xG sum 0.7867, xG scale 1.0678, xA scale 1.0678, team xA 0.60 = 0.71 x lambda) | scoreline_reset=true
team_lambda=0.84
squad_xg_sum=0.7867
squad_xa_sum=0.5598
team_expected_assists=0.5978
team_xa_to_xg_ratio=0.7116 | - | 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 skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0364
goal_rate=0.0335
scorer_weight=0.0366 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0445
assist_rate=0.0585
provider_weight=0.0533 | - |
|
| Martín Satriano | F | 77 | 0 | 0.20 | 0.16 | ok | 2 | 1.7 | 6.8 | 61.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.0011, quality 0.529) | market_value_eur=10600000
quality_factor=0.5295
boost_factor=1.0011
reference_quality=0.505
history_matches=28
history_shrink=0.1515 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0177) | blend_weight=0.0177
history_matches=28
season_overlap_discount=1.0
per90_to_match_factor=0.8584
prior_reliability=0.18
competition=La Liga | wasFouled: 1.9834 -> 1.9933 interceptionWon: 0.5072 -> 0.4982 onTargetScoringAttempt: 0.6281 -> 0.6226 | 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': 'Renato Veiga, Pau Navarro', '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.8845, 'skill_edge': -0.0766, 'height_edge': -0.002, 'attacker_skill': 0.5295, 'defender_skill': 0.6997, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Renato Veiga', 'market_value': 29000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7736}, {'player': 'Pau Navarro', 'market_value': 14600000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6258}], 'xg_override': 0.1888} | totalShots: 1.869 -> 1.6531 shotOffTarget: 1.2405 -> 1.0972 onTargetScoringAttempt: 0.6226 -> 0.5507 expectedGoalsOnTarget: 0.2644 -> 0.2339 goals: 0.2254 -> 0.1994 expectedGoals: 0.2135 -> 0.1888 bigChanceMissed: 0.0938 -> 0.083 | 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.84 (squad xG sum 0.7867, xG scale 1.0678, xA scale 1.0678, team xA 0.60 = 0.71 x lambda) | scoreline_reset=true
team_lambda=0.84
squad_xg_sum=0.7867
squad_xa_sum=0.5598
team_expected_assists=0.5978
team_xa_to_xg_ratio=0.7116 | expected_goals: 0.1888 -> 0.2016 | 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 skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.1826
goal_rate=0.1994
scorer_weight=0.2106 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0577
assist_rate=0.119
provider_weight=0.0742 | - |
|
| Team totals | 0 | 0.84 | | 11 | | 6.7 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Jiří Letáček | G | 4.4m | 10.9% | Market-value substitute prior |
| Andrés García | D | 13.8m | 22.2% | Market-value substitute prior |
| Dani Carvajal | D | 13.6m | 30.0% | Market-value substitute prior |
| Alberto Risco | M | 19.2m | 69.2% | Market-value substitute prior |
| Oscar Lopez | M | 22.0m | 49.9% | Market-value substitute prior |
| Christantus Uche | F | 25.6m | 57.4% | Market-value substitute prior |
Antagonist / tactical summary
Midfield is evenly contested — Pape Gueye vs Mario Martín will be the pivotal duel. Total antagonist xG — Home: 0.89, Away: 0.49. 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.8% / 48.2%, dominance ratio 0.56, key duel: Pape Gueye vs Mario Martín
Tajon Buchanan xG 0.19Pape Gueye xG 0.20Carlos Maciá xG 0.05Martín Satriano xG 0.19Ramón Terrats xG 0.14Francho Serrano xG 0.05
Summary
Antagonist matchup analysis for Villarreal vs Getafe. Most likely scoreline: 2-0. Lambdas derived from 6 home and 5 away individual player duels. Head-to-head: Villarreal 5W-4D-1L vs Getafe over 10 meetings.
Tactical parity between 4-4-2 and 5-4-1. Match outcome driven primarily by individual player quality. Midfield is evenly contested — Pape Gueye vs Mario Martín will be the pivotal duel. Total antagonist xG — Home: 0.89, Away: 0.49. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Celta vs Levante
LaLiga · 20261108 · 3-4-3 vs 4-4-2
Predicted 2-1Winner: CeltaWinning H 2-1 (9.6%)Winning A 1-2 (6.6%)Confidence 0.68λ home/away 1.76 / 1.22Most-likely P 9.6%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset TracingAntagonist + XGBoost match analysis for Celta vs Levante. Player statistics regressed using position-specific XGBoost models (G, D, M, F) with 2026-2027 FBref priors. Micro-duels resolved across 3-4-3 vs 4-4-2 (duel lambdas: Home 1.366, Away 0.838). Final calibrated Poisson lambdas: Home 1.764, Away 1.220 (most likely score 2-1).
Home Starters 11/11 XGBoost (10 FBref) Away Starters 11/11 XGBoost (0 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.37 / 0.84 Final λ (H/A) 1.76 / 1.22
FBref Team Priors: Celta Vigo (Gls/90: 0.25, GA/90: 0.25 → E[λ]: 0.309) vs Levante UD (Gls/90: 1.6666666666666667, GA/90: 1.67 → E[λ]: 0.309) | 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 | Celta | Levante |
|---|
| League position | 9.00 | 17.00 |
| Points per game | 1.19 | 1.07 |
| Attack index | 0.85 | 0.94 |
| Defense (concede) index | 1.08 | 0.85 |
| Form multiplier | 1.01 | 0.99 |
| Standing λ multiplier | 0.97 | 0.91 |
Lambda decomposition (how the goal rates were built)
| Stage | Celta λ | Levante λ |
|---|
| FBref Squad Prior E[λ] (weight 0.228) | 0.309 | 0.309 |
| Pre-competitive-floor | 1.325 | 0.922 |
| Pre-calibration (Micro-duels) | 1.366 | 0.838 |
| Final λ | 1.764 | 1.220 |
competition calibration scale 1.328competition 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.0% |
| 2-1 | 9.6% |
| 1-0 | 8.8% |
| 2-0 | 7.9% |
| 1-2 | 6.6% |
| Home win | 50.1% |
| Draw | 23.5% |
| Away win | 26.4% |
| Over 2.5 | 57.3% |
| BTTS yes | 58.5% |
Pregame fair line — favorite Celta (50.1%), fair total 2.98, fair spread 0.54
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.
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 | 6.9 | 65.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=49
history_shrink=0.0926 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0161) | blend_weight=0.0161
history_matches=49
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.2667
competition=La Liga | saves: 3.0356 -> 3.0431 | 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': 0.838} | - | 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.76 (squad xG sum 0.9840, xG scale 1.7928, xA scale 1.7928, team xA 1.31 = 0.74 x lambda) | scoreline_reset=true
team_lambda=1.764
squad_xg_sum=0.984
squad_xa_sum=0.7314
team_expected_assists=1.3112
team_xa_to_xg_ratio=0.7433 | shots_faced: 8.0 -> 11.6 expected_saves: 1.96 -> 2.84 high_pressure_saves: 0.67 -> 0.98 | 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: 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.8097 | - | 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.4371 | - |
|
| Yoel Lago | D | 90 | 0 | 0.03 | 0.01 | 363% | 0 | 0.1 | 6.9 | 44.9 | 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=23
history_shrink=0.1786 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0271) | blend_weight=0.0271
history_matches=23
season_overlap_discount=1.0
per90_to_match_factor=0.9947
prior_reliability=0.2333
competition=La Liga | totalShots: 0.3835 -> 0.3731 wasFouled: 1.4375 -> 1.4294 totalCross: 0.0 -> 0.0077 interceptionWon: 1.1603 -> 1.1674 fouls: 1.4484 -> 1.4554 wonTackle: 0.8274 -> 0.8204 | 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': 'Jon Ander Olasagasti', 'matchup_zone': 'LM vs CB'} | - | 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.76 (squad xG sum 0.9840, xG scale 1.7928, xA scale 1.7928, team xA 1.31 = 0.74 x lambda) | scoreline_reset=true
team_lambda=1.764
squad_xg_sum=0.984
squad_xa_sum=0.7314
team_expected_assists=1.3112
team_xa_to_xg_ratio=0.7433 | expected_goals: 0.0151 -> 0.0271 expected_assists: 0.0111 -> 0.0199 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 71.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.0267
goal_rate=0.0
scorer_weight=0.0217 | - | 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.0197
assist_rate=0.0
provider_weight=0.0163 | - |
|
| Álvaro Núñez | D | 81 | 0 | 0.03 | 0.01 | 332% | 1 | 0.3 | 6.9 | 33.0 | 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 0.9975, quality 0.449) | market_value_eur=3900000
quality_factor=0.4486
boost_factor=0.9975
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.9022
prior_reliability=0.1267
competition=La Liga | interceptionWon: 0.8183 -> 0.8256 totalCross: 1.49 -> 1.4835 wonTackle: 0.9029 -> 0.8977 | 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é', '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.76 (squad xG sum 0.9840, xG scale 1.7928, xA scale 1.7928, team xA 1.31 = 0.74 x lambda) | scoreline_reset=true
team_lambda=1.764
squad_xg_sum=0.984
squad_xa_sum=0.7314
team_expected_assists=1.3112
team_xa_to_xg_ratio=0.7433 | expected_goals: 0.014 -> 0.0251 expected_assists: 0.0588 -> 0.1054 | 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: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0248
goal_rate=0.0
scorer_weight=0.0201 | - | 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.1
assist_rate=0.0204
provider_weight=0.0843 | - |
|
| Javi Rodríguez | D | 85 | 0 | 0.03 | 0.02 | 79% | 0 | 0.3 | 7.0 | 54.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.0034, quality 0.606) | market_value_eur=17500000
quality_factor=0.6058
boost_factor=1.0034
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.9456
prior_reliability=0.1733
competition=La Liga | wasFouled: 1.0938 -> 1.0847 | 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': '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.76 (squad xG sum 0.9840, xG scale 1.7928, xA scale 1.7928, team xA 1.31 = 0.74 x lambda) | scoreline_reset=true
team_lambda=1.764
squad_xg_sum=0.984
squad_xa_sum=0.7314
team_expected_assists=1.3112
team_xa_to_xg_ratio=0.7433 | expected_goals: 0.0168 -> 0.0301 expected_assists: 0.0817 -> 0.1465 | 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: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0297
goal_rate=0.1162
scorer_weight=0.0376 | - | 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.1363
assist_rate=0.1231
provider_weight=0.1831 | - |
|
| Ilaix Moriba | M | 82 | 0 | 0.07 | 0.03 | 130% | 1 | 0.4 | 6.9 | 63.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.0017, quality 0.565) | market_value_eur=13700000
quality_factor=0.5649
boost_factor=1.0017
reference_quality=0.505
history_matches=47
history_shrink=0.0962 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0112) | blend_weight=0.0112
history_matches=47
season_overlap_discount=1.0
per90_to_match_factor=0.913
prior_reliability=0.18
competition=La Liga | fouls: 1.8036 -> 1.7833 interceptionWon: 1.4066 -> 1.3984 | 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': 'Central Mid vs Central Mid — Box-to-Box Midfield Contest', 'duel_win_rate': 0.473, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0777, 'skill_edge': 0.0649, 'height_edge': -0.012, 'attacker_skill': 0.5816, 'defender_skill': 0.4374, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Daniel Requena', 'market_value': 1500000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.4374}], 'xg_override': 0.04} | aerialWon: 0.1643 -> 1.1 totalShots: 0.5356 -> 0.5772 shotOffTarget: 0.3895 -> 0.4198 onTargetScoringAttempt: 0.1428 -> 0.1539 expectedGoalsOnTarget: 0.0729 -> 0.0786 | 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.76 (squad xG sum 0.9840, xG scale 1.7928, xA scale 1.7928, team xA 1.31 = 0.74 x lambda) | scoreline_reset=true
team_lambda=1.764
squad_xg_sum=0.984
squad_xa_sum=0.7314
team_expected_assists=1.3112
team_xa_to_xg_ratio=0.7433 | expected_goals: 0.04 -> 0.0717 expected_assists: 0.0409 -> 0.0733 | 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.0692
goal_rate=0.0464
scorer_weight=0.0768 | - | 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.0707
assist_rate=0.0491
provider_weight=0.0799 | - |
|
| Miguel Román | M | 88 | 0 | 0.11 | 0.01 | 980% | 1 | 0.4 | 7.1 | 64.0 | 19 | 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.573) | market_value_eur=14400000
quality_factor=0.5726
boost_factor=1.0033
reference_quality=0.505
history_matches=26
history_shrink=0.1613 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0245) | blend_weight=0.0245
history_matches=26
season_overlap_discount=1.0
per90_to_match_factor=0.9833
prior_reliability=0.2333
competition=La Liga | totalCross: 1.6349 -> 1.6842 totalShots: 0.979 -> 0.9551 wonTackle: 0.9445 -> 0.9214 wasFouled: 0.5078 -> 0.516 onTargetScoringAttempt: 0.3311 -> 0.323 | 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': 'Daniel Requena', 'matchup_zone': 'Central Mid vs Central Mid — Box-to-Box Midfield Contest', 'duel_win_rate': 0.457, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0539, 'skill_edge': 0.0686, 'height_edge': -0.032, 'attacker_skill': 0.59, 'defender_skill': 0.4374, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Daniel Requena', 'market_value': 1500000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.4374}], 'xg_override': 0.0624} | aerialWon: 0.6671 -> 1.0 totalShots: 0.9709 -> 1.0232 shotOffTarget: 0.6479 -> 0.6828 onTargetScoringAttempt: 0.323 -> 0.3404 | 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.76 (squad xG sum 0.9840, xG scale 1.7928, xA scale 1.7928, team xA 1.31 = 0.74 x lambda) | scoreline_reset=true
team_lambda=1.764
squad_xg_sum=0.984
squad_xa_sum=0.7314
team_expected_assists=1.3112
team_xa_to_xg_ratio=0.7433 | expected_goals: 0.0624 -> 0.1119 expected_assists: 0.1156 -> 0.2073 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 74.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.1059
goal_rate=0.0799
scorer_weight=0.1293 | - | 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.1872
assist_rate=0.1168
provider_weight=0.2088 | - |
|
| Aleix Febas | M | 85 | 0 | 0.07 | 0.03 | 117% | 1 | 0.4 | 6.9 | 60.6 | 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=42
history_shrink=0.1064 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0083) | blend_weight=0.0083
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.9444
prior_reliability=0.12
competition=La Liga | fouls: 1.5384 -> 1.5474 wasFouled: 2.8447 -> 2.8516 | 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 de la Fuente', 'matchup_zone': 'Left Wingback vs Right Back — Overlapping Run', 'duel_win_rate': 0.36, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9412, 'skill_edge': 0.0, 'height_edge': -0.04, 'attacker_skill': 0.4918, 'defender_skill': 0.4918, 'attacker_role': 'LWB', 'attacker_mv_price_index': 0.7, 'defender_adjusted_parts': [{'player': 'Adrián de la Fuente', 'market_value': 5200000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.4918}], 'xg_override': 0.0392} | aerialWon: 0.0787 -> 0.8 totalShots: 0.5903 -> 0.5556 shotOffTarget: 0.3897 -> 0.3668 onTargetScoringAttempt: 0.2006 -> 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 1.76 (squad xG sum 0.9840, xG scale 1.7928, xA scale 1.7928, team xA 1.31 = 0.74 x lambda) | scoreline_reset=true
team_lambda=1.764
squad_xg_sum=0.984
squad_xa_sum=0.7314
team_expected_assists=1.3112
team_xa_to_xg_ratio=0.7433 | expected_goals: 0.0392 -> 0.0703 expected_assists: 0.0437 -> 0.0783 | 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.0679
goal_rate=0.0492
scorer_weight=0.0782 | - | 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.0753
assist_rate=0.0605
provider_weight=0.0923 | - |
|
| Javier Rueda | M | 76 | 0 | 0.15 | 0.03 | 450% | 1 | 0.3 | 6.8 | 52.0 | 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=37
history_shrink=0.119 | - | 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': 'Manuel Sánchez', 'matchup_zone': 'Right Wingback vs Left Back — Overlapping Run', 'duel_win_rate': 0.386, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9801, 'skill_edge': -0.0015, 'height_edge': -0.012, 'attacker_skill': 0.5089, 'defender_skill': 0.5123, 'attacker_role': 'RWB', 'attacker_mv_price_index': 0.7, 'defender_adjusted_parts': [{'player': 'Manuel Sánchez', 'market_value': 6400000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.5123}], 'xg_override': 0.0849} | aerialWon: 0.6499 -> 0.9 totalShots: 0.93 -> 0.9115 shotOffTarget: 0.6663 -> 0.653 onTargetScoringAttempt: 0.2636 -> 0.2584 | 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.76 (squad xG sum 0.9840, xG scale 1.7928, xA scale 1.7928, team xA 1.31 = 0.74 x lambda) | scoreline_reset=true
team_lambda=1.764
squad_xg_sum=0.984
squad_xa_sum=0.7314
team_expected_assists=1.3112
team_xa_to_xg_ratio=0.7433 | expected_goals: 0.0849 -> 0.1522 expected_assists: 0.111 -> 0.199 | 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.1412
goal_rate=0.0738
scorer_weight=0.1397 | - | 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.1805
assist_rate=0.1096
provider_weight=0.1973 | - |
|
| Hugo Álvarez | F | 73 | 0 | 0.25 | 0.09 | 193% | 1 | 0.4 | 6.8 | 53.2 | 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=37
history_shrink=0.119 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0067) | blend_weight=0.0067
history_matches=37
season_overlap_discount=1.0
per90_to_match_factor=0.8111
prior_reliability=0.0867
competition=La Liga | totalCross: 1.2226 -> 1.2395 totalShots: 1.256 -> 1.2476 | 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', 'matchup_zone': 'Shadow Striker vs Centre Back — Half-Space Threat', 'duel_win_rate': 0.436, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9801, 'skill_edge': 0.0265, 'height_edge': -0.04, 'attacker_skill': 0.4963, 'defender_skill': 0.4374, 'attacker_role': 'SS', '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}], 'xg_override': 0.1397} | totalShots: 1.2527 -> 1.2278 shotOffTarget: 0.7641 -> 0.7489 onTargetScoringAttempt: 0.4886 -> 0.4789 | 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.76 (squad xG sum 0.9840, xG scale 1.7928, xA scale 1.7928, team xA 1.31 = 0.74 x lambda) | scoreline_reset=true
team_lambda=1.764
squad_xg_sum=0.984
squad_xa_sum=0.7314
team_expected_assists=1.3112
team_xa_to_xg_ratio=0.7433 | expected_goals: 0.1397 -> 0.2504 expected_assists: 0.0925 -> 0.1658 | 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: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.2215
goal_rate=0.1676
scorer_weight=0.2872 | - | 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.1528
assist_rate=0.2173
provider_weight=0.2072 | - |
|
| Hugo González | F | 61 | 1 | 0.40 | 0.07 | 457% | 2 | 0.6 | 6.8 | 24.0 | 20 | 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.9917, quality 0.439) | market_value_eur=3100000
quality_factor=0.4387
boost_factor=0.9917
reference_quality=0.505
history_matches=7
history_shrink=0.4167 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0090) | blend_weight=0.009
history_matches=7
season_overlap_discount=1.0
per90_to_match_factor=0.6761
prior_reliability=0.0333
competition=La Liga | totalShots: 1.9412 -> 1.9237 fouls: 0.3773 -> 0.3861 wasFouled: 0.48 -> 0.4879 onTargetScoringAttempt: 0.7047 -> 0.6983 | 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, Jeremy Toljan', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.189, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 0.9832, 'skill_edge': 0.0006, 'height_edge': -0.012, 'attacker_skill': 0.4387, 'defender_skill': 0.4374, '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': 'Jeremy Toljan', 'market_value': 1900000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.2207} | totalShots: 1.9348 -> 1.9023 shotOffTarget: 1.2365 -> 1.2157 onTargetScoringAttempt: 0.6983 -> 0.6866 expectedGoalsOnTarget: 0.3637 -> 0.3576 | 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.76 (squad xG sum 0.9840, xG scale 1.7928, xA scale 1.7928, team xA 1.31 = 0.74 x lambda) | scoreline_reset=true
team_lambda=1.764
squad_xg_sum=0.984
squad_xa_sum=0.7314
team_expected_assists=1.3112
team_xa_to_xg_ratio=0.7433 | expected_goals: 0.2207 -> 0.3957 expected_assists: 0.1001 -> 0.1795 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 70.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=1
goal_probability=0.3268
goal_rate=0.2303
scorer_weight=0.4097 | - | 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.1643
assist_rate=0.2689
provider_weight=0.2244 | - |
|
| Ferrán Jutglà | F | 73 | 1 | 0.50 | 0.18 | 174% | 2 | 1.2 | 6.7 | 60.1 | 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.0008, quality 0.531) | market_value_eur=10700000
quality_factor=0.5306
boost_factor=1.0008
reference_quality=0.505
history_matches=41
history_shrink=0.1087 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0122) | blend_weight=0.0122
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=0.8148
prior_reliability=0.1733
competition=La Liga | totalShots: 1.8121 -> 1.7938 onTargetScoringAttempt: 0.6918 -> 0.6833 wasFouled: 1.5249 -> 1.5331 | 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', 'matchup_zone': 'Shadow Striker vs Centre Back — Half-Space Threat', 'duel_win_rate': 0.448, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.997, 'skill_edge': 0.0419, 'height_edge': -0.044, 'attacker_skill': 0.5306, 'defender_skill': 0.4374, 'attacker_role': 'SS', '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}], 'xg_override': 0.2787} | totalShots: 1.8036 -> 1.7982 | 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.76 (squad xG sum 0.9840, xG scale 1.7928, xA scale 1.7928, team xA 1.31 = 0.74 x lambda) | scoreline_reset=true
team_lambda=1.764
squad_xg_sum=0.984
squad_xa_sum=0.7314
team_expected_assists=1.3112
team_xa_to_xg_ratio=0.7433 | expected_goals: 0.2787 -> 0.4995 expected_assists: 0.046 -> 0.0825 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 75.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=1
goal_probability=0.3932
goal_rate=0.2701
scorer_weight=0.4864 | - | 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.0792
assist_rate=0.0524
provider_weight=0.088 | - |
|
| Team totals | 2 | 1.76 | | 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.4m | 11.0% | Market-value substitute prior |
| Abdoulaye Faye | D | 13.6m | 21.8% | Market-value substitute prior |
| Sebastián Cáceres | D | 13.6m | 30.1% | Market-value substitute prior |
| Sergio Carreira | M | 24.4m | 41.1% | Market-value substitute prior |
| Andrés Antañón | M | 22.0m | 30.7% | Market-value substitute prior |
| Williot Swedberg | F | 30.4m | 44.5% | Market-value substitute prior |
Levante — 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 |
|---|
| Mathew Ryan | G | 86 | 0 | 0.00 | 0.00 | 100% | | 0.1 | 6.9 | 67.8 | 35 | 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.9981, quality 0.437) | market_value_eur=1700000
quality_factor=0.4374
boost_factor=0.9981
reference_quality=0.505
history_matches=47
history_shrink=0.0962 | - | 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à, Hugo González', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.3662} | - | 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.22 (squad xG sum 1.1283, xG scale 1.0813, xA scale 1.1158, team xA 0.79 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.22
squad_xg_sum=1.1283
squad_xa_sum=0.7107
team_expected_assists=0.793
team_xa_to_xg_ratio=0.65 | shots_faced: 13.0 -> 16.8 expected_saves: 3.18 -> 4.12 high_pressure_saves: 1.09 -> 1.41 | 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.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.0
provider_weight=0.0
squad_weight_total=0.798 | - |
|
| 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': 'Javier Rueda', '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.22 (squad xG sum 1.1283, xG scale 1.0813, xA scale 1.1158, team xA 0.79 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.22
squad_xg_sum=1.1283
squad_xa_sum=0.7107
team_expected_assists=0.793
team_xa_to_xg_ratio=0.65 | expected_assists: 0.0501 -> 0.0559 | 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.0084
goal_rate=0.0015
scorer_weight=0.0075 | - | 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.0544
assist_rate=0.0154
provider_weight=0.0447 | - |
|
| Aïssa Mandi | D | 87 | 0 | 0.00 | 0.00 | ok | 0 | 0.1 | 6.8 | 47.4 | 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=1100000
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': 'Hugo Álvarez', 'matchup_zone': 'Shadow Striker vs Centre Back — Half-Space Threat'} | - | 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.22 (squad xG sum 1.1283, xG scale 1.0813, xA scale 1.1158, team xA 0.79 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.22
squad_xg_sum=1.1283
squad_xa_sum=0.7107
team_expected_assists=0.793
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: 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.0133
assist_rate=0.0
provider_weight=0.0108 | - |
|
| Adrián de la Fuente | D | 82 | 0 | 0.14 | 0.13 | ok | 2 | 1.5 | 6.9 | 66.9 | 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 0.9987, quality 0.465) | market_value_eur=5200000
quality_factor=0.4646
boost_factor=0.9987
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': '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 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.22 (squad xG sum 1.1283, xG scale 1.0813, xA scale 1.1158, team xA 0.79 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.22
squad_xg_sum=1.1283
squad_xa_sum=0.7107
team_expected_assists=0.793
team_xa_to_xg_ratio=0.65 | expected_goals: 0.1291 -> 0.1396 expected_assists: 0.0945 -> 0.1054 | 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: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1303
goal_rate=0.3312
scorer_weight=0.1745 | - | 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.1
assist_rate=0.0026
provider_weight=0.0843 | - |
|
| Jeremy Toljan | D | 83 | 0 | 0.03 | 0.01 | 139% | 0 | 0.2 | 6.6 | 57.5 | 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.9980, quality 0.437) | market_value_eur=1900000
quality_factor=0.4374
boost_factor=0.998
reference_quality=0.505
history_matches=46
history_shrink=0.098 | - | 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 González', '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.22 (squad xG sum 1.1283, xG scale 1.0813, xA scale 1.1158, team xA 0.79 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.22
squad_xg_sum=1.1283
squad_xa_sum=0.7107
team_expected_assists=0.793
team_xa_to_xg_ratio=0.65 | expected_assists: 0.0962 -> 0.1073 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 17 by projected rating, fifa_overall 74.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.0313
goal_rate=0.0002
scorer_weight=0.0254 | - | 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.1017
assist_rate=0.1449
provider_weight=0.1341 | - |
|
| Jon Ander Olasagasti | M | 86 | 0 | 0.08 | 0.09 | ok | 1 | 1.0 | 6.9 | 62.8 | 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.9979, quality 0.437) | market_value_eur=2700000
quality_factor=0.4374
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': 'Yoel Lago', 'matchup_zone': 'LM vs CB', 'duel_win_rate': 0.349, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.896, 'skill_edge': -0.0347, 'height_edge': -0.036, 'attacker_skill': 0.4374, 'defender_skill': 0.5146, 'attacker_role': 'LM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Yoel Lago', 'market_value': 7000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5146}], 'xg_override': 0.0777} | aerialWon: 0.5268 -> 0.9 totalShots: 1.1332 -> 1.0154 shotOffTarget: 0.7453 -> 0.6678 onTargetScoringAttempt: 0.3879 -> 0.3476 expectedGoalsOnTarget: 0.1005 -> 0.09 goals: 0.0977 -> 0.0875 expectedGoals: 0.0867 -> 0.0777 bigChanceMissed: 0.0476 -> 0.0426 | 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.22 (squad xG sum 1.1283, xG scale 1.0813, xA scale 1.1158, team xA 0.79 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.22
squad_xg_sum=1.1283
squad_xa_sum=0.7107
team_expected_assists=0.793
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0777 -> 0.084 expected_assists: 0.1316 -> 0.147 | 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_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.0806
goal_rate=0.0875
scorer_weight=0.0904 | - | 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.1367
assist_rate=0.0995
provider_weight=0.121 | - |
|
| Daniel Requena | M | 78 | 0 | 0.08 | 0.05 | 79% | 1 | 0.5 | 6.8 | 46.1 | 13 | 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.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 | - | 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': 'Miguel Román', 'matchup_zone': 'Central Mid vs Central Mid — Box-to-Box Midfield Contest', 'duel_win_rate': 0.383, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9461, 'skill_edge': -0.0686, 'height_edge': 0.032, 'attacker_skill': 0.4374, 'defender_skill': 0.59, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Miguel Román', 'market_value': 14400000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.59}], 'xg_override': 0.0764} | aerialWon: 0.6252 -> 1.2 totalShots: 1.145 -> 1.0833 shotOffTarget: 0.8356 -> 0.7906 onTargetScoringAttempt: 0.3093 -> 0.2926 bigChanceMissed: 0.2317 -> 0.2192 expectedGoalsOnTarget: 0.226 -> 0.2138 | 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.22 (squad xG sum 1.1283, xG scale 1.0813, xA scale 1.1158, team xA 0.79 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.22
squad_xg_sum=1.1283
squad_xa_sum=0.7107
team_expected_assists=0.793
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0764 -> 0.0826 | 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: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0793
goal_rate=0.0739
scorer_weight=0.081 | - | 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.0376
assist_rate=0.0479
provider_weight=0.0445 | - |
|
| Enzo Bardeli | M | 73 | 0 | 0.08 | 0.02 | 265% | 1 | 0.3 | 6.7 | 46.5 | 10 | 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.9959, quality 0.472) | market_value_eur=5800000
quality_factor=0.472
boost_factor=0.9959
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': 'Yoel Lago', 'matchup_zone': 'RM vs CB', 'duel_win_rate': 0.352, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9006, 'skill_edge': -0.0156, 'height_edge': -0.052, 'attacker_skill': 0.4799, 'defender_skill': 0.5146, 'attacker_role': 'RM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Yoel Lago', 'market_value': 7000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5146}], 'xg_override': 0.0745} | aerialWon: 0.0 -> 0.8 totalShots: 0.8747 -> 0.7878 shotOffTarget: 0.6243 -> 0.5622 onTargetScoringAttempt: 0.2504 -> 0.2255 expectedGoals: 0.0827 -> 0.0745 goals: 0.0689 -> 0.0621 | 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.22 (squad xG sum 1.1283, xG scale 1.0813, xA scale 1.1158, team xA 0.79 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.22
squad_xg_sum=1.1283
squad_xa_sum=0.7107
team_expected_assists=0.793
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0745 -> 0.0806 expected_assists: 0.0951 -> 0.1061 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 73.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.0774
goal_rate=0.0621
scorer_weight=0.0726 | - | 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.1007
assist_rate=0.1185
provider_weight=0.1232 | - |
|
| Oriol Rey | M | 78 | 0 | 0.04 | 0.01 | 442% | 0 | 0.2 | 6.9 | 37.7 | 32 | 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.9971, quality 0.437) | market_value_eur=1700000
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': 'Miguel Román', 'matchup_zone': 'Central Mid vs Central Mid — Box-to-Box Midfield Contest', 'duel_win_rate': 0.339, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.8815, 'skill_edge': -0.0686, 'height_edge': -0.012, 'attacker_skill': 0.4374, 'defender_skill': 0.59, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Miguel Román', 'market_value': 14400000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.59}], 'xg_override': 0.0353} | totalShots: 0.5627 -> 0.496 aerialWon: 0.8459 -> 0.9 shotOffTarget: 0.4057 -> 0.3576 onTargetScoringAttempt: 0.1569 -> 0.1383 goals: 0.0544 -> 0.048 | 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.22 (squad xG sum 1.1283, xG scale 1.0813, xA scale 1.1158, team xA 0.79 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.22
squad_xg_sum=1.1283
squad_xa_sum=0.7107
team_expected_assists=0.793
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 73.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.0375
goal_rate=0.048
scorer_weight=0.0439 | - | 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.0397
assist_rate=0.0518
provider_weight=0.0478 | - |
|
| Roger Brugué | F | 75 | 1 | 0.31 | 0.33 | ok | 2 | 1.9 | 6.8 | 52.9 | 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 0.9970, quality 0.437) | market_value_eur=2800000
quality_factor=0.4374
boost_factor=0.997
reference_quality=0.505
history_matches=29
history_shrink=0.1471 | - | 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': 'Yoel Lago, Álvaro Núñez', '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.9273, 'skill_edge': -0.0235, 'height_edge': -0.026, 'attacker_skill': 0.4374, 'defender_skill': 0.4896, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Yoel Lago', 'market_value': 7000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5146}, {'player': 'Álvaro Núñez', 'market_value': 3900000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4646}], 'xg_override': 0.2865} | totalShots: 2.2304 -> 2.0682 shotOffTarget: 1.3327 -> 1.2358 onTargetScoringAttempt: 0.8977 -> 0.8324 expectedGoalsOnTarget: 0.353 -> 0.3273 goals: 0.3209 -> 0.2976 expectedGoals: 0.309 -> 0.2865 bigChanceMissed: 0.1675 -> 0.1553 | 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.22 (squad xG sum 1.1283, xG scale 1.0813, xA scale 1.1158, team xA 0.79 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.22
squad_xg_sum=1.1283
squad_xa_sum=0.7107
team_expected_assists=0.793
team_xa_to_xg_ratio=0.65 | expected_goals: 0.2865 -> 0.3098 expected_assists: 0.0546 -> 0.0609 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 88.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: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.2664
goal_rate=0.2976
scorer_weight=0.32 | - | 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.1049
provider_weight=0.0761 | - |
|
| Iván Romero | F | 73 | 0 | 0.26 | 0.23 | ok | 2 | 1.6 | 6.8 | 61.1 | 34 | 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.9996, quality 0.491) | market_value_eur=7400000
quality_factor=0.4915
boost_factor=0.9996
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': 'Yoel Lago, Álvaro Núñez', '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.9571, 'skill_edge': 0.0008, 'height_edge': -0.03, 'attacker_skill': 0.4915, 'defender_skill': 0.4896, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Yoel Lago', 'market_value': 7000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5146}, {'player': 'Álvaro Núñez', 'market_value': 3900000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4646}], 'xg_override': 0.2363} | totalShots: 1.9325 -> 1.8496 shotOffTarget: 1.1748 -> 1.1244 onTargetScoringAttempt: 0.7577 -> 0.7252 goals: 0.2916 -> 0.2791 expectedGoals: 0.2469 -> 0.2363 bigChanceMissed: 0.24 -> 0.2297 expectedGoalsOnTarget: 0.2253 -> 0.2156 | 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.22 (squad xG sum 1.1283, xG scale 1.0813, xA scale 1.1158, team xA 0.79 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.22
squad_xg_sum=1.1283
squad_xa_sum=0.7107
team_expected_assists=0.793
team_xa_to_xg_ratio=0.65 | expected_goals: 0.2363 -> 0.2555 expected_assists: 0.0624 -> 0.0696 | 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.2255
goal_rate=0.2791
scorer_weight=0.2937 | - | 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.0672
assist_rate=0.0028
provider_weight=0.0557 | - |
|
| Team totals | 1 | 1.22 | | 11 | | 6.8 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Pablo Cuñat | G | 4.4m | 10.9% | Market-value substitute prior |
| Axel Tape | D | 13.8m | 31.1% | Market-value substitute prior |
| Ifeanyi Ndukwe | D | 13.6m | 29.9% | Market-value substitute prior |
| Hugo Sotelo | M | 22.1m | 50.3% | Market-value substitute prior |
| Manel Usedo Domingo | M | 22.0m | 49.9% | Market-value substitute prior |
| Etta Eyong | F | 25.6m | 57.3% | Market-value substitute prior |
Antagonist / tactical summary
Midfield is evenly contested — Miguel Román vs Enzo Bardeli will be the pivotal duel. Total antagonist xG — Home: 0.87, Away: 0.79. Home danger zone: Shadow Striker vs Centre Back — Half-Space Threat. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Midfield — possession 50.8% / 49.2%, dominance ratio 0.54, key duel: Miguel Román vs Enzo Bardeli
Aleix Febas xG 0.04Miguel Román xG 0.06Ilaix Moriba xG 0.04Jon Ander Olasagasti xG 0.08Daniel Requena xG 0.08Oriol Rey xG 0.04
Summary
Antagonist matchup analysis for Celta vs Levante. Most likely scoreline: 2-1. Lambdas derived from 7 home and 6 away individual player duels. Head-to-head: Celta 4W-2D-4L vs Levante over 10 meetings.
3-4-3 creates structural superiority against 4-4-2. Home team should exploit wider spaces and numerical advantages in transition. Midfield is evenly contested — Miguel Román vs Enzo Bardeli will be the pivotal duel. Total antagonist xG — Home: 0.87, Away: 0.79. Home danger zone: Shadow Striker vs Centre Back — Half-Space Threat. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Crystal Palace vs Liverpool
Premier League · 20261108 · 3-4-2-1 vs 4-2-3-1
Predicted 1-1Winner: DrawWinning H 1-0 (8.3%)Winning A 0-1 (8.7%)Confidence 0.65λ home/away 1.36 / 1.42Most-likely P 12.1%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset TracingAntagonist + XGBoost match analysis for Crystal Palace vs Liverpool. Player statistics regressed using position-specific XGBoost models (G, D, M, F) with 2026-2027 FBref priors. Micro-duels resolved across 3-4-2-1 vs 4-2-3-1 (duel lambdas: Home 1.209, Away 1.646). Final calibrated Poisson lambdas: Home 1.359, Away 1.422 (most likely score 1-1).
Home Starters 11/11 XGBoost (11 FBref) Away Starters 11/11 XGBoost (0 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.21 / 1.65 Final λ (H/A) 1.36 / 1.42
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 | Crystal Palace | Liverpool |
|---|
| League position | 18.00 | 5.00 |
| Points per game | 1.01 | 1.65 |
| Attack index | 0.93 | 1.00 |
| Defense (concede) index | 0.89 | 1.37 |
| Form multiplier | 0.97 | 1.03 |
| Standing λ multiplier | 0.92 | 1.14 |
Lambda decomposition (how the goal rates were built)
| Stage | Crystal Palace λ | Liverpool λ |
|---|
| Pre-competitive-floor | 1.461 | 1.667 |
| Pre-calibration (Micro-duels) | 1.209 | 1.646 |
| Final λ | 1.359 | 1.422 |
competition calibration scale 0.889competition 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.7% |
| 1-2 | 8.5% |
| 1-0 | 8.3% |
| 2-1 | 8.1% |
| Home win | 35.8% |
| Draw | 25.6% |
| Away win | 38.6% |
| Over 2.5 | 52.6% |
| BTTS yes | 56.5% |
Pregame fair line — favorite Liverpool (38.6%), fair total 2.78, fair spread -0.06
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.
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 |
|---|
| Dean Henderson | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 6.8 | 56.6 | 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.0067, quality 0.710) | market_value_eur=29000000
quality_factor=0.71
boost_factor=1.0067
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=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': 'Alexander Isak, Dominik Szoboszlai', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.646} | - | 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.36 (squad xG sum 1.1097, xG scale 1.2247, xA scale 1.3679, team xA 0.88 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.359
squad_xg_sum=1.1097
squad_xa_sum=0.6458
team_expected_assists=0.8833
team_xa_to_xg_ratio=0.65 | shots_faced: 15.6 -> 13.5 expected_saves: 3.81 -> 3.3 high_pressure_saves: 1.32 -> 1.14 | 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
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.3646 | - | 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.8034 | - |
|
| Jaydee Canvot | D | 90 | 0 | 0.03 | 0.05 | 34% | 0 | 0.2 | 6.7 | 48.2 | 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.0103, quality 0.732) | market_value_eur=32000000
quality_factor=0.732
boost_factor=1.0103
reference_quality=0.505
history_matches=28
history_shrink=0.1515 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0131) | blend_weight=0.0131
history_matches=28
season_overlap_discount=1.0
per90_to_match_factor=0.9969
prior_reliability=0.1333
competition=Premier League | wonTackle: 1.069 -> 1.0811 fouls: 0.8068 -> 0.7962 interceptionWon: 1.2283 -> 1.2187 | 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': 'Dominik Szoboszlai', '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.36 (squad xG sum 1.1097, xG scale 1.2247, xA scale 1.3679, team xA 0.88 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.359
squad_xg_sum=1.1097
squad_xa_sum=0.6458
team_expected_assists=0.8833
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0252 -> 0.0309 expected_assists: 0.0203 -> 0.0278 | 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: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0304
goal_rate=0.0
scorer_weight=0.0247 | - | 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.0274
assist_rate=0.0
provider_weight=0.0222 | - |
|
| Chris Richards | D | 90 | 0 | 0.06 | 0.07 | ok | 1 | 0.5 | 6.8 | 54.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.0055, quality 0.677) | market_value_eur=25000000
quality_factor=0.6773
boost_factor=1.0055
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.9999
prior_reliability=0.1333
competition=Premier League | interceptionWon: 1.1996 -> 1.207 fouls: 0.5849 -> 0.5795 | 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': 'Alexander Isak', '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.36 (squad xG sum 1.1097, xG scale 1.2247, xA scale 1.3679, team xA 0.88 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.359
squad_xg_sum=1.1097
squad_xa_sum=0.6458
team_expected_assists=0.8833
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0526 -> 0.0644 expected_assists: 0.0162 -> 0.0222 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 80.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.0624
goal_rate=0.0055
scorer_weight=0.0515 | - | 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.022
assist_rate=0.0
provider_weight=0.0178 | - |
|
| Axel Disasi | D | 84 | 0 | 0.07 | 0.06 | 35% | 0 | 0.4 | 6.7 | 53.1 | 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.0050, quality 0.585) | market_value_eur=15500000
quality_factor=0.5846
boost_factor=1.005
reference_quality=0.505
history_matches=19
history_shrink=0.2083 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0018) | blend_weight=0.0018
history_matches=19
season_overlap_discount=1.0
per90_to_match_factor=0.9329
prior_reliability=0.0133
competition=Premier League | fouls: 0.7435 -> 0.7506 | 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': 'Alexander Isak', '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.36 (squad xG sum 1.1097, xG scale 1.2247, xA scale 1.3679, team xA 0.88 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.359
squad_xg_sum=1.1097
squad_xa_sum=0.6458
team_expected_assists=0.8833
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0612 -> 0.075 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 77.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.0723
goal_rate=0.0
scorer_weight=0.06 | - | 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.0098
assist_rate=0.0
provider_weight=0.0086 | - |
|
| Daichi Kamada | M | 85 | 0 | 0.08 | 0.07 | ok | 1 | 0.5 | 6.9 | 57.4 | 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.0007, quality 0.526) | market_value_eur=10300000
quality_factor=0.526
boost_factor=1.0007
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.9441
prior_reliability=0.1333
competition=Premier League | wonTackle: 1.2953 -> 1.316 totalCross: 0.699 -> 0.7113 interceptionWon: 0.3306 -> 0.3369 | 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': 'Miloš Kerkez', 'matchup_zone': 'Left Wingback vs Right Back — Overlapping Run', 'duel_win_rate': 0.302, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.8562, 'skill_edge': -0.1138, 'height_edge': 0.016, 'attacker_skill': 0.5761, 'defender_skill': 0.829, 'attacker_role': 'LWB', 'attacker_mv_price_index': 0.7, 'defender_adjusted_parts': [{'player': 'Miloš Kerkez', 'market_value': 36000000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.829}], 'xg_override': 0.0658} | aerialWon: 0.2922 -> 1.1 totalShots: 0.9386 -> 0.8036 shotOffTarget: 0.5749 -> 0.4922 onTargetScoringAttempt: 0.3637 -> 0.3114 bigChanceMissed: 0.0915 -> 0.0783 expectedGoalsOnTarget: 0.0898 -> 0.0769 goals: 0.0888 -> 0.076 expectedGoals: 0.0769 -> 0.0658 | 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.36 (squad xG sum 1.1097, xG scale 1.2247, xA scale 1.3679, team xA 0.88 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.359
squad_xg_sum=1.1097
squad_xa_sum=0.6458
team_expected_assists=0.8833
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0658 -> 0.0806 expected_assists: 0.0704 -> 0.0963 | 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.0774
goal_rate=0.076
scorer_weight=0.0877 | - | 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.0918
assist_rate=0.0825
provider_weight=0.106 | - |
|
| Adam Wharton | M | 88 | 0 | 0.06 | 0.03 | 135% | 1 | 0.7 | 6.9 | 58.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.0118, quality 0.881) | market_value_eur=79000000
quality_factor=0.8811
boost_factor=1.0118
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.9748
prior_reliability=0.1333
competition=Premier League | totalCross: 2.7116 -> 2.6915 wasFouled: 1.0977 -> 1.1054 interceptionWon: 1.1201 -> 1.1276 totalShots: 0.7797 -> 0.7727 fouls: 0.5997 -> 0.5943 | 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': 'Alexis Mac Allister', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.473, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 1.0342, 'skill_edge': -0.0007, 'height_edge': 0.024, 'attacker_skill': 0.8877, 'defender_skill': 0.8893, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Alexis Mac Allister', 'market_value': 77000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8893}], 'xg_override': 0.0502} | totalShots: 0.7777 -> 0.8043 shotOffTarget: 0.5654 -> 0.5847 aerialWon: 1.0851 -> 1.1 onTargetScoringAttempt: 0.2123 -> 0.2196 | 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.36 (squad xG sum 1.1097, xG scale 1.2247, xA scale 1.3679, team xA 0.88 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.359
squad_xg_sum=1.1097
squad_xa_sum=0.6458
team_expected_assists=0.8833
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0502 -> 0.0615 expected_assists: 0.1074 -> 0.1468 | 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: 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.0426
scorer_weight=0.0568 | - | 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.1365
assist_rate=0.0884
provider_weight=0.1291 | - |
|
| Tyrick Mitchell | M | 87 | 0 | 0.08 | 0.06 | 40% | 1 | 0.6 | 6.8 | 58.8 | 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=47
history_shrink=0.0962 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0083) | blend_weight=0.0083
history_matches=47
season_overlap_discount=1.0
per90_to_match_factor=0.9677
prior_reliability=0.1333
competition=Premier League | wonTackle: 1.9337 -> 1.9257 wasFouled: 0.7116 -> 0.7057 | 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': 'Conor Bradley', 'matchup_zone': 'Right Wingback vs Left Back — Overlapping Run', 'duel_win_rate': 0.376, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 0.9654, 'skill_edge': 0.0045, 'height_edge': -0.028, 'attacker_skill': 0.7379, 'defender_skill': 0.728, 'attacker_role': 'RWB', 'attacker_mv_price_index': 0.7, 'defender_adjusted_parts': [{'player': 'Conor Bradley', 'market_value': 22000000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.728}], 'xg_override': 0.0658} | aerialWon: 0.7792 -> 0.9 totalShots: 0.8957 -> 0.8647 shotOffTarget: 0.6754 -> 0.652 onTargetScoringAttempt: 0.2178 -> 0.2103 | 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.36 (squad xG sum 1.1097, xG scale 1.2247, xA scale 1.3679, team xA 0.88 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.359
squad_xg_sum=1.1097
squad_xa_sum=0.6458
team_expected_assists=0.8833
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0658 -> 0.0806 expected_assists: 0.0597 -> 0.0817 | 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: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0774
goal_rate=0.0572
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.0785
assist_rate=0.0678
provider_weight=0.0877 | - |
|
| Anan Khalaili | M | 88 | 0 | 0.10 | 0.08 | ok | 1 | 0.7 | 6.8 | 43.9 | 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.0175, quality 0.669) | market_value_eur=24000000
quality_factor=0.6685
boost_factor=1.0175
reference_quality=0.505
history_matches=9
history_shrink=0.3571 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0186) | blend_weight=0.0186
history_matches=9
season_overlap_discount=1.0
per90_to_match_factor=0.9793
prior_reliability=0.08
competition=Premier League | wonTackle: 1.5706 -> 1.6778 totalCross: 3.2523 -> 3.298 interceptionWon: 1.5339 -> 1.5509 wasFouled: 0.5003 -> 0.5062 fouls: 1.3334 -> 1.3389 onTargetScoringAttempt: 0.2956 -> 0.2901 | 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': 'Alexis Mac Allister', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.389, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9102, 'skill_edge': -0.0891, 'height_edge': 0.028, 'attacker_skill': 0.6914, 'defender_skill': 0.8893, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Alexis Mac Allister', 'market_value': 77000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8893}], 'xg_override': 0.0805} | aerialWon: 1.2411 -> 1.1 totalShots: 0.9885 -> 0.8997 shotOffTarget: 0.6964 -> 0.6339 onTargetScoringAttempt: 0.2901 -> 0.264 bigChanceMissed: 0.2169 -> 0.1974 goals: 0.1242 -> 0.113 expectedGoals: 0.0884 -> 0.0805 | 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.36 (squad xG sum 1.1097, xG scale 1.2247, xA scale 1.3679, team xA 0.88 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.359
squad_xg_sum=1.1097
squad_xa_sum=0.6458
team_expected_assists=0.8833
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0805 -> 0.0986 expected_assists: 0.0817 -> 0.1118 | 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.0939
goal_rate=0.113
scorer_weight=0.1232 | - | 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.1058
assist_rate=0.0673
provider_weight=0.0996 | - |
|
| Yéremy Pino | F | 70 | 0 | 0.14 | 0.08 | 89% | 1 | 0.9 | 6.9 | 54.4 | 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.0057, quality 0.694) | market_value_eur=27000000
quality_factor=0.6941
boost_factor=1.0057
reference_quality=0.505
history_matches=45
history_shrink=0.1 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0048) | blend_weight=0.0048
history_matches=45
season_overlap_discount=1.0
per90_to_match_factor=0.7821
prior_reliability=0.0733
competition=Premier League | totalCross: 2.6757 -> 2.6934 fouls: 0.5386 -> 0.5462 totalOffside: 0.2506 -> 0.2562 wasFouled: 1.0128 -> 1.0181 | 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': 'Alexis Mac Allister, Virgil van Dijk', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle', 'duel_win_rate': 0.185, 'pressing_faced': 'HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.8748, 'skill_edge': -0.0312, 'height_edge': -0.054, 'attacker_skill': 0.6941, 'defender_skill': 0.7634, 'attacker_role': 'SS', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Alexis Mac Allister', 'market_value': 77000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8893}, {'player': 'Virgil van Dijk', 'market_value': 15500000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6376}], 'xg_override': 0.1177} | totalShots: 1.2307 -> 1.0766 shotOffTarget: 0.7651 -> 0.6693 onTargetScoringAttempt: 0.4594 -> 0.4019 goals: 0.1825 -> 0.1597 expectedGoalsOnTarget: 0.1627 -> 0.1423 expectedGoals: 0.1345 -> 0.1177 bigChanceMissed: 0.0687 -> 0.0601 | 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.36 (squad xG sum 1.1097, xG scale 1.2247, xA scale 1.3679, team xA 0.88 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.359
squad_xg_sum=1.1097
squad_xa_sum=0.6458
team_expected_assists=0.8833
team_xa_to_xg_ratio=0.65 | expected_goals: 0.1177 -> 0.1441 expected_assists: 0.0874 -> 0.1196 | 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=0
goal_probability=0.1342
goal_rate=0.1597
scorer_weight=0.1801 | - | 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.1127
assist_rate=0.0042
provider_weight=0.0957 | - |
|
| Jørgen Strand Larsen | F | 73 | 1 | 0.41 | 0.13 | 208% | 2 | 1.2 | 6.7 | 54.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.0088, quality 0.786) | market_value_eur=41000000
quality_factor=0.7859
boost_factor=1.0088
reference_quality=0.505
history_matches=43
history_shrink=0.1042 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0045) | blend_weight=0.0045
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=0.8119
prior_reliability=0.0667
competition=Premier League | fouls: 1.0912 -> 1.0973 | 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': 'Virgil van Dijk, Jérémy Jacquet', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.21, 'pressing_faced': 'HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 1.0151, 'skill_edge': 0.0103, 'height_edge': 0.0, 'attacker_skill': 0.7859, 'defender_skill': 0.7631, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Virgil van Dijk', 'market_value': 15500000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6376}, {'player': 'Jérémy Jacquet', 'market_value': 67000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8886}], 'xg_override': 0.3325} | totalShots: 1.788 -> 1.815 shotOffTarget: 1.0725 -> 1.0887 onTargetScoringAttempt: 0.7155 -> 0.7263 | 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.36 (squad xG sum 1.1097, xG scale 1.2247, xA scale 1.3679, team xA 0.88 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.359
squad_xg_sum=1.1097
squad_xa_sum=0.6458
team_expected_assists=0.8833
team_xa_to_xg_ratio=0.65 | expected_goals: 0.3325 -> 0.4072 expected_assists: 0.0524 -> 0.0717 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 77.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.3345
goal_rate=0.2823
scorer_weight=0.3538 | - | 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.0692
assist_rate=0.0
provider_weight=0.0574 | - |
|
| Dwight McNeil | F | 74 | 0 | 0.16 | 0.03 | 376% | 1 | 0.6 | 6.7 | 32.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.0070, quality 0.660) | market_value_eur=23000000
quality_factor=0.6595
boost_factor=1.007
reference_quality=0.505
history_matches=28
history_shrink=0.1515 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0059) | blend_weight=0.0059
history_matches=28
season_overlap_discount=1.0
per90_to_match_factor=0.8173
prior_reliability=0.06
competition=Premier League | totalCross: 1.5333 -> 1.5242 wonTackle: 1.1651 -> 1.1582 | 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': 'Alexis Mac Allister, Virgil van Dijk', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle', 'duel_win_rate': 0.213, 'pressing_faced': 'HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.9165, 'skill_edge': -0.0468, 'height_edge': -0.01, 'attacker_skill': 0.6595, 'defender_skill': 0.7634, 'attacker_role': 'SS', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Alexis Mac Allister', 'market_value': 77000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8893}, {'player': 'Virgil van Dijk', 'market_value': 15500000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6376}], 'xg_override': 0.1339} | totalShots: 1.2442 -> 1.1403 shotOffTarget: 0.8498 -> 0.7788 onTargetScoringAttempt: 0.3943 -> 0.3614 goals: 0.1522 -> 0.1395 expectedGoals: 0.1461 -> 0.1339 | 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.36 (squad xG sum 1.1097, xG scale 1.2247, xA scale 1.3679, team xA 0.88 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.359
squad_xg_sum=1.1097
squad_xa_sum=0.6458
team_expected_assists=0.8833
team_xa_to_xg_ratio=0.65 | expected_goals: 0.1339 -> 0.164 expected_assists: 0.0776 -> 0.1061 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 15 by projected rating, fifa_overall 76.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.1513
goal_rate=0.1395
scorer_weight=0.169 | - | 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.1007
assist_rate=0.0165
provider_weight=0.0849 | - |
|
| Team totals | 1 | 1.36 | | 11 | | 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.1m | 22.8% | Market-value substitute prior |
| Quinten Timber | M | 22.9m | 54.0% | Market-value substitute prior |
| Óscar Mingueza | M | 18.9m | 70.4% | Market-value substitute prior |
| Ismaïla Sarr | F | 26.7m | 62.3% | Market-value substitute prior |
Liverpool — 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 |
|---|
| Giorgi Mamardashvili | G | 86 | 0 | 0.00 | - | n/a | | 0.0 | 7.0 | 11.2 | 31 | 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.0205, quality 0.710) | market_value_eur=29000000
quality_factor=0.71
boost_factor=1.0205
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': 'Jørgen Strand Larsen, Dwight McNeil', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.2087} | - | 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.4199, xG scale 1.0015, xA scale 1.1218, team xA 0.92 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.422
squad_xg_sum=1.4199
squad_xa_sum=0.8239
team_expected_assists=0.9243
team_xa_to_xg_ratio=0.65 | shots_faced: 11.5 -> 12.9 expected_saves: 2.82 -> 3.16 high_pressure_saves: 0.97 -> 1.09 | 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.0
scorer_weight=0.0
squad_weight_total=1.5473 | - | 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.8798 | - |
|
| Virgil van Dijk | D | 90 | 0 | 0.06 | 0.10 | 34% | 1 | 0.7 | 7.1 | 59.5 | 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 1.0023, quality 0.585) | market_value_eur=15500000
quality_factor=0.5846
boost_factor=1.0023
reference_quality=0.505
history_matches=46
history_shrink=0.098 | - | 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': 'Jørgen Strand Larsen', '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.4199, xG scale 1.0015, xA scale 1.1218, team xA 0.92 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.422
squad_xg_sum=1.4199
squad_xa_sum=0.8239
team_expected_assists=0.9243
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 88.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.0619
goal_rate=0.1149
scorer_weight=0.0799 | - | 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.0254
assist_rate=0.0
provider_weight=0.0206 | - |
|
| Jérémy Jacquet | D | 88 | 0 | 0.05 | 0.02 | 121% | 1 | 0.1 | 7.0 | 43.3 | 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 1.0417, quality 0.866) | market_value_eur=67000000
quality_factor=0.8661
boost_factor=1.0417
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': 'Jørgen Strand Larsen', '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.4199, xG scale 1.0015, xA scale 1.1218, team xA 0.92 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.422
squad_xg_sum=1.4199
squad_xa_sum=0.8239
team_expected_assists=0.9243
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 77.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.0465
goal_rate=0.0
scorer_weight=0.0381 | - | 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.0
provider_weight=0.0204 | - |
|
| Conor Bradley | D | 77 | 0 | 0.02 | 0.02 | ok | 1 | 0.4 | 6.8 | 24.6 | 8 | 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.0109, quality 0.650) | market_value_eur=22000000
quality_factor=0.6503
boost_factor=1.0109
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': '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.42 (squad xG sum 1.4199, xG scale 1.0015, xA scale 1.1218, team xA 0.92 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.422
squad_xg_sum=1.4199
squad_xa_sum=0.8239
team_expected_assists=0.9243
team_xa_to_xg_ratio=0.65 | expected_assists: 0.0769 -> 0.0863 | 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=0
goal_probability=0.024
goal_rate=0.0
scorer_weight=0.0194 | - | 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.0827
assist_rate=0.1502
provider_weight=0.1079 | - |
|
| Miloš Kerkez | D | 86 | 0 | 0.03 | 0.02 | 44% | 0 | 0.2 | 6.7 | 48.5 | 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 1.0081, quality 0.758) | market_value_eur=36000000
quality_factor=0.7581
boost_factor=1.0081
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': '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.42 (squad xG sum 1.4199, xG scale 1.0015, xA scale 1.1218, team xA 0.92 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.422
squad_xg_sum=1.4199
squad_xa_sum=0.8239
team_expected_assists=0.9243
team_xa_to_xg_ratio=0.65 | - | 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: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0263
goal_rate=0.0381
scorer_weight=0.0307 | - | 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.0199
assist_rate=0.0156
provider_weight=0.0194 | - |
|
| Dominik Szoboszlai | M | 80 | 0 | 0.19 | 0.14 | 34% | 2 | 1.8 | 7.1 | 60.0 | 30 | 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.0123, quality 0.890) | market_value_eur=91000000
quality_factor=0.8895
boost_factor=1.0123
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': 'Jaydee Canvot', 'matchup_zone': 'LW vs CB', 'duel_win_rate': 0.459, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 1.0573, 'skill_edge': 0.0429, 'height_edge': -0.004, 'attacker_skill': 0.8895, '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.1859} | aerialWon: 0.6485 -> 1.2 totalShots: 1.8512 -> 1.9573 shotOffTarget: 1.232 -> 1.3026 onTargetScoringAttempt: 0.6192 -> 0.6547 expectedGoalsOnTarget: 0.2487 -> 0.263 goals: 0.1883 -> 0.1991 expectedGoals: 0.1758 -> 0.1859 | 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.4199, xG scale 1.0015, xA scale 1.1218, team xA 0.92 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.422
squad_xg_sum=1.4199
squad_xa_sum=0.8239
team_expected_assists=0.9243
team_xa_to_xg_ratio=0.65 | expected_assists: 0.1899 -> 0.213 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 86.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.1699
goal_rate=0.1991
scorer_weight=0.1966 | - | 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.1918
assist_rate=0.1244
provider_weight=0.1704 | - |
|
| Florian Wirtz | M | 79 | 0 | 0.16 | 0.17 | ok | 2 | 1.5 | 7.0 | 54.8 | 30 | 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.0123, quality 0.883) | market_value_eur=81000000
quality_factor=0.8829
boost_factor=1.0123
reference_quality=0.505
history_matches=41
history_shrink=0.1087 | - | 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 Wharton', 'matchup_zone': 'CAM vs CM', 'duel_win_rate': 0.391, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9578, 'skill_edge': -0.0007, 'height_edge': -0.028, 'attacker_skill': 0.8861, 'defender_skill': 0.8877, 'attacker_role': 'CAM', 'attacker_mv_price_index': 0.95, 'defender_adjusted_parts': [{'player': 'Adam Wharton', 'market_value': 79000000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.8877}], 'xg_override': 0.1585} | aerialWon: 0.3131 -> 0.9 totalShots: 1.7368 -> 1.6635 shotOffTarget: 1.1296 -> 1.0819 onTargetScoringAttempt: 0.6071 -> 0.5815 expectedGoals: 0.1655 -> 0.1585 goals: 0.1634 -> 0.1565 | 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.4199, xG scale 1.0015, xA scale 1.1218, team xA 0.92 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.422
squad_xg_sum=1.4199
squad_xa_sum=0.8239
team_expected_assists=0.9243
team_xa_to_xg_ratio=0.65 | expected_assists: 0.1688 -> 0.1894 | 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: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1467
goal_rate=0.1565
scorer_weight=0.1572 | - | 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.1725
assist_rate=0.1493
provider_weight=0.1725 | - |
|
| Alexis Mac Allister | M | 88 | 0 | 0.14 | 0.08 | 65% | 2 | 1.2 | 7.1 | 56.4 | 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 1.0112, quality 0.879) | market_value_eur=77000000
quality_factor=0.8792
boost_factor=1.0112
reference_quality=0.505
history_matches=45
history_shrink=0.1 | - | 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': 'Yéremy Pino, Dwight McNeil, 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.42 (squad xG sum 1.4199, xG scale 1.0015, xA scale 1.1218, team xA 0.92 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.422
squad_xg_sum=1.4199
squad_xa_sum=0.8239
team_expected_assists=0.9243
team_xa_to_xg_ratio=0.65 | expected_assists: 0.1153 -> 0.1293 | 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: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1285
goal_rate=0.1418
scorer_weight=0.1408 | - | 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.1213
assist_rate=0.0876
provider_weight=0.1076 | - |
|
| Ryan Gravenberch | M | 79 | 0 | 0.07 | 0.03 | 102% | 1 | 0.8 | 6.9 | 56.2 | 33 | 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.0118, quality 0.883) | market_value_eur=81000000
quality_factor=0.8829
boost_factor=1.0118
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': 'Daichi Kamada', '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.42 (squad xG sum 1.4199, xG scale 1.0015, xA scale 1.1218, team xA 0.92 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.422
squad_xg_sum=1.4199
squad_xa_sum=0.8239
team_expected_assists=0.9243
team_xa_to_xg_ratio=0.65 | expected_assists: 0.0445 -> 0.0499 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 85.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.0659
goal_rate=0.0742
scorer_weight=0.0717 | - | 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.0757
provider_weight=0.0624 | - |
|
| Wataru Endo | M | 80 | 0 | 0.03 | 0.00 | 1355% | 0 | 0.1 | 6.8 | 11.4 | 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 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 | - | 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': 'Jaydee Canvot', 'matchup_zone': 'RW vs CB', 'duel_win_rate': 0.219, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.7053, 'skill_edge': -0.1605, 'height_edge': -0.04, 'attacker_skill': 0.4374, 'defender_skill': 0.7941, 'attacker_role': 'RW', '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.0312} | aerialWon: 1.2863 -> 1.0 totalShots: 0.6426 -> 0.4532 shotOffTarget: 0.491 -> 0.3463 onTargetScoringAttempt: 0.1516 -> 0.1069 goals: 0.0701 -> 0.0494 expectedGoals: 0.0442 -> 0.0312 | 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.4199, xG scale 1.0015, xA scale 1.1218, team xA 0.92 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.422
squad_xg_sum=1.4199
squad_xa_sum=0.8239
team_expected_assists=0.9243
team_xa_to_xg_ratio=0.65 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 78.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.0307
goal_rate=0.0494
scorer_weight=0.0382 | - | 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.0371
assist_rate=0.0604
provider_weight=0.0473 | - |
|
| Alexander Isak | F | 79 | 1 | 0.50 | 0.27 | 87% | 3 | 1.2 | 6.9 | 43.4 | 18 | 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.0222, quality 0.891) | market_value_eur=93000000
quality_factor=0.8905
boost_factor=1.0222
reference_quality=0.505
history_matches=21
history_shrink=0.1923 | - | 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.275, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 1.1107, 'skill_edge': 0.0553, 'height_edge': 0.02, 'attacker_skill': 0.8905, '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.4985} | totalShots: 2.7489 -> 3.0532 shotOffTarget: 1.622 -> 1.8016 onTargetScoringAttempt: 1.1269 -> 1.2516 expectedGoalsOnTarget: 0.6991 -> 0.7765 goals: 0.54 -> 0.5998 expectedGoals: 0.4488 -> 0.4985 bigChanceMissed: 0.3738 -> 0.4152 | 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.42 (squad xG sum 1.4199, xG scale 1.0015, xA scale 1.1218, team xA 0.92 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.422
squad_xg_sum=1.4199
squad_xa_sum=0.8239
team_expected_assists=0.9243
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 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: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.3931
goal_rate=0.5998
scorer_weight=0.5916 | - | 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.0426
assist_rate=0.0203
provider_weight=0.0348 | - |
|
| Team totals | 1 | 1.42 | | 15 | | 6.9 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Alisson | G | 5.0m | 13.7% | Market-value substitute prior |
| Jeremie Frimpong | D | 14.7m | 35.0% | Market-value substitute prior |
| Ronald Araújo | D | 14.6m | 34.5% | Market-value substitute prior |
| Trey Nyoni | M | 22.7m | 53.2% | Market-value substitute prior |
| James McConnell | M | 22.0m | 49.9% | Market-value substitute prior |
| Bradley Barcola | F | 27.1m | 64.1% | Market-value substitute prior |
Antagonist / tactical summary
Midfield is evenly contested — Adam Wharton vs Dominik Szoboszlai will be the pivotal duel. Total antagonist xG — Home: 0.85, Away: 0.87. 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.5% / 50.5%, dominance ratio 0.46, key duel: Adam Wharton vs Dominik Szoboszlai
Jørgen Strand Larsen xG 0.33Yéremy Pino xG 0.12Dwight McNeil xG 0.13Dominik Szoboszlai xG 0.19Florian Wirtz xG 0.16Wataru Endo xG 0.03
Summary
Antagonist matchup analysis for Crystal Palace vs Liverpool. Most likely scoreline: 1-1. Lambdas derived from 7 home and 4 away individual player duels. Head-to-head: Crystal Palace 4W-3D-3L vs Liverpool over 10 meetings.
Tactical parity between 3-4-2-1 and 4-2-3-1. Match outcome driven primarily by individual player quality. Midfield is evenly contested — Adam Wharton vs Dominik Szoboszlai will be the pivotal duel. Total antagonist xG — Home: 0.85, Away: 0.87. 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 Sociedad vs Rayo Vallecano
LaLiga · 20261108 · 4-4-2 vs 4-3-3
Predicted 2-1Winner: Real SociedadWinning H 2-1 (9.9%)Winning A 1-2 (5.5%)Confidence 0.7λ home/away 1.91 / 1.07Most-likely P 9.9%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset TracingAntagonist + XGBoost match analysis for Real Sociedad vs Rayo Vallecano. Player statistics regressed using position-specific XGBoost models (G, D, M, F) with 2026-2027 FBref priors. Micro-duels resolved across 4-4-2 vs 4-3-3 (duel lambdas: Home 1.874, Away 1.003). Final calibrated Poisson lambdas: Home 1.913, Away 1.071 (most likely score 2-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.87 / 1.00 Final λ (H/A) 1.91 / 1.07
FBref Team Priors: Real Sociedad (Gls/90: 0.75, GA/90: 0.75 → E[λ]: 0.739) vs Rayo Vallecano (Gls/90: 1.3333333333333333, GA/90: 1.33 → E[λ]: 0.741) | 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 Sociedad | Rayo Vallecano |
|---|
| League position | 5.00 | 11.00 |
| Points per game | 1.70 | 1.26 |
| Attack index | 1.12 | 1.00 |
| Defense (concede) index | 1.15 | 1.09 |
| Form multiplier | 1.02 | 0.97 |
| Standing λ multiplier | 1.11 | 1.03 |
Lambda decomposition (how the goal rates were built)
| Stage | Real Sociedad λ | Rayo Vallecano λ |
|---|
| FBref Squad Prior E[λ] (weight 0.228) | 0.739 | 0.741 |
| Pre-competitive-floor | 1.887 | 0.996 |
| Pre-calibration (Micro-duels) | 1.874 | 1.003 |
| Final λ | 1.913 | 1.071 |
competition calibration scale 1.035competition 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 | 10.4% |
| 2-1 | 9.9% |
| 1-0 | 9.6% |
| 2-0 | 9.3% |
| 3-1 | 6.3% |
| Home win | 56.9% |
| Draw | 22.2% |
| Away win | 20.8% |
| Over 2.5 | 57.3% |
| BTTS yes | 56.1% |
Pregame fair line — favorite Real Sociedad (56.9%), fair total 2.98, fair spread 0.84
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 Sociedad — 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 |
|---|
| Álex Remiro | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 7.1 | 62.2 | 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.0004, quality 0.518) | market_value_eur=9600000
quality_factor=0.5177
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.0170) | blend_weight=0.017
history_matches=46
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.2667
competition=La Liga | saves: 2.978 -> 2.9996 | 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.0034} | - | 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.91 (squad xG sum 1.3935, xG scale 1.3728, xA scale 1.7141, team xA 1.24 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.913
squad_xg_sum=1.3935
squad_xa_sum=0.7254
team_expected_assists=1.2435
team_xa_to_xg_ratio=0.65 | shots_faced: 9.5 -> 10.2 expected_saves: 2.32 -> 2.5 high_pressure_saves: 0.8 -> 0.86 | 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.0
scorer_weight=0.0
squad_weight_total=2.1341 | - | 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.2255 | - |
|
| Jon Martin | D | 90 | 0 | 0.10 | 0.06 | 68% | 1 | 0.4 | 7.0 | 53.2 | 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.669) | market_value_eur=24000000
quality_factor=0.6685
boost_factor=1.0063
reference_quality=0.505
history_matches=34
history_shrink=0.1282 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0222) | blend_weight=0.0222
history_matches=34
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.2667
competition=La Liga | interceptionWon: 1.2874 -> 1.2643 wonTackle: 0.8433 -> 0.8579 fouls: 1.411 -> 1.4019 | 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 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.91 (squad xG sum 1.3935, xG scale 1.3728, xA scale 1.7141, team xA 1.24 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.913
squad_xg_sum=1.3935
squad_xa_sum=0.7254
team_expected_assists=1.2435
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0734 -> 0.1008 expected_assists: 0.0088 -> 0.0151 | 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: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0959
goal_rate=0.1736
scorer_weight=0.126 | - | 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.015
assist_rate=0.126
provider_weight=0.0189 | - |
|
| Sergio Gómez | D | 86 | 0 | 0.02 | 0.02 | ok | 1 | 0.4 | 6.8 | 59.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.0021, quality 0.575) | market_value_eur=14600000
quality_factor=0.5748
boost_factor=1.0021
reference_quality=0.505
history_matches=45
history_shrink=0.1 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0165) | blend_weight=0.0165
history_matches=45
season_overlap_discount=1.0
per90_to_match_factor=0.9584
prior_reliability=0.2533
competition=La Liga | totalCross: 4.2214 -> 4.2474 wasFouled: 0.339 -> 0.3334 fouls: 0.4172 -> 0.4228 | 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': '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 1.91 (squad xG sum 1.3935, xG scale 1.3728, xA scale 1.7141, team xA 1.24 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.913
squad_xg_sum=1.3935
squad_xa_sum=0.7254
team_expected_assists=1.2435
team_xa_to_xg_ratio=0.65 | expected_assists: 0.1029 -> 0.1764 | 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: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
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.1617
assist_rate=0.116
provider_weight=0.1915 | - |
|
| Jon Aramburu | D | 86 | 0 | 0.02 | 0.04 | 47% | 1 | 0.4 | 6.7 | 59.9 | 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.0019, quality 0.567) | market_value_eur=13900000
quality_factor=0.5671
boost_factor=1.0019
reference_quality=0.505
history_matches=43
history_shrink=0.1042 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0163) | blend_weight=0.0163
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=0.9573
prior_reliability=0.24
competition=La Liga | fouls: 2.793 -> 2.8254 interceptionWon: 1.2068 -> 1.239 wonTackle: 1.6201 -> 1.6283 wasFouled: 1.6968 -> 1.7038 | 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': '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.91 (squad xG sum 1.3935, xG scale 1.3728, xA scale 1.7141, team xA 1.24 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.913
squad_xg_sum=1.3935
squad_xa_sum=0.7254
team_expected_assists=1.2435
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0143 -> 0.0196 expected_assists: 0.0243 -> 0.0417 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 77.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.0194
goal_rate=0.0045
scorer_weight=0.0166 | - | 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.0408
assist_rate=0.0
provider_weight=0.0334 | - |
|
| Mamadou Sarr | D | 87 | 0 | 0.09 | 0.03 | 269% | 0 | 0.1 | 6.8 | 25.1 | 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 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 | - | 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 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.91 (squad xG sum 1.3935, xG scale 1.3728, xA scale 1.7141, team xA 1.24 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.913
squad_xg_sum=1.3935
squad_xa_sum=0.7254
team_expected_assists=1.2435
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0688 -> 0.0945 expected_assists: 0.008 -> 0.0137 | 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: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0902
goal_rate=0.0
scorer_weight=0.0756 | - | 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.0136
assist_rate=0.0
provider_weight=0.0118 | - |
|
| Luka Sučić | M | 81 | 0 | 0.24 | 0.09 | 156% | 2 | 1.2 | 6.9 | 55.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.0037, quality 0.593) | market_value_eur=16300000
quality_factor=0.5932
boost_factor=1.0037
reference_quality=0.505
history_matches=31
history_shrink=0.1389 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0187) | blend_weight=0.0187
history_matches=31
season_overlap_discount=1.0
per90_to_match_factor=0.9029
prior_reliability=0.2067
competition=La Liga | totalCross: 1.0135 -> 1.0272 interceptionWon: 0.6075 -> 0.5962 totalShots: 1.671 -> 1.6774 | 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 Mid vs Right Back — Wide Channel', 'duel_win_rate': 0.57, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.1614, 'skill_edge': 0.0738, 'height_edge': 0.036, 'attacker_skill': 0.6121, 'defender_skill': 0.4481, 'attacker_role': 'LM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Adrià Pedrosa', 'market_value': 2700000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.4481}], 'xg_override': 0.1715} | aerialWon: 0.4427 -> 1.2 totalShots: 1.6774 -> 1.9481 shotOffTarget: 1.1072 -> 1.2859 onTargetScoringAttempt: 0.5641 -> 0.6551 expectedGoalsOnTarget: 0.2826 -> 0.3282 bigChanceMissed: 0.1874 -> 0.2176 goals: 0.1523 -> 0.1769 expectedGoals: 0.1477 -> 0.1715 | 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.91 (squad xG sum 1.3935, xG scale 1.3728, xA scale 1.7141, team xA 1.24 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.913
squad_xg_sum=1.3935
squad_xa_sum=0.7254
team_expected_assists=1.2435
team_xa_to_xg_ratio=0.65 | expected_goals: 0.1715 -> 0.2354 expected_assists: 0.1243 -> 0.2131 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 76.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.2097
goal_rate=0.1769
scorer_weight=0.2411 | - | 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.1919
assist_rate=0.1376
provider_weight=0.2294 | - |
|
| Carlos Soler | M | 84 | 0 | 0.15 | 0.09 | 78% | 1 | 0.8 | 7.1 | 59.6 | 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.9993, quality 0.482) | market_value_eur=6600000
quality_factor=0.4818
boost_factor=0.9993
reference_quality=0.505
history_matches=42
history_shrink=0.1064 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0106) | blend_weight=0.0106
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.9369
prior_reliability=0.1533
competition=La Liga | totalShots: 1.4607 -> 1.4495 wonTackle: 0.2835 -> 0.2934 | 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': 'Andrei Rațiu', 'matchup_zone': 'Right Mid vs Left Back — Wide Channel', 'duel_win_rate': 0.341, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 0.8254, 'skill_edge': -0.1068, 'height_edge': -0.012, 'attacker_skill': 0.4907, 'defender_skill': 0.728, 'attacker_role': 'RM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Andrei Rațiu', 'market_value': 22000000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.728}], 'xg_override': 0.1109} | aerialWon: 0.1221 -> 1.1 totalShots: 1.456 -> 1.2018 shotOffTarget: 1.0179 -> 0.8402 onTargetScoringAttempt: 0.4381 -> 0.3616 expectedGoalsOnTarget: 0.1844 -> 0.1522 goals: 0.1438 -> 0.1187 expectedGoals: 0.1343 -> 0.1109 bigChanceMissed: 0.0728 -> 0.0601 | 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.91 (squad xG sum 1.3935, xG scale 1.3728, xA scale 1.7141, team xA 1.24 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.913
squad_xg_sum=1.3935
squad_xa_sum=0.7254
team_expected_assists=1.2435
team_xa_to_xg_ratio=0.65 | expected_goals: 0.1109 -> 0.1522 expected_assists: 0.1665 -> 0.2853 | 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.1412
goal_rate=0.1187
scorer_weight=0.1596 | - | 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.2482
assist_rate=0.1262
provider_weight=0.2322 | - |
|
| Beñat Turrientes | M | 78 | 0 | 0.12 | 0.03 | 355% | 1 | 0.6 | 6.9 | 49.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 1.0010, quality 0.529) | market_value_eur=10600000
quality_factor=0.5295
boost_factor=1.001
reference_quality=0.505
history_matches=32
history_shrink=0.1351 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0170) | blend_weight=0.017
history_matches=32
season_overlap_discount=1.0
per90_to_match_factor=0.8618
prior_reliability=0.1933
competition=La Liga | fouls: 0.6634 -> 0.6521 wasFouled: 0.9162 -> 0.9057 onTargetScoringAttempt: 0.3734 -> 0.3824 interceptionWon: 0.435 -> 0.4276 wonTackle: 0.8128 -> 0.8192 | 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': 'Pathé Ismaël Ciss, Unai López', 'matchup_zone': 'CM vs CDM + CM', 'duel_win_rate': 0.36, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.0875, 'skill_edge': 0.0476, 'height_edge': 0.012, 'attacker_skill': 0.5431, 'defender_skill': 0.4374, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Pathé Ismaël Ciss', 'market_value': 1600000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4374}, {'player': 'Unai López', 'market_value': 2600000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.4374}], 'xg_override': 0.0838} | aerialWon: 0.2815 -> 1.0 totalShots: 1.0695 -> 1.1631 shotOffTarget: 0.6871 -> 0.7472 onTargetScoringAttempt: 0.3824 -> 0.4159 expectedGoalsOnTarget: 0.1996 -> 0.2171 goals: 0.0873 -> 0.0949 expectedGoals: 0.0771 -> 0.0838 | 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.91 (squad xG sum 1.3935, xG scale 1.3728, xA scale 1.7141, team xA 1.24 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.913
squad_xg_sum=1.3935
squad_xa_sum=0.7254
team_expected_assists=1.2435
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0838 -> 0.115 expected_assists: 0.0756 -> 0.1296 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 81.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: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.1086
goal_rate=0.0949
scorer_weight=0.1245 | - | 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.1216
assist_rate=0.0667
provider_weight=0.1204 | - |
|
| Jon Gorrotxategi | M | 78 | 0 | 0.05 | 0.01 | 705% | 1 | 0.1 | 6.9 | 50.0 | 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.0068, quality 0.694) | market_value_eur=27000000
quality_factor=0.6941
boost_factor=1.0068
reference_quality=0.505
history_matches=37
history_shrink=0.119 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0015) | blend_weight=0.0015
history_matches=37
season_overlap_discount=1.0
per90_to_match_factor=0.8701
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': 'Pathé Ismaël Ciss, Unai López', 'matchup_zone': 'CM vs CDM + CM', 'duel_win_rate': 0.43, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.1912, 'skill_edge': 0.1261, 'height_edge': 0.004, 'attacker_skill': 0.7176, 'defender_skill': 0.4374, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Pathé Ismaël Ciss', 'market_value': 1600000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4374}, {'player': 'Unai López', 'market_value': 2600000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.4374}], 'xg_override': 0.0385} | totalShots: 0.4635 -> 0.5521 shotOffTarget: 0.3515 -> 0.4187 onTargetScoringAttempt: 0.112 -> 0.1334 aerialWon: 0.9891 -> 1.0 goals: 0.0451 -> 0.0537 expectedGoals: 0.0323 -> 0.0385 | 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.91 (squad xG sum 1.3935, xG scale 1.3728, xA scale 1.7141, team xA 1.24 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.913
squad_xg_sum=1.3935
squad_xa_sum=0.7254
team_expected_assists=1.2435
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0385 -> 0.0529 expected_assists: 0.0361 -> 0.0619 | 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_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.0515
goal_rate=0.0537
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.06
assist_rate=0.0453
provider_weight=0.0685 | - |
|
| Mikel Oyarzabal | F | 82 | 1 | 0.44 | 0.32 | 38% | 3 | 1.6 | 7.1 | 62.8 | 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.0133) | blend_weight=0.0133
history_matches=44
season_overlap_discount=1.0
per90_to_match_factor=0.9091
prior_reliability=0.2
competition=La Liga | wasFouled: 1.2792 -> 1.2904 wonTackle: 0.7353 -> 0.7255 goalAssist: 0.119 -> 0.1255 goals: 0.4055 -> 0.4001 | 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, Mujaid Sadick', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.28, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.1183, 'skill_edge': 0.1065, 'height_edge': -0.026, 'attacker_skill': 0.6941, '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.3206} | totalShots: 2.2955 -> 2.5671 shotOffTarget: 1.3968 -> 1.562 onTargetScoringAttempt: 0.8987 -> 1.005 bigChanceMissed: 0.4844 -> 0.5417 goals: 0.4001 -> 0.4474 expectedGoals: 0.2867 -> 0.3206 expectedGoalsOnTarget: 0.2834 -> 0.3169 | 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.91 (squad xG sum 1.3935, xG scale 1.3728, xA scale 1.7141, team xA 1.24 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.913
squad_xg_sum=1.3935
squad_xa_sum=0.7254
team_expected_assists=1.2435
team_xa_to_xg_ratio=0.65 | expected_goals: 0.3206 -> 0.4401 expected_assists: 0.1132 -> 0.194 | 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_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.356
goal_rate=0.4474
scorer_weight=0.5501 | - | 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.1763
assist_rate=0.1255
provider_weight=0.2086 | - |
|
| Orri Óskarsson | F | 79 | 1 | 0.63 | 0.33 | 90% | 3 | 1.5 | 6.8 | 54.7 | 30 | 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.0062, quality 0.641) | market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.0062
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=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.276, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.1124, 'skill_edge': 0.0824, 'height_edge': -0.006, 'attacker_skill': 0.6408, '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.4588} | totalShots: 2.4492 -> 2.7245 shotOffTarget: 1.3664 -> 1.52 bigChanceMissed: 1.1294 -> 1.2563 onTargetScoringAttempt: 1.0828 -> 1.2045 expectedGoalsOnTarget: 0.7421 -> 0.8255 goals: 0.4678 -> 0.5204 expectedGoals: 0.4124 -> 0.4588 | 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 1.91 (squad xG sum 1.3935, xG scale 1.3728, xA scale 1.7141, team xA 1.24 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.913
squad_xg_sum=1.3935
squad_xa_sum=0.7254
team_expected_assists=1.2435
team_xa_to_xg_ratio=0.65 | expected_goals: 0.4588 -> 0.6299 expected_assists: 0.0323 -> 0.0554 | 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: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=1
goal_probability=0.4674
goal_rate=0.5204
scorer_weight=0.7062 | - | 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.0539
assist_rate=0.0
provider_weight=0.0443 | - |
|
| Team totals | 2 | 1.91 | | 14 | | 6.9 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Unai Marrero | G | 4.4m | 10.9% | Market-value substitute prior |
| Héctor Fort | D | 14.1m | 32.3% | Market-value substitute prior |
| Igor Zubeldia | D | 24.9m | 31.6% | Market-value substitute prior |
| Pablo Marín | M | 22.2m | 50.8% | Market-value substitute prior |
| Arsen Zakharyan | M | 12.2m | 69.6% | Market-value substitute prior |
| Takefusa Kubo | F | 18.9m | 44.7% | Market-value substitute prior |
Rayo Vallecano — 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 |
|---|
| Augusto Batalla | G | 86 | 0 | 0.00 | - | n/a | | 0.0 | 6.9 | 54.2 | 24 | 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.9988, quality 0.472) | market_value_eur=5800000
quality_factor=0.472
boost_factor=0.9988
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.9524
prior_reliability=0.1133
competition=La Liga | saves: 2.851 -> 2.8405 | 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': 'Orri Óskarsson, Mikel Oyarzabal', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.8736} | - | 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.07 (squad xG sum 1.2060, xG scale 0.8881, xA scale 0.8881, team xA 0.75 = 0.70 x lambda) | scoreline_reset=true
team_lambda=1.071
squad_xg_sum=1.206
squad_xa_sum=0.8443
team_expected_assists=0.7498
team_xa_to_xg_ratio=0.7001 | shots_faced: 17.8 -> 18.2 expected_saves: 4.36 -> 4.46 high_pressure_saves: 1.5 -> 1.53 | 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: 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.1385 | - | 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.7951 | - |
|
| Florian Lejeune | D | 90 | 0 | 0.06 | 0.06 | ok | 1 | 1.4 | 7.0 | 61.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.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=1.0
prior_reliability=0.2
competition=La Liga | interceptionWon: 1.2522 -> 1.2702 wonTackle: 0.9032 -> 0.9172 totalShots: 1.1275 -> 1.1344 fouls: 1.4091 -> 1.4039 wasFouled: 1.0765 -> 1.0713 | 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': 'Mikel Oyarzabal', '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.07 (squad xG sum 1.2060, xG scale 0.8881, xA scale 0.8881, team xA 0.75 = 0.70 x lambda) | scoreline_reset=true
team_lambda=1.071
squad_xg_sum=1.206
squad_xa_sum=0.8443
team_expected_assists=0.7498
team_xa_to_xg_ratio=0.7001 | expected_goals: 0.063 -> 0.0559 | 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.0544
goal_rate=0.04
scorer_weight=0.0447 | - | 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.0136
assist_rate=0.008
provider_weight=0.0122 | - |
|
| Andrei Rațiu | D | 90 | 0 | 0.07 | 0.05 | ok | 1 | 0.8 | 6.9 | 60.2 | 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.0046, quality 0.650) | market_value_eur=22000000
quality_factor=0.6503
boost_factor=1.0046
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.9968
prior_reliability=0.1333
competition=La Liga | fouls: 0.5562 -> 0.5511 | 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 Soler', 'matchup_zone': 'Right Mid vs Left Back — Wide Channel'} | - | 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.07 (squad xG sum 1.2060, xG scale 0.8881, xA scale 0.8881, team xA 0.75 = 0.70 x lambda) | scoreline_reset=true
team_lambda=1.071
squad_xg_sum=1.206
squad_xa_sum=0.8443
team_expected_assists=0.7498
team_xa_to_xg_ratio=0.7001 | expected_goals: 0.0736 -> 0.0654 expected_assists: 0.0832 -> 0.0739 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 80.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.0633
goal_rate=0.0789
scorer_weight=0.0682 | - | 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.0712
assist_rate=0.2162
provider_weight=0.0924 | - |
|
| Adrià Pedrosa | D | 79 | 0 | 0.03 | 0.01 | 77% | 1 | 0.4 | 6.7 | 46.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 0.9975, quality 0.437) | market_value_eur=2700000
quality_factor=0.4374
boost_factor=0.9975
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.8797
prior_reliability=0.0467
competition=La Liga | fouls: 1.09 -> 1.0954 | 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 Sučić', 'matchup_zone': 'Left Mid vs Right Back — Wide Channel'} | - | 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.07 (squad xG sum 1.2060, xG scale 0.8881, xA scale 0.8881, team xA 0.75 = 0.70 x lambda) | scoreline_reset=true
team_lambda=1.071
squad_xg_sum=1.206
squad_xa_sum=0.8443
team_expected_assists=0.7498
team_xa_to_xg_ratio=0.7001 | expected_assists: 0.1159 -> 0.1029 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 16 by projected rating, fifa_overall 74.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.026
goal_rate=0.0853
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.0978
assist_rate=0.1002
provider_weight=0.0932 | - |
|
| Mujaid Sadick | D | 87 | 0 | 0.02 | 0.01 | 101% | 0 | 0.1 | 6.8 | 40.3 | 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.9937, quality 0.458) | market_value_eur=4700000
quality_factor=0.4585
boost_factor=0.9937
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': 'Mikel Oyarzabal', '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.07 (squad xG sum 1.2060, xG scale 0.8881, xA scale 0.8881, team xA 0.75 = 0.70 x lambda) | scoreline_reset=true
team_lambda=1.071
squad_xg_sum=1.206
squad_xa_sum=0.8443
team_expected_assists=0.7498
team_xa_to_xg_ratio=0.7001 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 84.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.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.0042
assist_rate=0.0
provider_weight=0.0038 | - |
|
| Unai López | M | 81 | 0 | 0.06 | 0.03 | 108% | 1 | 0.6 | 7.2 | 53.4 | 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=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.9012
prior_reliability=0.18
competition=La Liga | totalShots: 1.1845 -> 1.1729 fouls: 0.955 -> 0.9647 | 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': 'Beñat Turrientes', 'matchup_zone': 'Central Mid vs Central Mid — Box-to-Box Midfield Contest', 'duel_win_rate': 0.332, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.8713, 'skill_edge': -0.0476, 'height_edge': -0.04, 'attacker_skill': 0.4374, 'defender_skill': 0.5431, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Beñat Turrientes', 'market_value': 10600000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.5431}], 'xg_override': 0.0637} | aerialWon: 0.5488 -> 0.8 totalShots: 1.1846 -> 1.0322 shotOffTarget: 0.861 -> 0.7502 onTargetScoringAttempt: 0.3236 -> 0.282 goals: 0.102 -> 0.0889 expectedGoalsOnTarget: 0.0893 -> 0.0778 expectedGoals: 0.0731 -> 0.0637 | 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.07 (squad xG sum 1.2060, xG scale 0.8881, xA scale 0.8881, team xA 0.75 = 0.70 x lambda) | scoreline_reset=true
team_lambda=1.071
squad_xg_sum=1.206
squad_xa_sum=0.8443
team_expected_assists=0.7498
team_xa_to_xg_ratio=0.7001 | expected_goals: 0.0637 -> 0.0566 expected_assists: 0.151 -> 0.134 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 76.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.055
goal_rate=0.0889
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.1254
assist_rate=0.0986
provider_weight=0.1072 | - |
|
| Pathé Ismaël Ciss | M | 90 | 0 | 0.06 | 0.10 | 47% | 1 | 0.5 | 6.9 | 62.2 | 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 0.9976, quality 0.437) | market_value_eur=1600000
quality_factor=0.4374
boost_factor=0.9976
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=true | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Beñat Turrientes', 'matchup_zone': 'Holding Mid vs Central Mid — Midfield Anchor Duel', 'duel_win_rate': 0.368, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9536, 'skill_edge': -0.0476, 'height_edge': 0.016, 'attacker_skill': 0.4374, 'defender_skill': 0.5431, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Beñat Turrientes', 'market_value': 10600000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.5431}], 'xg_override': 0.0627} | aerialWon: 1.4438 -> 1.1 totalShots: 0.6737 -> 0.6425 shotOffTarget: 0.5027 -> 0.4794 bigChanceMissed: 0.2374 -> 0.2264 onTargetScoringAttempt: 0.171 -> 0.1631 | 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.07 (squad xG sum 1.2060, xG scale 0.8881, xA scale 0.8881, team xA 0.75 = 0.70 x lambda) | scoreline_reset=true
team_lambda=1.071
squad_xg_sum=1.206
squad_xa_sum=0.8443
team_expected_assists=0.7498
team_xa_to_xg_ratio=0.7001 | expected_goals: 0.0627 -> 0.0557 | 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.0542
goal_rate=0.0691
scorer_weight=0.0589 | - | 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.0288
assist_rate=0.0608
provider_weight=0.0365 | - |
|
| Pedro Díaz | M | 80 | 0 | 0.11 | 0.06 | 85% | 2 | 1.4 | 6.9 | 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 0.9979, quality 0.437) | market_value_eur=2900000
quality_factor=0.4374
boost_factor=0.9979
reference_quality=0.505
history_matches=43
history_shrink=0.1042 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0023) | blend_weight=0.0023
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=0.8847
prior_reliability=0.0333
competition=La Liga | totalCross: 0.9842 -> 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': 'Beñat Turrientes', 'matchup_zone': 'Central Mid vs Central Mid — Box-to-Box Midfield Contest', 'duel_win_rate': 0.378, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9378, 'skill_edge': -0.0463, 'height_edge': 0.004, 'attacker_skill': 0.4402, 'defender_skill': 0.5431, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Beñat Turrientes', 'market_value': 10600000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.5431}], 'xg_override': 0.1245} | aerialWon: 0.11 -> 1.1 totalShots: 1.9991 -> 1.8748 shotOffTarget: 1.3477 -> 1.2639 onTargetScoringAttempt: 0.6514 -> 0.6109 goals: 0.1398 -> 0.1311 expectedGoals: 0.1328 -> 0.1245 | 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.07 (squad xG sum 1.2060, xG scale 0.8881, xA scale 0.8881, team xA 0.75 = 0.70 x lambda) | scoreline_reset=true
team_lambda=1.071
squad_xg_sum=1.206
squad_xa_sum=0.8443
team_expected_assists=0.7498
team_xa_to_xg_ratio=0.7001 | expected_goals: 0.1245 -> 0.1106 expected_assists: 0.1153 -> 0.1024 | 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.1047
goal_rate=0.1311
scorer_weight=0.1148 | - | 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.0973
assist_rate=0.1085
provider_weight=0.0982 | - |
|
| Sergio Camello | F | 70 | 1 | 0.22 | 0.18 | ok | 2 | 1.5 | 7.2 | 49.2 | 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.0011, quality 0.533) | market_value_eur=10900000
quality_factor=0.533
boost_factor=1.0011
reference_quality=0.505
history_matches=32
history_shrink=0.1351 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0123) | blend_weight=0.0123
history_matches=32
season_overlap_discount=1.0
per90_to_match_factor=0.7779
prior_reliability=0.14
competition=La Liga | wasFouled: 1.2804 -> 1.292 goals: 0.3215 -> 0.3312 totalCross: 0.1353 -> 0.1427 onTargetScoringAttempt: 0.9342 -> 0.9407 | 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': 'Jon Martin, Mamadou Sarr', '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.7948, 'skill_edge': -0.0896, 'height_edge': -0.05, 'attacker_skill': 0.533, 'defender_skill': 0.732, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Jon Martin', 'market_value': 24000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.732}, {'player': 'Mamadou Sarr', 'market_value': 24000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.732}], 'xg_override': 0.2498} | totalShots: 2.2732 -> 1.8068 shotOffTarget: 1.3325 -> 1.0591 onTargetScoringAttempt: 0.9407 -> 0.7477 expectedGoalsOnTarget: 0.375 -> 0.298 bigChanceMissed: 0.3646 -> 0.2898 goals: 0.3312 -> 0.2632 expectedGoals: 0.3143 -> 0.2498 | 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.07 (squad xG sum 1.2060, xG scale 0.8881, xA scale 0.8881, team xA 0.75 = 0.70 x lambda) | scoreline_reset=true
team_lambda=1.071
squad_xg_sum=1.206
squad_xa_sum=0.8443
team_expected_assists=0.7498
team_xa_to_xg_ratio=0.7001 | expected_goals: 0.2498 -> 0.2219 expected_assists: 0.1251 -> 0.1111 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 74.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=1
goal_probability=0.199
goal_rate=0.2632
scorer_weight=0.2318 | - | 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.1052
assist_rate=0.218
provider_weight=0.1389 | - |
|
| Jorge de Frutos | F | 72 | 0 | 0.16 | 0.20 | ok | 2 | 1.2 | 6.8 | 62.5 | 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=44
history_shrink=0.102 | - | 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 Gómez', 'matchup_zone': 'Right Wing vs Left Back — Flank Battle', 'duel_win_rate': 0.44, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9414, 'skill_edge': -0.0479, 'height_edge': 0.008, 'attacker_skill': 0.533, 'defender_skill': 0.6394, 'attacker_role': 'RW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Sergio Gómez', 'market_value': 14600000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.6394}], 'xg_override': 0.1812} | totalShots: 1.5184 -> 1.4294 shotOffTarget: 0.8093 -> 0.7619 onTargetScoringAttempt: 0.7091 -> 0.6675 expectedGoalsOnTarget: 0.3493 -> 0.3288 goals: 0.2819 -> 0.2654 expectedGoals: 0.1925 -> 0.1812 bigChanceMissed: 0.088 -> 0.0828 | 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.07 (squad xG sum 1.2060, xG scale 0.8881, xA scale 0.8881, team xA 0.75 = 0.70 x lambda) | scoreline_reset=true
team_lambda=1.071
squad_xg_sum=1.206
squad_xa_sum=0.8443
team_expected_assists=0.7498
team_xa_to_xg_ratio=0.7001 | expected_goals: 0.1812 -> 0.1609 expected_assists: 0.0565 -> 0.0502 | 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_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.1486
goal_rate=0.2654
scorer_weight=0.2011 | - | 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.1657
provider_weight=0.0628 | - |
|
| Álvaro García | F | 77 | 0 | 0.18 | 0.16 | ok | 1 | 1.0 | 6.9 | 55.2 | 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=42
history_shrink=0.1064 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0101) | blend_weight=0.0101
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.8508
prior_reliability=0.1467
competition=La Liga | totalCross: 3.5776 -> 3.5648 totalShots: 1.6597 -> 1.6508 fouls: 0.4655 -> 0.4725 | 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': 'Jon Aramburu', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.362, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.8258, 'skill_edge': -0.0865, 'height_edge': -0.032, 'attacker_skill': 0.4374, 'defender_skill': 0.6297, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Jon Aramburu', 'market_value': 13900000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.6297}], 'xg_override': 0.2028} | totalShots: 1.6581 -> 1.3693 shotOffTarget: 1.1059 -> 0.9133 onTargetScoringAttempt: 0.5522 -> 0.456 goals: 0.252 -> 0.2081 expectedGoals: 0.2456 -> 0.2028 expectedGoalsOnTarget: 0.2418 -> 0.1997 bigChanceMissed: 0.2102 -> 0.1736 | 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.07 (squad xG sum 1.2060, xG scale 0.8881, xA scale 0.8881, team xA 0.75 = 0.70 x lambda) | scoreline_reset=true
team_lambda=1.071
squad_xg_sum=1.206
squad_xa_sum=0.8443
team_expected_assists=0.7498
team_xa_to_xg_ratio=0.7001 | expected_goals: 0.2028 -> 0.1801 expected_assists: 0.0996 -> 0.0885 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 81.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.1648
goal_rate=0.2081
scorer_weight=0.1839 | - | 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.0847
assist_rate=0.1809
provider_weight=0.1106 | - |
|
| Team totals | 1 | 1.07 | | 15 | | 6.9 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Emil Audero | G | 4.4m | 10.9% | Market-value substitute prior |
| Marash Kumbulla | D | 13.6m | 29.9% | Market-value substitute prior |
| Luiz Felipe | D | 13.6m | 29.9% | Market-value substitute prior |
| Isi Palazón | M | 22.0m | 49.9% | Market-value substitute prior |
| Óscar Valentín | M | 29.7m | 43.5% | Market-value substitute prior |
| Alemão | F | 25.4m | 56.2% | Market-value substitute prior |
Antagonist / tactical summary
Home midfield dominates with ~52% possession expected (Jon Gorrotxategi vs Pedro Díaz). Total antagonist xG — Home: 1.18, Away: 0.88. 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 52.4% / 47.6%, dominance ratio 0.58, key duel: Jon Gorrotxategi vs Pedro Díaz
Mikel Oyarzabal xG 0.32Orri Óskarsson xG 0.46Luka Sučić xG 0.17Álvaro García xG 0.20Jorge de Frutos xG 0.18Sergio Camello xG 0.25
Summary
Antagonist matchup analysis for Real Sociedad vs Rayo Vallecano. Most likely scoreline: 2-1. Lambdas derived from 6 home and 6 away individual player duels. Head-to-head: Real Sociedad 3W-5D-2L vs Rayo Vallecano over 10 meetings.
Tactical parity between 4-4-2 and 4-3-3. Match outcome driven primarily by individual player quality. Home midfield dominates with ~52% possession expected (Jon Gorrotxategi vs Pedro Díaz). Total antagonist xG — Home: 1.18, Away: 0.88. 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-11-03 14:38:27 UTC · Soccer prediction reporting