Soccer predictions: actual data vs predicted data
Slate 20261025 · 9 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
Celta vs Real Betis
LaLiga · 20261025 · 3-4-2-1 vs 4-2-3-1
Predicted 0-1Winner: Real BetisWinning H 1-0 (12.3%)Winning A 0-1 (14.4%)Confidence 0.71λ home/away 0.92 / 1.08Most-likely P 14.4%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset TracingAntagonist + XGBoost match analysis for Celta vs Real Betis. 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 0.898, Away 1.112). Final calibrated Poisson lambdas: Home 0.924, Away 1.080 (most likely score 0-1).
Home Starters 11/11 XGBoost (11 FBref) Away Starters 11/11 XGBoost (10 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 0.90 / 1.11 Final λ (H/A) 0.92 / 1.08
FBref Team Priors: Celta Vigo (Gls/90: 0.25, GA/90: 0.25 → E[λ]: 0.246) vs Real Betis (Gls/90: 1.3333333333333333, GA/90: 1.33 → E[λ]: 0.247) | 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 | Real Betis |
|---|
| League position | 8.00 | 4.00 |
| Points per game | 1.28 | 1.81 |
| Attack index | 0.93 | 1.02 |
| Defense (concede) index | 0.96 | 0.83 |
| Form multiplier | 0.97 | 1.03 |
| Standing λ multiplier | 0.95 | 0.94 |
Lambda decomposition (how the goal rates were built)
| Stage | Celta λ | Real Betis λ |
|---|
| FBref Squad Prior E[λ] (weight 0.228) | 0.246 | 0.247 |
| Pre-competitive-floor | 0.924 | 1.080 |
| Pre-calibration (Micro-duels) | 0.898 | 1.112 |
| Final λ | 0.924 | 1.080 |
competition calibration scale 1.0competition observed total goals 0.0quality gap applied Truemismatch score pressure applied Falsecompetitive underdog floor applied Falsestage discount 1.0
Scoreline distribution & markets
| Top 5 scorelines | P |
|---|
| 0-1 | 14.4% |
| 0-0 | 13.6% |
| 1-1 | 13.6% |
| 1-0 | 12.3% |
| 0-2 | 7.9% |
| Home win | 30.5% |
| Draw | 30.9% |
| Away win | 38.6% |
| Over 2.5 | 32.4% |
| BTTS yes | 40.0% |
Pregame fair line — favorite Real Betis (38.6%), fair total 2.00, 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.
Celta — 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 |
|---|
| Ferrán Jutglà | F | 73 | 0 | 0.16 | 0.18 | ok | 2 | 1.1 | 6.8 | 59.3 | 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.0009, quality 0.531) | market_value_eur=10700000
quality_factor=0.5306
boost_factor=1.0009
reference_quality=0.505
history_matches=37
history_shrink=0.119 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0134) | blend_weight=0.0134
history_matches=37
season_overlap_discount=1.0
per90_to_match_factor=0.8119
prior_reliability=0.1733
competition=La Liga | totalShots: 1.446 -> 1.4309 totalOffside: 0.6429 -> 0.6343 onTargetScoringAttempt: 0.5843 -> 0.5765 wasFouled: 1.6484 -> 1.6556 | 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': 'Pablo Fornals, Natan', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle', 'duel_win_rate': 0.181, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 0.869, 'skill_edge': -0.0571, 'height_edge': -0.032, 'attacker_skill': 0.5306, 'defender_skill': 0.6576, 'attacker_role': 'SS', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Pablo Fornals', 'market_value': 8400000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.5211}, {'player': 'Natan', 'market_value': 32000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7941}], 'xg_override': 0.1638} | totalShots: 1.4382 -> 1.2498 shotOffTarget: 0.8617 -> 0.7488 onTargetScoringAttempt: 0.5765 -> 0.501 expectedGoalsOnTarget: 0.3532 -> 0.3069 goals: 0.2086 -> 0.1813 expectedGoals: 0.1885 -> 0.1638 bigChanceMissed: 0.1424 -> 0.1237 | 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.92 (squad xG sum 0.9410, xG scale 0.9819, xA scale 0.9819, team xA 0.69 = 0.75 x lambda) | scoreline_reset=true
team_lambda=0.924
squad_xg_sum=0.941
squad_xa_sum=0.7025
team_expected_assists=0.6898
team_xa_to_xg_ratio=0.7465 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 75.0) | match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.1485
goal_rate=0.1813
scorer_weight=0.174 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0556
assist_rate=0.0858
provider_weight=0.0715 | - |
|
| Williot Swedberg | F | 66 | 0 | 0.19 | 0.09 | 102% | 2 | 0.6 | 6.8 | 51.9 | 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.0042, quality 0.618) | market_value_eur=18700000
quality_factor=0.6181
boost_factor=1.0042
reference_quality=0.505
history_matches=35
history_shrink=0.125 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0130) | blend_weight=0.013
history_matches=35
season_overlap_discount=1.0
per90_to_match_factor=0.7327
prior_reliability=0.16
competition=La Liga | wasFouled: 1.7832 -> 1.8037 totalShots: 1.3764 -> 1.3704 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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.194, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 0.9908, 'skill_edge': -0.0003, 'height_edge': -0.006, 'attacker_skill': 0.6181, '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.1892} | totalShots: 1.3768 -> 1.3642 shotOffTarget: 0.7956 -> 0.7883 onTargetScoringAttempt: 0.5812 -> 0.5759 | 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.92 (squad xG sum 0.9410, xG scale 0.9819, xA scale 0.9819, team xA 0.69 = 0.75 x lambda) | scoreline_reset=true
team_lambda=0.924
squad_xg_sum=0.941
squad_xa_sum=0.7025
team_expected_assists=0.6898
team_xa_to_xg_ratio=0.7465 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 76.0) | match_squad_rank=12
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.1696
goal_rate=0.1656
scorer_weight=0.1675 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0724
assist_rate=0.103
provider_weight=0.0909 | - |
|
| Pablo Durán | F | 67 | 0 | 0.19 | 0.11 | 82% | 2 | 0.9 | 6.8 | 51.4 | 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 0.9980, quality 0.451) | market_value_eur=4099999
quality_factor=0.4511
boost_factor=0.998
reference_quality=0.505
history_matches=35
history_shrink=0.125 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0081) | blend_weight=0.0081
history_matches=35
season_overlap_discount=1.0
per90_to_match_factor=0.7463
prior_reliability=0.1
competition=La Liga | totalShots: 1.8661 -> 1.8551 | 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': 'Pablo Fornals, Natan', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 0.8222, 'skill_edge': -0.0929, 'height_edge': -0.028, 'attacker_skill': 0.4511, 'defender_skill': 0.6576, 'attacker_role': 'SS', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Pablo Fornals', 'market_value': 8400000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.5211}, {'player': 'Natan', 'market_value': 32000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7941}], 'xg_override': 0.1972} | totalShots: 1.8639 -> 1.5325 shotOffTarget: 1.0848 -> 0.8919 onTargetScoringAttempt: 0.7791 -> 0.6406 goals: 0.3041 -> 0.25 expectedGoals: 0.2399 -> 0.1972 bigChanceMissed: 0.2375 -> 0.1953 expectedGoalsOnTarget: 0.1192 -> 0.098 | 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.92 (squad xG sum 0.9410, xG scale 0.9819, xA scale 0.9819, team xA 0.69 = 0.75 x lambda) | scoreline_reset=true
team_lambda=0.924
squad_xg_sum=0.941
squad_xa_sum=0.7025
team_expected_assists=0.6898
team_xa_to_xg_ratio=0.7465 | - | 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 skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.176
goal_rate=0.25
scorer_weight=0.235 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0563
assist_rate=0.0
provider_weight=0.0463 | - |
|
| Javi Galán | D | 78 | 0 | 0.01 | 0.01 | ok | 0 | 0.2 | 6.8 | 60.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.9972, quality 0.437) | market_value_eur=1700000
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.0090) | blend_weight=0.009
history_matches=31
season_overlap_discount=1.0
per90_to_match_factor=0.8666
prior_reliability=0.1
competition=La Liga | totalCross: 4.347 -> 4.339 wasFouled: 1.5447 -> 1.5516 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Abdessamad Ezzalzouli', 'matchup_zone': 'Shape fallback'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.92 (squad xG sum 0.9410, xG scale 0.9819, xA scale 0.9819, team xA 0.69 = 0.75 x lambda) | scoreline_reset=true
team_lambda=0.924
squad_xg_sum=0.941
squad_xa_sum=0.7025
team_expected_assists=0.6898
team_xa_to_xg_ratio=0.7465 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 77.0) | match_squad_rank=11
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0058
goal_rate=0.0
scorer_weight=0.0052 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0754
assist_rate=0.0069
provider_weight=0.0627 | - |
|
| Aleix Febas | M | 85 | 0 | 0.07 | 0.04 | 84% | 1 | 0.5 | 6.9 | 59.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 0.9986, quality 0.465) | market_value_eur=5200000
quality_factor=0.4646
boost_factor=0.9986
reference_quality=0.505
history_matches=38
history_shrink=0.1163 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0091) | blend_weight=0.0091
history_matches=38
season_overlap_discount=1.0
per90_to_match_factor=0.9438
prior_reliability=0.12
competition=La Liga | fouls: 1.4937 -> 1.5039 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Angel Ortiz', 'matchup_zone': 'Left Wingback vs Right Back — Overlapping Run', 'duel_win_rate': 0.393, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9901, 'skill_edge': -0.0108, 'height_edge': 0.004, 'attacker_skill': 0.4918, 'defender_skill': 0.5157, 'attacker_role': 'LWB', 'attacker_mv_price_index': 0.7, 'defender_adjusted_parts': [{'player': 'Angel Ortiz', 'market_value': 6600000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.5157}], 'xg_override': 0.0707} | aerialWon: 0.1283 -> 0.8 totalShots: 0.8247 -> 0.8165 shotOffTarget: 0.5263 -> 0.5211 | 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.92 (squad xG sum 0.9410, xG scale 0.9819, xA scale 0.9819, team xA 0.69 = 0.75 x lambda) | scoreline_reset=true
team_lambda=0.924
squad_xg_sum=0.941
squad_xa_sum=0.7025
team_expected_assists=0.6898
team_xa_to_xg_ratio=0.7465 | - | 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 skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.067
goal_rate=0.0628
scorer_weight=0.0649 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0883
assist_rate=0.0769
provider_weight=0.0814 | - |
|
| Ilaix Moriba | M | 84 | 0 | 0.06 | 0.04 | 59% | 1 | 0.5 | 6.9 | 63.6 | 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.0019, quality 0.565) | market_value_eur=13700000
quality_factor=0.5649
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.0122) | blend_weight=0.0122
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=0.9341
prior_reliability=0.18
competition=La Liga | fouls: 1.1384 -> 1.1245 interceptionWon: 1.1325 -> 1.1271 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.497, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0694, 'skill_edge': 0.0272, 'height_edge': 0.02, 'attacker_skill': 0.5816, 'defender_skill': 0.5211, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Pablo Fornals', 'market_value': 8400000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.5211}], 'xg_override': 0.0568} | aerialWon: 0.0694 -> 1.1 totalShots: 0.7927 -> 0.8477 shotOffTarget: 0.5715 -> 0.6112 onTargetScoringAttempt: 0.2196 -> 0.2348 expectedGoalsOnTarget: 0.1402 -> 0.1499 | 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.92 (squad xG sum 0.9410, xG scale 0.9819, xA scale 0.9819, team xA 0.69 = 0.75 x lambda) | scoreline_reset=true
team_lambda=0.924
squad_xg_sum=0.941
squad_xa_sum=0.7025
team_expected_assists=0.6898
team_xa_to_xg_ratio=0.7465 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 78.0) | match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0543
goal_rate=0.0662
scorer_weight=0.0607 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0557
assist_rate=0.0522
provider_weight=0.054 | - |
|
| Sergio Carreira | M | 90 | 0 | 0.08 | 0.05 | 73% | 1 | 0.4 | 7.0 | 60.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.0011, quality 0.540) | market_value_eur=11500000
quality_factor=0.5399
boost_factor=1.0011
reference_quality=0.505
history_matches=41
history_shrink=0.1087 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0155) | blend_weight=0.0155
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=0.9951
prior_reliability=0.22
competition=La Liga | wasFouled: 1.3308 -> 1.3429 wonTackle: 0.5157 -> 0.5077 totalCross: 0.7397 -> 0.7329 interceptionWon: 0.3554 -> 0.3499 fouls: 0.8582 -> 0.8636 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.433, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9751, 'skill_edge': 0.015, 'height_edge': -0.032, 'attacker_skill': 0.5545, 'defender_skill': 0.5211, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Pablo Fornals', 'market_value': 8400000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.5211}], 'xg_override': 0.0794} | aerialWon: 0.1473 -> 0.8 totalShots: 0.8129 -> 0.7927 shotOffTarget: 0.5162 -> 0.5033 onTargetScoringAttempt: 0.2906 -> 0.2834 bigChanceMissed: 0.2169 -> 0.2115 | 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.92 (squad xG sum 0.9410, xG scale 0.9819, xA scale 0.9819, team xA 0.69 = 0.75 x lambda) | scoreline_reset=true
team_lambda=0.924
squad_xg_sum=0.941
squad_xa_sum=0.7025
team_expected_assists=0.6898
team_xa_to_xg_ratio=0.7465 | - | 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_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.075
goal_rate=0.0981
scorer_weight=0.0893 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0943
assist_rate=0.0816
provider_weight=0.0865 | - |
|
| Marcos Alonso | D | 86 | 0 | 0.04 | 0.08 | 46% | 1 | 0.7 | 7.0 | 61.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.9976, quality 0.437) | market_value_eur=1300000
quality_factor=0.4374
boost_factor=0.9976
reference_quality=0.505
history_matches=37
history_shrink=0.119 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0134) | blend_weight=0.0134
history_matches=37
season_overlap_discount=1.0
per90_to_match_factor=0.9564
prior_reliability=0.1733
competition=La Liga | interceptionWon: 1.1696 -> 1.1934 wonTackle: 0.8508 -> 0.8591 fouls: 0.987 -> 0.9935 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Isco', 'matchup_zone': 'LW vs CB'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.92 (squad xG sum 0.9410, xG scale 0.9819, xA scale 0.9819, team xA 0.69 = 0.75 x lambda) | scoreline_reset=true
team_lambda=0.924
squad_xg_sum=0.941
squad_xa_sum=0.7025
team_expected_assists=0.6898
team_xa_to_xg_ratio=0.7465 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 79.0) | match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0419
goal_rate=0.0061
scorer_weight=0.0342 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0451
assist_rate=0.0
provider_weight=0.037 | - |
|
| Yoel Lago | D | 89 | 0 | 0.02 | 0.00 | 238% | 0 | 0.1 | 6.9 | 40.9 | 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.9989, quality 0.487) | market_value_eur=7000000
quality_factor=0.4866
boost_factor=0.9989
reference_quality=0.505
history_matches=19
history_shrink=0.2083 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0316) | blend_weight=0.0316
history_matches=19
season_overlap_discount=1.0
per90_to_match_factor=0.9897
prior_reliability=0.2333
competition=La Liga | totalShots: 0.3764 -> 0.3645 totalCross: 0.0 -> 0.0089 wonTackle: 0.8126 -> 0.8048 interceptionWon: 1.2271 -> 1.233 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Abdessamad Ezzalzouli', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.92 (squad xG sum 0.9410, xG scale 0.9819, xA scale 0.9819, team xA 0.69 = 0.75 x lambda) | scoreline_reset=true
team_lambda=0.924
squad_xg_sum=0.941
squad_xa_sum=0.7025
team_expected_assists=0.6898
team_xa_to_xg_ratio=0.7465 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 71.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.0158
goal_rate=0.0
scorer_weight=0.0127 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0121
assist_rate=0.0
provider_weight=0.0098 | - |
|
| Javi Rodríguez | D | 82 | 0 | 0.01 | 0.02 | ok | 0 | 0.3 | 6.7 | 53.5 | 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.0036, quality 0.606) | market_value_eur=17500000
quality_factor=0.6058
boost_factor=1.0036
reference_quality=0.505
history_matches=37
history_shrink=0.119 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0134) | blend_weight=0.0134
history_matches=37
season_overlap_discount=1.0
per90_to_match_factor=0.9116
prior_reliability=0.1733
competition=La Liga | wasFouled: 0.7947 -> 0.7887 wonTackle: 0.7688 -> 0.7632 | 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': 'Troy Parrott', 'matchup_zone': 'Shape fallback'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.92 (squad xG sum 0.9410, xG scale 0.9819, xA scale 0.9819, team xA 0.69 = 0.75 x lambda) | scoreline_reset=true
team_lambda=0.924
squad_xg_sum=0.941
squad_xa_sum=0.7025
team_expected_assists=0.6898
team_xa_to_xg_ratio=0.7465 | - | 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 skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0122
goal_rate=0.0
scorer_weight=0.0098 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0216
assist_rate=0.0251
provider_weight=0.0227 | - |
|
| Ionuț Radu | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 7.0 | 64.7 | 30 | FBref Prior G_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost G_service raw output over 3 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0004, quality 0.519) | market_value_eur=9700000
quality_factor=0.5189
boost_factor=1.0004
reference_quality=0.505
history_matches=45
history_shrink=0.1 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0173) | blend_weight=0.0173
history_matches=45
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.2667
competition=La Liga | saves: 2.8356 -> 2.8471 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Abdessamad Ezzalzouli, Troy Parrott', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.1121} | - | 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.92 (squad xG sum 0.9410, xG scale 0.9819, xA scale 0.9819, team xA 0.69 = 0.75 x lambda) | scoreline_reset=true
team_lambda=0.924
squad_xg_sum=0.941
squad_xa_sum=0.7025
team_expected_assists=0.6898
team_xa_to_xg_ratio=0.7465 | shots_faced: 10.6 -> 10.3 expected_saves: 2.6 -> 2.52 high_pressure_saves: 0.89 -> 0.86 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 78.0) | match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=0.9627 | - | 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.6489 | - |
|
| Team totals | 0 | 0.92 | | 12 | | 6.9 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Altay Bayındır | G | 4.5m | 11.3% | Market-value substitute prior |
| Abdoulaye Faye | D | 13.6m | 21.8% | Market-value substitute prior |
| Carl Starfelt | D | 27.6m | 41.1% | Market-value substitute prior |
| Fer López | M | 22.6m | 52.9% | Market-value substitute prior |
| Miguel Román | M | 34.9m | 41.4% | Market-value substitute prior |
| Jones El-Abdellaoui | F | 25.8m | 53.2% | 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 |
|---|
| Troy Parrott | F | 73 | 0 | 0.24 | 0.16 | 54% | 2 | 0.6 | 6.7 | 33.2 | 8 | 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.0183, quality 0.615) | market_value_eur=18400000
quality_factor=0.615
boost_factor=1.0183
reference_quality=0.505
history_matches=4
history_shrink=0.5556 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0192) | blend_weight=0.0192
history_matches=4
season_overlap_discount=1.0
per90_to_match_factor=0.8061
prior_reliability=0.0533
competition=La Liga | wonTackle: 0.658 -> 0.7035 totalShots: 1.6967 -> 1.7191 fouls: 0.2308 -> 0.2458 totalOffside: 0.2308 -> 0.2458 onTargetScoringAttempt: 0.716 -> 0.7022 wasFouled: 0.5912 -> 0.5798 goalAssist: 0.3195 -> 0.3134 goals: 0.2864 -> 0.2809 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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 Alonso, Yoel Lago', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.257, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.0831, 'skill_edge': 0.0626, 'height_edge': -0.006, 'attacker_skill': 0.615, 'defender_skill': 0.476, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Marcos Alonso', 'market_value': 1300000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'Yoel Lago', 'market_value': 7000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5146}], 'xg_override': 0.2891} | totalShots: 1.7191 -> 1.862 shotOffTarget: 0.9806 -> 1.0621 onTargetScoringAttempt: 0.7022 -> 0.7606 bigChanceMissed: 0.4271 -> 0.4626 goals: 0.2809 -> 0.3042 expectedGoals: 0.2669 -> 0.2891 expectedGoalsOnTarget: 0.219 -> 0.2372 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.08 (squad xG sum 1.2996, xG scale 0.8311, xA scale 0.8311, team xA 0.74 = 0.69 x lambda) | scoreline_reset=true
team_lambda=1.08
squad_xg_sum=1.2996
squad_xa_sum=0.8938
team_expected_assists=0.7428
team_xa_to_xg_ratio=0.6878 | expected_goals: 0.2891 -> 0.2403 expected_assists: 0.0553 -> 0.046 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 16 by projected rating, fifa_overall 78.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.2136
goal_rate=0.3042
scorer_weight=0.251 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.045
assist_rate=0.3134
provider_weight=0.0575 | - |
|
| Abdessamad Ezzalzouli | F | 81 | 1 | 0.28 | 0.24 | ok | 3 | 2.0 | 7.3 | 62.8 | 28 | 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.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 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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 Alonso, Yoel Lago', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.306, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.1556, 'skill_edge': 0.1438, 'height_edge': -0.038, 'attacker_skill': 0.7957, 'defender_skill': 0.476, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Marcos Alonso', 'market_value': 1300000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'Yoel Lago', 'market_value': 7000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5146}], 'xg_override': 0.34} | totalShots: 2.2517 -> 2.6021 shotOffTarget: 1.2962 -> 1.4979 onTargetScoringAttempt: 0.9555 -> 1.1042 expectedGoalsOnTarget: 0.4333 -> 0.5007 goals: 0.395 -> 0.4565 expectedGoals: 0.2942 -> 0.34 bigChanceMissed: 0.2394 -> 0.2767 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.08 (squad xG sum 1.2996, xG scale 0.8311, xA scale 0.8311, team xA 0.74 = 0.69 x lambda) | scoreline_reset=true
team_lambda=1.08
squad_xg_sum=1.2996
squad_xa_sum=0.8938
team_expected_assists=0.7428
team_xa_to_xg_ratio=0.6878 | expected_goals: 0.34 -> 0.2825 expected_assists: 0.2117 -> 0.1758 | 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.2461
goal_rate=0.4565
scorer_weight=0.3531 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1612
assist_rate=0.1556
provider_weight=0.1406 | - |
|
| Isco | M | 66 | 0 | 0.09 | 0.11 | ok | 1 | 1.0 | 6.9 | 59.1 | 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 0.9955, quality 0.445) | market_value_eur=3600000
quality_factor=0.4449
boost_factor=0.9955
reference_quality=0.505
history_matches=15
history_shrink=0.25 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0141) | blend_weight=0.0141
history_matches=15
season_overlap_discount=1.0
per90_to_match_factor=0.7352
prior_reliability=0.0867
competition=La Liga | fouls: 0.1402 -> 0.1701 totalCross: 2.2419 -> 2.2661 onTargetScoringAttempt: 0.4183 -> 0.4355 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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 Alonso', 'matchup_zone': 'LW vs CB', 'duel_win_rate': 0.375, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9344, 'skill_edge': 0.0034, 'height_edge': -0.048, 'attacker_skill': 0.4449, 'defender_skill': 0.4374, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Marcos Alonso', 'market_value': 1300000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.1125} | aerialWon: 0.0 -> 0.9 totalShots: 1.4409 -> 1.3464 shotOffTarget: 1.0054 -> 0.9394 onTargetScoringAttempt: 0.4355 -> 0.4069 bigChanceMissed: 0.2684 -> 0.2508 expectedGoals: 0.1204 -> 0.1125 goals: 0.0886 -> 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.08 (squad xG sum 1.2996, xG scale 0.8311, xA scale 0.8311, team xA 0.74 = 0.69 x lambda) | scoreline_reset=true
team_lambda=1.08
squad_xg_sum=1.2996
squad_xa_sum=0.8938
team_expected_assists=0.7428
team_xa_to_xg_ratio=0.6878 | expected_goals: 0.1125 -> 0.0935 expected_assists: 0.1189 -> 0.0988 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 83.0) | match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0893
goal_rate=0.0828
scorer_weight=0.0764 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0941
assist_rate=0.1156
provider_weight=0.0969 | - |
|
| Antony | F | 80 | 0 | 0.19 | 0.23 | ok | 3 | 2.9 | 7.1 | 61.4 | 37 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0088, quality 0.764) | market_value_eur=37000000
quality_factor=0.7641
boost_factor=1.0088
reference_quality=0.505
history_matches=39
history_shrink=0.1136 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0148) | blend_weight=0.0148
history_matches=39
season_overlap_discount=1.0
per90_to_match_factor=0.8851
prior_reliability=0.2
competition=La Liga | totalShots: 2.6634 -> 2.6894 totalCross: 1.8778 -> 1.8893 onTargetScoringAttempt: 0.9878 -> 0.995 wasFouled: 1.3383 -> 1.3447 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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 Alonso, Yoel Lago', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.272, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.1053, 'skill_edge': 0.1297, 'height_edge': -0.058, 'attacker_skill': 0.7641, 'defender_skill': 0.476, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Marcos Alonso', 'market_value': 1300000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'Yoel Lago', 'market_value': 7000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5146}], 'xg_override': 0.2268} | totalShots: 2.6894 -> 2.9726 shotOffTarget: 1.6756 -> 1.852 onTargetScoringAttempt: 0.995 -> 1.0998 bigChanceMissed: 0.4035 -> 0.446 expectedGoalsOnTarget: 0.2843 -> 0.3142 expectedGoals: 0.2052 -> 0.2268 goals: 0.1774 -> 0.1961 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.08 (squad xG sum 1.2996, xG scale 0.8311, xA scale 0.8311, team xA 0.74 = 0.69 x lambda) | scoreline_reset=true
team_lambda=1.08
squad_xg_sum=1.2996
squad_xa_sum=0.8938
team_expected_assists=0.7428
team_xa_to_xg_ratio=0.6878 | expected_goals: 0.2268 -> 0.1885 expected_assists: 0.1398 -> 0.1162 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 81.0) | match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1718
goal_rate=0.1961
scorer_weight=0.1676 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1097
assist_rate=0.0524
provider_weight=0.093 | - |
|
| Pablo Fornals | M | 81 | 0 | 0.06 | 0.07 | ok | 1 | 0.9 | 7.0 | 60.9 | 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.503) | market_value_eur=8400000
quality_factor=0.5035
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.0099) | blend_weight=0.0099
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=0.9012
prior_reliability=0.1467
competition=La Liga | totalShots: 1.1832 -> 1.1953 wasFouled: 0.9362 -> 0.9269 interceptionWon: 0.7654 -> 0.7741 totalCross: 3.4418 -> 3.4483 wonTackle: 0.2473 -> 0.253 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Ferrán Jutglà, Pablo Durán, Ilaix Moriba', '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.08 (squad xG sum 1.2996, xG scale 0.8311, xA scale 0.8311, team xA 0.74 = 0.69 x lambda) | scoreline_reset=true
team_lambda=1.08
squad_xg_sum=1.2996
squad_xa_sum=0.8938
team_expected_assists=0.7428
team_xa_to_xg_ratio=0.6878 | expected_goals: 0.0756 -> 0.0628 expected_assists: 0.1525 -> 0.1267 | 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.0609
goal_rate=0.0849
scorer_weight=0.0674 | - | integer_assist_projection | Team scoreline allocation: 1 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.119
assist_rate=0.1199
provider_weight=0.1063 | - |
|
| Marc Roca | M | 84 | 0 | 0.03 | 0.02 | 32% | 1 | 0.5 | 7.0 | 50.9 | 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.9980, quality 0.452) | market_value_eur=4200000
quality_factor=0.4523
boost_factor=0.998
reference_quality=0.505
history_matches=34
history_shrink=0.1282 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0094) | blend_weight=0.0094
history_matches=34
season_overlap_discount=1.0
per90_to_match_factor=0.933
prior_reliability=0.1133
competition=La Liga | totalShots: 0.5812 -> 0.591 wonTackle: 1.0442 -> 1.0499 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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 Carreira', '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.08 (squad xG sum 1.2996, xG scale 0.8311, xA scale 0.8311, team xA 0.74 = 0.69 x lambda) | scoreline_reset=true
team_lambda=1.08
squad_xg_sum=1.2996
squad_xa_sum=0.8938
team_expected_assists=0.7428
team_xa_to_xg_ratio=0.6878 | expected_goals: 0.038 -> 0.0316 expected_assists: 0.0551 -> 0.0458 | 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.0311
goal_rate=0.0369
scorer_weight=0.0312 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0448
assist_rate=0.0613
provider_weight=0.0485 | - |
|
| Fran García | D | 88 | 0 | 0.01 | 0.02 | 52% | 0 | 0.1 | 6.8 | 30.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.9988, quality 0.485) | market_value_eur=6900000
quality_factor=0.4854
boost_factor=0.9988
reference_quality=0.505
history_matches=19
history_shrink=0.2083 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0217) | blend_weight=0.0217
history_matches=19
season_overlap_discount=1.0
per90_to_match_factor=0.9807
prior_reliability=0.16
competition=La Liga | totalCross: 2.6108 -> 2.6516 totalShots: 0.3947 -> 0.3861 goalAssist: 0.0381 -> 0.0461 wasFouled: 1.1463 -> 1.1392 interceptionWon: 0.9635 -> 0.9692 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Pablo Durán', 'matchup_zone': '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.08 (squad xG sum 1.2996, xG scale 0.8311, xA scale 0.8311, team xA 0.74 = 0.69 x lambda) | scoreline_reset=true
team_lambda=1.08
squad_xg_sum=1.2996
squad_xa_sum=0.8938
team_expected_assists=0.7428
team_xa_to_xg_ratio=0.6878 | expected_assists: 0.0481 -> 0.04 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 77.0) | match_squad_rank=12
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0104
goal_rate=0.0
scorer_weight=0.0084 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0392
assist_rate=0.0461
provider_weight=0.0392 | - |
|
| Natan | D | 89 | 0 | 0.04 | 0.02 | 125% | 1 | 0.2 | 6.9 | 51.7 | 29 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0077, quality 0.732) | market_value_eur=32000000
quality_factor=0.732
boost_factor=1.0077
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.9886
prior_reliability=0.1333
competition=La Liga | wonTackle: 0.7865 -> 0.7982 interceptionWon: 0.9101 -> 0.9011 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Williot Swedberg', '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.08 (squad xG sum 1.2996, xG scale 0.8311, xA scale 0.8311, team xA 0.74 = 0.69 x lambda) | scoreline_reset=true
team_lambda=1.08
squad_xg_sum=1.2996
squad_xa_sum=0.8938
team_expected_assists=0.7428
team_xa_to_xg_ratio=0.6878 | expected_goals: 0.0478 -> 0.0397 | 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.0389
goal_rate=0.1088
scorer_weight=0.0496 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0103
assist_rate=0.0
provider_weight=0.0083 | - |
|
| Diego Llorente | D | 80 | 0 | 0.01 | 0.01 | 30% | 0 | 0.1 | 6.9 | 50.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 0.9959, quality 0.437) | market_value_eur=2600000
quality_factor=0.4374
boost_factor=0.9959
reference_quality=0.505
history_matches=20
history_shrink=0.2 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0087) | blend_weight=0.0087
history_matches=20
season_overlap_discount=1.0
per90_to_match_factor=0.8862
prior_reliability=0.0667
competition=La Liga | interceptionWon: 1.1267 -> 1.1554 wonTackle: 0.7905 -> 0.7836 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Williot Swedberg', '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.08 (squad xG sum 1.2996, xG scale 0.8311, xA scale 0.8311, team xA 0.74 = 0.69 x lambda) | scoreline_reset=true
team_lambda=1.08
squad_xg_sum=1.2996
squad_xa_sum=0.8938
team_expected_assists=0.7428
team_xa_to_xg_ratio=0.6878 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 79.0) | match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0145
goal_rate=0.0
scorer_weight=0.0117 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0032
assist_rate=0.0
provider_weight=0.003 | - |
|
| Angel Ortiz | D | 70 | 0 | 0.01 | 0.00 | 112% | 0 | 0.1 | 6.8 | 29.2 | 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.9983, quality 0.482) | market_value_eur=6600000
quality_factor=0.4818
boost_factor=0.9983
reference_quality=0.505
history_matches=15
history_shrink=0.25 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0087) | blend_weight=0.0087
history_matches=15
season_overlap_discount=1.0
per90_to_match_factor=0.7776
prior_reliability=0.0533
competition=La Liga | totalCross: 1.6515 -> 1.6372 wasFouled: 0.8381 -> 0.8308 interceptionWon: 0.7306 -> 0.7243 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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.08 (squad xG sum 1.2996, xG scale 0.8311, xA scale 0.8311, team xA 0.74 = 0.69 x lambda) | scoreline_reset=true
team_lambda=1.08
squad_xg_sum=1.2996
squad_xa_sum=0.8938
team_expected_assists=0.7428
team_xa_to_xg_ratio=0.6878 | expected_assists: 0.0541 -> 0.045 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 70.0) | match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0051
goal_rate=0.0
scorer_weight=0.0045 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.044
assist_rate=0.0
provider_weight=0.036 | - |
|
| Álvaro Valles | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 7.4 | 61.7 | 30 | FBref Prior G_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost G_service raw output over 3 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0003, quality 0.514) | market_value_eur=9300000
quality_factor=0.5142
boost_factor=1.0003
reference_quality=0.505
history_matches=35
history_shrink=0.125 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0163) | blend_weight=0.0163
history_matches=35
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': 'Pablo Durán, Williot Swedberg', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 0.8976} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.08 (squad xG sum 1.2996, xG scale 0.8311, xA scale 0.8311, team xA 0.74 = 0.69 x lambda) | scoreline_reset=true
team_lambda=1.08
squad_xg_sum=1.2996
squad_xa_sum=0.8938
team_expected_assists=0.7428
team_xa_to_xg_ratio=0.6878 | shots_faced: 8.5 -> 8.8 expected_saves: 2.08 -> 2.16 high_pressure_saves: 0.72 -> 0.74 | 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.129 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by 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.6648 | - |
|
| Team totals | 1 | 1.08 | | 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 |
| Aitor Ruibal | D | 13.6m | 30.1% | Market-value substitute prior |
| Sergi Altimira | M | 22.7m | 53.2% | Market-value substitute prior |
| Nelson Deossa | M | 19.9m | 57.0% | Market-value substitute prior |
| Cucho Hernández | F | 25.9m | 58.7% | Market-value substitute prior |
Antagonist / tactical summary
Midfield is evenly contested — Ilaix Moriba vs Pablo Fornals will be the pivotal duel. Total antagonist xG — Home: 0.76, Away: 0.97. Home danger zone: Shadow Striker vs CDM + CB — Zone 14 Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Midfield — possession 51.2% / 48.8%, dominance ratio 0.53, key duel: Ilaix Moriba vs Pablo Fornals
Williot Swedberg xG 0.19Ferrán Jutglà xG 0.16Pablo Durán xG 0.20Isco xG 0.11Abdessamad Ezzalzouli xG 0.34Troy Parrott xG 0.29
Summary
Antagonist matchup analysis for Celta vs Real Betis. Most likely scoreline: 0-1. Lambdas derived from 6 home and 4 away individual player duels. Head-to-head: Celta 5W-4D-1L vs Real Betis 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 — Ilaix Moriba vs Pablo Fornals will be the pivotal duel. Total antagonist xG — Home: 0.76, Away: 0.97. Home danger zone: Shadow Striker vs CDM + CB — Zone 14 Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Liverpool vs Brighton
Premier League · 20261025 · 4-2-3-1 vs 4-2-3-1
Predicted 2-1Winner: LiverpoolWinning H 2-1 (8.9%)Winning A 1-2 (6.0%)Confidence 0.74λ home/away 2.26 / 1.51Most-likely P 8.9%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset TracingAntagonist + XGBoost match analysis for Liverpool vs Brighton. Player statistics regressed using position-specific XGBoost models (G, D, M, F) with 2026-2027 FBref priors. Micro-duels resolved across 4-2-3-1 vs 4-2-3-1 (duel lambdas: Home 2.036, Away 1.572). Final calibrated Poisson lambdas: Home 2.256, Away 1.514 (most likely score 2-1).
Home Starters 11/11 XGBoost (10 FBref) Away Starters 11/11 XGBoost (9 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 2.04 / 1.57 Final λ (H/A) 2.26 / 1.51
FBref Team Priors: Liverpool FC (Gls/90: 2.0, GA/90: 2.0 → E[λ]: 3.5) vs Brighton & Hove Albion (Gls/90: 2.5, GA/90: 3.5 → E[λ]: 3.448) | 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 | Liverpool | Brighton |
|---|
| League position | 5.00 | 3.00 |
| Points per game | 1.55 | 1.86 |
| Attack index | 1.01 | 1.39 |
| Defense (concede) index | 0.77 | 0.97 |
| Form multiplier | 0.98 | 1.02 |
| Standing λ multiplier | 0.90 | 1.14 |
Lambda decomposition (how the goal rates were built)
| Stage | Liverpool λ | Brighton λ |
|---|
| FBref Squad Prior E[λ] (weight 0.192) | 3.500 | 3.448 |
| Pre-competitive-floor | 2.256 | 1.514 |
| Pre-calibration (Micro-duels) | 2.036 | 1.572 |
| Final λ | 2.256 | 1.514 |
competition calibration scale 1.0competition observed total goals 0.0quality gap applied Truemismatch score pressure applied Falsecompetitive underdog floor applied Falsestage discount 1.0
Scoreline distribution & markets
| Top 5 scorelines | P |
|---|
| 2-1 | 8.9% |
| 1-1 | 7.9% |
| 2-2 | 6.7% |
| 3-1 | 6.7% |
| 1-2 | 6.0% |
| Home win | 54.4% |
| Draw | 20.2% |
| Away win | 25.5% |
| Over 2.5 | 72.6% |
| BTTS yes | 69.9% |
Pregame fair line — favorite Liverpool (54.4%), fair total 3.77, fair spread 0.74
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.
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 |
|---|
| Alexander Isak | F | 80 | 2 | 0.63 | 0.27 | 132% | 3 | 1.1 | 6.8 | 42.1 | 15 | 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.0241, quality 0.891) | market_value_eur=93000000
quality_factor=0.8905
boost_factor=1.0241
reference_quality=0.505
history_matches=19
history_shrink=0.2083 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0181) | blend_weight=0.0181
history_matches=19
season_overlap_discount=1.0
per90_to_match_factor=0.8884
prior_reliability=0.1333
competition=Premier League | totalShots: 2.5724 -> 2.5821 wasFouled: 0.4085 -> 0.4172 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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.25, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 1.0731, 'skill_edge': 0.0117, 'height_edge': 0.038, 'attacker_skill': 0.8905, '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.4523} | totalShots: 2.5821 -> 2.7709 shotOffTarget: 1.4511 -> 1.5572 onTargetScoringAttempt: 1.125 -> 1.2072 expectedGoalsOnTarget: 0.6124 -> 0.6572 bigChanceMissed: 0.5611 -> 0.6021 goals: 0.5059 -> 0.5429 expectedGoals: 0.4215 -> 0.4523 | 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.26 (squad xG sum 1.6098, xG scale 1.4014, xA scale 1.9439, team xA 1.47 = 0.65 x lambda) | scoreline_reset=true
team_lambda=2.256
squad_xg_sum=1.6098
squad_xa_sum=0.7544
team_expected_assists=1.4664
team_xa_to_xg_ratio=0.65 | expected_goals: 0.4523 -> 0.6338 expected_assists: 0.0384 -> 0.0746 | 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=2
goal_probability=0.4694
goal_rate=0.5429
scorer_weight=0.7481 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0719
assist_rate=0.0288
provider_weight=0.0665 | - |
|
| Cody Gakpo | F | 84 | 0 | 0.27 | 0.14 | 89% | 3 | 1.8 | 6.9 | 51.8 | 39 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0120, quality 0.873) | market_value_eur=72000000
quality_factor=0.8734
boost_factor=1.012
reference_quality=0.505
history_matches=41
history_shrink=0.1087 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0085) | blend_weight=0.0085
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=0.9363
prior_reliability=0.12
competition=Premier League | totalCross: 1.4358 -> 1.4589 totalShots: 2.103 -> 2.112 interceptionWon: 1.0494 -> 1.0581 fouls: 1.2633 -> 1.2702 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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.242, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 1.0617, 'skill_edge': 0.004, 'height_edge': 0.038, 'attacker_skill': 0.8734, '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.193} | totalShots: 2.112 -> 2.2423 shotOffTarget: 1.5296 -> 1.624 onTargetScoringAttempt: 0.573 -> 0.6084 bigChanceMissed: 0.249 -> 0.2644 expectedGoals: 0.1818 -> 0.193 goals: 0.175 -> 0.1858 expectedGoalsOnTarget: 0.0976 -> 0.1036 | 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.26 (squad xG sum 1.6098, xG scale 1.4014, xA scale 1.9439, team xA 1.47 = 0.65 x lambda) | scoreline_reset=true
team_lambda=2.256
squad_xg_sum=1.6098
squad_xa_sum=0.7544
team_expected_assists=1.4664
team_xa_to_xg_ratio=0.65 | expected_goals: 0.193 -> 0.2705 expected_assists: 0.1234 -> 0.2399 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 82.0) | match_squad_rank=11
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.237
goal_rate=0.1858
scorer_weight=0.2625 | - | integer_assist_projection | Team scoreline allocation: 1 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.2133
assist_rate=0.4386
provider_weight=0.2999 | - |
|
| Florian Wirtz | M | 82 | 0 | 0.34 | 0.19 | 79% | 2 | 1.6 | 7.0 | 55.3 | 26 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0132, quality 0.883) | market_value_eur=81000000
quality_factor=0.8829
boost_factor=1.0132
reference_quality=0.505
history_matches=38
history_shrink=0.1163 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0086) | blend_weight=0.0086
history_matches=38
season_overlap_discount=1.0
per90_to_match_factor=0.9163
prior_reliability=0.1133
competition=Premier League | totalShots: 1.8826 -> 1.8897 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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.543, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0927, 'skill_edge': 0.0871, 'height_edge': -0.024, 'attacker_skill': 0.8829, '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.2412} | aerialWon: 0.5114 -> 0.9 totalShots: 1.8897 -> 2.0649 shotOffTarget: 1.2044 -> 1.316 onTargetScoringAttempt: 0.6817 -> 0.7449 expectedGoals: 0.2207 -> 0.2412 goals: 0.1941 -> 0.2121 expectedGoalsOnTarget: 0.1444 -> 0.1578 bigChanceMissed: 0.1094 -> 0.1195 | 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.26 (squad xG sum 1.6098, xG scale 1.4014, xA scale 1.9439, team xA 1.47 = 0.65 x lambda) | scoreline_reset=true
team_lambda=2.256
squad_xg_sum=1.6098
squad_xa_sum=0.7544
team_expected_assists=1.4664
team_xa_to_xg_ratio=0.65 | expected_goals: 0.2412 -> 0.338 expected_assists: 0.1319 -> 0.2564 | 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.2868
goal_rate=0.2121
scorer_weight=0.3042 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.2262
assist_rate=0.1411
provider_weight=0.2694 | - |
|
| Bradley Barcola | F | 76 | 0 | 0.24 | 0.05 | 378% | 2 | 0.4 | 6.7 | 32.8 | 10 | 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.0726, quality 0.892) | market_value_eur=97000000
quality_factor=0.8922
boost_factor=1.0726
reference_quality=0.505
history_matches=3
history_shrink=0.625 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Ferdi Kadıoğlu, Luka Vušković', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.206, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 1.0095, 'skill_edge': 0.0125, 'height_edge': -0.006, 'attacker_skill': 0.8922, '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.1741} | totalShots: 1.4086 -> 1.422 shotOffTarget: 0.7979 -> 0.8055 onTargetScoringAttempt: 0.6107 -> 0.6165 | 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.26 (squad xG sum 1.6098, xG scale 1.4014, xA scale 1.9439, team xA 1.47 = 0.65 x lambda) | scoreline_reset=true
team_lambda=2.256
squad_xg_sum=1.6098
squad_xa_sum=0.7544
team_expected_assists=1.4664
team_xa_to_xg_ratio=0.65 | expected_goals: 0.1741 -> 0.244 expected_assists: 0.0784 -> 0.1524 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 85.0) | match_squad_rank=14
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
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.2165
goal_rate=0.1823
scorer_weight=0.2529 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1414
assist_rate=0.0
provider_weight=0.1219 | - |
|
| Alexis Mac Allister | M | 87 | 0 | 0.13 | 0.08 | 73% | 1 | 1.0 | 6.9 | 56.7 | 30 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0119, quality 0.879) | market_value_eur=77000000
quality_factor=0.8792
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.0055) | blend_weight=0.0055
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.9673
prior_reliability=0.08
competition=Premier League | wasFouled: 0.9677 -> 0.9757 totalShots: 1.1797 -> 1.1732 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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.468, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 1.0709, 'skill_edge': 0.0322, 'height_edge': 0.016, 'attacker_skill': 0.8893, '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.0947} | totalShots: 1.1776 -> 1.2611 aerialWon: 0.8315 -> 0.9 shotOffTarget: 0.8164 -> 0.8743 onTargetScoringAttempt: 0.3612 -> 0.3868 goals: 0.1017 -> 0.1089 expectedGoals: 0.0884 -> 0.0947 | 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.26 (squad xG sum 1.6098, xG scale 1.4014, xA scale 1.9439, team xA 1.47 = 0.65 x lambda) | scoreline_reset=true
team_lambda=2.256
squad_xg_sum=1.6098
squad_xa_sum=0.7544
team_expected_assists=1.4664
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0947 -> 0.1327 expected_assists: 0.0766 -> 0.1489 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 84.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.1243
goal_rate=0.1089
scorer_weight=0.1457 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by 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.0749
provider_weight=0.1469 | - |
|
| Ryan Gravenberch | M | 79 | 0 | 0.12 | 0.03 | 244% | 1 | 0.8 | 6.8 | 57.2 | 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.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 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0052) | blend_weight=0.0052
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=0.8831
prior_reliability=0.0733
competition=Premier League | wasFouled: 1.3412 -> 1.3509 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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.513, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 1.137, 'skill_edge': 0.0332, 'height_edge': 0.06, 'attacker_skill': 0.8915, '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.0856} | aerialWon: 0.7048 -> 1.3 totalShots: 0.9977 -> 1.1344 shotOffTarget: 0.6734 -> 0.7657 onTargetScoringAttempt: 0.3192 -> 0.3629 expectedGoals: 0.0753 -> 0.0856 goals: 0.074 -> 0.0841 expectedGoalsOnTarget: 0.0629 -> 0.0715 | 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.26 (squad xG sum 1.6098, xG scale 1.4014, xA scale 1.9439, team xA 1.47 = 0.65 x lambda) | scoreline_reset=true
team_lambda=2.256
squad_xg_sum=1.6098
squad_xa_sum=0.7544
team_expected_assists=1.4664
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0856 -> 0.12 expected_assists: 0.0439 -> 0.0853 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 85.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.1131
goal_rate=0.0841
scorer_weight=0.1187 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0818
assist_rate=0.0691
provider_weight=0.1066 | - |
|
| Miloš Kerkez | D | 84 | 0 | 0.06 | 0.02 | 191% | 1 | 0.2 | 6.7 | 48.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.0086, quality 0.758) | market_value_eur=36000000
quality_factor=0.7581
boost_factor=1.0086
reference_quality=0.505
history_matches=39
history_shrink=0.1136 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0089) | blend_weight=0.0089
history_matches=39
season_overlap_discount=1.0
per90_to_match_factor=0.937
prior_reliability=0.12
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', 'matchup_zone': 'Shape fallback'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.26 (squad xG sum 1.6098, xG scale 1.4014, xA scale 1.9439, team xA 1.47 = 0.65 x lambda) | scoreline_reset=true
team_lambda=2.256
squad_xg_sum=1.6098
squad_xa_sum=0.7544
team_expected_assists=1.4664
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0437 -> 0.0612 expected_assists: 0.0172 -> 0.0334 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 17 by projected rating, fifa_overall 81.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.0594
goal_rate=0.062
scorer_weight=0.0732 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0328
assist_rate=0.0253
provider_weight=0.0374 | - |
|
| Virgil van Dijk | D | 90 | 0 | 0.13 | 0.11 | ok | 1 | 0.7 | 7.3 | 60.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.0025, quality 0.585) | market_value_eur=15500000
quality_factor=0.5846
boost_factor=1.0025
reference_quality=0.505
history_matches=43
history_shrink=0.1042 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0090) | blend_weight=0.009
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League | interceptionWon: 1.1681 -> 1.1621 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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': 'Left Wing vs Right Back — Flank Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.26 (squad xG sum 1.6098, xG scale 1.4014, xA scale 1.9439, team xA 1.47 = 0.65 x lambda) | scoreline_reset=true
team_lambda=2.256
squad_xg_sum=1.6098
squad_xa_sum=0.7544
team_expected_assists=1.4664
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0912 -> 0.1278 expected_assists: 0.032 -> 0.0622 | 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: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.12
goal_rate=0.1966
scorer_weight=0.1598 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0603
assist_rate=0.0
provider_weight=0.0498 | - |
|
| Jérémy Jacquet | D | 86 | 0 | 0.00 | - | n/a | 0 | 0.0 | 7.2 | 38.6 | 10 | 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.0542, quality 0.866) | market_value_eur=67000000
quality_factor=0.8661
boost_factor=1.0542
reference_quality=0.505
history_matches=5
history_shrink=0.5 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0347) | blend_weight=0.0347
history_matches=5
season_overlap_discount=1.0
per90_to_match_factor=0.9606
prior_reliability=0.1067
competition=Premier League | interceptionWon: 1.2066 -> 1.248 wasFouled: 0.9446 -> 0.9743 fouls: 1.085 -> 1.0682 totalShots: 0.442 -> 0.4267 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Charalampos Kostoulas', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.26 (squad xG sum 1.6098, xG scale 1.4014, xA scale 1.9439, team xA 1.47 = 0.65 x lambda) | scoreline_reset=true
team_lambda=2.256
squad_xg_sum=1.6098
squad_xa_sum=0.7544
team_expected_assists=1.4664
team_xa_to_xg_ratio=0.65 | expected_assists: 0.0273 -> 0.0531 | 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: 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
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.0517
assist_rate=0.0
provider_weight=0.0425 | - |
|
| Ronald Araújo | D | 79 | 0 | 0.04 | 0.04 | ok | 0 | 0.2 | 6.9 | 41.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.694) | market_value_eur=27000000
quality_factor=0.6941
boost_factor=1.0083
reference_quality=0.505
history_matches=29
history_shrink=0.1471 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0026) | blend_weight=0.0026
history_matches=29
season_overlap_discount=1.0
per90_to_match_factor=0.874
prior_reliability=0.0267
competition=Premier League | fouls: 0.5287 -> 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': 'Charalampos Kostoulas', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.26 (squad xG sum 1.6098, xG scale 1.4014, xA scale 1.9439, team xA 1.47 = 0.65 x lambda) | scoreline_reset=true
team_lambda=2.256
squad_xg_sum=1.6098
squad_xa_sum=0.7544
team_expected_assists=1.4664
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0251 -> 0.0352 expected_assists: 0.0321 -> 0.0624 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 80.0) | match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0346
goal_rate=0.1067
scorer_weight=0.044 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0605
assist_rate=0.0
provider_weight=0.0499 | - |
|
| Alisson | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 7.1 | 54.0 | 23 | 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.0038, quality 0.595) | market_value_eur=16500000
quality_factor=0.5953
boost_factor=1.0038
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=1.0
prior_reliability=0.1333
competition=Premier League | saves: 3.0016 -> 2.9895 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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, Pascal Groß', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.5724} | - | 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.26 (squad xG sum 1.6098, xG scale 1.4014, xA scale 1.9439, team xA 1.47 = 0.65 x lambda) | scoreline_reset=true
team_lambda=2.256
squad_xg_sum=1.6098
squad_xa_sum=0.7544
team_expected_assists=1.4664
team_xa_to_xg_ratio=0.65 | shots_faced: 14.9 -> 14.4 expected_saves: 3.64 -> 3.53 high_pressure_saves: 1.26 -> 1.21 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 87.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.0
scorer_weight=0.0
squad_weight_total=2.4352 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by 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.4623 | - |
|
| Team totals | 2 | 2.26 | | 17 | | 6.9 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Giorgi Mamardashvili | G | 5.5m | 15.8% | Market-value substitute prior |
| Jeremie Frimpong | D | 14.8m | 35.6% | Market-value substitute prior |
| Curtis Jones | D | 14.8m | 35.3% | Market-value substitute prior |
| Dominik Szoboszlai | M | 23.8m | 58.0% | Market-value substitute prior |
| Mohamed Salah | M | 22.8m | 53.5% | Market-value substitute prior |
| Hugo Ekitiké | F | 27.0m | 63.8% | Market-value substitute prior |
Brighton — projected line vs season baseline (4-2-3-1)
| Player | Pos | Min | Proj G | Proj xG | Season xG/g | | Proj Sh | Season Sh/g | Proj Rtg | Season Rtg | Rec | Model / FBref Prior |
|---|
| Bart Verbruggen | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 7.0 | 58.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.0081, quality 0.764) | market_value_eur=37000000
quality_factor=0.7641
boost_factor=1.0081
reference_quality=0.505
history_matches=43
history_shrink=0.1042 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0090) | blend_weight=0.009
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League | saves: 2.9034 -> 2.8817 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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, Florian Wirtz', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 2.0359} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.51 (squad xG sum 1.2450, xG scale 1.2161, xA scale 1.2161, team xA 1.16 = 0.77 x lambda) | scoreline_reset=true
team_lambda=1.514
squad_xg_sum=1.245
squad_xa_sum=0.955
team_expected_assists=1.1614
team_xa_to_xg_ratio=0.7671 | shots_faced: 19.3 -> 21.4 expected_saves: 4.72 -> 5.23 high_pressure_saves: 1.63 -> 1.8 | 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.0
scorer_weight=0.0
squad_weight_total=1.6849 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by 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.246 | - |
|
| Ferdi Kadıoğlu | D | 87 | 0 | 0.06 | 0.05 | ok | 1 | 0.8 | 6.8 | 55.9 | 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.0092, quality 0.786) | market_value_eur=41000000
quality_factor=0.7859
boost_factor=1.0092
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': '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.51 (squad xG sum 1.2450, xG scale 1.2161, xA scale 1.2161, team xA 1.16 = 0.77 x lambda) | scoreline_reset=true
team_lambda=1.514
squad_xg_sum=1.245
squad_xa_sum=0.955
team_expected_assists=1.1614
team_xa_to_xg_ratio=0.7671 | expected_goals: 0.0453 -> 0.0551 expected_assists: 0.0816 -> 0.0992 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 15 by projected rating, fifa_overall 80.0) | match_squad_rank=15
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0536
goal_rate=0.042
scorer_weight=0.0532 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0944
assist_rate=0.0
provider_weight=0.0794 | - |
|
| Lewis Dunk | D | 90 | 0 | 0.06 | 0.04 | 37% | 1 | 0.6 | 7.3 | 52.7 | 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.445) | market_value_eur=3600000
quality_factor=0.4449
boost_factor=0.9979
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=1.0
prior_reliability=0.1333
competition=Premier League | fouls: 0.6454 -> 0.6542 totalCross: 0.2445 -> 0.2523 totalShots: 0.5983 -> 0.5921 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Bradley Barcola', '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.51 (squad xG sum 1.2450, xG scale 1.2161, xA scale 1.2161, team xA 1.16 = 0.77 x lambda) | scoreline_reset=true
team_lambda=1.514
squad_xg_sum=1.245
squad_xa_sum=0.955
team_expected_assists=1.1614
team_xa_to_xg_ratio=0.7671 | expected_goals: 0.0486 -> 0.0591 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 77.0) | match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0574
goal_rate=0.2107
scorer_weight=0.0739 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0245
assist_rate=0.0
provider_weight=0.0198 | - |
|
| Charalampos Kostoulas | F | 81 | 1 | 0.31 | 0.11 | 187% | 2 | 0.9 | 6.9 | 41.8 | 26 | 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.0141, quality 0.796) | market_value_eur=43000000
quality_factor=0.7957
boost_factor=1.0141
reference_quality=0.505
history_matches=26
history_shrink=0.1613 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0084) | blend_weight=0.0084
history_matches=26
season_overlap_discount=1.0
per90_to_match_factor=0.8962
prior_reliability=0.08
competition=Premier League | wasFouled: 1.4367 -> 1.4247 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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érémy Jacquet, Ronald Araújo', '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.9464, 'skill_edge': -0.0125, 'height_edge': -0.024, 'attacker_skill': 0.7957, 'defender_skill': 0.8234, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Jérémy Jacquet', 'market_value': 67000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8886}, {'player': 'Ronald Araújo', 'market_value': 27000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7581}], 'xg_override': 0.2553} | totalShots: 2.2449 -> 2.1246 shotOffTarget: 1.4144 -> 1.3386 onTargetScoringAttempt: 0.8296 -> 0.7851 bigChanceMissed: 0.6424 -> 0.608 expectedGoalsOnTarget: 0.3567 -> 0.3376 goals: 0.328 -> 0.3104 expectedGoals: 0.2698 -> 0.2553 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.51 (squad xG sum 1.2450, xG scale 1.2161, xA scale 1.2161, team xA 1.16 = 0.77 x lambda) | scoreline_reset=true
team_lambda=1.514
squad_xg_sum=1.245
squad_xa_sum=0.955
team_expected_assists=1.1614
team_xa_to_xg_ratio=0.7671 | expected_goals: 0.2553 -> 0.3106 expected_assists: 0.0671 -> 0.0816 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 73.0) | match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.267
goal_rate=0.3104
scorer_weight=0.3667 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by 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.3496
provider_weight=0.102 | - |
|
| Maxim De Cuyper | D | 80 | 0 | 0.19 | 0.11 | 79% | 1 | 0.6 | 6.8 | 48.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.0077, quality 0.710) | market_value_eur=29000000
quality_factor=0.71
boost_factor=1.0077
reference_quality=0.505
history_matches=35
history_shrink=0.125 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0103) | blend_weight=0.0103
history_matches=35
season_overlap_discount=1.0
per90_to_match_factor=0.8906
prior_reliability=0.1267
competition=Premier League | totalShots: 0.7885 -> 0.805 totalCross: 4.7796 -> 4.7931 wasFouled: 0.8781 -> 0.8691 fouls: 1.0719 -> 1.0802 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Cody Gakpo', '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.51 (squad xG sum 1.2450, xG scale 1.2161, xA scale 1.2161, team xA 1.16 = 0.77 x lambda) | scoreline_reset=true
team_lambda=1.514
squad_xg_sum=1.245
squad_xa_sum=0.955
team_expected_assists=1.1614
team_xa_to_xg_ratio=0.7671 | expected_goals: 0.1548 -> 0.1883 expected_assists: 0.2068 -> 0.2515 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 78.0) | match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1716
goal_rate=0.0984
scorer_weight=0.1506 | - | integer_assist_projection | Team scoreline allocation: 1 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.2224
assist_rate=0.3407
provider_weight=0.3144 | - |
|
| Yasin Ayari | M | 86 | 0 | 0.12 | 0.05 | 157% | 1 | 0.7 | 6.8 | 48.0 | 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.0111, quality 0.786) | market_value_eur=41000000
quality_factor=0.7859
boost_factor=1.0111
reference_quality=0.505
history_matches=33
history_shrink=0.1316 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0040) | blend_weight=0.004
history_matches=33
season_overlap_discount=1.0
per90_to_match_factor=0.9579
prior_reliability=0.0467
competition=Premier League | fouls: 0.6821 -> 0.6903 totalShots: 1.3266 -> 1.3322 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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': 'CDM vs CDM', 'duel_win_rate': 0.372, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9291, 'skill_edge': -0.0322, 'height_edge': -0.016, 'attacker_skill': 0.8177, 'defender_skill': 0.8893, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Alexis Mac Allister', 'market_value': 77000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8893}], 'xg_override': 0.1013} | aerialWon: 0.3138 -> 0.8 totalShots: 1.3322 -> 1.2377 shotOffTarget: 0.9465 -> 0.8794 onTargetScoringAttempt: 0.3786 -> 0.3518 expectedGoalsOnTarget: 0.1718 -> 0.1596 goals: 0.1247 -> 0.1159 expectedGoals: 0.109 -> 0.1013 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.51 (squad xG sum 1.2450, xG scale 1.2161, xA scale 1.2161, team xA 1.16 = 0.77 x lambda) | scoreline_reset=true
team_lambda=1.514
squad_xg_sum=1.245
squad_xa_sum=0.955
team_expected_assists=1.1614
team_xa_to_xg_ratio=0.7671 | expected_goals: 0.1013 -> 0.1232 expected_assists: 0.0529 -> 0.0643 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 79.0) | match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1159
goal_rate=0.1159
scorer_weight=0.1351 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0623
assist_rate=0.0557
provider_weight=0.066 | - |
|
| Diego Gómez | M | 80 | 0 | 0.20 | 0.13 | 52% | 2 | 1.3 | 6.9 | 54.2 | 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.0081, quality 0.732) | market_value_eur=32000000
quality_factor=0.732
boost_factor=1.0081
reference_quality=0.505
history_matches=37
history_shrink=0.119 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0098) | blend_weight=0.0098
history_matches=37
season_overlap_discount=1.0
per90_to_match_factor=0.8926
prior_reliability=0.1267
competition=Premier League | totalShots: 1.6376 -> 1.6575 onTargetScoringAttempt: 0.5919 -> 0.5996 fouls: 1.5332 -> 1.5274 wonTackle: 1.3479 -> 1.3531 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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': 'CDM vs CDM', 'duel_win_rate': 0.401, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9726, 'skill_edge': -0.0547, 'height_edge': 0.036, 'attacker_skill': 0.7679, 'defender_skill': 0.8893, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Alexis Mac Allister', 'market_value': 77000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8893}], 'xg_override': 0.1663} | aerialWon: 3.0058 -> 1.2 totalShots: 1.6575 -> 1.6121 shotOffTarget: 1.0457 -> 1.017 onTargetScoringAttempt: 0.5996 -> 0.5832 bigChanceMissed: 0.2625 -> 0.2553 goals: 0.2282 -> 0.2219 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.51 (squad xG sum 1.2450, xG scale 1.2161, xA scale 1.2161, team xA 1.16 = 0.77 x lambda) | scoreline_reset=true
team_lambda=1.514
squad_xg_sum=1.245
squad_xa_sum=0.955
team_expected_assists=1.1614
team_xa_to_xg_ratio=0.7671 | expected_goals: 0.1663 -> 0.2022 expected_assists: 0.1025 -> 0.1247 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 78.0) | match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1831
goal_rate=0.2219
scorer_weight=0.2527 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1172
assist_rate=0.1297
provider_weight=0.1469 | - |
|
| Chema Andrés | M | 86 | 0 | 0.14 | 0.06 | 120% | 1 | 0.4 | 6.8 | 18.1 | 8 | 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.0331, quality 0.660) | market_value_eur=23000000
quality_factor=0.6595
boost_factor=1.0331
reference_quality=0.505
history_matches=2
history_shrink=0.7143 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Alexis Mac Allister, Ryan Gravenberch', 'matchup_zone': 'Attacking Mid vs Double Pivot — Tight Space Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.8956, 'skill_edge': -0.099, 'height_edge': 0.028, 'attacker_skill': 0.6704, 'defender_skill': 0.8904, 'attacker_role': 'CAM', 'attacker_mv_price_index': 0.95, 'defender_adjusted_parts': [{'player': 'Alexis Mac Allister', 'market_value': 77000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8893}, {'player': 'Ryan Gravenberch', 'market_value': 81000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8915}], 'xg_override': 0.1174} | aerialWon: 3.2669 -> 1.3 totalShots: 1.5196 -> 1.361 shotOffTarget: 1.0872 -> 0.9737 expectedGoalsOnTarget: 0.5189 -> 0.4647 onTargetScoringAttempt: 0.4324 -> 0.3873 goals: 0.143 -> 0.1281 expectedGoals: 0.1311 -> 0.1174 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.51 (squad xG sum 1.2450, xG scale 1.2161, xA scale 1.2161, team xA 1.16 = 0.77 x lambda) | scoreline_reset=true
team_lambda=1.514
squad_xg_sum=1.245
squad_xa_sum=0.955
team_expected_assists=1.1614
team_xa_to_xg_ratio=0.7671 | expected_goals: 0.1174 -> 0.1428 expected_assists: 0.0705 -> 0.0857 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 86.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=0
goal_probability=0.1331
goal_rate=0.1281
scorer_weight=0.1519 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0821
assist_rate=0.0657
provider_weight=0.0823 | - |
|
| Pascal Groß | M | 90 | 0 | 0.22 | 0.11 | 94% | 2 | 1.0 | 7.3 | 59.2 | 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.9965, quality 0.437) | market_value_eur=2300000
quality_factor=0.4374
boost_factor=0.9965
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.9962
prior_reliability=0.1333
competition=Premier League | totalCross: 6.5603 -> 6.5962 totalShots: 1.6641 -> 1.6467 interceptionWon: 0.7503 -> 0.7391 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.328, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.776, 'skill_edge': -0.0964, 'height_edge': -0.056, 'attacker_skill': 0.4374, 'defender_skill': 0.6516, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Virgil van Dijk', 'market_value': 15500000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.6516}], 'xg_override': 0.1779} | aerialWon: 0.6905 -> 1.1 totalShots: 1.6617 -> 1.2895 shotOffTarget: 1.0085 -> 0.7826 onTargetScoringAttempt: 0.6532 -> 0.5069 goals: 0.289 -> 0.2243 expectedGoals: 0.2292 -> 0.1779 expectedGoalsOnTarget: 0.1744 -> 0.1353 bigChanceMissed: 0.116 -> 0.09 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.51 (squad xG sum 1.2450, xG scale 1.2161, xA scale 1.2161, team xA 1.16 = 0.77 x lambda) | scoreline_reset=true
team_lambda=1.514
squad_xg_sum=1.245
squad_xa_sum=0.955
team_expected_assists=1.1614
team_xa_to_xg_ratio=0.7671 | expected_goals: 0.1779 -> 0.2163 expected_assists: 0.1881 -> 0.2287 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 79.0) | match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1945
goal_rate=0.2243
scorer_weight=0.2603 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.2044
assist_rate=0.2354
provider_weight=0.2741 | - |
|
| Olivier Boscagli | D | 88 | 0 | 0.01 | 0.01 | 94% | 1 | 0.2 | 7.0 | 35.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.0076, quality 0.616) | market_value_eur=18500000
quality_factor=0.6161
boost_factor=1.0076
reference_quality=0.505
history_matches=17
history_shrink=0.2273 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0197) | blend_weight=0.0197
history_matches=17
season_overlap_discount=1.0
per90_to_match_factor=0.9729
prior_reliability=0.1333
competition=Premier League | fouls: 1.3317 -> 1.3438 totalCross: 2.958 -> 2.9476 wonTackle: 0.9656 -> 0.9562 onTargetScoringAttempt: 0.1035 -> 0.111 interceptionWon: 1.1302 -> 1.1367 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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 Wirtz', '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.51 (squad xG sum 1.2450, xG scale 1.2161, xA scale 1.2161, team xA 1.16 = 0.77 x lambda) | scoreline_reset=true
team_lambda=1.514
squad_xg_sum=1.245
squad_xa_sum=0.955
team_expected_assists=1.1614
team_xa_to_xg_ratio=0.7671 | expected_assists: 0.0781 -> 0.095 | 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.0102
goal_rate=0.0
scorer_weight=0.0088 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0906
assist_rate=0.0276
provider_weight=0.076 | - |
|
| Luka Vušković | D | 88 | 0 | 0.11 | 0.05 | 139% | 1 | 0.8 | 7.1 | 37.5 | 10 | 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.0546, quality 0.869) | market_value_eur=69000000
quality_factor=0.8692
boost_factor=1.0546
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.9782
prior_reliability=0.1333
competition=Premier League | wasFouled: 1.5058 -> 1.4406 interceptionWon: 1.0456 -> 1.0003 totalShots: 0.9106 -> 0.9559 fouls: 1.666 -> 1.6362 totalCross: 0.4109 -> 0.3931 wonTackle: 0.776 -> 0.7636 goals: 0.2054 -> 0.1965 onTargetScoringAttempt: 0.2054 -> 0.1965 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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.51 (squad xG sum 1.2450, xG scale 1.2161, xA scale 1.2161, team xA 1.16 = 0.77 x lambda) | scoreline_reset=true
team_lambda=1.514
squad_xg_sum=1.245
squad_xa_sum=0.955
team_expected_assists=1.1614
team_xa_to_xg_ratio=0.7671 | expected_goals: 0.0899 -> 0.1093 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 81.0) | match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1035
goal_rate=0.1965
scorer_weight=0.1366 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0162
assist_rate=0.0
provider_weight=0.013 | - |
|
| Team totals | 1 | 1.51 | | 15 | | 7.0 | | |
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 |
| Jack Hinshelwood | M | 23.2m | 33.2% | Market-value substitute prior |
| Georginio Rutter | M | 23.1m | 33.0% | Market-value substitute prior |
| Yankuba Minteh | F | 26.8m | 62.9% | Market-value substitute prior |
Antagonist / tactical summary
Home midfield dominates with ~51% possession expected (Florian Wirtz vs Yasin Ayari). Total antagonist xG — Home: 1.24, Away: 0.82. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Midfield — possession 51.4% / 48.6%, dominance ratio 0.56, key duel: Florian Wirtz vs Yasin Ayari
Florian Wirtz xG 0.24Alexander Isak xG 0.45Cody Gakpo xG 0.19Pascal Groß xG 0.18Chema Andrés xG 0.12Charalampos Kostoulas xG 0.26
Summary
Antagonist matchup analysis for Liverpool vs Brighton. Most likely scoreline: 2-1. Lambdas derived from 6 home and 5 away individual player duels. Head-to-head: Liverpool 5W-1D-4L vs Brighton over 10 meetings.
Tactical parity between 4-2-3-1 and 4-2-3-1. Match outcome driven primarily by individual player quality. Home midfield dominates with ~51% possession expected (Florian Wirtz vs Yasin Ayari). Total antagonist xG — Home: 1.24, Away: 0.82. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Man Utd vs Bournemouth
Premier League · 20261025 · 4-2-3-1 vs 4-2-3-1
Predicted 1-0Winner: Man UtdWinning H 1-0 (9.7%)Winning A 0-1 (7.0%)Confidence 0.73λ home/away 1.64 / 1.19Most-likely P 9.7%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset TracingAntagonist + XGBoost match analysis for Man Utd 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.613, Away 1.202). Final calibrated Poisson lambdas: Home 1.636, Away 1.185 (most likely score 1-0).
Home Starters 11/11 XGBoost (9 FBref) Away Starters 11/11 XGBoost (10 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.61 / 1.20 Final λ (H/A) 1.64 / 1.19
FBref Team Priors: Manchester United (Gls/90: 2.0, GA/90: 2.5 → E[λ]: 1.379) vs Bournemouth (Gls/90: 1.0, GA/90: 1.0 → E[λ]: 1.724) | Blend Weight: 0.192
Modeling Pipeline Stages (5 layers)
- 1. XGBoost player regressions for volume & event rates with market-value quality scaling
- 2. Multi-source prior blending (FBref 2026-2027 tables + Sofascore season history)
- 3. Antagonist formation duel matrix resolving 1v1 and zonal matchups
- 4. Team-level prior calibration (FBref possession and attack/defense efficiencies)
- 5. Bivariate Poisson matrix with Dixon-Coles low-score correction
Standing & form context
| Metric | Man Utd | Bournemouth |
|---|
| League position | 13.00 | 15.00 |
| Points per game | 1.16 | 1.09 |
| Attack index | 1.05 | 0.91 |
| Defense (concede) index | 1.05 | 1.05 |
| Form multiplier | 1.00 | 0.99 |
| Standing λ multiplier | 1.04 | 0.98 |
Lambda decomposition (how the goal rates were built)
| Stage | Man Utd λ | Bournemouth λ |
|---|
| FBref Squad Prior E[λ] (weight 0.192) | 1.379 | 1.724 |
| Pre-competitive-floor | 1.636 | 1.185 |
| Pre-calibration (Micro-duels) | 1.613 | 1.202 |
| Final λ | 1.636 | 1.185 |
competition calibration scale 1.0competition observed total goals 0.0quality gap applied Truemismatch score pressure applied Falsecompetitive underdog floor applied Falsestage discount 1.0
Scoreline distribution & markets
| Top 5 scorelines | P |
|---|
| 1-1 | 11.6% |
| 1-0 | 9.7% |
| 2-1 | 9.4% |
| 2-0 | 8.0% |
| 0-1 | 7.0% |
| Home win | 47.8% |
| Draw | 24.6% |
| Away win | 27.6% |
| Over 2.5 | 53.5% |
| BTTS yes | 56.0% |
Pregame fair line — favorite Man Utd (47.8%), fair total 2.82, fair spread 0.45
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 |
|---|
| Bryan Mbeumo | F | 85 | 0 | 0.44 | 0.40 | ok | 3 | 2.2 | 7.0 | 56.6 | 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.0129, quality 0.875) | market_value_eur=73000000
quality_factor=0.8747
boost_factor=1.0129
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.9416
prior_reliability=0.1333
competition=Premier League | totalCross: 3.8663 -> 3.8985 totalShots: 2.375 -> 2.3938 interceptionWon: 0.5957 -> 0.5897 onTargetScoringAttempt: 0.9015 -> 0.9066 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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, James Hill', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.281, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.1183, 'skill_edge': 0.1165, 'height_edge': -0.036, 'attacker_skill': 0.8747, 'defender_skill': 0.6158, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Adam Smith', 'market_value': 310000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'James Hill', 'market_value': 32000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7941}], 'xg_override': 0.3851} | totalShots: 2.3938 -> 2.677 shotOffTarget: 1.4735 -> 1.6478 onTargetScoringAttempt: 0.9066 -> 1.0139 bigChanceMissed: 0.663 -> 0.7414 expectedGoalsOnTarget: 0.4235 -> 0.4736 expectedGoals: 0.3444 -> 0.3851 goals: 0.3109 -> 0.3477 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.64 (squad xG sum 1.4417, xG scale 1.1348, xA scale 1.1348, team xA 1.12 = 0.68 x lambda) | scoreline_reset=true
team_lambda=1.636
squad_xg_sum=1.4417
squad_xa_sum=0.9865
team_expected_assists=1.1195
team_xa_to_xg_ratio=0.6843 | expected_goals: 0.3851 -> 0.4369 expected_assists: 0.1593 -> 0.1808 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 84.0) | match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_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.354
goal_rate=0.3477
scorer_weight=0.3993 | - | integer_assist_projection | Team scoreline allocation: 1 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.1654
assist_rate=0.0301
provider_weight=0.1446 | - |
|
| Bruno Fernandes | M | 89 | 1 | 0.33 | 0.23 | 44% | 3 | 2.1 | 7.4 | 62.7 | 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.0076, quality 0.732) | market_value_eur=32000000
quality_factor=0.732
boost_factor=1.0076
reference_quality=0.505
history_matches=40
history_shrink=0.1111 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0096) | blend_weight=0.0096
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=0.9943
prior_reliability=0.1333
competition=Premier League | totalShots: 2.5926 -> 2.6203 onTargetScoringAttempt: 0.8035 -> 0.8149 goals: 0.3959 -> 0.4064 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Adrien Truffert', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.455, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9637, 'skill_edge': -0.0367, 'height_edge': 0.012, 'attacker_skill': 0.732, 'defender_skill': 0.8135, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Adrien Truffert', 'market_value': 33000000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.8135}], 'xg_override': 0.2888} | aerialWon: 0.3391 -> 1.0 totalShots: 2.6203 -> 2.5252 shotOffTarget: 1.7891 -> 1.7242 onTargetScoringAttempt: 0.8149 -> 0.7853 goals: 0.4064 -> 0.3916 expectedGoalsOnTarget: 0.3032 -> 0.2922 expectedGoals: 0.2997 -> 0.2888 bigChanceMissed: 0.1948 -> 0.1877 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.64 (squad xG sum 1.4417, xG scale 1.1348, xA scale 1.1348, team xA 1.12 = 0.68 x lambda) | scoreline_reset=true
team_lambda=1.636
squad_xg_sum=1.4417
squad_xa_sum=0.9865
team_expected_assists=1.1195
team_xa_to_xg_ratio=0.6843 | expected_goals: 0.2888 -> 0.3277 expected_assists: 0.2536 -> 0.2877 | 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=1
goal_probability=0.2794
goal_rate=0.3916
scorer_weight=0.4096 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.25
assist_rate=0.3681
provider_weight=0.3596 | - |
|
| Youri Tielemans | M | 84 | 0 | 0.08 | 0.05 | 52% | 1 | 0.8 | 7.2 | 56.3 | 22 | 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.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.0105) | blend_weight=0.0105
history_matches=30
season_overlap_discount=1.0
per90_to_match_factor=0.9312
prior_reliability=0.1133
competition=Premier League | wasFouled: 1.7241 -> 1.7405 totalShots: 1.005 -> 1.0171 totalCross: 1.4984 -> 1.4884 wonTackle: 1.3753 -> 1.3666 onTargetScoringAttempt: 0.3049 -> 0.313 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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, Tyler Adams', 'matchup_zone': 'Attacking Mid vs Double Pivot — Tight Space Battle', 'duel_win_rate': 0.316, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.111, 'skill_edge': 0.0735, 'height_edge': 0.002, 'attacker_skill': 0.8058, 'defender_skill': 0.6424, 'attacker_role': 'CAM', 'attacker_mv_price_index': 0.95, 'defender_adjusted_parts': [{'player': 'Ryan Christie', 'market_value': 8600000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.5238}, {'player': 'Tyler Adams', 'market_value': 31000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.761}], 'xg_override': 0.0681} | totalShots: 1.0171 -> 1.13 shotOffTarget: 0.7 -> 0.7777 onTargetScoringAttempt: 0.313 -> 0.3477 aerialWon: 0.9806 -> 1.0 bigChanceMissed: 0.124 -> 0.1378 goals: 0.088 -> 0.0978 expectedGoals: 0.0613 -> 0.0681 expectedGoalsOnTarget: 0.0511 -> 0.0568 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.64 (squad xG sum 1.4417, xG scale 1.1348, xA scale 1.1348, team xA 1.12 = 0.68 x lambda) | scoreline_reset=true
team_lambda=1.636
squad_xg_sum=1.4417
squad_xa_sum=0.9865
team_expected_assists=1.1195
team_xa_to_xg_ratio=0.6843 | expected_goals: 0.0681 -> 0.0773 expected_assists: 0.1098 -> 0.1246 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 85.0) | match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0744
goal_rate=0.0978
scorer_weight=0.0966 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1172
assist_rate=0.0815
provider_weight=0.1025 | - |
|
| Amad Diallo | F | 80 | 0 | 0.14 | 0.07 | 97% | 2 | 0.9 | 6.9 | 42.3 | 27 | 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.0120, quality 0.800) | market_value_eur=44000000
quality_factor=0.8002
boost_factor=1.012
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': 'Adam Smith, James Hill', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.247, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.0691, 'skill_edge': 0.083, 'height_edge': -0.036, 'attacker_skill': 0.8002, 'defender_skill': 0.6158, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Adam Smith', 'market_value': 310000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'James Hill', 'market_value': 32000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7941}], 'xg_override': 0.1208} | totalShots: 1.5386 -> 1.6449 shotOffTarget: 0.9659 -> 1.0326 onTargetScoringAttempt: 0.5727 -> 0.6123 bigChanceMissed: 0.2228 -> 0.2382 expectedGoalsOnTarget: 0.1822 -> 0.1948 goals: 0.1724 -> 0.1843 expectedGoals: 0.113 -> 0.1208 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.64 (squad xG sum 1.4417, xG scale 1.1348, xA scale 1.1348, team xA 1.12 = 0.68 x lambda) | scoreline_reset=true
team_lambda=1.636
squad_xg_sum=1.4417
squad_xa_sum=0.9865
team_expected_assists=1.1195
team_xa_to_xg_ratio=0.6843 | expected_goals: 0.1208 -> 0.1371 expected_assists: 0.0973 -> 0.1104 | 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_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.1281
goal_rate=0.1843
scorer_weight=0.1714 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1045
assist_rate=0.167
provider_weight=0.138 | - |
|
| Carlos Baleba | M | 74 | 0 | 0.10 | 0.02 | 286% | 1 | 0.5 | 6.8 | 43.1 | 22 | 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.0147, quality 0.859) | market_value_eur=63000000
quality_factor=0.8589
boost_factor=1.0147
reference_quality=0.505
history_matches=31
history_shrink=0.1389 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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': 'CDM vs CDM', 'duel_win_rate': 0.582, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.2388, 'skill_edge': 0.1585, 'height_edge': 0.004, 'attacker_skill': 0.876, 'defender_skill': 0.5238, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Ryan Christie', 'market_value': 8600000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.5238}], 'xg_override': 0.084} | aerialWon: 1.7016 -> 1.0 totalShots: 0.8999 -> 1.1148 shotOffTarget: 0.6192 -> 0.7671 onTargetScoringAttempt: 0.2807 -> 0.3477 bigChanceMissed: 0.088 -> 0.109 expectedGoals: 0.0678 -> 0.084 goals: 0.0665 -> 0.0824 expectedGoalsOnTarget: 0.0266 -> 0.033 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.64 (squad xG sum 1.4417, xG scale 1.1348, xA scale 1.1348, team xA 1.12 = 0.68 x lambda) | scoreline_reset=true
team_lambda=1.636
squad_xg_sum=1.4417
squad_xa_sum=0.9865
team_expected_assists=1.1195
team_xa_to_xg_ratio=0.6843 | expected_goals: 0.084 -> 0.0953 expected_assists: 0.0468 -> 0.0531 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 80.0) | match_squad_rank=12
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0909
goal_rate=0.0824
scorer_weight=0.0942 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0517
assist_rate=0.0436
provider_weight=0.0513 | - |
|
| Andrey Santos | M | 75 | 0 | 0.07 | 0.04 | 83% | 1 | 0.1 | 6.9 | 40.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.0127, quality 0.800) | market_value_eur=44000000
quality_factor=0.8002
boost_factor=1.0127
reference_quality=0.505
history_matches=30
history_shrink=0.1429 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0056) | blend_weight=0.0056
history_matches=30
season_overlap_discount=1.0
per90_to_match_factor=0.8348
prior_reliability=0.06
competition=Premier League | fouls: 0.6114 -> 0.6183 interceptionWon: 0.9241 -> 0.919 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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': 'CDM vs CDM', 'duel_win_rate': 0.566, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.2144, 'skill_edge': 0.1378, 'height_edge': 0.008, 'attacker_skill': 0.8301, 'defender_skill': 0.5238, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Ryan Christie', 'market_value': 8600000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.5238}], 'xg_override': 0.0628} | aerialWon: 0.9116 -> 1.1 totalShots: 0.5239 -> 0.6362 shotOffTarget: 0.37 -> 0.4493 onTargetScoringAttempt: 0.1539 -> 0.1869 expectedGoalsOnTarget: 0.1175 -> 0.1427 goals: 0.0709 -> 0.0861 bigChanceMissed: 0.0633 -> 0.0769 expectedGoals: 0.0517 -> 0.0628 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.64 (squad xG sum 1.4417, xG scale 1.1348, xA scale 1.1348, team xA 1.12 = 0.68 x lambda) | scoreline_reset=true
team_lambda=1.636
squad_xg_sum=1.4417
squad_xa_sum=0.9865
team_expected_assists=1.1195
team_xa_to_xg_ratio=0.6843 | expected_goals: 0.0628 -> 0.0713 expected_assists: 0.0472 -> 0.0536 | 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.0688
goal_rate=0.0861
scorer_weight=0.086 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0522
assist_rate=0.0422
provider_weight=0.0508 | - |
|
| Diogo Dalot | D | 88 | 0 | 0.08 | 0.04 | 114% | 1 | 0.8 | 6.8 | 53.2 | 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 1.0067, quality 0.702) | market_value_eur=28000000
quality_factor=0.7022
boost_factor=1.0067
reference_quality=0.505
history_matches=39
history_shrink=0.1136 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0044) | blend_weight=0.0044
history_matches=39
season_overlap_discount=1.0
per90_to_match_factor=0.9731
prior_reliability=0.06
competition=Premier League | totalCross: 1.8429 -> 1.8587 totalShots: 0.9954 -> 1.0095 interceptionWon: 1.0008 -> 1.0059 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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.64 (squad xG sum 1.4417, xG scale 1.1348, xA scale 1.1348, team xA 1.12 = 0.68 x lambda) | scoreline_reset=true
team_lambda=1.636
squad_xg_sum=1.4417
squad_xa_sum=0.9865
team_expected_assists=1.1195
team_xa_to_xg_ratio=0.6843 | expected_goals: 0.0695 -> 0.0789 expected_assists: 0.0658 -> 0.0747 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 15 by projected rating, fifa_overall 78.0) | match_squad_rank=15
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0759
goal_rate=0.003
scorer_weight=0.0631 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.072
assist_rate=0.0229
provider_weight=0.0598 | - |
|
| Harry Maguire | D | 89 | 0 | 0.05 | 0.04 | ok | 1 | 0.6 | 6.9 | 53.5 | 26 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0000, quality 0.506) | market_value_eur=8600000
quality_factor=0.5059
boost_factor=1.0
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.9894
prior_reliability=0.1333
competition=Premier League | totalShots: 0.7606 -> 0.7701 wonTackle: 0.7133 -> 0.7039 interceptionWon: 1.0207 -> 1.0268 totalCross: 0.5972 -> 0.6023 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Marcus Tavernier', 'matchup_zone': 'Shape fallback'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.64 (squad xG sum 1.4417, xG scale 1.1348, xA scale 1.1348, team xA 1.12 = 0.68 x lambda) | scoreline_reset=true
team_lambda=1.636
squad_xg_sum=1.4417
squad_xa_sum=0.9865
team_expected_assists=1.1195
team_xa_to_xg_ratio=0.6843 | expected_goals: 0.0437 -> 0.0496 expected_assists: 0.0582 -> 0.066 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 82.0) | match_squad_rank=11
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0484
goal_rate=0.0052
scorer_weight=0.0397 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by 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.0386
provider_weight=0.054 | - |
|
| Ayden Heaven | D | 85 | 0 | 0.06 | 0.01 | 310% | 1 | 0.1 | 6.8 | 19.5 | 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 1.0148, quality 0.732) | market_value_eur=32000000
quality_factor=0.732
boost_factor=1.0148
reference_quality=0.505
history_matches=18
history_shrink=0.2174 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0094) | blend_weight=0.0094
history_matches=18
season_overlap_discount=1.0
per90_to_match_factor=0.9459
prior_reliability=0.0667
competition=Premier League | totalShots: 0.4959 -> 0.5091 wonTackle: 0.8473 -> 0.8393 interceptionWon: 0.8007 -> 0.7932 wasFouled: 1.1902 -> 1.1968 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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.64 (squad xG sum 1.4417, xG scale 1.1348, xA scale 1.1348, team xA 1.12 = 0.68 x lambda) | scoreline_reset=true
team_lambda=1.636
squad_xg_sum=1.4417
squad_xa_sum=0.9865
team_expected_assists=1.1195
team_xa_to_xg_ratio=0.6843 | expected_goals: 0.0505 -> 0.0573 | 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: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0557
goal_rate=0.0
scorer_weight=0.0458 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0152
assist_rate=0.0
provider_weight=0.0122 | - |
|
| Leny Yoro | D | 85 | 0 | 0.12 | 0.04 | 222% | 0 | 0.2 | 6.6 | 31.3 | 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 1.0110, quality 0.791) | market_value_eur=42000000
quality_factor=0.7909
boost_factor=1.011
reference_quality=0.505
history_matches=34
history_shrink=0.1282 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0011) | blend_weight=0.0011
history_matches=34
season_overlap_discount=1.0
per90_to_match_factor=0.9486
prior_reliability=0.0133
competition=Premier League | interceptionWon: 1.24 -> 1.2491 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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.64 (squad xG sum 1.4417, xG scale 1.1348, xA scale 1.1348, team xA 1.12 = 0.68 x lambda) | scoreline_reset=true
team_lambda=1.636
squad_xg_sum=1.4417
squad_xa_sum=0.9865
team_expected_assists=1.1195
team_xa_to_xg_ratio=0.6843 | expected_goals: 0.1066 -> 0.121 expected_assists: 0.0539 -> 0.0612 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 17 by projected rating, fifa_overall 78.0) | match_squad_rank=17
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.114
goal_rate=0.0
scorer_weight=0.0968 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0594
assist_rate=0.0
provider_weight=0.049 | - |
|
| Senne Lammens | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 7.0 | 59.0 | 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.0095, quality 0.770) | market_value_eur=38000000
quality_factor=0.7699
boost_factor=1.0095
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=1.0
prior_reliability=0.1333
competition=Premier League | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Rayan, Marcus Tavernier', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.2021} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.64 (squad xG sum 1.4417, xG scale 1.1348, xA scale 1.1348, team xA 1.12 = 0.68 x lambda) | scoreline_reset=true
team_lambda=1.636
squad_xg_sum=1.4417
squad_xa_sum=0.9865
team_expected_assists=1.1195
team_xa_to_xg_ratio=0.6843 | shots_faced: 11.4 -> 11.3 expected_saves: 2.79 -> 2.77 high_pressure_saves: 0.96 -> 0.95 | 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.7147 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by 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.1211 | - |
|
| Team totals | 1 | 1.64 | | 16 | | 6.9 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| André Onana | G | 4.7m | 12.3% | Market-value substitute prior |
| Lisandro Martínez | D | 15.1m | 24.8% | Market-value substitute prior |
| Matthijs de Ligt | D | 14.7m | 35.2% | Market-value substitute prior |
| Kobbie Mainoo | M | 23.9m | 53.5% | Market-value substitute prior |
| Patrick Dorgu | M | 16.5m | 52.4% | Market-value substitute prior |
| Matheus Cunha | F | 27.1m | 37.0% | 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 |
|---|
| James Hill | D | 90 | 0 | 0.01 | 0.03 | 43% | 0 | 0.3 | 7.0 | 58.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 1.0087, quality 0.732) | market_value_eur=32000000
quality_factor=0.732
boost_factor=1.0087
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.9991
prior_reliability=0.1333
competition=Premier League | fouls: 0.9075 -> 0.9141 totalShots: 0.4807 -> 0.4754 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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.19 (squad xG sum 1.4966, xG scale 0.7918, xA scale 0.8381, team xA 0.77 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.185
squad_xg_sum=1.4966
squad_xa_sum=0.919
team_expected_assists=0.7703
team_xa_to_xg_ratio=0.65 | expected_assists: 0.0899 -> 0.0753 | 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 skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0145
goal_rate=0.0
scorer_weight=0.0117 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0725
assist_rate=0.0235
provider_weight=0.0602 | - |
|
| Adam Smith | D | 84 | 0 | 0.00 | 0.00 | 153% | 0 | 0.0 | 6.6 | 34.2 | 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.9968, quality 0.437) | market_value_eur=310000
quality_factor=0.4374
boost_factor=0.9968
reference_quality=0.505
history_matches=27
history_shrink=0.1562 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0135) | blend_weight=0.0135
history_matches=27
season_overlap_discount=1.0
per90_to_match_factor=0.93
prior_reliability=0.1333
competition=Premier League | interceptionWon: 0.8047 -> 0.8127 fouls: 1.3826 -> 1.3765 wonTackle: 0.8922 -> 0.8864 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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.19 (squad xG sum 1.4966, xG scale 0.7918, xA scale 0.8381, team xA 0.77 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.185
squad_xg_sum=1.4966
squad_xa_sum=0.919
team_expected_assists=0.7703
team_xa_to_xg_ratio=0.65 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 18 by projected rating, fifa_overall 73.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.0013
goal_rate=0.0
scorer_weight=0.0013 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0161
assist_rate=0.0715
provider_weight=0.0202 | - |
|
| Đorđe Petrović | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 6.9 | 57.7 | 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.0064, quality 0.710) | market_value_eur=29000000
quality_factor=0.71
boost_factor=1.0064
reference_quality=0.505
history_matches=43
history_shrink=0.1042 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0090) | blend_weight=0.009
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League | saves: 2.8419 -> 2.8569 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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.6126} | - | 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.19 (squad xG sum 1.4966, xG scale 0.7918, xA scale 0.8381, team xA 0.77 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.185
squad_xg_sum=1.4966
squad_xa_sum=0.919
team_expected_assists=0.7703
team_xa_to_xg_ratio=0.65 | shots_faced: 15.3 -> 15.5 expected_saves: 3.74 -> 3.79 high_pressure_saves: 1.29 -> 1.31 | 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 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.1944 | - | 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.7322 | - |
|
| António Silva | D | 90 | 0 | 0.14 | 0.08 | 72% | 1 | 0.4 | 7.0 | 34.9 | 10 | 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.0341, quality 0.732) | market_value_eur=32000000
quality_factor=0.732
boost_factor=1.0341
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=1.0
prior_reliability=0.1333
competition=Premier League | totalShots: 0.8009 -> 0.7879 interceptionWon: 1.2294 -> 1.2195 wonTackle: 0.7933 -> 0.8023 wasFouled: 0.2014 -> 0.1927 onTargetScoringAttempt: 0.2014 -> 0.1927 fouls: 0.6516 -> 0.645 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Bryan Mbeumo', 'matchup_zone': 'Shape fallback'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 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.19 (squad xG sum 1.4966, xG scale 0.7918, xA scale 0.8381, team xA 0.77 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.185
squad_xg_sum=1.4966
squad_xa_sum=0.919
team_expected_assists=0.7703
team_xa_to_xg_ratio=0.65 | expected_goals: 0.1828 -> 0.1447 expected_assists: 0.065 -> 0.0545 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 77.0) | match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.1347
goal_rate=0.0
scorer_weight=0.1158 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.053
assist_rate=0.0
provider_weight=0.0436 | - |
|
| Adrien Truffert | D | 90 | 0 | 0.04 | 0.04 | ok | 1 | 0.4 | 6.9 | 57.3 | 29 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0073, quality 0.739) | market_value_eur=33000000
quality_factor=0.7389
boost_factor=1.0073
reference_quality=0.505
history_matches=43
history_shrink=0.1042 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0090) | blend_weight=0.009
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=0.9994
prior_reliability=0.1333
competition=Premier League | totalCross: 3.9625 -> 3.9493 wonTackle: 1.5036 -> 1.4945 totalShots: 0.7461 -> 0.7394 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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.19 (squad xG sum 1.4966, xG scale 0.7918, xA scale 0.8381, team xA 0.77 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.185
squad_xg_sum=1.4966
squad_xa_sum=0.919
team_expected_assists=0.7703
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0504 -> 0.0399 expected_assists: 0.0834 -> 0.0699 | 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 skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0391
goal_rate=0.0309
scorer_weight=0.0322 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0675
assist_rate=0.1542
provider_weight=0.0874 | - |
|
| Ryan Christie | M | 69 | 0 | 0.07 | 0.06 | ok | 1 | 0.8 | 6.8 | 50.0 | 24 | 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=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': 'Carlos Baleba', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.258, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.7612, 'skill_edge': -0.1585, 'height_edge': -0.004, 'attacker_skill': 0.5238, 'defender_skill': 0.876, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Carlos Baleba', 'market_value': 63000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.876}], 'xg_override': 0.0898} | totalShots: 1.144 -> 0.8708 shotOffTarget: 0.7543 -> 0.5742 aerialWon: 1.1091 -> 1.0 onTargetScoringAttempt: 0.3897 -> 0.2966 bigChanceMissed: 0.3217 -> 0.2449 expectedGoals: 0.118 -> 0.0898 goals: 0.0938 -> 0.0714 expectedGoalsOnTarget: 0.0752 -> 0.0572 | 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.19 (squad xG sum 1.4966, xG scale 0.7918, xA scale 0.8381, team xA 0.77 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.185
squad_xg_sum=1.4966
squad_xa_sum=0.919
team_expected_assists=0.7703
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0898 -> 0.0711 expected_assists: 0.0514 -> 0.0431 | 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
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.0686
goal_rate=0.0714
scorer_weight=0.0617 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0422
assist_rate=0.0734
provider_weight=0.0525 | - |
|
| Evanilson | F | 83 | 0 | 0.16 | 0.24 | 33% | 2 | 1.6 | 6.7 | 54.7 | 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.0076, quality 0.739) | market_value_eur=33000000
quality_factor=0.7389
boost_factor=1.0076
reference_quality=0.505
history_matches=41
history_shrink=0.1087 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0080) | blend_weight=0.008
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=0.919
prior_reliability=0.1133
competition=Premier League | fouls: 1.3764 -> 1.387 totalOffside: 0.9788 -> 0.971 wasFouled: 1.7476 -> 1.7552 interceptionWon: 0.7176 -> 0.7248 goalAssist: 0.3263 -> 0.3323 onTargetScoringAttempt: 0.6987 -> 0.6931 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Ayden Heaven, Leny Yoro', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.8974, 'skill_edge': -0.0358, 'height_edge': -0.034, 'attacker_skill': 0.7389, 'defender_skill': 0.8184, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Ayden Heaven', 'market_value': 32000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7941}, {'player': 'Leny Yoro', 'market_value': 42000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8427}], 'xg_override': 0.204} | totalShots: 1.7227 -> 1.546 shotOffTarget: 1.0248 -> 0.9197 onTargetScoringAttempt: 0.6931 -> 0.622 bigChanceMissed: 0.5293 -> 0.475 expectedGoals: 0.2273 -> 0.204 goals: 0.2228 -> 0.1999 expectedGoalsOnTarget: 0.1545 -> 0.1386 | 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.19 (squad xG sum 1.4966, xG scale 0.7918, xA scale 0.8381, team xA 0.77 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.185
squad_xg_sum=1.4966
squad_xa_sum=0.919
team_expected_assists=0.7703
team_xa_to_xg_ratio=0.65 | expected_goals: 0.204 -> 0.1615 expected_assists: 0.0664 -> 0.0556 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 79.0) | match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.1491
goal_rate=0.1999
scorer_weight=0.1589 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0541
assist_rate=0.3323
provider_weight=0.0695 | - |
|
| Marcus Tavernier | F | 85 | 0 | 0.21 | 0.24 | ok | 2 | 1.7 | 7.4 | 51.3 | 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.0064, quality 0.694) | market_value_eur=27000000
quality_factor=0.6941
boost_factor=1.0064
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.9468
prior_reliability=0.1333
competition=Premier League | wasFouled: 1.2239 -> 1.2305 totalShots: 2.516 -> 2.5099 onTargetScoringAttempt: 1.0633 -> 1.0575 totalCross: 4.6905 -> 4.6956 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Ayden Heaven, Leny Yoro', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.8502, 'skill_edge': -0.0559, 'height_edge': -0.046, 'attacker_skill': 0.6941, 'defender_skill': 0.8184, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Ayden Heaven', 'market_value': 32000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7941}, {'player': 'Leny Yoro', 'market_value': 42000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8427}], 'xg_override': 0.2602} | totalShots: 2.5102 -> 2.1342 shotOffTarget: 1.4527 -> 1.2351 onTargetScoringAttempt: 1.0575 -> 0.8991 expectedGoalsOnTarget: 0.4082 -> 0.3471 goals: 0.3935 -> 0.3346 expectedGoals: 0.3061 -> 0.2602 bigChanceMissed: 0.0933 -> 0.0793 | 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.19 (squad xG sum 1.4966, xG scale 0.7918, xA scale 0.8381, team xA 0.77 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.185
squad_xg_sum=1.4966
squad_xa_sum=0.919
team_expected_assists=0.7703
team_xa_to_xg_ratio=0.65 | expected_goals: 0.2602 -> 0.206 expected_assists: 0.1856 -> 0.1557 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 79.0) | match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.1862
goal_rate=0.3346
scorer_weight=0.2554 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.1442
assist_rate=0.0281
provider_weight=0.1246 | - |
|
| Justin Kluivert | M | 76 | 0 | 0.14 | 0.09 | 61% | 2 | 1.0 | 6.8 | 35.9 | 13 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0085, quality 0.669) | market_value_eur=24000000
quality_factor=0.6685
boost_factor=1.0085
reference_quality=0.505
history_matches=24
history_shrink=0.1724 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0127) | blend_weight=0.0127
history_matches=24
season_overlap_discount=1.0
per90_to_match_factor=0.8417
prior_reliability=0.1133
competition=Premier League | onTargetScoringAttempt: 0.6687 -> 0.6789 totalShots: 1.7924 -> 1.8008 totalCross: 2.1475 -> 2.1391 wonTackle: 0.585 -> 0.5901 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Diogo Dalot', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.377, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 0.8493, 'skill_edge': -0.0505, 'height_edge': -0.052, 'attacker_skill': 0.6685, 'defender_skill': 0.7808, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Diogo Dalot', 'market_value': 28000000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.7808}], 'xg_override': 0.1733} | aerialWon: 0.4353 -> 0.8 totalShots: 1.8026 -> 1.531 shotOffTarget: 1.1237 -> 0.9544 onTargetScoringAttempt: 0.6789 -> 0.5766 expectedGoalsOnTarget: 0.3555 -> 0.3019 goals: 0.2058 -> 0.1748 expectedGoals: 0.2041 -> 0.1733 bigChanceMissed: 0.1377 -> 0.1169 | 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.19 (squad xG sum 1.4966, xG scale 0.7918, xA scale 0.8381, team xA 0.77 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.185
squad_xg_sum=1.4966
squad_xa_sum=0.919
team_expected_assists=0.7703
team_xa_to_xg_ratio=0.65 | expected_goals: 0.1733 -> 0.1372 expected_assists: 0.103 -> 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 skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.1282
goal_rate=0.1748
scorer_weight=0.1381 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0827
assist_rate=0.1018
provider_weight=0.0856 | - |
|
| Rayan | F | 84 | 0 | 0.21 | 0.13 | 56% | 2 | 1.5 | 6.9 | 48.9 | 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.0206, quality 0.848) | market_value_eur=58000000
quality_factor=0.8478
boost_factor=1.0206
reference_quality=0.505
history_matches=20
history_shrink=0.2 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0173) | blend_weight=0.0173
history_matches=20
season_overlap_discount=1.0
per90_to_match_factor=0.9346
prior_reliability=0.1333
competition=Premier League | totalCross: 2.0412 -> 2.0058 wasFouled: 0.8843 -> 0.869 totalShots: 2.1451 -> 2.157 onTargetScoringAttempt: 0.774 -> 0.7852 wonTackle: 0.6434 -> 0.6323 fouls: 0.3989 -> 0.392 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Ayden Heaven, Leny Yoro', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.195, 'pressing_faced': 'HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.993, 'skill_edge': 0.0133, 'height_edge': -0.018, 'attacker_skill': 0.8478, 'defender_skill': 0.8184, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Ayden Heaven', 'market_value': 32000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7941}, {'player': 'Leny Yoro', 'market_value': 42000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8427}], 'xg_override': 0.2612} | totalShots: 2.157 -> 2.1419 shotOffTarget: 1.3711 -> 1.3615 onTargetScoringAttempt: 0.7852 -> 0.7797 | 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.19 (squad xG sum 1.4966, xG scale 0.7918, xA scale 0.8381, team xA 0.77 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.185
squad_xg_sum=1.4966
squad_xa_sum=0.919
team_expected_assists=0.7703
team_xa_to_xg_ratio=0.65 | expected_goals: 0.2612 -> 0.2069 expected_assists: 0.0971 -> 0.0814 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 79.0) | match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.1869
goal_rate=0.2513
scorer_weight=0.2003 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0782
assist_rate=0.0369
provider_weight=0.0651 | - |
|
| Tyler Adams | M | 80 | 0 | 0.02 | 0.00 | 269% | 0 | 0.1 | 6.9 | 48.1 | 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.0094, quality 0.725) | market_value_eur=31000000
quality_factor=0.7249
boost_factor=1.0094
reference_quality=0.505
history_matches=30
history_shrink=0.1429 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0025) | blend_weight=0.0025
history_matches=30
season_overlap_discount=1.0
per90_to_match_factor=0.8861
prior_reliability=0.0267
competition=Premier League | interceptionWon: 1.5516 -> 1.5587 | 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': 'Carlos Baleba', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.352, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9004, 'skill_edge': -0.0518, 'height_edge': -0.016, 'attacker_skill': 0.761, 'defender_skill': 0.876, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Carlos Baleba', 'market_value': 63000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.876}], 'xg_override': 0.0221} | aerialWon: 1.1101 -> 0.9 totalShots: 0.5478 -> 0.4932 shotOffTarget: 0.4067 -> 0.3662 onTargetScoringAttempt: 0.1411 -> 0.127 | 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.19 (squad xG sum 1.4966, xG scale 0.7918, xA scale 0.8381, team xA 0.77 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.185
squad_xg_sum=1.4966
squad_xa_sum=0.919
team_expected_assists=0.7703
team_xa_to_xg_ratio=0.65 | expected_assists: 0.0364 -> 0.0305 | 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 skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0173
goal_rate=0.0298
scorer_weight=0.0194 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.03
assist_rate=0.0531
provider_weight=0.0364 | - |
|
| Team totals | 0 | 1.19 | | 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.7m | 12.3% | Market-value substitute prior |
| Bafodé Diakité | D | 14.4m | 33.9% | Market-value substitute prior |
| Álex Jiménez | D | 14.3m | 33.3% | Market-value substitute prior |
| Alex Scott | M | 23.7m | 34.3% | Market-value substitute prior |
| Hamed Junior Traorè | M | 22.5m | 52.2% | Market-value substitute prior |
| Eli Junior Kroupi | F | 27.0m | 63.7% | Market-value substitute prior |
Antagonist / tactical summary
Home midfield dominates with ~52% possession expected (Carlos Baleba vs Tyler Adams). Total antagonist xG — Home: 1.01, Away: 1.01. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Midfield — possession 51.9% / 48.1%, dominance ratio 0.56, key duel: Carlos Baleba vs Tyler Adams
Bruno Fernandes xG 0.29Youri Tielemans xG 0.07Bryan Mbeumo xG 0.39Justin Kluivert xG 0.17Rayan xG 0.26Evanilson xG 0.20
Summary
Antagonist matchup analysis for Man Utd vs Bournemouth. Most likely scoreline: 1-0. Lambdas derived from 6 home and 6 away individual player duels. Head-to-head: Man Utd 4W-4D-2L vs Bournemouth over 10 meetings.
Tactical parity between 4-2-3-1 and 4-2-3-1. Match outcome driven primarily by individual player quality. Home midfield dominates with ~52% possession expected (Carlos Baleba vs Tyler Adams). Total antagonist xG — Home: 1.01, Away: 1.01. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Hull vs Brentford
Premier League · 20261025 · 5-4-1 vs 4-2-3-1
Predicted 1-2Winner: BrentfordWinning H 2-1 (5.6%)Winning A 1-2 (9.9%)Confidence 0.74λ home/away 1.09 / 1.91Most-likely P 9.9%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset TracingAntagonist + XGBoost match analysis for Hull vs Brentford. Player statistics regressed using position-specific XGBoost models (G, D, M, F) with 2026-2027 FBref priors. Micro-duels resolved across 5-4-1 vs 4-2-3-1 (duel lambdas: Home 1.165, Away 1.836). Final calibrated Poisson lambdas: Home 1.087, Away 1.909 (most likely score 1-2).
Home Starters 11/11 XGBoost (8 FBref) Away Starters 11/11 XGBoost (10 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.17 / 1.84 Final λ (H/A) 1.09 / 1.91
FBref Team Priors: Hull City (Gls/90: 1.5, GA/90: 1.5 → E[λ]: 2.069) vs Brentford (Gls/90: 2.0, GA/90: 2.0 → E[λ]: 2.069) | Blend Weight: 0.192
Modeling Pipeline Stages (5 layers)
- 1. XGBoost player regressions for volume & event rates with market-value quality scaling
- 2. Multi-source prior blending (FBref 2026-2027 tables + Sofascore season history)
- 3. Antagonist formation duel matrix resolving 1v1 and zonal matchups
- 4. Team-level prior calibration (FBref possession and attack/defense efficiencies)
- 5. Bivariate Poisson matrix with Dixon-Coles low-score correction
Standing & form context
| Metric | Hull | Brentford |
|---|
| League position | 9.00 | 6.00 |
| Points per game | 1.32 | 1.40 |
| Attack index | 0.97 | 1.05 |
| Defense (concede) index | 0.88 | 0.94 |
| Form multiplier | 0.99 | 1.00 |
| Standing λ multiplier | 0.94 | 0.99 |
Lambda decomposition (how the goal rates were built)
| Stage | Hull λ | Brentford λ |
|---|
| FBref Squad Prior E[λ] (weight 0.192) | 2.069 | 2.069 |
| Pre-mismatch | 1.174 | 1.822 |
| Pre-competitive-floor | 1.141 | 2.005 |
| Pre-calibration (Micro-duels) | 1.165 | 1.836 |
| Final λ | 1.087 | 1.909 |
competition calibration scale 1.0competition observed total goals 0.0quality gap applied Truemismatch score pressure applied Truecompetitive underdog floor applied Falsestage discount 1.0
Scoreline distribution & markets
| Top 5 scorelines | P |
|---|
| 1-1 | 10.4% |
| 1-2 | 9.9% |
| 0-1 | 9.5% |
| 0-2 | 9.1% |
| 1-3 | 6.3% |
| Home win | 21.2% |
| Draw | 22.3% |
| Away win | 56.5% |
| Over 2.5 | 57.6% |
| BTTS yes | 56.5% |
Pregame fair line — favorite Brentford (56.5%), fair total 3.00, fair spread -0.82
Projected players vs season baseline
Proj = projected for this match · Season = this season's per-game average from match data · deviation badge compares projected xG to the player's season xG/game.
Hull — projected line vs season baseline (5-4-1)
| Player | Pos | Min | Proj G | Proj xG | Season xG/g | | Proj Sh | Season Sh/g | Proj Rtg | Season Rtg | Rec | Model / FBref Prior |
|---|
| Oliver McBurnie | F | 86 | 1 | 0.25 | 0.12 | 106% | 2 | 1.0 | 6.9 | 33.7 | 10 | 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.9983, quality 0.494) | market_value_eur=7600000
quality_factor=0.4939
boost_factor=0.9983
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.9537
prior_reliability=0.1333
competition=Premier League | totalShots: 1.9596 -> 1.916 goals: 0.2861 -> 0.2737 interceptionWon: 0.2691 -> 0.2574 onTargetScoringAttempt: 0.7105 -> 0.721 goalAssist: 0.2288 -> 0.2189 wonTackle: 0.2288 -> 0.2189 wasFouled: 2.1963 -> 2.2044 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Sepp van den Berg, 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.776, 'skill_edge': -0.1284, 'height_edge': -0.024, 'attacker_skill': 0.4939, 'defender_skill': 0.7792, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Sepp van den Berg', 'market_value': 33000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8002}, {'player': 'Kristoffer Ajer', 'market_value': 27000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7581}], 'xg_override': 0.224} | totalShots: 1.9701 -> 1.5288 shotOffTarget: 1.2491 -> 0.9693 onTargetScoringAttempt: 0.721 -> 0.5595 bigChanceMissed: 0.5638 -> 0.4375 expectedGoals: 0.2886 -> 0.224 goals: 0.2737 -> 0.2124 expectedGoalsOnTarget: 0.1327 -> 0.103 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.09 (squad xG sum 0.9598, xG scale 1.1326, xA scale 1.2942, team xA 0.71 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.087
squad_xg_sum=0.9598
squad_xa_sum=0.5459
team_expected_assists=0.7066
team_xa_to_xg_ratio=0.65 | expected_goals: 0.224 -> 0.2538 expected_assists: 0.0398 -> 0.0515 | 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: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.2242
goal_rate=0.2124
scorer_weight=0.2431 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by 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.2189
provider_weight=0.0644 | - |
|
| Sorba Thomas | F | 74 | 0 | 0.14 | 0.03 | 390% | 1 | 0.4 | 6.8 | 17.4 | 14 | 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.0129, quality 0.574) | market_value_eur=14500000
quality_factor=0.5737
boost_factor=1.0129
reference_quality=0.505
history_matches=3
history_shrink=0.625 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=true | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Sepp van den Berg, 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.8111, 'skill_edge': -0.0925, 'height_edge': -0.036, 'attacker_skill': 0.5737, 'defender_skill': 0.7792, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Sepp van den Berg', 'market_value': 33000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8002}, {'player': 'Kristoffer Ajer', 'market_value': 27000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7581}], 'xg_override': 0.1223} | totalShots: 1.6333 -> 1.3248 shotOffTarget: 1.098 -> 0.8906 onTargetScoringAttempt: 0.5353 -> 0.4342 goals: 0.2181 -> 0.1769 expectedGoals: 0.1508 -> 0.1223 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.09 (squad xG sum 0.9598, xG scale 1.1326, xA scale 1.2942, team xA 0.71 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.087
squad_xg_sum=0.9598
squad_xa_sum=0.5459
team_expected_assists=0.7066
team_xa_to_xg_ratio=0.65 | expected_goals: 0.1223 -> 0.1385 expected_assists: 0.0723 -> 0.0936 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 75.0) | match_squad_rank=11
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1293
goal_rate=0.1769
scorer_weight=0.1731 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0894
assist_rate=0.0
provider_weight=0.0749 | - |
|
| Regan Slater | M | 87 | 0 | 0.07 | 0.02 | 247% | 1 | 0.4 | 6.8 | 34.3 | 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.0012, quality 0.513) | market_value_eur=9200000
quality_factor=0.513
boost_factor=1.0012
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.9617
prior_reliability=0.1333
competition=Premier League | totalShots: 1.0603 -> 1.0144 interceptionWon: 0.8896 -> 0.8511 fouls: 0.6427 -> 0.6773 goalAssist: 0.0957 -> 0.1124 onTargetScoringAttempt: 0.3331 -> 0.3187 totalCross: 1.1309 -> 1.1236 wasFouled: 0.6309 -> 0.6244 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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 Mid vs Right Back — Wide Channel', 'duel_win_rate': 0.293, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.7551, 'skill_edge': -0.1426, 'height_edge': -0.024, 'attacker_skill': 0.5251, 'defender_skill': 0.8419, 'attacker_role': 'LM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Michael Kayode', 'market_value': 39000000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.8419}], 'xg_override': 0.0655} | aerialWon: 1.2504 -> 0.9 totalShots: 1.0459 -> 0.7898 shotOffTarget: 0.7272 -> 0.5491 onTargetScoringAttempt: 0.3187 -> 0.2407 expectedGoals: 0.0867 -> 0.0655 goals: 0.0687 -> 0.0519 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.09 (squad xG sum 0.9598, xG scale 1.1326, xA scale 1.2942, team xA 0.71 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.087
squad_xg_sum=0.9598
squad_xa_sum=0.5459
team_expected_assists=0.7066
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0655 -> 0.0742 expected_assists: 0.0943 -> 0.122 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 72.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.0715
goal_rate=0.0519
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.1149
assist_rate=0.1124
provider_weight=0.1373 | - |
|
| Tim Iroegbunam | M | 83 | 0 | 0.08 | 0.02 | 296% | 1 | 0.4 | 6.8 | 40.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.0032, quality 0.585) | market_value_eur=15500000
quality_factor=0.5846
boost_factor=1.0032
reference_quality=0.505
history_matches=32
history_shrink=0.1351 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0006) | blend_weight=0.0006
history_matches=32
season_overlap_discount=1.0
per90_to_match_factor=0.9207
prior_reliability=0.0067
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': 'Mikkel Damsgaard', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.393, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 0.9169, 'skill_edge': -0.0645, 'height_edge': 0.008, 'attacker_skill': 0.6029, 'defender_skill': 0.7463, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Mikkel Damsgaard', 'market_value': 29000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.7463}], 'xg_override': 0.0745} | aerialWon: 1.392 -> 1.1 totalShots: 0.8031 -> 0.7364 shotOffTarget: 0.6028 -> 0.5527 onTargetScoringAttempt: 0.2003 -> 0.1837 expectedGoals: 0.0812 -> 0.0745 goals: 0.0644 -> 0.059 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.09 (squad xG sum 0.9598, xG scale 1.1326, xA scale 1.2942, team xA 0.71 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.087
squad_xg_sum=0.9598
squad_xa_sum=0.5459
team_expected_assists=0.7066
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0745 -> 0.0844 expected_assists: 0.0306 -> 0.0396 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 76.0) | match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0809
goal_rate=0.059
scorer_weight=0.0739 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0388
assist_rate=0.0545
provider_weight=0.0495 | - |
|
| Mohamed Belloumi | F | 79 | 0 | 0.20 | 0.07 | 179% | 2 | 1.3 | 6.9 | 36.3 | 20 | 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.0145, quality 0.602) | market_value_eur=17100000
quality_factor=0.6016
boost_factor=1.0145
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': 'Sepp van den Berg, 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.7943, 'skill_edge': -0.0799, 'height_edge': -0.06, 'attacker_skill': 0.6016, 'defender_skill': 0.7792, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Sepp van den Berg', 'market_value': 33000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8002}, {'player': 'Kristoffer Ajer', 'market_value': 27000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7581}], 'xg_override': 0.1752} | totalShots: 2.28 -> 1.811 shotOffTarget: 1.436 -> 1.1406 onTargetScoringAttempt: 0.844 -> 0.6704 expectedGoalsOnTarget: 0.3131 -> 0.2487 bigChanceMissed: 0.2735 -> 0.2172 goals: 0.2507 -> 0.1991 expectedGoals: 0.2206 -> 0.1752 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.09 (squad xG sum 0.9598, xG scale 1.1326, xA scale 1.2942, team xA 0.71 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.087
squad_xg_sum=0.9598
squad_xa_sum=0.5459
team_expected_assists=0.7066
team_xa_to_xg_ratio=0.65 | expected_goals: 0.1752 -> 0.1984 expected_assists: 0.1067 -> 0.1382 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 73.0) | match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.18
goal_rate=0.1991
scorer_weight=0.2195 | - | integer_assist_projection | Team scoreline allocation: 1 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.1291
assist_rate=0.4415
provider_weight=0.1727 | - |
|
| Ryan Giles | D | 90 | 0 | 0.00 | 0.00 | 62% | 0 | 0.1 | 6.7 | 34.2 | 10 | 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.574) | market_value_eur=14500000
quality_factor=0.5737
boost_factor=1.0103
reference_quality=0.505
history_matches=5
history_shrink=0.5 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0412) | blend_weight=0.0412
history_matches=5
season_overlap_discount=1.0
per90_to_match_factor=0.9944
prior_reliability=0.1267
competition=Premier League | totalCross: 9.2559 -> 9.1549 interceptionWon: 0.8586 -> 0.8448 fouls: 0.2724 -> 0.2612 wasFouled: 0.2316 -> 0.2221 goalAssist: 0.2316 -> 0.2221 wonTackle: 0.8423 -> 0.8507 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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, Caoimhin Kelleher', 'matchup_zone': 'LWB vs RW + RB'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.09 (squad xG sum 0.9598, xG scale 1.1326, xA scale 1.2942, team xA 0.71 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.087
squad_xg_sum=0.9598
squad_xa_sum=0.5459
team_expected_assists=0.7066
team_xa_to_xg_ratio=0.65 | expected_assists: 0.093 -> 0.1204 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 72.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.0034
goal_rate=0.0
scorer_weight=0.0032 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1134
assist_rate=0.2221
provider_weight=0.1505 | - |
|
| Lucas Herrington | D | 90 | 0 | 0.01 | 0.00 | 209% | 0 | 0.1 | 6.6 | 33.3 | 10 | 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.0134, quality 0.594) | market_value_eur=16399999
quality_factor=0.5942
boost_factor=1.0134
reference_quality=0.505
history_matches=5
history_shrink=0.5 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0152) | blend_weight=0.0152
history_matches=5
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.0467
competition=Premier League | wonTackle: 0.8495 -> 0.8366 interceptionWon: 0.7526 -> 0.7412 totalShots: 0.3655 -> 0.36 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Jaidon Anthony', '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.09 (squad xG sum 0.9598, xG scale 1.1326, xA scale 1.2942, team xA 0.71 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.087
squad_xg_sum=0.9598
squad_xa_sum=0.5459
team_expected_assists=0.7066
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 66.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.0072
goal_rate=0.0
scorer_weight=0.0064 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by 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.0113 | - |
|
| John Egan | D | 88 | 0 | 0.01 | 0.01 | 165% | 0 | 0.3 | 6.7 | 34.8 | 10 | 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.9899, quality 0.437) | market_value_eur=1500000
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.0433) | blend_weight=0.0433
history_matches=5
season_overlap_discount=1.0
per90_to_match_factor=0.9743
prior_reliability=0.1333
competition=Premier League | fouls: 0.6466 -> 0.6186 wonTackle: 1.0022 -> 0.9799 totalShots: 0.4958 -> 0.4743 wasFouled: 0.1639 -> 0.1779 onTargetScoringAttempt: 0.2669 -> 0.2553 interceptionWon: 1.1211 -> 1.1147 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Mathias Jensen', 'matchup_zone': 'LW vs CB'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.09 (squad xG sum 0.9598, xG scale 1.1326, xA scale 1.2942, team xA 0.71 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.087
squad_xg_sum=0.9598
squad_xa_sum=0.5459
team_expected_assists=0.7066
team_xa_to_xg_ratio=0.65 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 72.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.0135
goal_rate=0.0
scorer_weight=0.011 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0027
assist_rate=0.0
provider_weight=0.0026 | - |
|
| Semi Ajayi | D | 87 | 0 | 0.12 | 0.07 | 79% | 1 | 0.3 | 6.7 | 34.1 | 10 | 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.9899, quality 0.437) | market_value_eur=930000
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.0368) | blend_weight=0.0368
history_matches=5
season_overlap_discount=1.0
per90_to_match_factor=0.971
prior_reliability=0.1133
competition=Premier League | onTargetScoringAttempt: 0.1394 -> 0.1554 goals: 0.1394 -> 0.1553 wasFouled: 0.1639 -> 0.1789 wonTackle: 0.8926 -> 0.8808 interceptionWon: 0.901 -> 0.9099 totalCross: 0.3568 -> 0.3647 fouls: 0.1928 -> 0.1857 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.09 (squad xG sum 0.9598, xG scale 1.1326, xA scale 1.2942, team xA 0.71 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.087
squad_xg_sum=0.9598
squad_xa_sum=0.5459
team_expected_assists=0.7066
team_xa_to_xg_ratio=0.65 | expected_goals: 0.104 -> 0.1178 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 70.0) | match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1111
goal_rate=0.1553
scorer_weight=0.1472 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0049
assist_rate=0.0
provider_weight=0.0046 | - |
|
| Lewie Coyle | D | 78 | 0 | 0.03 | 0.01 | 157% | 0 | 0.1 | 6.6 | 32.4 | 10 | 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.9899, quality 0.437) | market_value_eur=2700000
quality_factor=0.4374
boost_factor=0.9899
reference_quality=0.505
history_matches=5
history_shrink=0.5 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0282) | blend_weight=0.0282
history_matches=5
season_overlap_discount=1.0
per90_to_match_factor=0.8638
prior_reliability=0.0867
competition=Premier League | wasFouled: 0.6065 -> 0.6643 fouls: 0.3032 -> 0.3321 totalShots: 0.3431 -> 0.3334 totalCross: 1.658 -> 1.6487 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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, Keane Lewis-Potter', 'matchup_zone': 'RWB vs LW + LB'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.09 (squad xG sum 0.9598, xG scale 1.1326, xA scale 1.2942, team xA 0.71 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.087
squad_xg_sum=0.9598
squad_xa_sum=0.5459
team_expected_assists=0.7066
team_xa_to_xg_ratio=0.65 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 17 by projected rating, fifa_overall 70.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.0339
goal_rate=0.0
scorer_weight=0.0276 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0191
assist_rate=0.0
provider_weight=0.0154 | - |
|
| Konstantinos Tzolakis | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 7.0 | 37.0 | 10 | XGBoost G_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost G_service raw output over 3 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0204, quality 0.641) | market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.0204
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': 'Igor Thiago, Kevin Schade', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.8358} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.09 (squad xG sum 0.9598, xG scale 1.1326, xA scale 1.2942, team xA 0.71 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.087
squad_xg_sum=0.9598
squad_xa_sum=0.5459
team_expected_assists=0.7066
team_xa_to_xg_ratio=0.65 | shots_faced: 17.4 -> 18.1 expected_saves: 4.25 -> 4.43 high_pressure_saves: 1.47 -> 1.53 | 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.0
scorer_weight=0.0
squad_weight_total=1.1221 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by 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.7801 | - |
|
| Team totals | 1 | 1.09 | | 11 | | 6.8 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Jack Butland | G | 4.4m | 10.9% | Market-value substitute prior |
| Nobel Mendy | D | 14.4m | 23.3% | Market-value substitute prior |
| Charlie Hughes | D | 13.9m | 31.2% | Market-value substitute prior |
| Christos Mouzakitis | M | 23.0m | 54.3% | Market-value substitute prior |
| Brooke Norton-Cuffy | M | 22.6m | 52.5% | Market-value substitute prior |
| Robinio Vaz | F | 26.0m | 59.1% | Market-value substitute prior |
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 |
|---|
| Igor Thiago | F | 89 | 1 | 0.54 | 0.49 | ok | 3 | 2.0 | 6.7 | 56.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.0113, quality 0.868) | market_value_eur=68000000
quality_factor=0.8677
boost_factor=1.0113
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.9884
prior_reliability=0.1267
competition=Premier League | fouls: 1.9364 -> 1.9243 totalShots: 2.236 -> 2.2479 wasFouled: 0.5779 -> 0.5729 wonTackle: 0.5799 -> 0.5749 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'John Egan, Semi Ajayi', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.402, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.2964, 'skill_edge': 0.1936, 'height_edge': 0.008, 'attacker_skill': 0.8677, 'defender_skill': 0.4374, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'John Egan', 'market_value': 1500000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'Semi Ajayi', 'market_value': 930000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.5144} | totalShots: 2.2479 -> 2.9142 shotOffTarget: 1.4076 -> 1.8248 onTargetScoringAttempt: 0.8301 -> 1.0761 bigChanceMissed: 0.5996 -> 0.7773 expectedGoals: 0.3968 -> 0.5144 expectedGoalsOnTarget: 0.3649 -> 0.4731 goals: 0.3267 -> 0.4235 | 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.8156, xG scale 1.0514, xA scale 1.3606, team xA 1.24 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.909
squad_xg_sum=1.8156
squad_xa_sum=0.912
team_expected_assists=1.2409
team_xa_to_xg_ratio=0.65 | expected_goals: 0.5144 -> 0.5408 expected_assists: 0.05 -> 0.068 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 82.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.4177
goal_rate=0.4235
scorer_weight=0.4537 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0657
assist_rate=0.0026
provider_weight=0.0544 | - |
|
| Kevin Schade | F | 86 | 1 | 0.39 | 0.22 | 77% | 3 | 1.4 | 7.0 | 50.8 | 38 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0109, quality 0.831) | market_value_eur=52000000
quality_factor=0.8309
boost_factor=1.0109
reference_quality=0.505
history_matches=40
history_shrink=0.1111 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0096) | blend_weight=0.0096
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=0.9571
prior_reliability=0.1333
competition=Premier League | totalShots: 2.1658 -> 2.1825 wonTackle: 0.8146 -> 0.8298 onTargetScoringAttempt: 0.7641 -> 0.7708 wasFouled: 1.2555 -> 1.2618 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'John Egan, Semi Ajayi', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.353, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.225, 'skill_edge': 0.177, 'height_edge': -0.024, 'attacker_skill': 0.8309, 'defender_skill': 0.4374, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'John Egan', 'market_value': 1500000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'Semi Ajayi', 'market_value': 930000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.3711} | totalShots: 2.1825 -> 2.6736 shotOffTarget: 1.4017 -> 1.7171 onTargetScoringAttempt: 0.7708 -> 0.9442 bigChanceMissed: 0.4335 -> 0.531 goals: 0.3874 -> 0.4746 expectedGoals: 0.3029 -> 0.3711 expectedGoalsOnTarget: 0.2677 -> 0.3279 | 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.8156, xG scale 1.0514, xA scale 1.3606, team xA 1.24 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.909
squad_xg_sum=1.8156
squad_xa_sum=0.912
team_expected_assists=1.2409
team_xa_to_xg_ratio=0.65 | expected_goals: 0.3711 -> 0.3902 expected_assists: 0.0506 -> 0.0688 | 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=1
goal_probability=0.3231
goal_rate=0.4746
scorer_weight=0.4861 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0665
assist_rate=0.0161
provider_weight=0.055 | - |
|
| Mikkel Damsgaard | M | 80 | 0 | 0.08 | 0.06 | ok | 1 | 0.8 | 7.1 | 54.1 | 29 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.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.0045) | blend_weight=0.0045
history_matches=38
season_overlap_discount=1.0
per90_to_match_factor=0.8942
prior_reliability=0.06
competition=Premier League | totalCross: 3.3131 -> 3.3341 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Tim Iroegbunam', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.91 (squad xG sum 1.8156, xG scale 1.0514, xA scale 1.3606, team xA 1.24 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.909
squad_xg_sum=1.8156
squad_xa_sum=0.912
team_expected_assists=1.2409
team_xa_to_xg_ratio=0.65 | expected_assists: 0.1752 -> 0.2384 | 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.0761
goal_rate=0.0838
scorer_weight=0.0846 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.2121
assist_rate=0.1071
provider_weight=0.1907 | - |
|
| Jaidon Anthony | F | 80 | 0 | 0.23 | 0.13 | 78% | 2 | 1.2 | 6.8 | 49.8 | 37 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0038, quality 0.625) | market_value_eur=19400000
quality_factor=0.6251
boost_factor=1.0038
reference_quality=0.505
history_matches=42
history_shrink=0.1064 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0041) | blend_weight=0.0041
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.8846
prior_reliability=0.06
competition=Premier League | fouls: 1.0986 -> 1.1063 totalCross: 2.3011 -> 2.3079 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'John Egan, Semi Ajayi', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.236, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.0536, 'skill_edge': 0.0845, 'height_edge': -0.048, 'attacker_skill': 0.6251, 'defender_skill': 0.4374, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'John Egan', 'market_value': 1500000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'Semi Ajayi', 'market_value': 930000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.2229} | totalShots: 1.6712 -> 1.7608 shotOffTarget: 1.0886 -> 1.1469 onTargetScoringAttempt: 0.5753 -> 0.6061 expectedGoalsOnTarget: 0.2879 -> 0.3033 goals: 0.2516 -> 0.2651 expectedGoals: 0.2116 -> 0.2229 | 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.8156, xG scale 1.0514, xA scale 1.3606, team xA 1.24 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.909
squad_xg_sum=1.8156
squad_xa_sum=0.912
team_expected_assists=1.2409
team_xa_to_xg_ratio=0.65 | expected_goals: 0.2229 -> 0.2344 expected_assists: 0.096 -> 0.1306 | 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: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.209
goal_rate=0.2651
scorer_weight=0.2706 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1224
assist_rate=0.0575
provider_weight=0.1045 | - |
|
| Mathias Jensen | M | 82 | 0 | 0.09 | 0.07 | 31% | 1 | 1.0 | 7.1 | 57.4 | 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 0.9999, quality 0.502) | market_value_eur=8300000
quality_factor=0.5023
boost_factor=0.9999
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.9107
prior_reliability=0.0467
competition=Premier League | fouls: 1.095 -> 1.1051 totalCross: 4.4209 -> 4.4284 totalShots: 1.1158 -> 1.1208 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'John Egan', 'matchup_zone': 'LW vs CB', 'duel_win_rate': 0.429, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0135, 'skill_edge': 0.0292, 'height_edge': -0.02, 'attacker_skill': 0.5023, 'defender_skill': 0.4374, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'John Egan', 'market_value': 1500000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.0824} | aerialWon: 0.2414 -> 1.1 totalShots: 1.1208 -> 1.1359 shotOffTarget: 0.7737 -> 0.7841 | 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.8156, xG scale 1.0514, xA scale 1.3606, team xA 1.24 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.909
squad_xg_sum=1.8156
squad_xa_sum=0.912
team_expected_assists=1.2409
team_xa_to_xg_ratio=0.65 | expected_assists: 0.166 -> 0.2259 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 80.0) | match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.083
goal_rate=0.1012
scorer_weight=0.0989 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.2022
assist_rate=0.1186
provider_weight=0.1807 | - |
|
| Mamadou Sangare | M | 79 | 0 | 0.08 | 0.04 | 82% | 1 | 0.6 | 6.9 | 34.9 | 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.0473, quality 0.821) | market_value_eur=49000000
quality_factor=0.8206
boost_factor=1.0473
reference_quality=0.505
history_matches=5
history_shrink=0.5 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0390) | blend_weight=0.039
history_matches=5
season_overlap_discount=1.0
per90_to_match_factor=0.8763
prior_reliability=0.12
competition=Premier League | interceptionWon: 1.3954 -> 1.4549 totalShots: 1.0837 -> 1.1159 fouls: 2.1721 -> 2.1443 wasFouled: 0.8849 -> 0.9074 totalCross: 0.4392 -> 0.46 wonTackle: 1.9777 -> 1.9575 goalAssist: 0.0663 -> 0.0827 onTargetScoringAttempt: 0.2423 -> 0.2516 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Regan Slater', 'matchup_zone': 'Midfield lane'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.91 (squad xG sum 1.8156, xG scale 1.0514, xA scale 1.3606, team xA 1.24 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.909
squad_xg_sum=1.8156
squad_xa_sum=0.912
team_expected_assists=1.2409
team_xa_to_xg_ratio=0.65 | expected_assists: 0.052 -> 0.0707 | 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: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0724
goal_rate=0.0878
scorer_weight=0.0853 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0683
assist_rate=0.0827
provider_weight=0.0884 | - |
|
| Keane Lewis-Potter | D | 83 | 0 | 0.18 | 0.11 | 59% | 1 | 1.0 | 6.7 | 55.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 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=0.9253
prior_reliability=0.1333
competition=Premier League | wasFouled: 0.9636 -> 0.9545 totalCross: 3.9695 -> 3.9757 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Lewie Coyle', 'matchup_zone': 'RWB vs LW + LB'} | - | 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.8156, xG scale 1.0514, xA scale 1.3606, team xA 1.24 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.909
squad_xg_sum=1.8156
squad_xa_sum=0.912
team_expected_assists=1.2409
team_xa_to_xg_ratio=0.65 | expected_goals: 0.1669 -> 0.1755 expected_assists: 0.1368 -> 0.1861 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 15 by projected rating, fifa_overall 77.0) | match_squad_rank=15
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.161
goal_rate=0.1149
scorer_weight=0.1404 | - | integer_assist_projection | Team scoreline allocation: 1 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.1698
assist_rate=0.1569
provider_weight=0.2061 | - |
|
| Sepp van den Berg | D | 90 | 0 | 0.09 | 0.06 | 52% | 1 | 0.5 | 6.9 | 42.6 | 25 | 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.0095, quality 0.739) | market_value_eur=33000000
quality_factor=0.7389
boost_factor=1.0095
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': 'Mohamed Belloumi', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 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.8156, xG scale 1.0514, xA scale 1.3606, team xA 1.24 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.909
squad_xg_sum=1.8156
squad_xa_sum=0.912
team_expected_assists=1.2409
team_xa_to_xg_ratio=0.65 | expected_assists: 0.0453 -> 0.0616 | 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.0876
goal_rate=0.0
scorer_weight=0.0734 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0597
assist_rate=0.0301
provider_weight=0.0518 | - |
|
| Kristoffer Ajer | D | 88 | 0 | 0.02 | 0.01 | 180% | 0 | 0.1 | 6.7 | 46.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 1.0077, quality 0.694) | market_value_eur=27000000
quality_factor=0.6941
boost_factor=1.0077
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.9742
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': 'Mohamed Belloumi', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 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.8156, xG scale 1.0514, xA scale 1.3606, team xA 1.24 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.909
squad_xg_sum=1.8156
squad_xa_sum=0.912
team_expected_assists=1.2409
team_xa_to_xg_ratio=0.65 | expected_assists: 0.0186 -> 0.0253 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 77.0) | match_squad_rank=12
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0168
goal_rate=0.0
scorer_weight=0.0135 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.025
assist_rate=0.0
provider_weight=0.0202 | - |
|
| Michael Kayode | D | 80 | 0 | 0.09 | 0.05 | 66% | 1 | 0.3 | 6.7 | 56.8 | 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.0086, quality 0.775) | market_value_eur=39000000
quality_factor=0.7754
boost_factor=1.0086
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.8879
prior_reliability=0.12
competition=Premier League | totalShots: 0.6317 -> 0.6469 wasFouled: 1.1019 -> 1.1091 totalCross: 1.122 -> 1.1291 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Regan Slater', '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 1.91 (squad xG sum 1.8156, xG scale 1.0514, xA scale 1.3606, team xA 1.24 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.909
squad_xg_sum=1.8156
squad_xa_sum=0.912
team_expected_assists=1.2409
team_xa_to_xg_ratio=0.65 | expected_assists: 0.0554 -> 0.0754 | 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: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0847
goal_rate=0.128
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.0726
assist_rate=0.0297
provider_weight=0.0603 | - |
|
| Caoimhin Kelleher | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 7.0 | 58.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.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.0092) | blend_weight=0.0092
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League | saves: 3.1212 -> 3.1155 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Oliver McBurnie, Mohamed Belloumi', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.1651} | - | 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.8156, xG scale 1.0514, xA scale 1.3606, team xA 1.24 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.909
squad_xg_sum=1.8156
squad_xa_sum=0.912
team_expected_assists=1.2409
team_xa_to_xg_ratio=0.65 | shots_faced: 11.1 -> 10.3 expected_saves: 2.72 -> 2.52 high_pressure_saves: 0.93 -> 0.87 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 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: 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.9598 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by 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.1031 | - |
|
| Team totals | 2 | 1.91 | | 16 | | 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 |
| Nathan Collins | D | 14.7m | 23.9% | Market-value substitute prior |
| Yehor Yarmoliuk | M | 23.0m | 71.5% | Market-value substitute prior |
| Vitaly Janelt | M | 22.8m | 32.3% | Market-value substitute prior |
| Dango Ouattara | F | 28.4m | 55.2% | Market-value substitute prior |
Antagonist / tactical summary
Away midfield dictates play with ~53% possession expected (Tim Iroegbunam vs Mamadou Sangare). Total antagonist xG — Home: 0.69, Away: 1.19. 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 47.3% / 52.7%, dominance ratio 0.44, key duel: Tim Iroegbunam vs Mamadou Sangare
Mohamed Belloumi xG 0.18Oliver McBurnie xG 0.22Sorba Thomas xG 0.12Mathias Jensen xG 0.08Igor Thiago xG 0.51Kevin Schade xG 0.37
Summary
Antagonist matchup analysis for Hull vs Brentford. Most likely scoreline: 1-2. Lambdas derived from 7 home and 4 away individual player duels. Head-to-head: Hull 4W-2D-3L vs Brentford over 9 meetings.
Tactical parity between 5-4-1 and 4-2-3-1. Match outcome driven primarily by individual player quality. Away midfield dictates play with ~53% possession expected (Tim Iroegbunam vs Mamadou Sangare). Total antagonist xG — Home: 0.69, Away: 1.19. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Athletic Club vs Getafe
LaLiga · 20261025 · 4-2-3-1 vs 5-3-2
Predicted 0-0Winner: DrawWinning H 1-0 (15.4%)Winning A 0-1 (13.0%)Confidence 0.7λ home/away 1.02 / 0.86Most-likely P 15.5%
Actual vs predicted — predicted 0-0 (Draw), actual 2-0 ()
Winner MISSExact score MISSO/U HITBTTS HIT
XGBoost Reasoning & FBref Dataset TracingAntagonist + XGBoost match analysis for Athletic Club vs Getafe. 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 5-3-2 (duel lambdas: Home 1.016, Away 0.860). Final calibrated Poisson lambdas: Home 1.016, Away 0.860 (most likely score 0-0).
Home Starters 11/11 XGBoost (10 FBref) Away Starters 11/11 XGBoost (8 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.02 / 0.86 Final λ (H/A) 1.02 / 0.86
FBref Team Priors: Athletic Club (Gls/90: 1.0, GA/90: 1.0 → E[λ]: 0.244) vs Getafe (Gls/90: 0.3333333333333333, GA/90: 0.33 → E[λ]: 0.247) | 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 | Athletic Club | Getafe |
|---|
| League position | 11.00 | 14.00 |
| Points per game | 1.32 | 1.14 |
| Attack index | 0.92 | 0.69 |
| Defense (concede) index | 0.87 | 0.88 |
| Form multiplier | 1.01 | 0.99 |
| Standing λ multiplier | 0.92 | 0.82 |
Lambda decomposition (how the goal rates were built)
| Stage | Athletic Club λ | Getafe λ |
|---|
| FBref Squad Prior E[λ] (weight 0.228) | 0.244 | 0.247 |
| Pre-competitive-floor | 1.016 | 0.860 |
| Pre-calibration (Micro-duels) | 1.016 | 0.860 |
| Final λ | 1.016 | 0.860 |
competition calibration scale 1.0competition observed total goals 0.0quality gap applied Falsemismatch score pressure applied Falsecompetitive underdog floor applied Falsestage discount 1.0
Scoreline distribution & markets
| Top 5 scorelines | P |
|---|
| 0-0 | 15.5% |
| 1-0 | 15.4% |
| 1-1 | 13.5% |
| 0-1 | 13.0% |
| 2-0 | 7.9% |
| Home win | 38.1% |
| Draw | 32.2% |
| Away win | 29.7% |
| Over 2.5 | 29.0% |
| BTTS yes | 37.0% |
Pregame fair line — favorite Athletic Club (38.1%), fair total 1.88, 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.
Athletic Club — 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 |
|---|
| Álex Berenguer | F | 84 | 0 | 0.12 | 0.08 | 49% | 1 | 1.1 | 6.9 | 54.4 | 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 0.9981, quality 0.451) | market_value_eur=4099999
quality_factor=0.4511
boost_factor=0.9981
reference_quality=0.505
history_matches=38
history_shrink=0.1163 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0116) | blend_weight=0.0116
history_matches=38
season_overlap_discount=1.0
per90_to_match_factor=0.9373
prior_reliability=0.1533
competition=La Liga | totalShots: 1.2965 -> 1.3046 wasFouled: 0.9958 -> 0.989 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Jean Ives Valou, Abdel Abqar', '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.9268, 'skill_edge': 0.0022, 'height_edge': -0.052, 'attacker_skill': 0.4511, 'defender_skill': 0.4461, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Jean Ives Valou', 'market_value': 550000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'Abdel Abqar', 'market_value': 3300000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4548}], 'xg_override': 0.1211} | totalShots: 1.3046 -> 1.2091 shotOffTarget: 0.9033 -> 0.8372 onTargetScoringAttempt: 0.3979 -> 0.3688 expectedGoalsOnTarget: 0.1886 -> 0.1748 goals: 0.1432 -> 0.1327 expectedGoals: 0.1307 -> 0.1211 bigChanceMissed: 0.1263 -> 0.1171 | 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.02 (squad xG sum 1.0289, xG scale 0.9875, xA scale 0.8593, team xA 0.81 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.016
squad_xg_sum=1.0289
squad_xa_sum=0.9459
team_expected_assists=0.8128
team_xa_to_xg_ratio=0.8 | expected_assists: 0.1263 -> 0.1085 | 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 skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.1127
goal_rate=0.1327
scorer_weight=0.1277 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.1028
assist_rate=0.0189
provider_weight=0.0868 | - |
|
| Iñaki Williams | F | 70 | 0 | 0.34 | 0.21 | 65% | 2 | 1.6 | 6.8 | 55.6 | 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 0.9995, quality 0.490) | market_value_eur=7300000
quality_factor=0.4903
boost_factor=0.9995
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.7789
prior_reliability=0.1333
competition=La Liga | totalShots: 2.3579 -> 2.3496 onTargetScoringAttempt: 0.8869 -> 0.8938 wasFouled: 0.5681 -> 0.5743 fouls: 0.8753 -> 0.8703 | 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': 'Jean Ives Valou, Abdel Abqar', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.212, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.0174, 'skill_edge': 0.0199, 'height_edge': -0.008, 'attacker_skill': 0.4903, 'defender_skill': 0.4461, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Jean Ives Valou', 'market_value': 550000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'Abdel Abqar', 'market_value': 3300000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4548}], 'xg_override': 0.3467} | totalShots: 2.3648 -> 2.406 shotOffTarget: 1.471 -> 1.4966 onTargetScoringAttempt: 0.8938 -> 0.9094 goals: 0.3842 -> 0.3909 bigChanceMissed: 0.349 -> 0.3551 expectedGoals: 0.3408 -> 0.3467 | 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.02 (squad xG sum 1.0289, xG scale 0.9875, xA scale 0.8593, team xA 0.81 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.016
squad_xg_sum=1.0289
squad_xa_sum=0.9459
team_expected_assists=0.8128
team_xa_to_xg_ratio=0.8 | expected_assists: 0.063 -> 0.0541 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 80.0) | match_squad_rank=12
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.2898
goal_rate=0.3909
scorer_weight=0.3803 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0527
assist_rate=0.3051
provider_weight=0.0676 | - |
|
| Peio Canales | M | 88 | 0 | 0.09 | 0.03 | 186% | 1 | 0.7 | 6.9 | 44.3 | 6 | 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.0021, quality 0.519) | market_value_eur=9700000
quality_factor=0.5189
boost_factor=1.0021
reference_quality=0.505
history_matches=5
history_shrink=0.5 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0498) | blend_weight=0.0498
history_matches=5
season_overlap_discount=1.0
per90_to_match_factor=0.9822
prior_reliability=0.1533
competition=La Liga | onTargetScoringAttempt: 0.3642 -> 0.3886 wasFouled: 1.2339 -> 1.2575 totalCross: 2.0042 -> 1.9895 interceptionWon: 0.7206 -> 0.706 totalShots: 1.0396 -> 1.0519 fouls: 0.671 -> 0.6588 wonTackle: 1.0518 -> 1.042 goalAssist: 0.1231 -> 0.117 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Dani Carvajal, Jean Ives Valou', 'matchup_zone': 'LW vs RWB + CB', 'duel_win_rate': 0.31, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.014, 'skill_edge': 0.0315, 'height_edge': -0.022, 'attacker_skill': 0.5189, 'defender_skill': 0.4489, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Dani Carvajal', 'market_value': 3400000, 'role': 'RWB', 'price_index': 0.7, 'adjusted_quality': 0.4604}, {'player': 'Jean Ives Valou', 'market_value': 550000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.0958} | aerialWon: 0.0 -> 0.9 totalShots: 1.0639 -> 1.0788 shotOffTarget: 0.6753 -> 0.6848 onTargetScoringAttempt: 0.3886 -> 0.394 | 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.02 (squad xG sum 1.0289, xG scale 0.9875, xA scale 0.8593, team xA 0.81 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.016
squad_xg_sum=1.0289
squad_xa_sum=0.9459
team_expected_assists=0.8128
team_xa_to_xg_ratio=0.8 | expected_assists: 0.1102 -> 0.0947 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 73.0) | match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0903
goal_rate=0.1018
scorer_weight=0.0985 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0904
assist_rate=0.117
provider_weight=0.0987 | - |
|
| Robert Navarro | F | 76 | 0 | 0.20 | 0.13 | 55% | 2 | 0.8 | 7.1 | 53.3 | 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 0.9996, quality 0.493) | market_value_eur=7500000
quality_factor=0.4927
boost_factor=0.9996
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': 'Jean Ives Valou, Abdel Abqar', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.181, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 0.972, 'skill_edge': 0.021, 'height_edge': -0.04, 'attacker_skill': 0.4927, 'defender_skill': 0.4461, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Jean Ives Valou', 'market_value': 550000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'Abdel Abqar', 'market_value': 3300000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4548}], 'xg_override': 0.2031} | totalShots: 1.7457 -> 1.6968 shotOffTarget: 1.1216 -> 1.0902 onTargetScoringAttempt: 0.6241 -> 0.6066 expectedGoalsOnTarget: 0.2947 -> 0.2864 goals: 0.2726 -> 0.265 expectedGoals: 0.209 -> 0.2031 | 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.02 (squad xG sum 1.0289, xG scale 0.9875, xA scale 0.8593, team xA 0.81 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.016
squad_xg_sum=1.0289
squad_xa_sum=0.9459
team_expected_assists=0.8128
team_xa_to_xg_ratio=0.8 | expected_assists: 0.1536 -> 0.132 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 76.0) | match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.1818
goal_rate=0.265
scorer_weight=0.2497 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.1237
assist_rate=0.0
provider_weight=0.1056 | - |
|
| Beñat Gerenabarrena | M | 79 | 0 | 0.03 | 0.00 | 592% | 0 | 0.1 | 6.8 | 41.1 | 8 | 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.9945, quality 0.465) | market_value_eur=5200000
quality_factor=0.4646
boost_factor=0.9945
reference_quality=0.505
history_matches=6
history_shrink=0.4545 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0414) | blend_weight=0.0414
history_matches=6
season_overlap_discount=1.0
per90_to_match_factor=0.8832
prior_reliability=0.14
competition=La Liga | totalCross: 0.9183 -> 0.9847 interceptionWon: 1.8922 -> 1.9357 fouls: 2.2092 -> 2.2396 wonTackle: 1.6329 -> 1.6523 wasFouled: 1.4026 -> 1.4142 onTargetScoringAttempt: 0.1566 -> 0.1673 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Nemanja Gudelj', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.381, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9431, 'skill_edge': 0.0173, 'height_edge': -0.056, 'attacker_skill': 0.4759, 'defender_skill': 0.4374, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Nemanja Gudelj', 'market_value': 1900000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4374}], 'xg_override': 0.0273} | aerialWon: 0.6972 -> 0.9 totalShots: 0.5063 -> 0.4775 shotOffTarget: 0.339 -> 0.3197 onTargetScoringAttempt: 0.1673 -> 0.1578 | 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.02 (squad xG sum 1.0289, xG scale 0.9875, xA scale 0.8593, team xA 0.81 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.016
squad_xg_sum=1.0289
squad_xa_sum=0.9459
team_expected_assists=0.8128
team_xa_to_xg_ratio=0.8 | expected_assists: 0.0436 -> 0.0375 | 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 skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0266
goal_rate=0.0339
scorer_weight=0.0293 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0368
assist_rate=0.06
provider_weight=0.0441 | - |
|
| Iñigo Ruiz de Galarreta | M | 70 | 0 | 0.04 | 0.02 | 101% | 1 | 0.6 | 7.0 | 59.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 0.9977, quality 0.437) | market_value_eur=1800000
quality_factor=0.4374
boost_factor=0.9977
reference_quality=0.505
history_matches=40
history_shrink=0.1111 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0038) | blend_weight=0.0038
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=0.7826
prior_reliability=0.0533
competition=La Liga | fouls: 1.9279 -> 1.9355 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Nemanja Gudelj', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.368, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9236, 'skill_edge': 0.0, 'height_edge': -0.052, 'attacker_skill': 0.4374, 'defender_skill': 0.4374, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Nemanja Gudelj', 'market_value': 1900000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4374}], 'xg_override': 0.0436} | aerialWon: 1.1363 -> 0.9 totalShots: 0.9331 -> 0.8618 shotOffTarget: 0.6941 -> 0.6411 onTargetScoringAttempt: 0.2379 -> 0.2197 | 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.02 (squad xG sum 1.0289, xG scale 0.9875, xA scale 0.8593, team xA 0.81 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.016
squad_xg_sum=1.0289
squad_xa_sum=0.9459
team_expected_assists=0.8128
team_xa_to_xg_ratio=0.8 | expected_assists: 0.1381 -> 0.1187 | 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 skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0422
goal_rate=0.0439
scorer_weight=0.0432 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.1119
assist_rate=0.0986
provider_weight=0.095 | - |
|
| Yuri Berchiche | D | 82 | 0 | 0.04 | 0.02 | 79% | 1 | 1.0 | 7.1 | 60.5 | 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.9976, quality 0.437) | market_value_eur=910000
quality_factor=0.4374
boost_factor=0.9976
reference_quality=0.505
history_matches=37
history_shrink=0.119 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0057) | blend_weight=0.0057
history_matches=37
season_overlap_discount=1.0
per90_to_match_factor=0.9063
prior_reliability=0.0733
competition=La Liga | totalShots: 1.1492 -> 1.1566 wonTackle: 0.9959 -> 0.9903 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Dani Carvajal', 'matchup_zone': 'Right Wingback vs Left Back — Overlapping Run'} | - | 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.02 (squad xG sum 1.0289, xG scale 0.9875, xA scale 0.8593, team xA 0.81 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.016
squad_xg_sum=1.0289
squad_xa_sum=0.9459
team_expected_assists=0.8128
team_xa_to_xg_ratio=0.8 | expected_assists: 0.1701 -> 0.1461 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 79.0) | match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0406
goal_rate=0.0
scorer_weight=0.0331 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.1359
assist_rate=0.1756
provider_weight=0.1498 | - |
|
| Aitor Paredes | D | 89 | 0 | 0.05 | 0.02 | 117% | 1 | 0.3 | 7.0 | 34.2 | 24 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9991, quality 0.488) | market_value_eur=7100000
quality_factor=0.4878
boost_factor=0.9991
reference_quality=0.505
history_matches=24
history_shrink=0.1724 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0134) | blend_weight=0.0134
history_matches=24
season_overlap_discount=1.0
per90_to_match_factor=0.9846
prior_reliability=0.12
competition=La Liga | totalCross: 0.4022 -> 0.4115 interceptionWon: 1.1453 -> 1.1373 fouls: 1.0571 -> 1.065 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Ivan Azón', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 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.02 (squad xG sum 1.0289, xG scale 0.9875, xA scale 0.8593, team xA 0.81 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.016
squad_xg_sum=1.0289
squad_xa_sum=0.9459
team_expected_assists=0.8128
team_xa_to_xg_ratio=0.8 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 78.0) | match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0465
goal_rate=0.2279
scorer_weight=0.0595 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0228
assist_rate=0.0
provider_weight=0.0185 | - |
|
| Yeray Álvarez | D | 79 | 0 | 0.03 | 0.02 | 72% | 1 | 0.2 | 6.7 | 42.9 | 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 0.9937, quality 0.437) | market_value_eur=930000
quality_factor=0.4374
boost_factor=0.9937
reference_quality=0.505
history_matches=11
history_shrink=0.3125 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0271) | blend_weight=0.0271
history_matches=11
season_overlap_discount=1.0
per90_to_match_factor=0.8828
prior_reliability=0.1333
competition=La Liga | totalCross: 0.6179 -> 0.649 totalShots: 0.5305 -> 0.552 wonTackle: 0.656 -> 0.6382 wasFouled: 0.809 -> 0.799 goalAssist: 0.114 -> 0.1229 interceptionWon: 1.0561 -> 1.0634 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Ivan Azón', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 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.02 (squad xG sum 1.0289, xG scale 0.9875, xA scale 0.8593, team xA 0.81 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.016
squad_xg_sum=1.0289
squad_xa_sum=0.9459
team_expected_assists=0.8128
team_xa_to_xg_ratio=0.8 | - | 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_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.0273
goal_rate=0.0
scorer_weight=0.0222 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0141
assist_rate=0.1229
provider_weight=0.0178 | - |
|
| Jesús Areso | D | 79 | 0 | 0.01 | 0.01 | 70% | 0 | 0.1 | 6.7 | 39.1 | 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.9985, quality 0.468) | market_value_eur=5500000
quality_factor=0.4683
boost_factor=0.9985
reference_quality=0.505
history_matches=32
history_shrink=0.1351 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0094) | blend_weight=0.0094
history_matches=32
season_overlap_discount=1.0
per90_to_match_factor=0.8791
prior_reliability=0.1067
competition=La Liga | wasFouled: 0.5308 -> 0.5413 interceptionWon: 1.1346 -> 1.1291 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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 Mojica', 'matchup_zone': 'Left Wingback vs Right Back — Overlapping Run'} | - | 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.02 (squad xG sum 1.0289, xG scale 0.9875, xA scale 0.8593, team xA 0.81 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.016
squad_xg_sum=1.0289
squad_xa_sum=0.9459
team_expected_assists=0.8128
team_xa_to_xg_ratio=0.8 | expected_assists: 0.0499 -> 0.0429 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 17 by projected rating, fifa_overall 80.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.0109
goal_rate=0.0
scorer_weight=0.009 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.042
assist_rate=0.0223
provider_weight=0.0343 | - |
|
| Unai Simón | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 7.1 | 61.4 | 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.0042, quality 0.641) | market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.0042
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=1.0
prior_reliability=0.2
competition=La Liga | saves: 2.961 -> 2.9748 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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, Ivan Azón', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 0.8596} | - | 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.02 (squad xG sum 1.0289, xG scale 0.9875, xA scale 0.8593, team xA 0.81 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.016
squad_xg_sum=1.0289
squad_xa_sum=0.9459
team_expected_assists=0.8128
team_xa_to_xg_ratio=0.8 | - | 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 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.1264 | - | 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.7546 | - |
|
| Team totals | 0 | 1.02 | | 11 | | 6.9 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Alex Padilla | G | 4.4m | 10.9% | Market-value substitute prior |
| Dani Vivian | D | 14.3m | 33.0% | Market-value substitute prior |
| Aymeric Laporte | D | 24.4m | 35.1% | Market-value substitute prior |
| Mikel Jauregizar | M | 24.7m | 52.3% | Market-value substitute prior |
| Oihan Sancet | M | 22.9m | 32.6% | Market-value substitute prior |
| Nico Williams | F | 25.8m | 62.0% | Market-value substitute prior |
Getafe — projected line vs season baseline (5-3-2)
| Player | Pos | Min | Proj G | Proj xG | Season xG/g | | Proj Sh | Season Sh/g | Proj Rtg | Season Rtg | Rec | Model / FBref Prior |
|---|
| Ivan Azón | F | 79 | 0 | 0.16 | 0.13 | ok | 2 | 1.9 | 6.8 | 50.0 | 7 | 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.9985, quality 0.495) | market_value_eur=7700000
quality_factor=0.4951
boost_factor=0.9985
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': 'Aitor Paredes, Yeray Álvarez', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.194, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 0.9915, 'skill_edge': 0.0082, 'height_edge': -0.014, 'attacker_skill': 0.4951, 'defender_skill': 0.4768, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Aitor Paredes', 'market_value': 7100000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5162}, {'player': 'Yeray Álvarez', 'market_value': 930000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.1933} | totalShots: 1.9652 -> 1.9485 shotOffTarget: 1.3207 -> 1.3095 onTargetScoringAttempt: 0.6445 -> 0.639 | 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.86 (squad xG sum 1.0202, xG scale 0.8429, xA scale 0.8707, team xA 0.56 = 0.65 x lambda) | scoreline_reset=true
team_lambda=0.86
squad_xg_sum=1.0202
squad_xa_sum=0.642
team_expected_assists=0.559
team_xa_to_xg_ratio=0.65 | expected_goals: 0.1933 -> 0.1629 expected_assists: 0.0615 -> 0.0535 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 70.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.1503
goal_rate=0.2161
scorer_weight=0.1782 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0521
assist_rate=0.1924
provider_weight=0.0669 | - |
|
| Martín Satriano | F | 82 | 0 | 0.19 | 0.18 | ok | 2 | 1.8 | 6.8 | 63.0 | 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.0011, quality 0.529) | market_value_eur=10600000
quality_factor=0.5295
boost_factor=1.0011
reference_quality=0.505
history_matches=27
history_shrink=0.1562 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0183) | blend_weight=0.0183
history_matches=27
season_overlap_discount=1.0
per90_to_match_factor=0.9122
prior_reliability=0.18
competition=La Liga | wasFouled: 1.9801 -> 1.9933 interceptionWon: 0.598 -> 0.5871 fouls: 1.6919 -> 1.6857 totalCross: 0.6509 -> 0.6452 onTargetScoringAttempt: 0.6457 -> 0.6401 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Aitor Paredes, Yeray Álvarez', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.234, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.0495, 'skill_edge': 0.0237, 'height_edge': 0.01, 'attacker_skill': 0.5295, 'defender_skill': 0.4768, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Aitor Paredes', 'market_value': 7100000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5162}, {'player': 'Yeray Álvarez', 'market_value': 930000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.2236} | totalShots: 2.0264 -> 2.1267 shotOffTarget: 1.3811 -> 1.4495 onTargetScoringAttempt: 0.6401 -> 0.6718 expectedGoalsOnTarget: 0.3117 -> 0.3271 goals: 0.2234 -> 0.2345 expectedGoals: 0.2131 -> 0.2236 | 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.86 (squad xG sum 1.0202, xG scale 0.8429, xA scale 0.8707, team xA 0.56 = 0.65 x lambda) | scoreline_reset=true
team_lambda=0.86
squad_xg_sum=1.0202
squad_xa_sum=0.642
team_expected_assists=0.559
team_xa_to_xg_ratio=0.65 | expected_goals: 0.2236 -> 0.1885 expected_assists: 0.0673 -> 0.0586 | 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.1718
goal_rate=0.2345
scorer_weight=0.196 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0569
assist_rate=0.1403
provider_weight=0.0732 | - |
|
| Mario Martín | M | 76 | 0 | 0.10 | 0.09 | ok | 1 | 0.8 | 6.7 | 59.6 | 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.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.0033) | blend_weight=0.0033
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=0.8479
prior_reliability=0.0467
competition=La Liga | wasFouled: 1.4903 -> 1.5014 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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 Gerenabarrena', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.497, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0688, 'skill_edge': 0.0308, 'height_edge': 0.016, 'attacker_skill': 0.5444, 'defender_skill': 0.4759, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Beñat Gerenabarrena', 'market_value': 5200000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4759}], 'xg_override': 0.1212} | aerialWon: 1.6935 -> 1.0 totalShots: 1.213 -> 1.2965 shotOffTarget: 0.7886 -> 0.8429 onTargetScoringAttempt: 0.4244 -> 0.4536 bigChanceMissed: 0.1342 -> 0.1434 expectedGoals: 0.1134 -> 0.1212 goals: 0.0883 -> 0.0944 | 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.86 (squad xG sum 1.0202, xG scale 0.8429, xA scale 0.8707, team xA 0.56 = 0.65 x lambda) | scoreline_reset=true
team_lambda=0.86
squad_xg_sum=1.0202
squad_xa_sum=0.642
team_expected_assists=0.559
team_xa_to_xg_ratio=0.65 | expected_goals: 0.1212 -> 0.1022 expected_assists: 0.0554 -> 0.0482 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 74.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.0972
goal_rate=0.0944
scorer_weight=0.0862 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0471
assist_rate=0.0722
provider_weight=0.0559 | - |
|
| Ramón Terrats | M | 75 | 0 | 0.15 | 0.08 | 94% | 2 | 1.1 | 6.8 | 60.6 | 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 0.9977, quality 0.440) | market_value_eur=3200000
quality_factor=0.4399
boost_factor=0.9977
reference_quality=0.505
history_matches=37
history_shrink=0.119 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0155) | blend_weight=0.0155
history_matches=37
season_overlap_discount=1.0
per90_to_match_factor=0.8334
prior_reliability=0.2
competition=La Liga | totalCross: 1.7465 -> 1.7754 totalShots: 1.6548 -> 1.6724 wasFouled: 2.0963 -> 2.1069 interceptionWon: 0.6786 -> 0.6724 fouls: 1.0543 -> 1.0595 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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 Gerenabarrena', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.46, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0144, 'skill_edge': -0.0142, 'height_edge': 0.024, 'attacker_skill': 0.4443, 'defender_skill': 0.4759, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Beñat Gerenabarrena', 'market_value': 5200000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4759}], 'xg_override': 0.1776} | aerialWon: 0.8458 -> 1.0 totalShots: 1.6724 -> 1.6965 shotOffTarget: 1.095 -> 1.1108 onTargetScoringAttempt: 0.5598 -> 0.5679 | 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.86 (squad xG sum 1.0202, xG scale 0.8429, xA scale 0.8707, team xA 0.56 = 0.65 x lambda) | scoreline_reset=true
team_lambda=0.86
squad_xg_sum=1.0202
squad_xa_sum=0.642
team_expected_assists=0.559
team_xa_to_xg_ratio=0.65 | expected_goals: 0.1776 -> 0.1497 expected_assists: 0.1222 -> 0.1063 | 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_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.139
goal_rate=0.1704
scorer_weight=0.145 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.1008
assist_rate=0.1204
provider_weight=0.1052 | - |
|
| Nemanja Gudelj | M | 87 | 0 | 0.06 | 0.03 | 78% | 1 | 0.9 | 6.7 | 61.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.9978, quality 0.437) | market_value_eur=1900000
quality_factor=0.4374
boost_factor=0.9978
reference_quality=0.505
history_matches=41
history_shrink=0.1087 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0009) | blend_weight=0.0009
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=0.9634
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': 'Beñat Gerenabarrena', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.459, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0569, 'skill_edge': -0.0173, 'height_edge': 0.056, 'attacker_skill': 0.4374, 'defender_skill': 0.4759, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Beñat Gerenabarrena', 'market_value': 5200000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4759}], 'xg_override': 0.0727} | aerialWon: 1.4295 -> 1.2 totalShots: 0.8625 -> 0.9116 shotOffTarget: 0.6512 -> 0.6883 onTargetScoringAttempt: 0.2065 -> 0.2182 | 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.86 (squad xG sum 1.0202, xG scale 0.8429, xA scale 0.8707, team xA 0.56 = 0.65 x lambda) | scoreline_reset=true
team_lambda=0.86
squad_xg_sum=1.0202
squad_xa_sum=0.642
team_expected_assists=0.559
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0727 -> 0.0613 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 78.0) | match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0595
goal_rate=0.0619
scorer_weight=0.0559 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0294
assist_rate=0.0473
provider_weight=0.0344 | - |
|
| Johan Mojica | D | 85 | 0 | 0.02 | 0.02 | ok | 1 | 0.4 | 6.7 | 59.5 | 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.9979, quality 0.437) | market_value_eur=1400000
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.0090) | blend_weight=0.009
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=0.9484
prior_reliability=0.1333
competition=La Liga | totalCross: 7.0273 -> 7.0495 wasFouled: 1.2052 -> 1.22 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Jesús Areso', 'matchup_zone': 'Left Wingback vs Right Back — Overlapping Run'} | - | 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.86 (squad xG sum 1.0202, xG scale 0.8429, xA scale 0.8707, team xA 0.56 = 0.65 x lambda) | scoreline_reset=true
team_lambda=0.86
squad_xg_sum=1.0202
squad_xa_sum=0.642
team_expected_assists=0.559
team_xa_to_xg_ratio=0.65 | expected_assists: 0.0999 -> 0.087 | 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 skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0197
goal_rate=0.0
scorer_weight=0.0159 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0833
assist_rate=0.0372
provider_weight=0.0696 | - |
|
| Jean Ives Valou | D | 90 | 0 | 0.03 | - | n/a | 0 | 0.0 | 6.6 | 5.8 | 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.9855, quality 0.437) | market_value_eur=550000
quality_factor=0.4374
boost_factor=0.9855
reference_quality=0.505
history_matches=2
history_shrink=0.7143 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Peio Canales', 'matchup_zone': 'LW vs RWB + 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.86 (squad xG sum 1.0202, xG scale 0.8429, xA scale 0.8707, team xA 0.56 = 0.65 x lambda) | scoreline_reset=true
team_lambda=0.86
squad_xg_sum=1.0202
squad_xa_sum=0.642
team_expected_assists=0.559
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0354 -> 0.0298 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 15 by projected rating, fifa_overall 66.0) | match_squad_rank=15
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0294
goal_rate=0.0
scorer_weight=0.0238 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0028
assist_rate=0.0
provider_weight=0.0026 | - |
|
| Abdel Abqar | D | 80 | 0 | 0.00 | 0.01 | 81% | 0 | 0.1 | 6.6 | 50.4 | 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 0.9970, quality 0.441) | market_value_eur=3300000
quality_factor=0.4412
boost_factor=0.997
reference_quality=0.505
history_matches=27
history_shrink=0.1562 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0068) | blend_weight=0.0068
history_matches=27
season_overlap_discount=1.0
per90_to_match_factor=0.8872
prior_reliability=0.0667
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': 'Iñaki Williams', '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.86 (squad xG sum 1.0202, xG scale 0.8429, xA scale 0.8707, team xA 0.56 = 0.65 x lambda) | scoreline_reset=true
team_lambda=0.86
squad_xg_sum=1.0202
squad_xa_sum=0.642
team_expected_assists=0.559
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 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 skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0013
goal_rate=0.0
scorer_weight=0.0013 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0075
assist_rate=0.0664
provider_weight=0.0094 | - |
|
| Dani Carvajal | D | 82 | 0 | 0.02 | 0.01 | 95% | 0 | 0.2 | 6.8 | 37.5 | 18 | 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.9959, quality 0.442) | market_value_eur=3400000
quality_factor=0.4424
boost_factor=0.9959
reference_quality=0.505
history_matches=18
history_shrink=0.2174 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Peio Canales', 'matchup_zone': 'LW vs RWB + 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.86 (squad xG sum 1.0202, xG scale 0.8429, xA scale 0.8707, team xA 0.56 = 0.65 x lambda) | scoreline_reset=true
team_lambda=0.86
squad_xg_sum=1.0202
squad_xa_sum=0.642
team_expected_assists=0.559
team_xa_to_xg_ratio=0.65 | expected_assists: 0.104 -> 0.0906 | 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_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.0219
goal_rate=0.0
scorer_weight=0.0177 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0866
assist_rate=0.1525
provider_weight=0.1133 | - |
|
| Kiko Femenía | D | 64 | 0 | 0.02 | 0.03 | 37% | 0 | 0.2 | 6.6 | 55.7 | 22 | 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=525000
quality_factor=0.4374
boost_factor=0.9973
reference_quality=0.505
history_matches=33
history_shrink=0.1316 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0086) | blend_weight=0.0086
history_matches=33
season_overlap_discount=1.0
per90_to_match_factor=0.7122
prior_reliability=0.1
competition=La Liga | interceptionWon: 0.7823 -> 0.7756 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Álex Berenguer', '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.86 (squad xG sum 1.0202, xG scale 0.8429, xA scale 0.8707, team xA 0.56 = 0.65 x lambda) | scoreline_reset=true
team_lambda=0.86
squad_xg_sum=1.0202
squad_xa_sum=0.642
team_expected_assists=0.559
team_xa_to_xg_ratio=0.65 | expected_assists: 0.0545 -> 0.0475 | 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.0175
goal_rate=0.0316
scorer_weight=0.0203 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0464
assist_rate=0.0042
provider_weight=0.038 | - |
|
| David Soria | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 7.1 | 68.6 | 30 | FBref Prior G_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost G_service raw output over 3 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9981, quality 0.437) | market_value_eur=2700000
quality_factor=0.4374
boost_factor=0.9981
reference_quality=0.505
history_matches=47
history_shrink=0.0962 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0125) | blend_weight=0.0125
history_matches=47
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.2
competition=La Liga | saves: 3.1365 -> 3.1306 wasFouled: 0.2497 -> 0.2549 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Iñaki Williams, Robert Navarro', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.0156} | - | 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.86 (squad xG sum 1.0202, xG scale 0.8429, xA scale 0.8707, team xA 0.56 = 0.65 x lambda) | scoreline_reset=true
team_lambda=0.86
squad_xg_sum=1.0202
squad_xa_sum=0.642
team_expected_assists=0.559
team_xa_to_xg_ratio=0.65 | shots_faced: 9.6 -> 9.7 expected_saves: 2.34 -> 2.38 | 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.8413 | - | 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.597 | - |
|
| Team totals | 0 | 0.86 | | 11 | | 6.8 | | |
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 |
| Zaid Romero | D | 13.7m | 21.9% | Market-value substitute prior |
| Orel Mangala | M | 22.2m | 31.2% | Market-value substitute prior |
| Mauro Arambarri | M | 22.2m | 51.0% | Market-value substitute prior |
| Christantus Uche | F | 25.8m | 58.1% | Market-value substitute prior |
Antagonist / tactical summary
Midfield is evenly contested — Peio Canales vs Mario Martín will be the pivotal duel. Total antagonist xG — Home: 0.84, 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.6% / 49.4%, dominance ratio 0.50, key duel: Peio Canales vs Mario Martín
Peio Canales xG 0.10Iñaki Williams xG 0.35Álex Berenguer xG 0.12Ivan Azón xG 0.19Martín Satriano xG 0.22Johan Mojica xG 0.02
Summary
Antagonist matchup analysis for Athletic Club vs Getafe. Most likely scoreline: 0-0. Lambdas derived from 6 home and 7 away individual player duels. Head-to-head: Athletic Club 2W-6D-2L vs Getafe over 10 meetings.
Tactical parity between 4-2-3-1 and 5-3-2. Match outcome driven primarily by individual player quality. Midfield is evenly contested — Peio Canales vs Mario Martín will be the pivotal duel. Total antagonist xG — Home: 0.84, 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.
Sunderland vs Leeds
Premier League · 20261025 · 4-2-3-1 vs 3-4-2-1
Predicted 1-1Winner: DrawWinning H 1-0 (8.1%)Winning A 0-1 (8.9%)Confidence 0.71λ home/away 1.33 / 1.45Most-likely P 12.1%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset TracingAntagonist + XGBoost match analysis for Sunderland vs Leeds. Player statistics regressed using position-specific XGBoost models (G, D, M, F) with 2026-2027 FBref priors. Micro-duels resolved across 4-2-3-1 vs 3-4-2-1 (duel lambdas: Home 1.089, Away 1.166). Final calibrated Poisson lambdas: Home 1.327, Away 1.454 (most likely score 1-1).
Home Starters 11/11 XGBoost (11 FBref) Away Starters 11/11 XGBoost (10 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.09 / 1.17 Final λ (H/A) 1.33 / 1.45
FBref Team Priors: Sunderland (Gls/90: 1.0, GA/90: 1.0 → E[λ]: 0.69) vs Leeds United (Gls/90: 1.0, GA/90: 1.0 → E[λ]: 0.69) | Blend Weight: 0.192
Modeling Pipeline Stages (5 layers)
- 1. XGBoost player regressions for volume & event rates with market-value quality scaling
- 2. Multi-source prior blending (FBref 2026-2027 tables + Sofascore season history)
- 3. Antagonist formation duel matrix resolving 1v1 and zonal matchups
- 4. Team-level prior calibration (FBref possession and attack/defense efficiencies)
- 5. Bivariate Poisson matrix with Dixon-Coles low-score correction
Standing & form context
| Metric | Sunderland | Leeds |
|---|
| League position | 20.00 | 7.00 |
| Points per game | 0.93 | 1.40 |
| Attack index | 0.90 | 0.91 |
| Defense (concede) index | 0.81 | 1.20 |
| Form multiplier | 0.97 | 1.03 |
| Standing λ multiplier | 0.88 | 1.04 |
Lambda decomposition (how the goal rates were built)
| Stage | Sunderland λ | Leeds λ |
|---|
| FBref Squad Prior E[λ] (weight 0.192) | 0.690 | 0.690 |
| Pre-competitive-floor | 1.056 | 1.283 |
| Pre-calibration (Micro-duels) | 1.089 | 1.166 |
| Final λ | 1.327 | 1.454 |
competition calibration scale 1.189competition 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 | 12.1% |
| 0-1 | 8.9% |
| 1-2 | 8.7% |
| 1-0 | 8.1% |
| 2-1 | 7.9% |
| Home win | 34.3% |
| Draw | 25.6% |
| Away win | 40.1% |
| Over 2.5 | 52.6% |
| BTTS yes | 56.4% |
Pregame fair line — favorite Leeds (40.1%), fair total 2.78, fair spread -0.13
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 |
|---|
| Luke O'Nien | D | 86 | 0 | 0.02 | 0.00 | 376% | 1 | 0.1 | 6.7 | 21.3 | 34 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9944, quality 0.437) | market_value_eur=660000
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.0084) | blend_weight=0.0084
history_matches=13
season_overlap_discount=1.0
per90_to_match_factor=0.9539
prior_reliability=0.0467
competition=Premier League | fouls: 0.9138 -> 0.9291 totalCross: 1.2324 -> 1.245 interceptionWon: 0.8246 -> 0.8176 wonTackle: 0.7698 -> 0.7633 totalShots: 0.5533 -> 0.5596 wasFouled: 0.6836 -> 0.6778 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Jayden Bogle', 'matchup_zone': '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.33 (squad xG sum 1.3328, xG scale 0.9956, xA scale 0.9956, team xA 0.90 = 0.68 x lambda) | scoreline_reset=true
team_lambda=1.327
squad_xg_sum=1.3328
squad_xa_sum=0.9052
team_expected_assists=0.9012
team_xa_to_xg_ratio=0.6792 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 73.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.0222
goal_rate=0.0
scorer_weight=0.018 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by 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.2019
provider_weight=0.0251 | - |
|
| Nordi Mukiele | D | 88 | 0 | 0.14 | 0.07 | 89% | 1 | 0.8 | 6.8 | 50.7 | 27 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0035, quality 0.602) | market_value_eur=17100000
quality_factor=0.6016
boost_factor=1.0035
reference_quality=0.505
history_matches=36
history_shrink=0.122 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0053) | blend_weight=0.0053
history_matches=36
season_overlap_discount=1.0
per90_to_match_factor=0.9759
prior_reliability=0.0667
competition=Premier League | totalCross: 3.2164 -> 3.2046 fouls: 1.2957 -> 1.2888 wonTackle: 1.24 -> 1.2334 totalShots: 1.0834 -> 1.0777 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Gabriel Gudmundsson', 'matchup_zone': '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.33 (squad xG sum 1.3328, xG scale 0.9956, xA scale 0.9956, team xA 0.90 = 0.68 x lambda) | scoreline_reset=true
team_lambda=1.327
squad_xg_sum=1.3328
squad_xa_sum=0.9052
team_expected_assists=0.9012
team_xa_to_xg_ratio=0.6792 | - | 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.1277
goal_rate=0.085
scorer_weight=0.1093 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0891
assist_rate=0.0415
provider_weight=0.0746 | - |
|
| Robin Roefs | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 7.0 | 54.0 | 27 | 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.0073, quality 0.725) | market_value_eur=31000000
quality_factor=0.7249
boost_factor=1.0073
reference_quality=0.505
history_matches=40
history_shrink=0.1111 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0096) | blend_weight=0.0096
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League | saves: 2.9394 -> 2.9159 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Dominic Calvert-Lewin, Jayden Bogle', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.1657} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.33 (squad xG sum 1.3328, xG scale 0.9956, xA scale 0.9956, team xA 0.90 = 0.68 x lambda) | scoreline_reset=true
team_lambda=1.327
squad_xg_sum=1.3328
squad_xa_sum=0.9052
team_expected_assists=0.9012
team_xa_to_xg_ratio=0.6792 | shots_faced: 11.1 -> 13.8 expected_saves: 2.72 -> 3.38 high_pressure_saves: 0.93 -> 1.16 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 81.0) | match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.3703 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by 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.7923 | - |
|
| Omar Alderete | D | 78 | 0 | 0.04 | 0.02 | 69% | 0 | 0.4 | 6.8 | 44.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.0009, quality 0.529) | market_value_eur=10600000
quality_factor=0.5295
boost_factor=1.0009
reference_quality=0.505
history_matches=34
history_shrink=0.1282 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0017) | blend_weight=0.0017
history_matches=34
season_overlap_discount=1.0
per90_to_match_factor=0.8679
prior_reliability=0.02
competition=Premier League | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Dominic Calvert-Lewin', '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.33 (squad xG sum 1.3328, xG scale 0.9956, xA scale 0.9956, team xA 0.90 = 0.68 x lambda) | scoreline_reset=true
team_lambda=1.327
squad_xg_sum=1.3328
squad_xa_sum=0.9052
team_expected_assists=0.9012
team_xa_to_xg_ratio=0.6792 | - | 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
ranking_status=combined | - | integer_goal_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.0355
goal_rate=0.0022
scorer_weight=0.0289 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0133
assist_rate=0.0
provider_weight=0.0107 | - |
|
| Reinildo Mandava | D | 87 | 0 | 0.00 | 0.00 | 30% | 0 | 0.0 | 6.7 | 48.3 | 22 | 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.9976, quality 0.451) | market_value_eur=4099999
quality_factor=0.4511
boost_factor=0.9976
reference_quality=0.505
history_matches=29
history_shrink=0.1471 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0127) | blend_weight=0.0127
history_matches=29
season_overlap_discount=1.0
per90_to_match_factor=0.9683
prior_reliability=0.1333
competition=Premier League | fouls: 1.5412 -> 1.5524 interceptionWon: 1.1812 -> 1.1908 totalCross: 0.7024 -> 0.712 totalShots: 0.393 -> 0.388 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Lukas Nmecha', '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.33 (squad xG sum 1.3328, xG scale 0.9956, xA scale 0.9956, team xA 0.90 = 0.68 x lambda) | scoreline_reset=true
team_lambda=1.327
squad_xg_sum=1.3328
squad_xa_sum=0.9052
team_expected_assists=0.9012
team_xa_to_xg_ratio=0.6792 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 80.0) | match_squad_rank=14
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0021
goal_rate=0.0
scorer_weight=0.002 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0437
assist_rate=0.0212
provider_weight=0.0358 | - |
|
| Noah Sadiki | M | 83 | 0 | 0.09 | 0.06 | 51% | 1 | 0.7 | 6.8 | 55.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.0100, quality 0.791) | market_value_eur=42000000
quality_factor=0.7909
boost_factor=1.01
reference_quality=0.505
history_matches=38
history_shrink=0.1163 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0101) | blend_weight=0.0101
history_matches=38
season_overlap_discount=1.0
per90_to_match_factor=0.9267
prior_reliability=0.1333
competition=Premier League | wonTackle: 0.7677 -> 0.774 wasFouled: 1.3517 -> 1.3568 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Dominic Calvert-Lewin, Lukas Nmecha, Anton Stach', '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.33 (squad xG sum 1.3328, xG scale 0.9956, xA scale 0.9956, team xA 0.90 = 0.68 x lambda) | scoreline_reset=true
team_lambda=1.327
squad_xg_sum=1.3328
squad_xa_sum=0.9052
team_expected_assists=0.9012
team_xa_to_xg_ratio=0.6792 | - | 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.087
goal_rate=0.0739
scorer_weight=0.0797 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0624
assist_rate=0.0763
provider_weight=0.0709 | - |
|
| Brian Brobbey | F | 81 | 1 | 0.43 | 0.28 | 54% | 3 | 1.4 | 7.0 | 54.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.0120, quality 0.834) | market_value_eur=53000000
quality_factor=0.834
boost_factor=1.012
reference_quality=0.505
history_matches=36
history_shrink=0.122 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0074) | blend_weight=0.0074
history_matches=36
season_overlap_discount=1.0
per90_to_match_factor=0.8988
prior_reliability=0.0933
competition=Premier League | totalOffside: 0.5035 -> 0.514 wasFouled: 1.9025 -> 1.8932 totalShots: 2.8469 -> 2.8397 onTargetScoringAttempt: 1.2978 -> 1.2928 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Tarik Muharemović, Nico Elvedi', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.213, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 1.0197, 'skill_edge': 0.0554, 'height_edge': -0.042, 'attacker_skill': 0.834, 'defender_skill': 0.7109, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Tarik Muharemović', 'market_value': 43000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8462}, {'player': 'Nico Elvedi', 'market_value': 11000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5755}], 'xg_override': 0.4309} | totalShots: 2.8419 -> 2.8979 shotOffTarget: 1.5491 -> 1.5796 onTargetScoringAttempt: 1.2928 -> 1.3183 goals: 0.5353 -> 0.5458 expectedGoalsOnTarget: 0.5333 -> 0.5438 expectedGoals: 0.4226 -> 0.4309 bigChanceMissed: 0.3856 -> 0.3932 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; 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.33 (squad xG sum 1.3328, xG scale 0.9956, xA scale 0.9956, team xA 0.90 = 0.68 x lambda) | scoreline_reset=true
team_lambda=1.327
squad_xg_sum=1.3328
squad_xa_sum=0.9052
team_expected_assists=0.9012
team_xa_to_xg_ratio=0.6792 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 78.0) | match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.3489
goal_rate=0.5458
scorer_weight=0.5316 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0409
assist_rate=0.0
provider_weight=0.0334 | - |
|
| Enzo Le Fée | M | 89 | 0 | 0.24 | 0.17 | 41% | 2 | 1.1 | 6.9 | 58.4 | 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.0064, quality 0.702) | market_value_eur=28000000
quality_factor=0.7022
boost_factor=1.0064
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.987
prior_reliability=0.1267
competition=Premier League | totalCross: 3.0953 -> 3.0862 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Ao Tanaka', 'matchup_zone': '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.33 (squad xG sum 1.3328, xG scale 0.9956, xA scale 0.9956, team xA 0.90 = 0.68 x lambda) | scoreline_reset=true
team_lambda=1.327
squad_xg_sum=1.3328
squad_xa_sum=0.9052
team_expected_assists=0.9012
team_xa_to_xg_ratio=0.6792 | - | 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.2153
goal_rate=0.2228
scorer_weight=0.2253 | - | integer_assist_projection | Team scoreline allocation: 1 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.16
assist_rate=0.1379
provider_weight=0.1455 | - |
|
| Habib Diarra | M | 84 | 0 | 0.13 | 0.12 | ok | 1 | 0.9 | 6.7 | 49.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.0144, quality 0.764) | market_value_eur=37000000
quality_factor=0.7641
boost_factor=1.0144
reference_quality=0.505
history_matches=22
history_shrink=0.1852 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0024) | blend_weight=0.0024
history_matches=22
season_overlap_discount=1.0
per90_to_match_factor=0.9331
prior_reliability=0.02
competition=Premier League | goalAssist: 0.0985 -> 0.1058 wasFouled: 2.0981 -> 2.093 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Anton Stach', 'matchup_zone': 'CAM vs CM', 'duel_win_rate': 0.38, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9413, 'skill_edge': 0.012, 'height_edge': -0.052, 'attacker_skill': 0.7752, 'defender_skill': 0.7484, 'attacker_role': 'CAM', 'attacker_mv_price_index': 0.95, 'defender_adjusted_parts': [{'player': 'Anton Stach', 'market_value': 31000000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.7484}], 'xg_override': 0.1337} | aerialWon: 0.6625 -> 1.0 totalShots: 1.4992 -> 1.4112 shotOffTarget: 1.0042 -> 0.9453 onTargetScoringAttempt: 0.4904 -> 0.4616 bigChanceMissed: 0.2083 -> 0.1961 expectedGoalsOnTarget: 0.1621 -> 0.1526 expectedGoals: 0.142 -> 0.1337 goals: 0.12 -> 0.113 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.33 (squad xG sum 1.3328, xG scale 0.9956, xA scale 0.9956, team xA 0.90 = 0.68 x lambda) | scoreline_reset=true
team_lambda=1.327
squad_xg_sum=1.3328
squad_xa_sum=0.9052
team_expected_assists=0.9012
team_xa_to_xg_ratio=0.6792 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 77.0) | match_squad_rank=11
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1246
goal_rate=0.113
scorer_weight=0.1181 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by 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.1058
provider_weight=0.1028 | - |
|
| Trai Hume | D | 85 | 0 | 0.06 | 0.06 | ok | 1 | 0.9 | 6.7 | 54.6 | 32 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0040, quality 0.631) | market_value_eur=20000000
quality_factor=0.6311
boost_factor=1.004
reference_quality=0.505
history_matches=42
history_shrink=0.1064 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0088) | blend_weight=0.0088
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.9468
prior_reliability=0.1267
competition=Premier League | wasFouled: 0.8536 -> 0.8461 wonTackle: 1.1363 -> 1.1438 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Dominic Calvert-Lewin', 'matchup_zone': '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.33 (squad xG sum 1.3328, xG scale 0.9956, xA scale 0.9956, team xA 0.90 = 0.68 x lambda) | scoreline_reset=true
team_lambda=1.327
squad_xg_sum=1.3328
squad_xa_sum=0.9052
team_expected_assists=0.9012
team_xa_to_xg_ratio=0.6792 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 15 by projected rating, fifa_overall 78.0) | match_squad_rank=15
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0585
goal_rate=0.119
scorer_weight=0.0754 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0953
assist_rate=0.0016
provider_weight=0.0801 | - |
|
| Granit Xhaka | M | 90 | 0 | 0.03 | 0.02 | 31% | 1 | 0.5 | 7.3 | 59.5 | 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.0000, quality 0.505) | market_value_eur=8500000
quality_factor=0.5047
boost_factor=1.0
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.9947
prior_reliability=0.1333
competition=Premier League | wasFouled: 1.5944 -> 1.613 totalCross: 4.2514 -> 4.2634 totalShots: 0.7339 -> 0.7267 wonTackle: 1.1969 -> 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': 'Tarik Muharemović', 'matchup_zone': 'LW vs CB', 'duel_win_rate': 0.234, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.7271, 'skill_edge': -0.1537, 'height_edge': -0.032, 'attacker_skill': 0.5047, 'defender_skill': 0.8462, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Tarik Muharemović', 'market_value': 43000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8462}], 'xg_override': 0.0273} | aerialWon: 0.9277 -> 1.2 totalShots: 0.7322 -> 0.5324 shotOffTarget: 0.5618 -> 0.4085 onTargetScoringAttempt: 0.1704 -> 0.1239 expectedGoals: 0.0376 -> 0.0273 goals: 0.037 -> 0.0269 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.33 (squad xG sum 1.3328, xG scale 0.9956, xA scale 0.9956, team xA 0.90 = 0.68 x lambda) | scoreline_reset=true
team_lambda=1.327
squad_xg_sum=1.3328
squad_xa_sum=0.9052
team_expected_assists=0.9012
team_xa_to_xg_ratio=0.6792 | - | 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.0268
goal_rate=0.0269
scorer_weight=0.0271 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1619
assist_rate=0.1114
provider_weight=0.1413 | - |
|
| Team totals | 1 | 1.33 | | 14 | | 6.9 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Anthony Patterson | G | 4.6m | 11.9% | Market-value substitute prior |
| Daniel Ballard | D | 14.6m | 23.8% | Market-value substitute prior |
| Lutsharel Geertruida | D | 14.4m | 33.7% | Market-value substitute prior |
| Dayann Methalie | M | 23.0m | 54.5% | Market-value substitute prior |
| Chris Rigg | M | 15.8m | 71.1% | Market-value substitute prior |
| Malick Fofana | F | 26.4m | 60.8% | Market-value substitute prior |
Leeds — projected line vs season baseline (3-4-2-1)
| Player | Pos | Min | Proj G | Proj xG | Season xG/g | | Proj Sh | Season Sh/g | Proj Rtg | Season Rtg | Rec | Model / FBref Prior |
|---|
| Dominic Calvert-Lewin | F | 85 | 1 | 0.44 | 0.42 | ok | 3 | 1.8 | 6.9 | 55.5 | 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.0063, quality 0.694) | market_value_eur=27000000
quality_factor=0.6941
boost_factor=1.0063
reference_quality=0.505
history_matches=40
history_shrink=0.1111 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0096) | blend_weight=0.0096
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=0.9414
prior_reliability=0.1333
competition=Premier League | totalShots: 2.4763 -> 2.4706 totalOffside: 0.819 -> 0.8247 onTargetScoringAttempt: 1.0445 -> 1.039 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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, Omar Alderete', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle', 'duel_win_rate': 0.297, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 1.04, 'skill_edge': -0.0008, 'height_edge': 0.028, 'attacker_skill': 0.6941, 'defender_skill': 0.6959, 'attacker_role': 'SS', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Noah Sadiki', 'market_value': 42000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8221}, {'player': 'Omar Alderete', 'market_value': 10600000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5697}], 'xg_override': 0.4292} | totalShots: 2.4708 -> 2.5697 shotOffTarget: 1.4318 -> 1.4891 onTargetScoringAttempt: 1.039 -> 1.0806 bigChanceMissed: 0.9268 -> 0.9639 expectedGoalsOnTarget: 0.624 -> 0.649 goals: 0.4387 -> 0.4562 expectedGoals: 0.4127 -> 0.4292 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.45 (squad xG sum 1.4149, xG scale 1.0277, xA scale 1.1324, team xA 0.95 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.454
squad_xg_sum=1.4149
squad_xa_sum=0.8346
team_expected_assists=0.9451
team_xa_to_xg_ratio=0.65 | expected_goals: 0.4292 -> 0.4411 | 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=1
goal_probability=0.3567
goal_rate=0.4562
scorer_weight=0.4659 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0353
assist_rate=0.005
provider_weight=0.0287 | - |
|
| Lukas Nmecha | F | 74 | 0 | 0.17 | 0.11 | 56% | 2 | 0.7 | 6.7 | 43.9 | 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.0003, quality 0.512) | market_value_eur=9100000
quality_factor=0.5118
boost_factor=1.0003
reference_quality=0.505
history_matches=35
history_shrink=0.125 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0011) | blend_weight=0.0011
history_matches=35
season_overlap_discount=1.0
per90_to_match_factor=0.8189
prior_reliability=0.0133
competition=Premier League | totalCross: 0.7038 -> 0.7119 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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, Omar Alderete', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle', 'duel_win_rate': 0.207, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 0.9077, 'skill_edge': -0.0828, 'height_edge': 0.02, 'attacker_skill': 0.5118, 'defender_skill': 0.6959, 'attacker_role': 'SS', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Noah Sadiki', 'market_value': 42000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8221}, {'player': 'Omar Alderete', 'market_value': 10600000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5697}], 'xg_override': 0.1606} | totalShots: 1.5344 -> 1.3928 shotOffTarget: 0.9753 -> 0.8853 onTargetScoringAttempt: 0.5565 -> 0.5051 bigChanceMissed: 0.4044 -> 0.3671 expectedGoalsOnTarget: 0.325 -> 0.295 goals: 0.1911 -> 0.1735 expectedGoals: 0.1769 -> 0.1606 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.45 (squad xG sum 1.4149, xG scale 1.0277, xA scale 1.1324, team xA 0.95 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.454
squad_xg_sum=1.4149
squad_xa_sum=0.8346
team_expected_assists=0.9451
team_xa_to_xg_ratio=0.65 | expected_assists: 0.059 -> 0.0668 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 76.0) | match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1521
goal_rate=0.1735
scorer_weight=0.1751 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0646
assist_rate=0.119
provider_weight=0.0835 | - |
|
| Anton Stach | M | 87 | 0 | 0.16 | 0.09 | 80% | 2 | 1.3 | 7.0 | 56.9 | 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.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.0111) | blend_weight=0.0111
history_matches=34
season_overlap_discount=1.0
per90_to_match_factor=0.9654
prior_reliability=0.1333
competition=Premier League | totalCross: 6.6895 -> 6.6581 wasFouled: 1.2915 -> 1.3093 interceptionWon: 1.5057 -> 1.5211 fouls: 1.7226 -> 1.7142 totalShots: 1.4495 -> 1.4548 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.477, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 1.0395, 'skill_edge': -0.0331, 'height_edge': 0.06, 'attacker_skill': 0.7484, 'defender_skill': 0.8221, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Noah Sadiki', 'market_value': 42000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8221}], 'xg_override': 0.1569} | aerialWon: 2.2793 -> 1.4 totalShots: 1.4548 -> 1.5123 shotOffTarget: 0.9905 -> 1.0296 onTargetScoringAttempt: 0.4592 -> 0.4773 bigChanceMissed: 0.2995 -> 0.3113 goals: 0.1951 -> 0.2028 expectedGoals: 0.1509 -> 0.1569 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.45 (squad xG sum 1.4149, xG scale 1.0277, xA scale 1.1324, team xA 0.95 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.454
squad_xg_sum=1.4149
squad_xa_sum=0.8346
team_expected_assists=0.9451
team_xa_to_xg_ratio=0.65 | expected_assists: 0.1103 -> 0.1249 | 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.1489
goal_rate=0.2028
scorer_weight=0.197 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1174
assist_rate=0.0952
provider_weight=0.1131 | - |
|
| Gabriel Gudmundsson | M | 83 | 0 | 0.04 | 0.01 | 427% | 1 | 0.2 | 6.9 | 38.5 | 30 | 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.0068, quality 0.686) | market_value_eur=26000000
quality_factor=0.6858
boost_factor=1.0068
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': 'Nordi Mukiele', 'matchup_zone': 'Left Wingback vs Right Back — Overlapping Run', 'duel_win_rate': 0.426, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0378, 'skill_edge': 0.0417, 'height_edge': -0.016, 'attacker_skill': 0.765, 'defender_skill': 0.6723, 'attacker_role': 'LWB', 'attacker_mv_price_index': 0.7, 'defender_adjusted_parts': [{'player': 'Nordi Mukiele', 'market_value': 17100000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.6723}], 'xg_override': 0.0388} | aerialWon: 0.8318 -> 1.1 totalShots: 0.6562 -> 0.681 shotOffTarget: 0.4924 -> 0.511 onTargetScoringAttempt: 0.1638 -> 0.17 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.45 (squad xG sum 1.4149, xG scale 1.0277, xA scale 1.1324, team xA 0.95 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.454
squad_xg_sum=1.4149
squad_xa_sum=0.8346
team_expected_assists=0.9451
team_xa_to_xg_ratio=0.65 | expected_assists: 0.0857 -> 0.097 | 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.0391
goal_rate=0.0409
scorer_weight=0.0408 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0924
assist_rate=0.0771
provider_weight=0.0909 | - |
|
| Ao Tanaka | M | 75 | 0 | 0.07 | 0.05 | 33% | 1 | 0.4 | 6.9 | 34.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 1.0035, quality 0.592) | market_value_eur=16200000
quality_factor=0.5921
boost_factor=1.0035
reference_quality=0.505
history_matches=32
history_shrink=0.1351 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0029) | blend_weight=0.0029
history_matches=32
season_overlap_discount=1.0
per90_to_match_factor=0.8367
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': 'Noah Sadiki', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.383, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9015, 'skill_edge': -0.095, 'height_edge': 0.028, 'attacker_skill': 0.6109, 'defender_skill': 0.8221, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Noah Sadiki', 'market_value': 42000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8221}], 'xg_override': 0.065} | aerialWon: 0.3851 -> 1.1 totalShots: 0.9412 -> 0.8485 shotOffTarget: 0.7152 -> 0.6448 onTargetScoringAttempt: 0.226 -> 0.2037 bigChanceMissed: 0.1632 -> 0.1471 expectedGoals: 0.0721 -> 0.065 goals: 0.0669 -> 0.0603 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.45 (squad xG sum 1.4149, xG scale 1.0277, xA scale 1.1324, team xA 0.95 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.454
squad_xg_sum=1.4149
squad_xa_sum=0.8346
team_expected_assists=0.9451
team_xa_to_xg_ratio=0.65 | expected_assists: 0.0651 -> 0.0737 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 76.0) | match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0646
goal_rate=0.0603
scorer_weight=0.0641 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.071
assist_rate=0.0701
provider_weight=0.0769 | - |
|
| Ethan Ampadu | M | 90 | 0 | 0.04 | 0.05 | ok | 1 | 0.6 | 7.0 | 59.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.0078, quality 0.739) | market_value_eur=33000000
quality_factor=0.7389
boost_factor=1.0078
reference_quality=0.505
history_matches=40
history_shrink=0.1111 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0096) | blend_weight=0.0096
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=0.9977
prior_reliability=0.1333
competition=Premier League | wonTackle: 1.2072 -> 1.2004 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.459, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 1.0133, 'skill_edge': -0.027, 'height_edge': 0.036, 'attacker_skill': 0.7622, 'defender_skill': 0.8221, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Noah Sadiki', 'market_value': 42000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8221}], 'xg_override': 0.0422} | aerialWon: 1.2611 -> 1.1 totalShots: 0.706 -> 0.7154 shotOffTarget: 0.5387 -> 0.5459 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.45 (squad xG sum 1.4149, xG scale 1.0277, xA scale 1.1324, team xA 0.95 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.454
squad_xg_sum=1.4149
squad_xa_sum=0.8346
team_expected_assists=0.9451
team_xa_to_xg_ratio=0.65 | expected_assists: 0.0553 -> 0.0626 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 80.0) | match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0425
goal_rate=0.0523
scorer_weight=0.0482 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0607
assist_rate=0.0626
provider_weight=0.0669 | - |
|
| Jayden Bogle | M | 77 | 0 | 0.17 | 0.08 | 103% | 1 | 0.5 | 6.8 | 55.2 | 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.0040, quality 0.623) | market_value_eur=19200000
quality_factor=0.6231
boost_factor=1.004
reference_quality=0.505
history_matches=39
history_shrink=0.1136 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0084) | blend_weight=0.0084
history_matches=39
season_overlap_discount=1.0
per90_to_match_factor=0.8586
prior_reliability=0.1133
competition=Premier League | wasFouled: 1.1738 -> 1.1851 totalShots: 1.1481 -> 1.1385 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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 O'Nien", 'matchup_zone': 'Right Wingback vs Left Back — Overlapping Run', 'duel_win_rate': 0.533, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.1956, 'skill_edge': 0.1171, 'height_edge': 0.016, 'attacker_skill': 0.6976, 'defender_skill': 0.4374, 'attacker_role': 'RWB', 'attacker_mv_price_index': 0.7, 'defender_adjusted_parts': [{'player': "Luke O'Nien", 'market_value': 660000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.4374}], 'xg_override': 0.1616} | totalShots: 1.1447 -> 1.3687 aerialWon: 0.8434 -> 1.0 shotOffTarget: 0.7426 -> 0.8879 onTargetScoringAttempt: 0.4021 -> 0.4808 expectedGoalsOnTarget: 0.226 -> 0.2702 expectedGoals: 0.1352 -> 0.1616 goals: 0.1205 -> 0.1441 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.45 (squad xG sum 1.4149, xG scale 1.0277, xA scale 1.1324, team xA 0.95 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.454
squad_xg_sum=1.4149
squad_xa_sum=0.8346
team_expected_assists=0.9451
team_xa_to_xg_ratio=0.65 | expected_assists: 0.0872 -> 0.0987 | 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.153
goal_rate=0.1441
scorer_weight=0.1524 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.094
assist_rate=0.092
provider_weight=0.1022 | - |
|
| Tarik Muharemović | D | 90 | 0 | 0.13 | 0.05 | 163% | 1 | 0.5 | 7.0 | 35.8 | 10 | 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.0436, quality 0.796) | market_value_eur=43000000
quality_factor=0.7957
boost_factor=1.0436
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=1.0
prior_reliability=0.1333
competition=Premier League | interceptionWon: 1.2227 -> 1.2564 wasFouled: 1.0578 -> 1.0336 totalShots: 1.0447 -> 1.0211 onTargetScoringAttempt: 0.1469 -> 0.1622 totalCross: 0.1728 -> 0.187 wonTackle: 0.7442 -> 0.7336 goalAssist: 0.2392 -> 0.2288 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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': '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.45 (squad xG sum 1.4149, xG scale 1.0277, xA scale 1.1324, team xA 0.95 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.454
squad_xg_sum=1.4149
squad_xa_sum=0.8346
team_expected_assists=0.9451
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 75.0) | match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1209
goal_rate=0.0
scorer_weight=0.1031 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0111
assist_rate=0.2288
provider_weight=0.014 | - |
|
| Nico Elvedi | D | 90 | 0 | 0.04 | 0.01 | 275% | 1 | 0.2 | 6.8 | 27.5 | 10 | 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.0049, quality 0.534) | market_value_eur=11000000
quality_factor=0.5341
boost_factor=1.0049
reference_quality=0.505
history_matches=4
history_shrink=0.5556 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0144) | blend_weight=0.0144
history_matches=4
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.04
competition=Premier League | wasFouled: 0.0 -> 0.0481 wonTackle: 0.7687 -> 0.7576 totalShots: 0.6424 -> 0.6331 interceptionWon: 1.0194 -> 1.0287 onTargetScoringAttempt: 0.3906 -> 0.385 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Brian Brobbey', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.45 (squad xG sum 1.4149, xG scale 1.0277, xA scale 1.1324, team xA 0.95 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.454
squad_xg_sum=1.4149
squad_xa_sum=0.8346
team_expected_assists=0.9451
team_xa_to_xg_ratio=0.65 | expected_assists: 0.1662 -> 0.1884 | 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: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0431
goal_rate=0.0
scorer_weight=0.0353 | - | integer_assist_projection | Team scoreline allocation: 1 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.1717
assist_rate=0.0
provider_weight=0.1507 | - |
|
| James Justin | D | 89 | 0 | 0.06 | 0.06 | ok | 1 | 0.9 | 6.9 | 59.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.0035, quality 0.595) | market_value_eur=16500000
quality_factor=0.5953
boost_factor=1.0035
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.9932
prior_reliability=0.1333
competition=Premier League | wonTackle: 1.3488 -> 1.3614 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Brian Brobbey', 'matchup_zone': 'Shape fallback'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.45 (squad xG sum 1.4149, xG scale 1.0277, xA scale 1.1324, team xA 0.95 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.454
squad_xg_sum=1.4149
squad_xa_sum=0.8346
team_expected_assists=0.9451
team_xa_to_xg_ratio=0.65 | expected_assists: 0.0741 -> 0.0839 | 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: 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.0443
scorer_weight=0.0541 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0805
assist_rate=0.1366
provider_weight=0.1049 | - |
|
| James Trafford | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 7.0 | 14.2 | 30 | FBref Prior G_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost G_service raw output over 3 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0284, quality 0.770) | market_value_eur=38000000
quality_factor=0.7699
boost_factor=1.0284
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 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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, Habib Diarra', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.0895} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.45 (squad xG sum 1.4149, xG scale 1.0277, xA scale 1.1324, team xA 0.95 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.454
squad_xg_sum=1.4149
squad_xa_sum=0.8346
team_expected_assists=0.9451
team_xa_to_xg_ratio=0.65 | shots_faced: 10.4 -> 12.6 expected_saves: 2.55 -> 3.08 high_pressure_saves: 0.87 -> 1.06 | 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.0
scorer_weight=0.0
squad_weight_total=1.4817 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by 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.9401 | - |
|
| Team totals | 1 | 1.45 | | 16 | | 6.9 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Lucas Perri | G | 4.7m | 12.2% | Market-value substitute prior |
| Joe Rodon | D | 14.3m | 23.2% | Market-value substitute prior |
| Jaka Bijol | D | 14.3m | 23.1% | Market-value substitute prior |
| Sean Longstaff | M | 15.1m | 70.3% | Market-value substitute prior |
| Ilia Gruev | M | 22.4m | 51.6% | Market-value substitute prior |
| Noah Okafor | F | 25.7m | 55.2% | Market-value substitute prior |
Antagonist / tactical summary
Midfield is evenly contested — Noah Sadiki vs Ethan Ampadu will be the pivotal duel. Total antagonist xG — Home: 0.59, Away: 1.05. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Shadow Striker vs CDM + CB — Zone 14 Battle.
Midfield — possession 50.2% / 49.8%, dominance ratio 0.50, key duel: Noah Sadiki vs Ethan Ampadu
Granit Xhaka xG 0.03Habib Diarra xG 0.13Brian Brobbey xG 0.43Dominic Calvert-Lewin xG 0.43Lukas Nmecha xG 0.16Gabriel Gudmundsson xG 0.04
Summary
Antagonist matchup analysis for Sunderland vs Leeds. Most likely scoreline: 1-1. Lambdas derived from 3 home and 7 away individual player duels. Head-to-head: Sunderland 3W-4D-3L vs Leeds over 10 meetings.
Tactical parity between 4-2-3-1 and 3-4-2-1. Match outcome driven primarily by individual player quality. Midfield is evenly contested — Noah Sadiki vs Ethan Ampadu will be the pivotal duel. Total antagonist xG — Home: 0.59, Away: 1.05. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Shadow Striker vs CDM + CB — Zone 14 Battle.
Real Sociedad vs Levante
LaLiga · 20261025 · 4-4-2 vs 4-3-3
Predicted 2-1Winner: Real SociedadWinning H 2-1 (9.9%)Winning A 1-2 (5.3%)Confidence 0.76λ home/away 1.94 / 1.04Most-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 Levante. 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 2.009, Away 1.137). Final calibrated Poisson lambdas: Home 1.944, Away 1.040 (most likely score 2-1).
Home Starters 11/11 XGBoost (8 FBref) Away Starters 11/11 XGBoost (6 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 2.01 / 1.14 Final λ (H/A) 1.94 / 1.04
FBref Team Priors: Real Sociedad (Gls/90: 0.75, GA/90: 0.75 → E[λ]: 0.928) vs Levante UD (Gls/90: 1.6666666666666667, GA/90: 1.67 → E[λ]: 0.926) | 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 | Levante |
|---|
| League position | 5.00 | 17.00 |
| Points per game | 1.61 | 1.08 |
| Attack index | 1.15 | 0.99 |
| Defense (concede) index | 1.12 | 1.15 |
| Form multiplier | 1.03 | 0.97 |
| Standing λ multiplier | 1.12 | 1.05 |
Lambda decomposition (how the goal rates were built)
| Stage | Real Sociedad λ | Levante λ |
|---|
| FBref Squad Prior E[λ] (weight 0.228) | 0.928 | 0.926 |
| Pre-mismatch | 2.023 | 1.129 |
| Pre-competitive-floor | 2.207 | 1.101 |
| Pre-calibration (Micro-duels) | 2.009 | 1.137 |
| Final λ | 1.944 | 1.040 |
competition calibration scale 0.947competition observed total goals 2.984quality gap applied Truemismatch score pressure applied Truecompetitive underdog floor applied Falsestage discount 1.0
Scoreline distribution & markets
| Top 5 scorelines | P |
|---|
| 1-1 | 10.3% |
| 2-1 | 9.9% |
| 1-0 | 9.8% |
| 2-0 | 9.6% |
| 3-1 | 6.4% |
| Home win | 58.4% |
| Draw | 21.9% |
| Away win | 19.8% |
| Over 2.5 | 57.3% |
| BTTS yes | 55.5% |
Pregame fair line — favorite Real Sociedad (58.4%), fair total 2.98, fair spread 0.90
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 |
|---|
| Jon Martin | D | 90 | 0 | 0.09 | 0.06 | 53% | 0 | 0.4 | 6.8 | 53.0 | 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 1.0068, quality 0.669) | market_value_eur=24000000
quality_factor=0.6685
boost_factor=1.0068
reference_quality=0.505
history_matches=31
history_shrink=0.1389 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0241) | blend_weight=0.0241
history_matches=31
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.2667
competition=La Liga | wonTackle: 0.706 -> 0.7251 interceptionWon: 0.9525 -> 0.9356 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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 García', '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.94 (squad xG sum 1.5225, xG scale 1.2768, xA scale 1.5962, team xA 1.26 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.944
squad_xg_sum=1.5225
squad_xa_sum=0.7916
team_expected_assists=1.2636
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0706 -> 0.0901 expected_assists: 0.0098 -> 0.0156 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 78.0) | match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0862
goal_rate=0.0961
scorer_weight=0.1091 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0155
assist_rate=0.0
provider_weight=0.013 | - |
|
| Héctor Fort | D | 63 | 0 | 0.08 | 0.01 | 1486% | 1 | 0.2 | 6.6 | 30.8 | 13 | 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.0052, quality 0.575) | market_value_eur=14600000
quality_factor=0.5748
boost_factor=1.0052
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': '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.94 (squad xG sum 1.5225, xG scale 1.2768, xA scale 1.5962, team xA 1.26 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.944
squad_xg_sum=1.5225
squad_xa_sum=0.7916
team_expected_assists=1.2636
team_xa_to_xg_ratio=0.65 | expected_goals: 0.066 -> 0.0843 expected_assists: 0.0172 -> 0.0275 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 17 by projected rating, fifa_overall 72.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.0808
goal_rate=0.3823
scorer_weight=0.1054 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0271
assist_rate=0.2726
provider_weight=0.0344 | - |
|
| Álex Remiro | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 7.1 | 63.6 | 29 | FBref Prior G_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost G_service raw output over 3 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0004, quality 0.518) | market_value_eur=9600000
quality_factor=0.5177
boost_factor=1.0004
reference_quality=0.505
history_matches=43
history_shrink=0.1042 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0181) | blend_weight=0.0181
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.2667
competition=La Liga | saves: 2.9463 -> 2.9698 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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, Roger Brugué', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.1367} | - | 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.94 (squad xG sum 1.5225, xG scale 1.2768, xA scale 1.5962, team xA 1.26 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.944
squad_xg_sum=1.5225
squad_xa_sum=0.7916
team_expected_assists=1.2636
team_xa_to_xg_ratio=0.65 | shots_faced: 10.8 -> 9.9 expected_saves: 2.64 -> 2.42 high_pressure_saves: 0.91 -> 0.83 | 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.1049 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by 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.3089 | - |
|
| Mamadou Sarr | D | 83 | 0 | 0.16 | 0.03 | 524% | 0 | 0.1 | 6.6 | 19.2 | 17 | 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.0245, quality 0.669) | market_value_eur=24000000
quality_factor=0.6685
boost_factor=1.0245
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': '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.94 (squad xG sum 1.5225, xG scale 1.2768, xA scale 1.5962, team xA 1.26 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.944
squad_xg_sum=1.5225
squad_xa_sum=0.7916
team_expected_assists=1.2636
team_xa_to_xg_ratio=0.65 | expected_goals: 0.1254 -> 0.1601 expected_assists: 0.0091 -> 0.0145 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 16 by projected rating, fifa_overall 77.0) | match_squad_rank=16
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.1479
goal_rate=0.0
scorer_weight=0.1281 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0144
assist_rate=0.0
provider_weight=0.0123 | - |
|
| Sergio Gómez | D | 85 | 0 | 0.02 | 0.02 | ok | 1 | 0.4 | 6.8 | 60.6 | 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 1.0022, quality 0.575) | market_value_eur=14600000
quality_factor=0.5748
boost_factor=1.0022
reference_quality=0.505
history_matches=42
history_shrink=0.1064 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0175) | blend_weight=0.0175
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.9426
prior_reliability=0.2533
competition=La Liga | totalCross: 5.2217 -> 5.2302 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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': '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.94 (squad xG sum 1.5225, xG scale 1.2768, xA scale 1.5962, team xA 1.26 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.944
squad_xg_sum=1.5225
squad_xa_sum=0.7916
team_expected_assists=1.2636
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0186 -> 0.0237 expected_assists: 0.1323 -> 0.2112 | 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.0234
goal_rate=0.0
scorer_weight=0.019 | - | integer_assist_projection | Team scoreline allocation: 1 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.1904
assist_rate=0.1606
provider_weight=0.244 | - |
|
| Beñat Turrientes | M | 79 | 0 | 0.08 | 0.02 | 235% | 1 | 0.6 | 6.9 | 54.0 | 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.0010, quality 0.529) | market_value_eur=10600000
quality_factor=0.5295
boost_factor=1.001
reference_quality=0.505
history_matches=31
history_shrink=0.1389 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0175) | blend_weight=0.0175
history_matches=31
season_overlap_discount=1.0
per90_to_match_factor=0.8728
prior_reliability=0.1933
competition=La Liga | fouls: 0.7861 -> 0.7724 onTargetScoringAttempt: 0.3033 -> 0.314 wasFouled: 0.9006 -> 0.8901 interceptionWon: 0.5154 -> 0.5064 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Oriol Rey, Daniel Requena', 'matchup_zone': 'CM vs CDM + CM', 'duel_win_rate': 0.342, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.0611, 'skill_edge': 0.0476, 'height_edge': -0.006, 'attacker_skill': 0.5431, 'defender_skill': 0.4374, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Oriol Rey', 'market_value': 1700000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4374}, {'player': 'Daniel Requena', 'market_value': 1500000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.4374}], 'xg_override': 0.0596} | aerialWon: 0.3334 -> 1.0 totalShots: 1.0552 -> 1.1197 shotOffTarget: 0.7412 -> 0.7865 onTargetScoringAttempt: 0.314 -> 0.3332 | 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.94 (squad xG sum 1.5225, xG scale 1.2768, xA scale 1.5962, team xA 1.26 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.944
squad_xg_sum=1.5225
squad_xa_sum=0.7916
team_expected_assists=1.2636
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0596 -> 0.0761 expected_assists: 0.0559 -> 0.0892 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 81.0) | match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_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.0733
goal_rate=0.0624
scorer_weight=0.078 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0853
assist_rate=0.0562
provider_weight=0.0894 | - |
|
| Orri Óskarsson | F | 78 | 1 | 0.53 | 0.29 | 84% | 3 | 1.2 | 6.8 | 55.6 | 27 | 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.0066, quality 0.641) | market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.0066
reference_quality=0.505
history_matches=26
history_shrink=0.1613 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Aïssa Mandi, Ifeanyi Ndukwe', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.264, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.094, 'skill_edge': 0.088, 'height_edge': -0.024, 'attacker_skill': 0.6408, 'defender_skill': 0.4453, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Aïssa Mandi', 'market_value': 1100000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'Ifeanyi Ndukwe', 'market_value': 3200000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4531}], 'xg_override': 0.4168} | totalShots: 2.3207 -> 2.5388 shotOffTarget: 1.3108 -> 1.434 onTargetScoringAttempt: 1.0099 -> 1.1048 bigChanceMissed: 0.9177 -> 1.004 expectedGoalsOnTarget: 0.7178 -> 0.7853 goals: 0.473 -> 0.5175 expectedGoals: 0.381 -> 0.4168 | 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.94 (squad xG sum 1.5225, xG scale 1.2768, xA scale 1.5962, team xA 1.26 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.944
squad_xg_sum=1.5225
squad_xa_sum=0.7916
team_expected_assists=1.2636
team_xa_to_xg_ratio=0.65 | expected_goals: 0.4168 -> 0.5323 expected_assists: 0.0351 -> 0.056 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 74.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.4127
goal_rate=0.5175
scorer_weight=0.6471 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0545
assist_rate=0.0
provider_weight=0.0448 | - |
|
| Mikel Oyarzabal | F | 79 | 1 | 0.30 | 0.32 | ok | 2 | 1.5 | 6.9 | 63.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.0062, quality 0.694) | market_value_eur=27000000
quality_factor=0.6941
boost_factor=1.0062
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.8763
prior_reliability=0.2
competition=La Liga | wasFouled: 1.1754 -> 1.1877 wonTackle: 0.8096 -> 0.7982 onTargetScoringAttempt: 0.6804 -> 0.6874 goalAssist: 0.1648 -> 0.1707 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Aïssa Mandi, Ifeanyi Ndukwe', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.268, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.0999, 'skill_edge': 0.112, 'height_edge': -0.044, 'attacker_skill': 0.6941, 'defender_skill': 0.4453, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Aïssa Mandi', 'market_value': 1100000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'Ifeanyi Ndukwe', 'market_value': 3200000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4531}], 'xg_override': 0.2332} | totalShots: 1.9195 -> 2.1113 shotOffTarget: 1.2321 -> 1.3552 onTargetScoringAttempt: 0.6874 -> 0.7561 bigChanceMissed: 0.6713 -> 0.7384 expectedGoalsOnTarget: 0.2492 -> 0.2741 expectedGoals: 0.212 -> 0.2332 goals: 0.2112 -> 0.2323 | 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.94 (squad xG sum 1.5225, xG scale 1.2768, xA scale 1.5962, team xA 1.26 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.944
squad_xg_sum=1.5225
squad_xa_sum=0.7916
team_expected_assists=1.2636
team_xa_to_xg_ratio=0.65 | expected_goals: 0.2332 -> 0.2978 expected_assists: 0.112 -> 0.1788 | 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_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.2576
goal_rate=0.2323
scorer_weight=0.2968 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1637
assist_rate=0.1707
provider_weight=0.2235 | - |
|
| Ander Barrenetxea | F | 67 | 0 | 0.21 | 0.06 | 224% | 2 | 0.9 | 6.9 | 56.3 | 30 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0036, quality 0.603) | market_value_eur=17200000
quality_factor=0.6027
boost_factor=1.0036
reference_quality=0.505
history_matches=36
history_shrink=0.122 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0127) | blend_weight=0.0127
history_matches=36
season_overlap_discount=1.0
per90_to_match_factor=0.7428
prior_reliability=0.16
competition=La Liga | interceptionWon: 0.4537 -> 0.4479 totalCross: 2.2798 -> 2.2744 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Aïssa Mandi, Ifeanyi Ndukwe', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.211, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.0159, 'skill_edge': 0.0708, 'height_edge': -0.06, 'attacker_skill': 0.6027, 'defender_skill': 0.4453, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Aïssa Mandi', 'market_value': 1100000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'Ifeanyi Ndukwe', 'market_value': 3200000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4531}], 'xg_override': 0.1612} | totalShots: 1.6295 -> 1.6554 shotOffTarget: 1.0875 -> 1.1048 onTargetScoringAttempt: 0.542 -> 0.5506 | 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.94 (squad xG sum 1.5225, xG scale 1.2768, xA scale 1.5962, team xA 1.26 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.944
squad_xg_sum=1.5225
squad_xa_sum=0.7916
team_expected_assists=1.2636
team_xa_to_xg_ratio=0.65 | expected_goals: 0.1612 -> 0.2058 expected_assists: 0.0951 -> 0.1518 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 81.0) | match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_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.186
goal_rate=0.2224
scorer_weight=0.2573 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1408
assist_rate=0.1071
provider_weight=0.1644 | - |
|
| Carlos Soler | M | 86 | 0 | 0.15 | 0.09 | 60% | 1 | 0.9 | 6.9 | 63.0 | 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.9992, quality 0.482) | market_value_eur=6600000
quality_factor=0.4818
boost_factor=0.9992
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.9526
prior_reliability=0.1533
competition=La Liga | wonTackle: 0.3931 -> 0.4025 totalShots: 1.1542 -> 1.146 fouls: 0.6296 -> 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': 'Jeremy Toljan', 'matchup_zone': 'Left Mid vs Right Back — Wide Channel', 'duel_win_rate': 0.476, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0234, 'skill_edge': 0.024, 'height_edge': -0.008, 'attacker_skill': 0.4907, 'defender_skill': 0.4374, 'attacker_role': 'LM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Jeremy Toljan', 'market_value': 1900000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.4374}], 'xg_override': 0.1157} | aerialWon: 0.1694 -> 1.1 totalShots: 1.1502 -> 1.1771 shotOffTarget: 0.7956 -> 0.8142 onTargetScoringAttempt: 0.3546 -> 0.3629 | 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.94 (squad xG sum 1.5225, xG scale 1.2768, xA scale 1.5962, team xA 1.26 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.944
squad_xg_sum=1.5225
squad_xa_sum=0.7916
team_expected_assists=1.2636
team_xa_to_xg_ratio=0.65 | expected_goals: 0.1157 -> 0.1477 expected_assists: 0.1401 -> 0.2237 | 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.1373
goal_rate=0.1106
scorer_weight=0.1432 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.2004
assist_rate=0.1133
provider_weight=0.1922 | - |
|
| Takefusa Kubo | F | 70 | 0 | 0.18 | 0.05 | 227% | 1 | 0.4 | 6.8 | 44.7 | 26 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0060, quality 0.641) | market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.006
reference_quality=0.505
history_matches=29
history_shrink=0.1471 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0147) | blend_weight=0.0147
history_matches=29
season_overlap_discount=1.0
per90_to_match_factor=0.7751
prior_reliability=0.1533
competition=La Liga | wasFouled: 2.2211 -> 2.2132 totalShots: 1.1417 -> 1.1351 onTargetScoringAttempt: 0.4022 -> 0.3963 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Aïssa Mandi, Ifeanyi Ndukwe', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.228, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.0411, 'skill_edge': 0.088, 'height_edge': -0.06, 'attacker_skill': 0.6408, 'defender_skill': 0.4453, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Aïssa Mandi', 'market_value': 1100000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'Ifeanyi Ndukwe', 'market_value': 3200000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4531}], 'xg_override': 0.1398} | totalShots: 1.1357 -> 1.1824 shotOffTarget: 0.7394 -> 0.7698 onTargetScoringAttempt: 0.3963 -> 0.4126 bigChanceMissed: 0.1989 -> 0.2071 goals: 0.1373 -> 0.1429 expectedGoals: 0.1343 -> 0.1398 | 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.94 (squad xG sum 1.5225, xG scale 1.2768, xA scale 1.5962, team xA 1.26 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.944
squad_xg_sum=1.5225
squad_xa_sum=0.7916
team_expected_assists=1.2636
team_xa_to_xg_ratio=0.65 | expected_goals: 0.1398 -> 0.1785 expected_assists: 0.0984 -> 0.1571 | 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: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.1635
goal_rate=0.1429
scorer_weight=0.1814 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1454
assist_rate=0.0967
provider_weight=0.1553 | - |
|
| Team totals | 2 | 1.94 | | 14 | | 6.8 | | |
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 |
| Jon Aramburu | D | 14.1m | 22.7% | Market-value substitute prior |
| Igor Zubeldia | D | 24.9m | 31.6% | Market-value substitute prior |
| Jon Gorrotxategi | M | 19.1m | 71.3% | Market-value substitute prior |
| Luka Sučić | M | 26.7m | 41.6% | Market-value substitute prior |
| Gonçalo Guedes | F | 20.8m | 72.2% | Market-value substitute prior |
Levante — projected line vs season baseline (4-3-3)
| Player | Pos | Min | Proj G | Proj xG | Season xG/g | | Proj Sh | Season Sh/g | Proj Rtg | Season Rtg | Rec | Model / FBref Prior |
|---|
| Roger Brugué | F | 82 | 0 | 0.25 | 0.36 | 30% | 2 | 1.9 | 6.9 | 49.8 | 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 0.9965, quality 0.437) | market_value_eur=2800000
quality_factor=0.4374
boost_factor=0.9965
reference_quality=0.505
history_matches=24
history_shrink=0.1724 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Héctor Fort, 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.7521, 'skill_edge': -0.1087, 'height_edge': -0.06, 'attacker_skill': 0.4374, 'defender_skill': 0.6789, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Héctor Fort', 'market_value': 14600000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6258}, {'player': 'Mamadou Sarr', 'market_value': 24000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.732}], 'xg_override': 0.2675} | totalShots: 2.1875 -> 1.6452 shotOffTarget: 1.2253 -> 0.9215 onTargetScoringAttempt: 0.9622 -> 0.7237 bigChanceMissed: 0.3782 -> 0.2844 goals: 0.3687 -> 0.2773 expectedGoals: 0.3557 -> 0.2675 expectedGoalsOnTarget: 0.3369 -> 0.2534 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.04 (squad xG sum 1.0996, xG scale 0.9458, xA scale 1.1262, team xA 0.68 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.04
squad_xg_sum=1.0996
squad_xa_sum=0.6002
team_expected_assists=0.676
team_xa_to_xg_ratio=0.65 | expected_goals: 0.2675 -> 0.253 expected_assists: 0.0599 -> 0.0675 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 88.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.2235
goal_rate=0.2773
scorer_weight=0.2608 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0653
assist_rate=0.0323
provider_weight=0.054 | - |
|
| Iván Romero | F | 73 | 1 | 0.31 | 0.26 | ok | 2 | 1.8 | 7.0 | 61.3 | 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 0.9995, quality 0.491) | market_value_eur=7400000
quality_factor=0.4915
boost_factor=0.9995
reference_quality=0.505
history_matches=38
history_shrink=0.1163 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0126) | blend_weight=0.0126
history_matches=38
season_overlap_discount=1.0
per90_to_match_factor=0.8069
prior_reliability=0.1667
competition=La Liga | totalShots: 2.3124 -> 2.3202 wasFouled: 1.8472 -> 1.8402 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.417, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.908, 'skill_edge': -0.0666, 'height_edge': 0.004, 'attacker_skill': 0.4915, 'defender_skill': 0.6394, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Sergio Gómez', 'market_value': 14600000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.6394}], 'xg_override': 0.3228} | totalShots: 2.3202 -> 2.1067 shotOffTarget: 1.4011 -> 1.2722 onTargetScoringAttempt: 0.9081 -> 0.8246 bigChanceMissed: 0.5186 -> 0.4709 expectedGoals: 0.3555 -> 0.3228 goals: 0.3511 -> 0.3188 expectedGoalsOnTarget: 0.218 -> 0.1979 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.04 (squad xG sum 1.0996, xG scale 0.9458, xA scale 1.1262, team xA 0.68 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.04
squad_xg_sum=1.0996
squad_xa_sum=0.6002
team_expected_assists=0.676
team_xa_to_xg_ratio=0.65 | expected_goals: 0.3228 -> 0.3054 expected_assists: 0.0585 -> 0.0659 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 75.0) | match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.2632
goal_rate=0.3188
scorer_weight=0.3021 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0638
assist_rate=0.0057
provider_weight=0.0527 | - |
|
| Víctor García | F | 75 | 0 | 0.10 | 0.07 | 40% | 1 | 0.6 | 6.7 | 48.2 | 29 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9967, quality 0.437) | market_value_eur=1500000
quality_factor=0.4374
boost_factor=0.9967
reference_quality=0.505
history_matches=26
history_shrink=0.1613 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0084) | blend_weight=0.0084
history_matches=26
season_overlap_discount=1.0
per90_to_match_factor=0.8342
prior_reliability=0.08
competition=La Liga | totalShots: 1.25 -> 1.2395 totalCross: 4.415 -> 4.4071 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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', 'matchup_zone': 'Right Wing vs Left Back — Flank Battle', 'duel_win_rate': 0.309, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 0.7479, 'skill_edge': -0.1395, 'height_edge': -0.032, 'attacker_skill': 0.4374, 'defender_skill': 0.7474, 'attacker_role': 'RW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Jon Martin', 'market_value': 24000000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.7474}], 'xg_override': 0.1072} | totalShots: 1.2462 -> 0.9321 shotOffTarget: 0.8078 -> 0.6042 onTargetScoringAttempt: 0.4384 -> 0.3279 expectedGoalsOnTarget: 0.2811 -> 0.2102 bigChanceMissed: 0.2739 -> 0.2048 expectedGoals: 0.1433 -> 0.1072 goals: 0.1295 -> 0.0969 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.04 (squad xG sum 1.0996, xG scale 0.9458, xA scale 1.1262, team xA 0.68 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.04
squad_xg_sum=1.0996
squad_xa_sum=0.6002
team_expected_assists=0.676
team_xa_to_xg_ratio=0.65 | expected_goals: 0.1072 -> 0.1014 expected_assists: 0.0813 -> 0.0916 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 72.0) | match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0964
goal_rate=0.0969
scorer_weight=0.0948 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0875
assist_rate=0.0
provider_weight=0.0733 | - |
|
| Daniel Requena | M | 87 | 0 | 0.05 | 0.01 | 469% | 1 | 0.2 | 6.7 | 32.6 | 8 | FBref Prior M_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9873, quality 0.437) | market_value_eur=1500000
quality_factor=0.4374
boost_factor=0.9873
reference_quality=0.505
history_matches=3
history_shrink=0.625 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=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': 'Central Mid vs Central Mid — Box-to-Box Midfield Contest', 'duel_win_rate': 0.4, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9713, 'skill_edge': -0.0476, 'height_edge': 0.028, '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.0487} | aerialWon: 0.0 -> 1.2 totalShots: 0.693 -> 0.6731 shotOffTarget: 0.506 -> 0.4915 onTargetScoringAttempt: 0.187 -> 0.1816 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.04 (squad xG sum 1.0996, xG scale 0.9458, xA scale 1.1262, team xA 0.68 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.04
squad_xg_sum=1.0996
squad_xa_sum=0.6002
team_expected_assists=0.676
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 84.0) | match_squad_rank=14
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0451
goal_rate=0.0481
scorer_weight=0.0458 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0341
assist_rate=0.0296
provider_weight=0.0342 | - |
|
| Oriol Rey | M | 86 | 0 | 0.03 | 0.01 | 366% | 1 | 0.2 | 6.8 | 34.8 | 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 0.9967, quality 0.437) | market_value_eur=1700000
quality_factor=0.4374
boost_factor=0.9967
reference_quality=0.505
history_matches=26
history_shrink=0.1613 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0210) | blend_weight=0.021
history_matches=26
season_overlap_discount=1.0
per90_to_match_factor=0.9543
prior_reliability=0.2
competition=La Liga | totalShots: 0.6064 -> 0.5937 wasFouled: 0.7716 -> 0.7621 totalCross: 0.2453 -> 0.2402 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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': 'Holding Mid vs Central Mid — Midfield Anchor Duel', 'duel_win_rate': 0.336, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9066, '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.0352} | aerialWon: 1.1859 -> 0.9 totalShots: 0.6032 -> 0.5469 shotOffTarget: 0.4547 -> 0.4122 onTargetScoringAttempt: 0.1485 -> 0.1346 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.04 (squad xG sum 1.0996, xG scale 0.9458, xA scale 1.1262, team xA 0.68 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.04
squad_xg_sum=1.0996
squad_xa_sum=0.6002
team_expected_assists=0.676
team_xa_to_xg_ratio=0.65 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 73.0) | match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0328
goal_rate=0.0348
scorer_weight=0.0331 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0421
assist_rate=0.0479
provider_weight=0.0477 | - |
|
| Jon Ander Olasagasti | M | 84 | 0 | 0.11 | 0.10 | ok | 1 | 1.0 | 6.9 | 64.0 | 29 | 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.9977, quality 0.437) | market_value_eur=2700000
quality_factor=0.4374
boost_factor=0.9977
reference_quality=0.505
history_matches=39
history_shrink=0.1136 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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.36, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9125, 'skill_edge': -0.0476, 'height_edge': -0.012, '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.1172} | aerialWon: 0.7264 -> 0.9 totalShots: 1.2602 -> 1.1499 shotOffTarget: 0.794 -> 0.7245 onTargetScoringAttempt: 0.4662 -> 0.4254 expectedGoalsOnTarget: 0.1944 -> 0.1774 goals: 0.1533 -> 0.1399 expectedGoals: 0.1284 -> 0.1172 bigChanceMissed: 0.0953 -> 0.087 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.04 (squad xG sum 1.0996, xG scale 0.9458, xA scale 1.1262, team xA 0.68 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.04
squad_xg_sum=1.0996
squad_xa_sum=0.6002
team_expected_assists=0.676
team_xa_to_xg_ratio=0.65 | expected_goals: 0.1172 -> 0.1108 expected_assists: 0.13 -> 0.1463 | 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_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.1049
goal_rate=0.1399
scorer_weight=0.1258 | - | integer_assist_projection | Team scoreline allocation: 1 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.1361
assist_rate=0.1509
provider_weight=0.1633 | - |
|
| Manuel Sánchez | D | 88 | 0 | 0.00 | 0.01 | 41% | 0 | 0.2 | 6.7 | 54.9 | 29 | XGBoost D_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9991, quality 0.479) | market_value_eur=6400000
quality_factor=0.4793
boost_factor=0.9991
reference_quality=0.505
history_matches=39
history_shrink=0.1136 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Takefusa Kubo', '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.04 (squad xG sum 1.0996, xG scale 0.9458, xA scale 1.1262, team xA 0.68 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.04
squad_xg_sum=1.0996
squad_xa_sum=0.6002
team_expected_assists=0.676
team_xa_to_xg_ratio=0.65 | expected_assists: 0.0594 -> 0.0669 | 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_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.0047
goal_rate=0.0028
scorer_weight=0.0045 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0647
assist_rate=0.0263
provider_weight=0.0535 | - |
|
| Aïssa Mandi | D | 85 | 0 | 0.00 | 0.01 | ok | 0 | 0.1 | 6.8 | 51.9 | 8 | 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.9908, quality 0.437) | market_value_eur=1100000
quality_factor=0.4374
boost_factor=0.9908
reference_quality=0.505
history_matches=6
history_shrink=0.4545 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0591) | blend_weight=0.0591
history_matches=6
season_overlap_discount=1.0
per90_to_match_factor=0.9458
prior_reliability=0.2
competition=La Liga | wonTackle: 0.756 -> 0.8045 fouls: 0.4414 -> 0.4153 interceptionWon: 1.0925 -> 1.0838 wasFouled: 0.7703 -> 0.762 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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', '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.04 (squad xG sum 1.0996, xG scale 0.9458, xA scale 1.1262, team xA 0.68 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.04
squad_xg_sum=1.0996
squad_xa_sum=0.6002
team_expected_assists=0.676
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 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.0047
goal_rate=0.0
scorer_weight=0.0043 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0082
assist_rate=0.0
provider_weight=0.0072 | - |
|
| Ifeanyi Ndukwe | D | 90 | 0 | 0.00 | - | n/a | 0 | 0.0 | 6.7 | 18.4 | 7 | FBref Prior D_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9861, quality 0.440) | market_value_eur=3200000
quality_factor=0.4399
boost_factor=0.9861
reference_quality=0.505
history_matches=2
history_shrink=0.7143 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Orri Óskarsson', '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.04 (squad xG sum 1.0996, xG scale 0.9458, xA scale 1.1262, team xA 0.68 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.04
squad_xg_sum=1.0996
squad_xa_sum=0.6002
team_expected_assists=0.676
team_xa_to_xg_ratio=0.65 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 84.0) | match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
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.0007
assist_rate=0.0
provider_weight=0.001 | - |
|
| Jeremy Toljan | D | 84 | 0 | 0.03 | 0.01 | 124% | 0 | 0.2 | 6.6 | 61.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.9979, quality 0.437) | market_value_eur=1900000
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.0036) | blend_weight=0.0036
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=0.9328
prior_reliability=0.0533
competition=La Liga | totalCross: 2.4008 -> 2.409 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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': '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.04 (squad xG sum 1.0996, xG scale 0.9458, xA scale 1.1262, team xA 0.68 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.04
squad_xg_sum=1.0996
squad_xa_sum=0.6002
team_expected_assists=0.676
team_xa_to_xg_ratio=0.65 | expected_assists: 0.0726 -> 0.0818 | 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: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0271
goal_rate=0.0003
scorer_weight=0.022 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by 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.2351
provider_weight=0.1022 | - |
|
| Mathew Ryan | G | 90 | 0 | 0.00 | 0.01 | 100% | | 0.1 | 7.0 | 67.9 | 30 | FBref Prior G_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost G_service raw output over 3 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9978, quality 0.437) | market_value_eur=1700000
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.0138) | blend_weight=0.0138
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.2
competition=La Liga | saves: 3.0151 -> 3.0379 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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': 2.0092} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.04 (squad xG sum 1.0996, xG scale 0.9458, xA scale 1.1262, team xA 0.68 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.04
squad_xg_sum=1.0996
squad_xa_sum=0.6002
team_expected_assists=0.676
team_xa_to_xg_ratio=0.65 | shots_faced: 19.1 -> 18.5 expected_saves: 4.68 -> 4.53 high_pressure_saves: 1.61 -> 1.56 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 79.0) | match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.0647 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by 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.6667 | - |
|
| Team totals | 1 | 1.04 | | 11 | | 6.8 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Pablo Cunat Campos | G | 4.4m | 10.9% | Market-value substitute prior |
| Axel Tape | D | 13.8m | 31.1% | Market-value substitute prior |
| Matias Moreno | D | 13.7m | 30.5% | Market-value substitute prior |
| Carlos Álvarez | M | 22.6m | 31.9% | Market-value substitute prior |
| Enzo Bardeli | M | 22.1m | 50.5% | Market-value substitute prior |
| Etta Eyong | F | 25.9m | 58.5% | Market-value substitute prior |
Antagonist / tactical summary
Midfield is evenly contested — Beñat Turrientes vs Jon Ander Olasagasti will be the pivotal duel. Total antagonist xG — Home: 1.13, Away: 0.90. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Left Wing vs Right Back — Flank Battle.
Midfield — possession 51.0% / 49.0%, dominance ratio 0.52, key duel: Beñat Turrientes vs Jon Ander Olasagasti
Orri Óskarsson xG 0.42Mikel Oyarzabal xG 0.23Ander Barrenetxea xG 0.16Iván Romero xG 0.32Víctor García xG 0.11Roger Brugué xG 0.27
Summary
Antagonist matchup analysis for Real Sociedad vs Levante. Most likely scoreline: 2-1. Lambdas derived from 6 home and 6 away individual player duels. Head-to-head: Real Sociedad 4W-3D-3L vs Levante 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 — Beñat Turrientes vs Jon Ander Olasagasti will be the pivotal duel. Total antagonist xG — Home: 1.13, Away: 0.90. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Left Wing vs Right Back — Flank Battle.
Crystal Palace vs Newcastle
Premier League · 20261025 · 3-4-2-1 vs 4-2-3-1
Predicted 1-2Winner: NewcastleWinning H 2-1 (8.1%)Winning A 1-2 (8.5%)Confidence 0.7λ home/away 1.60 / 1.69Most-likely P 8.5%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset TracingAntagonist + XGBoost match analysis for Crystal Palace vs Newcastle. 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.364, Away 1.619). Final calibrated Poisson lambdas: Home 1.602, Away 1.686 (most likely score 1-2).
Home Starters 11/11 XGBoost (9 FBref) Away Starters 11/11 XGBoost (8 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.36 / 1.62 Final λ (H/A) 1.60 / 1.69
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 | Newcastle |
|---|
| League position | 14.00 | 11.00 |
| Points per game | 1.16 | 1.24 |
| Attack index | 1.01 | 0.94 |
| Defense (concede) index | 1.08 | 1.32 |
| Form multiplier | 0.99 | 1.00 |
| Standing λ multiplier | 1.04 | 1.09 |
Lambda decomposition (how the goal rates were built)
| Stage | Crystal Palace λ | Newcastle λ |
|---|
| Pre-competitive-floor | 1.602 | 1.686 |
| Pre-calibration (Micro-duels) | 1.363 | 1.619 |
| Final λ | 1.602 | 1.686 |
competition calibration scale 1.0competition observed total goals 0.0quality gap applied Truemismatch score pressure applied Falsecompetitive underdog floor applied Falsestage discount 1.0
Scoreline distribution & markets
| Top 5 scorelines | P |
|---|
| 1-1 | 10.2% |
| 1-2 | 8.5% |
| 2-1 | 8.1% |
| 2-2 | 6.8% |
| 0-1 | 6.2% |
| Home win | 36.6% |
| Draw | 23.2% |
| Away win | 40.2% |
| Over 2.5 | 63.8% |
| BTTS yes | 65.1% |
Pregame fair line — favorite Newcastle (40.2%), fair total 3.29, fair spread -0.08
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 |
|---|
| Tyrick Mitchell | M | 85 | 0 | 0.09 | 0.06 | 42% | 1 | 0.6 | 6.8 | 57.2 | 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.0048, quality 0.660) | market_value_eur=23000000
quality_factor=0.6595
boost_factor=1.0048
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.9399
prior_reliability=0.1333
competition=Premier League | wonTackle: 1.7126 -> 1.7056 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Lukáš Horníček', 'matchup_zone': 'Left Wingback vs Right Back — Overlapping Run', 'duel_win_rate': 0.329, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 0.8664, 'skill_edge': -0.0309, 'height_edge': -0.06, 'attacker_skill': 0.7379, 'defender_skill': 0.8066, 'attacker_role': 'LWB', 'attacker_mv_price_index': 0.7, 'defender_adjusted_parts': [{'player': 'Lukáš Horníček', 'market_value': 25000000, 'role': 'GK', 'price_index': 0.55, 'adjusted_quality': 0.8066}], 'xg_override': 0.0773} | totalShots: 1.1183 -> 0.9689 shotOffTarget: 0.8342 -> 0.7228 aerialWon: 0.8185 -> 0.9 onTargetScoringAttempt: 0.2831 -> 0.2453 bigChanceMissed: 0.1668 -> 0.1445 expectedGoalsOnTarget: 0.1424 -> 0.1234 goals: 0.1006 -> 0.0872 expectedGoals: 0.0892 -> 0.0773 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.60 (squad xG sum 1.3541, xG scale 1.1831, xA scale 1.3335, team xA 1.04 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.602
squad_xg_sum=1.3541
squad_xa_sum=0.7809
team_expected_assists=1.0413
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0773 -> 0.0915 expected_assists: 0.0899 -> 0.1199 | 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.0874
goal_rate=0.0872
scorer_weight=0.0986 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.113
assist_rate=0.0818
provider_weight=0.113 | - |
|
| Daichi Kamada | M | 83 | 0 | 0.07 | 0.06 | ok | 1 | 0.5 | 6.8 | 55.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.0008, quality 0.526) | market_value_eur=10300000
quality_factor=0.526
boost_factor=1.0008
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.9228
prior_reliability=0.1333
competition=Premier League | wonTackle: 1.5315 -> 1.5509 totalCross: 1.1368 -> 1.1449 interceptionWon: 0.4584 -> 0.4637 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Lewis Hall', 'matchup_zone': 'Right Wingback vs Left Back — Overlapping Run', 'duel_win_rate': 0.285, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.8309, 'skill_edge': -0.1351, 'height_edge': 0.02, 'attacker_skill': 0.5761, 'defender_skill': 0.8762, 'attacker_role': 'RWB', 'attacker_mv_price_index': 0.7, 'defender_adjusted_parts': [{'player': 'Lewis Hall', 'market_value': 52000000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.8762}], 'xg_override': 0.0586} | aerialWon: 0.3158 -> 1.1 totalShots: 0.8775 -> 0.7291 shotOffTarget: 0.5699 -> 0.4735 onTargetScoringAttempt: 0.3076 -> 0.2556 bigChanceMissed: 0.1789 -> 0.1486 goals: 0.0813 -> 0.0676 expectedGoals: 0.0705 -> 0.0586 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.60 (squad xG sum 1.3541, xG scale 1.1831, xA scale 1.3335, team xA 1.04 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.602
squad_xg_sum=1.3541
squad_xa_sum=0.7809
team_expected_assists=1.0413
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0586 -> 0.0693 expected_assists: 0.0947 -> 0.1263 | 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.067
goal_rate=0.0676
scorer_weight=0.075 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1186
assist_rate=0.0917
provider_weight=0.1237 | - |
|
| Adam Wharton | M | 86 | 0 | 0.09 | 0.03 | 204% | 1 | 0.7 | 7.0 | 56.7 | 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.0128, quality 0.881) | market_value_eur=79000000
quality_factor=0.8811
boost_factor=1.0128
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.9597
prior_reliability=0.1333
competition=Premier League | totalCross: 2.2635 -> 2.2459 totalShots: 1.1184 -> 1.1074 fouls: 0.9038 -> 0.8949 interceptionWon: 1.0643 -> 1.0727 | 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': 'Nico González', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.447, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9949, 'skill_edge': 0.0125, 'height_edge': -0.016, 'attacker_skill': 0.8877, 'defender_skill': 0.8599, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Nico González', 'market_value': 54000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8599}], 'xg_override': 0.0736} | aerialWon: 0.4829 -> 1.1 totalShots: 1.1154 -> 1.1097 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.60 (squad xG sum 1.3541, xG scale 1.1831, xA scale 1.3335, team xA 1.04 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.602
squad_xg_sum=1.3541
squad_xa_sum=0.7809
team_expected_assists=1.0413
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0736 -> 0.0871 expected_assists: 0.1485 -> 0.1979 | 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
ranking_status=combined | - | integer_goal_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.0834
goal_rate=0.0739
scorer_weight=0.0873 | - | integer_assist_projection | Team scoreline allocation: 1 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.1795
assist_rate=0.0974
provider_weight=0.1583 | - |
|
| Anan Khalaili | M | 87 | 0 | 0.11 | 0.09 | ok | 1 | 0.6 | 6.9 | 39.8 | 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.0245, quality 0.669) | market_value_eur=24000000
quality_factor=0.6685
boost_factor=1.0245
reference_quality=0.505
history_matches=5
history_shrink=0.5 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0260) | blend_weight=0.026
history_matches=5
season_overlap_discount=1.0
per90_to_match_factor=0.9638
prior_reliability=0.08
competition=Premier League | wonTackle: 2.1681 -> 2.2997 totalCross: 2.4018 -> 2.4855 interceptionWon: 1.1809 -> 1.2128 fouls: 0.7922 -> 0.8134 wasFouled: 0.1974 -> 0.2131 onTargetScoringAttempt: 0.3952 -> 0.3849 totalShots: 1.171 -> 1.1611 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Nico González', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.362, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.8709, 'skill_edge': -0.0758, 'height_edge': -0.012, 'attacker_skill': 0.6914, 'defender_skill': 0.8599, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Nico González', 'market_value': 54000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8599}], 'xg_override': 0.0913} | totalShots: 1.1611 -> 1.0112 shotOffTarget: 0.7758 -> 0.6756 aerialWon: 1.1675 -> 1.1 bigChanceMissed: 0.5056 -> 0.4403 onTargetScoringAttempt: 0.3849 -> 0.3352 goals: 0.1454 -> 0.1266 expectedGoals: 0.1048 -> 0.0913 expectedGoalsOnTarget: 0.0825 -> 0.0718 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.60 (squad xG sum 1.3541, xG scale 1.1831, xA scale 1.3335, team xA 1.04 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.602
squad_xg_sum=1.3541
squad_xa_sum=0.7809
team_expected_assists=1.0413
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0913 -> 0.108 expected_assists: 0.1038 -> 0.1384 | 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.1024
goal_rate=0.1266
scorer_weight=0.135 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1292
assist_rate=0.0748
provider_weight=0.1123 | - |
|
| Axel Disasi | D | 82 | 0 | 0.03 | 0.05 | 34% | 0 | 0.2 | 6.7 | 51.8 | 22 | 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.0054, quality 0.585) | market_value_eur=15500000
quality_factor=0.5846
boost_factor=1.0054
reference_quality=0.505
history_matches=17
history_shrink=0.2273 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0020) | blend_weight=0.002
history_matches=17
season_overlap_discount=1.0
per90_to_match_factor=0.9062
prior_reliability=0.0133
competition=Premier League | fouls: 0.4774 -> 0.4854 | 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': 'Joelinton', '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.60 (squad xG sum 1.3541, xG scale 1.1831, xA scale 1.3335, team xA 1.04 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.602
squad_xg_sum=1.3541
squad_xa_sum=0.7809
team_expected_assists=1.0413
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 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: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0299
goal_rate=0.0
scorer_weight=0.0243 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0126
assist_rate=0.0
provider_weight=0.0107 | - |
|
| Chris Richards | D | 90 | 0 | 0.10 | 0.07 | 34% | 1 | 0.4 | 6.8 | 52.9 | 27 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0060, quality 0.677) | market_value_eur=25000000
quality_factor=0.6773
boost_factor=1.006
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.9998
prior_reliability=0.1333
competition=Premier League | interceptionWon: 1.0899 -> 1.0991 wonTackle: 0.7908 -> 0.7979 totalCross: 0.5049 -> 0.4998 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'William Osula', '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.60 (squad xG sum 1.3541, xG scale 1.1831, xA scale 1.3335, team xA 1.04 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.602
squad_xg_sum=1.3541
squad_xa_sum=0.7809
team_expected_assists=1.0413
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0849 -> 0.1004 expected_assists: 0.0239 -> 0.0319 | 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.0955
goal_rate=0.0123
scorer_weight=0.0803 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0314
assist_rate=0.0
provider_weight=0.0255 | - |
|
| Jaydee Canvot | D | 89 | 0 | 0.06 | 0.05 | ok | 0 | 0.2 | 6.8 | 45.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 1.0117, quality 0.732) | market_value_eur=32000000
quality_factor=0.732
boost_factor=1.0117
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.9939
prior_reliability=0.1333
competition=Premier League | wonTackle: 1.101 -> 1.1142 interceptionWon: 1.128 -> 1.1186 fouls: 0.5775 -> 0.5689 totalCross: 0.3616 -> 0.3562 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'William Osula', '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.60 (squad xG sum 1.3541, xG scale 1.1831, xA scale 1.3335, team xA 1.04 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.602
squad_xg_sum=1.3541
squad_xa_sum=0.7809
team_expected_assists=1.0413
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0497 -> 0.0588 expected_assists: 0.0294 -> 0.0392 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 76.0) | match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0571
goal_rate=0.0
scorer_weight=0.047 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0384
assist_rate=0.0
provider_weight=0.0314 | - |
|
| Walter Benítez | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 7.0 | 7.5 | 30 | 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.9890, quality 0.446) | market_value_eur=3700000
quality_factor=0.4461
boost_factor=0.989
reference_quality=0.505
history_matches=3
history_shrink=0.625 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'William Osula, Yoane Wissa', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.6187} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.60 (squad xG sum 1.3541, xG scale 1.1831, xA scale 1.3335, team xA 1.04 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.602
squad_xg_sum=1.3541
squad_xa_sum=0.7809
team_expected_assists=1.0413
team_xa_to_xg_ratio=0.65 | shots_faced: 15.4 -> 16.0 expected_saves: 3.77 -> 3.91 high_pressure_saves: 1.29 -> 1.35 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 78.0) | match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.6514 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by 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.917 | - |
|
| Ismaïla Sarr | F | 82 | 0 | 0.40 | 0.31 | ok | 2 | 1.4 | 6.7 | 52.3 | 22 | 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.0128, quality 0.796) | market_value_eur=43000000
quality_factor=0.7957
boost_factor=1.0128
reference_quality=0.505
history_matches=29
history_shrink=0.1471 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Nico González, Sven Botman', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle', 'duel_win_rate': 0.237, 'pressing_faced': 'HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.9508, 'skill_edge': -0.0155, 'height_edge': -0.018, 'attacker_skill': 0.7957, 'defender_skill': 0.8301, 'attacker_role': 'SS', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Nico González', 'market_value': 54000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8599}, {'player': 'Sven Botman', 'market_value': 33000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8002}], 'xg_override': 0.3411} | totalShots: 2.1221 -> 2.0177 shotOffTarget: 1.2846 -> 1.2214 onTargetScoringAttempt: 0.8375 -> 0.7963 bigChanceMissed: 0.6197 -> 0.5892 expectedGoalsOnTarget: 0.5496 -> 0.5226 expectedGoals: 0.3588 -> 0.3411 goals: 0.3237 -> 0.3078 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.60 (squad xG sum 1.3541, xG scale 1.1831, xA scale 1.3335, team xA 1.04 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.602
squad_xg_sum=1.3541
squad_xa_sum=0.7809
team_expected_assists=1.0413
team_xa_to_xg_ratio=0.65 | expected_goals: 0.3411 -> 0.4037 expected_assists: 0.047 -> 0.0627 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 81.0) | match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.3322
goal_rate=0.3078
scorer_weight=0.3693 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by 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.0071
provider_weight=0.0502 | - |
|
| Yéremy Pino | F | 68 | 0 | 0.13 | 0.07 | 88% | 1 | 0.9 | 6.9 | 52.6 | 31 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0062, quality 0.694) | market_value_eur=27000000
quality_factor=0.6941
boost_factor=1.0062
reference_quality=0.505
history_matches=41
history_shrink=0.1087 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0052) | blend_weight=0.0052
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=0.7558
prior_reliability=0.0733
competition=Premier League | totalCross: 2.6662 -> 2.6844 fouls: 0.8563 -> 0.8625 totalOffside: 0.3032 -> 0.3087 wasFouled: 1.02 -> 1.0254 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Nico González, Sven Botman', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.8219, 'skill_edge': -0.0612, 'height_edge': -0.06, 'attacker_skill': 0.6941, 'defender_skill': 0.8301, 'attacker_role': 'SS', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Nico González', 'market_value': 54000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8599}, {'player': 'Sven Botman', 'market_value': 33000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8002}], 'xg_override': 0.1126} | totalShots: 1.2761 -> 1.0488 shotOffTarget: 0.7784 -> 0.6398 onTargetScoringAttempt: 0.4914 -> 0.4039 expectedGoalsOnTarget: 0.1694 -> 0.1392 goals: 0.1654 -> 0.1359 expectedGoals: 0.137 -> 0.1126 bigChanceMissed: 0.1365 -> 0.1122 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.60 (squad xG sum 1.3541, xG scale 1.1831, xA scale 1.3335, team xA 1.04 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.602
squad_xg_sum=1.3541
squad_xa_sum=0.7809
team_expected_assists=1.0413
team_xa_to_xg_ratio=0.65 | expected_goals: 0.1126 -> 0.1332 expected_assists: 0.1097 -> 0.1463 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 79.0) | match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1247
goal_rate=0.1359
scorer_weight=0.1523 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1361
assist_rate=0.008
provider_weight=0.117 | - |
|
| Jean-Philippe Mateta | F | 76 | 1 | 0.35 | 0.24 | 43% | 2 | 0.8 | 6.7 | 50.1 | 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 1.0081, quality 0.710) | market_value_eur=29000000
quality_factor=0.71
boost_factor=1.0081
reference_quality=0.505
history_matches=33
history_shrink=0.1316 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0040) | blend_weight=0.004
history_matches=33
season_overlap_discount=1.0
per90_to_match_factor=0.8484
prior_reliability=0.0467
competition=Premier League | fouls: 0.8452 -> 0.8515 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Sven Botman, Malick Thiaw', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.9132, 'skill_edge': -0.053, 'height_edge': -0.006, 'attacker_skill': 0.71, 'defender_skill': 0.8279, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Sven Botman', 'market_value': 33000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8002}, {'player': 'Malick Thiaw', 'market_value': 46000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8555}], 'xg_override': 0.2918} | totalShots: 1.7051 -> 1.5571 bigChanceMissed: 1.0224 -> 0.9337 shotOffTarget: 0.9286 -> 0.848 onTargetScoringAttempt: 0.7704 -> 0.7035 goals: 0.3596 -> 0.3284 expectedGoals: 0.3195 -> 0.2918 expectedGoalsOnTarget: 0.1923 -> 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.60 (squad xG sum 1.3541, xG scale 1.1831, xA scale 1.3335, team xA 1.04 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.602
squad_xg_sum=1.3541
squad_xa_sum=0.7809
team_expected_assists=1.0413
team_xa_to_xg_ratio=0.65 | expected_goals: 0.2918 -> 0.3452 expected_assists: 0.0354 -> 0.0472 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 15 by projected rating, fifa_overall 81.0) | match_squad_rank=15
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.2919
goal_rate=0.3284
scorer_weight=0.3822 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0461
assist_rate=0.0
provider_weight=0.0378 | - |
|
| Team totals | 1 | 1.60 | | 13 | | 6.8 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Dean Henderson | G | 5.5m | 15.4% | Market-value substitute prior |
| Honest Ahanor | D | 14.9m | 36.1% | Market-value substitute prior |
| Chadi Riad | D | 14.3m | 23.2% | Market-value substitute prior |
| Quinten Timber | M | 22.9m | 54.0% | Market-value substitute prior |
| Óscar Mingueza | M | 19.0m | 70.7% | Market-value substitute prior |
| Jørgen Strand Larsen | F | 27.4m | 55.5% | Market-value substitute prior |
Newcastle — 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 |
|---|
| Lukáš Horníček | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 6.9 | 37.0 | 10 | 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.0258, quality 0.677) | market_value_eur=25000000
quality_factor=0.6773
boost_factor=1.0258
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=1.0
prior_reliability=0.1333
competition=Premier League | saves: 3.1507 -> 3.2092 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Ismaïla Sarr, Jean-Philippe Mateta', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.3635} | - | 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.69 (squad xG sum 1.3547, xG scale 1.2445, xA scale 1.5693, team xA 1.10 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.686
squad_xg_sum=1.3547
squad_xa_sum=0.6983
team_expected_assists=1.0959
team_xa_to_xg_ratio=0.65 | shots_faced: 13.0 -> 15.2 expected_saves: 3.19 -> 3.72 high_pressure_saves: 1.09 -> 1.28 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 77.0) | match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 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.813 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by 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.1691 | - |
|
| Yoane Wissa | F | 83 | 1 | 0.33 | 0.20 | 65% | 2 | 0.8 | 6.7 | 43.0 | 31 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0080, quality 0.660) | market_value_eur=23000000
quality_factor=0.6595
boost_factor=1.008
reference_quality=0.505
history_matches=24
history_shrink=0.1724 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0142) | blend_weight=0.0142
history_matches=24
season_overlap_discount=1.0
per90_to_match_factor=0.9201
prior_reliability=0.1267
competition=Premier League | wasFouled: 1.5917 -> 1.6241 totalShots: 1.7158 -> 1.733 totalOffside: 0.3222 -> 0.3314 goalAssist: 0.1027 -> 0.1081 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Axel Disasi, Chris Richards', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 0.9038, 'skill_edge': -0.0134, 'height_edge': -0.052, 'attacker_skill': 0.6595, 'defender_skill': 0.6893, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Axel Disasi', 'market_value': 15500000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6376}, {'player': 'Chris Richards', 'market_value': 25000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7411}], 'xg_override': 0.267} | totalShots: 1.733 -> 1.5663 shotOffTarget: 0.8778 -> 0.7934 onTargetScoringAttempt: 0.8399 -> 0.7591 bigChanceMissed: 0.7641 -> 0.6906 expectedGoalsOnTarget: 0.3499 -> 0.3162 expectedGoals: 0.2954 -> 0.267 goals: 0.29 -> 0.2621 | 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.69 (squad xG sum 1.3547, xG scale 1.2445, xA scale 1.5693, team xA 1.10 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.686
squad_xg_sum=1.3547
squad_xa_sum=0.6983
team_expected_assists=1.0959
team_xa_to_xg_ratio=0.65 | expected_goals: 0.267 -> 0.3323 expected_assists: 0.0365 -> 0.0573 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 80.0) | match_squad_rank=14
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
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.2827
goal_rate=0.2621
scorer_weight=0.3271 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0557
assist_rate=0.1081
provider_weight=0.0716 | - |
|
| Harvey Barnes | F | 85 | 0 | 0.20 | 0.13 | 46% | 2 | 1.5 | 6.9 | 58.4 | 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.0085, quality 0.770) | market_value_eur=38000000
quality_factor=0.7699
boost_factor=1.0085
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.9444
prior_reliability=0.1333
competition=Premier League | totalShots: 1.836 -> 1.8279 totalCross: 2.2211 -> 2.2137 onTargetScoringAttempt: 0.5935 -> 0.588 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Axel Disasi, Chris Richards', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.204, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 1.0062, 'skill_edge': 0.0362, 'height_edge': -0.032, 'attacker_skill': 0.7699, 'defender_skill': 0.6893, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Axel Disasi', 'market_value': 15500000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6376}, {'player': 'Chris Richards', 'market_value': 25000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7411}], 'xg_override': 0.1586} | totalShots: 1.8305 -> 1.8418 shotOffTarget: 1.2425 -> 1.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.69 (squad xG sum 1.3547, xG scale 1.2445, xA scale 1.5693, team xA 1.10 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.686
squad_xg_sum=1.3547
squad_xa_sum=0.6983
team_expected_assists=1.0959
team_xa_to_xg_ratio=0.65 | expected_goals: 0.1586 -> 0.1974 expected_assists: 0.1149 -> 0.1803 | 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: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.1791
goal_rate=0.2292
scorer_weight=0.2467 | - | integer_assist_projection | Team scoreline allocation: 1 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.165
assist_rate=0.3738
provider_weight=0.2254 | - |
|
| Matías Fernández-Pardo | F | 73 | 0 | 0.17 | 0.01 | 2770% | 2 | 0.1 | 6.7 | 24.4 | 8 | 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.0652, quality 0.853) | market_value_eur=60000000
quality_factor=0.8526
boost_factor=1.0652
reference_quality=0.505
history_matches=3
history_shrink=0.625 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Axel Disasi, Chris Richards', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.249, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 1.0727, 'skill_edge': 0.0735, 'height_edge': -0.024, 'attacker_skill': 0.8526, 'defender_skill': 0.6893, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Axel Disasi', 'market_value': 15500000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6376}, {'player': 'Chris Richards', 'market_value': 25000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7411}], 'xg_override': 0.1384} | totalShots: 1.4569 -> 1.5629 shotOffTarget: 0.9787 -> 1.0499 onTargetScoringAttempt: 0.4782 -> 0.513 expectedGoals: 0.129 -> 0.1384 goals: 0.1122 -> 0.1204 | 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.69 (squad xG sum 1.3547, xG scale 1.2445, xA scale 1.5693, team xA 1.10 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.686
squad_xg_sum=1.3547
squad_xa_sum=0.6983
team_expected_assists=1.0959
team_xa_to_xg_ratio=0.65 | expected_goals: 0.1384 -> 0.1722 expected_assists: 0.0508 -> 0.0797 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 15 by projected rating, fifa_overall 78.0) | match_squad_rank=15
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.1582
goal_rate=0.1204
scorer_weight=0.1558 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0766
assist_rate=0.0
provider_weight=0.0638 | - |
|
| Joelinton | M | 85 | 0 | 0.10 | 0.08 | ok | 1 | 1.1 | 6.8 | 47.8 | 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.0064, quality 0.641) | market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.0064
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': 'Axel Disasi', 'matchup_zone': 'LW vs CB', 'duel_win_rate': 0.405, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9786, 'skill_edge': 0.0014, 'height_edge': -0.016, 'attacker_skill': 0.6408, 'defender_skill': 0.6376, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Axel Disasi', 'market_value': 15500000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6376}], 'xg_override': 0.0794} | aerialWon: 2.7851 -> 1.2 totalShots: 1.2113 -> 1.1854 shotOffTarget: 0.9169 -> 0.8973 onTargetScoringAttempt: 0.2944 -> 0.2881 | 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.69 (squad xG sum 1.3547, xG scale 1.2445, xA scale 1.5693, team xA 1.10 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.686
squad_xg_sum=1.3547
squad_xa_sum=0.6983
team_expected_assists=1.0959
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0794 -> 0.0988 expected_assists: 0.0574 -> 0.0901 | 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: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0941
goal_rate=0.0888
scorer_weight=0.106 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0862
assist_rate=0.0677
provider_weight=0.0987 | - |
|
| Nico González | M | 69 | 0 | 0.04 | 0.01 | 471% | 1 | 0.1 | 6.9 | 30.9 | 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.0151, quality 0.837) | market_value_eur=54000000
quality_factor=0.837
boost_factor=1.0151
reference_quality=0.505
history_matches=28
history_shrink=0.1515 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Ismaïla Sarr, Yéremy Pino, Adam Wharton', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 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.69 (squad xG sum 1.3547, xG scale 1.2445, xA scale 1.5693, team xA 1.10 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.686
squad_xg_sum=1.3547
squad_xa_sum=0.6983
team_expected_assists=1.0959
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0332 -> 0.0413 expected_assists: 0.0493 -> 0.0774 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 81.0) | match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0405
goal_rate=0.0378
scorer_weight=0.0436 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0745
assist_rate=0.056
provider_weight=0.0826 | - |
|
| Lewis Hall | D | 88 | 0 | 0.07 | 0.03 | 138% | 1 | 0.7 | 7.0 | 52.7 | 29 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0122, quality 0.831) | market_value_eur=52000000
quality_factor=0.8309
boost_factor=1.0122
reference_quality=0.505
history_matches=35
history_shrink=0.125 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0108) | blend_weight=0.0108
history_matches=35
season_overlap_discount=1.0
per90_to_match_factor=0.9776
prior_reliability=0.1333
competition=Premier League | fouls: 0.701 -> 0.7093 wonTackle: 1.317 -> 1.3239 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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': 'Right Wingback vs Left Back — Overlapping Run'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.69 (squad xG sum 1.3547, xG scale 1.2445, xA scale 1.5693, team xA 1.10 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.686
squad_xg_sum=1.3547
squad_xa_sum=0.6983
team_expected_assists=1.0959
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0549 -> 0.0683 expected_assists: 0.119 -> 0.1867 | 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: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.066
goal_rate=0.1693
scorer_weight=0.0854 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1703
assist_rate=0.1118
provider_weight=0.1787 | - |
|
| Sven Botman | D | 89 | 0 | 0.05 | 0.06 | ok | 1 | 0.5 | 6.9 | 47.7 | 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 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.0124) | blend_weight=0.0124
history_matches=30
season_overlap_discount=1.0
per90_to_match_factor=0.9878
prior_reliability=0.1333
competition=Premier League | interceptionWon: 1.2285 -> 1.2133 wonTackle: 0.7581 -> 0.7487 fouls: 0.542 -> 0.5353 wasFouled: 1.0006 -> 0.9943 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Jean-Philippe Mateta', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 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.69 (squad xG sum 1.3547, xG scale 1.2445, xA scale 1.5693, team xA 1.10 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.686
squad_xg_sum=1.3547
squad_xa_sum=0.6983
team_expected_assists=1.0959
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0389 -> 0.0484 expected_assists: 0.0435 -> 0.0683 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 81.0) | match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0472
goal_rate=0.0134
scorer_weight=0.0387 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.066
assist_rate=0.0
provider_weight=0.0546 | - |
|
| Malick Thiaw | D | 90 | 0 | 0.09 | 0.12 | ok | 0 | 0.5 | 6.8 | 56.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 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.0096) | blend_weight=0.0096
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=0.9977
prior_reliability=0.1333
competition=Premier League | wasFouled: 0.4585 -> 0.4685 interceptionWon: 0.915 -> 0.9062 wonTackle: 0.6165 -> 0.6106 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Jean-Philippe Mateta', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 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.69 (squad xG sum 1.3547, xG scale 1.2445, xA scale 1.5693, team xA 1.10 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.686
squad_xg_sum=1.3547
squad_xa_sum=0.6983
team_expected_assists=1.0959
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0721 -> 0.0897 expected_assists: 0.0184 -> 0.0289 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 81.0) | match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0858
goal_rate=0.0182
scorer_weight=0.0718 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0285
assist_rate=0.0
provider_weight=0.0231 | - |
|
| Lewis Miley | M | 84 | 0 | 0.05 | 0.04 | 48% | 1 | 0.2 | 6.9 | 48.8 | 20 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.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.0118) | blend_weight=0.0118
history_matches=28
season_overlap_discount=1.0
per90_to_match_factor=0.9378
prior_reliability=0.12
competition=Premier League | totalCross: 1.4546 -> 1.4374 wasFouled: 0.2527 -> 0.262 wonTackle: 1.042 -> 1.0358 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Anan Khalaili', 'matchup_zone': 'Midfield lane'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 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.69 (squad xG sum 1.3547, xG scale 1.2445, xA scale 1.5693, team xA 1.10 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.686
squad_xg_sum=1.3547
squad_xa_sum=0.6983
team_expected_assists=1.0959
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0424 -> 0.0528 expected_assists: 0.0743 -> 0.1166 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 77.0) | match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0514
goal_rate=0.0422
scorer_weight=0.0527 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1101
assist_rate=0.0755
provider_weight=0.1177 | - |
|
| William Osula | F | 73 | 1 | 0.42 | 0.17 | 151% | 2 | 0.8 | 6.9 | 47.5 | 22 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0102, quality 0.710) | market_value_eur=29000000
quality_factor=0.71
boost_factor=1.0102
reference_quality=0.505
history_matches=25
history_shrink=0.1667 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0043) | blend_weight=0.0043
history_matches=25
season_overlap_discount=1.0
per90_to_match_factor=0.8134
prior_reliability=0.04
competition=Premier League | fouls: 1.3521 -> 1.3462 wasFouled: 1.372 -> 1.3661 goalAssist: 0.1972 -> 0.2022 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Axel Disasi, Chris Richards', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.217, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 1.0254, 'skill_edge': 0.0093, 'height_edge': 0.008, 'attacker_skill': 0.71, 'defender_skill': 0.6893, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Axel Disasi', 'market_value': 15500000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6376}, {'player': 'Chris Richards', 'market_value': 25000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7411}], 'xg_override': 0.3393} | totalShots: 2.1252 -> 2.1792 shotOffTarget: 1.2081 -> 1.2388 onTargetScoringAttempt: 0.9108 -> 0.9339 goals: 0.467 -> 0.4789 bigChanceMissed: 0.4493 -> 0.4607 expectedGoalsOnTarget: 0.4342 -> 0.4452 expectedGoals: 0.3309 -> 0.3393 | 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.69 (squad xG sum 1.3547, xG scale 1.2445, xA scale 1.5693, team xA 1.10 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.686
squad_xg_sum=1.3547
squad_xa_sum=0.6983
team_expected_assists=1.0959
team_xa_to_xg_ratio=0.65 | expected_goals: 0.3393 -> 0.4224 expected_assists: 0.0721 -> 0.1131 | 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=1
goal_probability=0.3445
goal_rate=0.4789
scorer_weight=0.528 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1069
assist_rate=0.2022
provider_weight=0.1414 | - |
|
| Team totals | 2 | 1.69 | | 14 | | 6.9 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Ewen Jaouen | G | 5.1m | 14.2% | Market-value substitute prior |
| Tino Livramento | D | 15.0m | 36.4% | Market-value substitute prior |
| Amar Dedić | D | 14.7m | 23.9% | Market-value substitute prior |
| Aladji Bamba | M | 18.5m | 71.0% | Market-value substitute prior |
| Sean Steur | M | 21.2m | 51.6% | Market-value substitute prior |
| Nick Woltemade | F | 23.1m | 75.2% | Market-value substitute prior |
Antagonist / tactical summary
Midfield is evenly contested — Adam Wharton vs Nico González will be the pivotal duel. Total antagonist xG — Home: 1.05, Away: 0.98. Home danger zone: Shadow Striker vs CDM + CB — Zone 14 Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Midfield — possession 50.0% / 50.0%, dominance ratio 0.49, key duel: Adam Wharton vs Nico González
Jean-Philippe Mateta xG 0.29Ismaïla Sarr xG 0.34Yéremy Pino xG 0.11Joelinton xG 0.08William Osula xG 0.34Yoane Wissa xG 0.27
Summary
Antagonist matchup analysis for Crystal Palace vs Newcastle. Most likely scoreline: 1-2. Lambdas derived from 7 home and 5 away individual player duels. Head-to-head: Crystal Palace 2W-3D-5L vs Newcastle 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 Nico González will be the pivotal duel. Total antagonist xG — Home: 1.05, Away: 0.98. Home danger zone: Shadow Striker vs CDM + CB — Zone 14 Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Barcelona vs Real Madrid
LaLiga · 20261025 · 4-2-3-1 vs 3-4-1-2
Predicted 2-1Winner: BarcelonaWinning H 2-1 (8.2%)Winning A 1-2 (4.7%)Confidence 0.78λ home/away 2.67 / 1.53Most-likely P 8.2%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset TracingAntagonist + XGBoost match analysis for Barcelona vs Real Madrid. Player statistics regressed using position-specific XGBoost models (G, D, M, F) with 2026-2027 FBref priors. Micro-duels resolved across 4-2-3-1 vs 3-4-1-2 (duel lambdas: Home 2.835, Away 1.840). Final calibrated Poisson lambdas: Home 2.674, Away 1.527 (most likely score 2-1).
Home Starters 11/11 XGBoost (11 FBref) Away Starters 11/11 XGBoost (10 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 2.83 / 1.84 Final λ (H/A) 2.67 / 1.53
FBref Team Priors: FC Barcelona (Gls/90: 3.6666666666666665, GA/90: 4.0 → E[λ]: 3.5) vs Real Madrid (Gls/90: 3.0, GA/90: 3.33 → E[λ]: 3.5) | Blend Weight: 0.228
Modeling Pipeline Stages (5 layers)
- 1. XGBoost player regressions for volume & event rates with market-value quality scaling
- 2. Multi-source prior blending (FBref 2026-2027 tables + Sofascore season history)
- 3. Antagonist formation duel matrix resolving 1v1 and zonal matchups
- 4. Team-level prior calibration (FBref possession and attack/defense efficiencies)
- 5. Bivariate Poisson matrix with Dixon-Coles low-score correction
Standing & form context
| Metric | Barcelona | Real Madrid |
|---|
| League position | 1.00 | 3.00 |
| Points per game | 2.34 | 1.94 |
| Attack index | 1.87 | 1.23 |
| Defense (concede) index | 0.81 | 0.89 |
| Form multiplier | 1.02 | 0.98 |
| Standing λ multiplier | 1.19 | 1.03 |
Lambda decomposition (how the goal rates were built)
| Stage | Barcelona λ | Real Madrid λ |
|---|
| FBref Squad Prior E[λ] (weight 0.228) | 3.500 | 3.500 |
| Pre-calibration (Micro-duels) | 2.835 | 1.840 |
| Final λ | 2.674 | 1.527 |
competition calibration scale 0.85competition observed total goals 2.984quality gap applied Falsemismatch score pressure applied Falsecompetitive underdog floor applied Falsestage discount 1.0
Scoreline distribution & markets
| Top 5 scorelines | P |
|---|
| 2-1 | 8.2% |
| 3-1 | 7.3% |
| 2-2 | 6.2% |
| 1-1 | 6.2% |
| 3-2 | 5.6% |
| Home win | 61.9% |
| Draw | 17.6% |
| Away win | 20.4% |
| Over 2.5 | 79.0% |
| BTTS yes | 72.9% |
Pregame fair line — favorite Barcelona (61.9%), fair total 4.20, fair spread 1.15
Projected players vs season baseline
Proj = projected for this match · Season = this season's per-game average from match data · deviation badge compares projected xG to the player's season xG/game.
Barcelona — projected line vs season baseline (4-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 |
|---|
| Raphinha | F | 78 | 1 | 0.60 | 0.57 | ok | 3 | 2.3 | 7.9 | 60.2 | 24 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0156, quality 0.859) | market_value_eur=63000000
quality_factor=0.8589
boost_factor=1.0156
reference_quality=0.505
history_matches=29
history_shrink=0.1471 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0159) | blend_weight=0.0159
history_matches=29
season_overlap_discount=1.0
per90_to_match_factor=0.8613
prior_reliability=0.1667
competition=La Liga | goals: 0.9518 -> 0.9641 totalCross: 2.7355 -> 2.7468 fouls: 0.3374 -> 0.3485 onTargetScoringAttempt: 1.8397 -> 1.8487 totalOffside: 0.5008 -> 0.5093 wonTackle: 0.4262 -> 0.4194 wasFouled: 0.7008 -> 0.6951 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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 Cucurella, Dean Huijsen', '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.9291, 'skill_edge': -0.0122, 'height_edge': -0.036, 'attacker_skill': 0.8589, 'defender_skill': 0.886, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Marc Cucurella', 'market_value': 62000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8842}, {'player': 'Dean Huijsen', 'market_value': 66000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8879}], 'xg_override': 0.5149} | totalShots: 3.2273 -> 2.9985 onTargetScoringAttempt: 1.8487 -> 1.7176 shotOffTarget: 1.3786 -> 1.2809 expectedGoalsOnTarget: 1.116 -> 1.0369 goals: 0.9641 -> 0.8957 bigChanceMissed: 0.7397 -> 0.6873 expectedGoals: 0.5542 -> 0.5149 | 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.67 (squad xG sum 2.2996, xG scale 1.1628, xA scale 1.2424, team xA 1.74 = 0.65 x lambda) | scoreline_reset=true
team_lambda=2.674
squad_xg_sum=2.2996
squad_xa_sum=1.399
team_expected_assists=1.7381
team_xa_to_xg_ratio=0.65 | expected_goals: 0.5149 -> 0.5987 expected_assists: 0.1826 -> 0.2269 | 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.4505
goal_rate=0.8957
scorer_weight=0.7484 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.203
assist_rate=0.299
provider_weight=0.2836 | - |
|
| Anthony Gordon | F | 77 | 0 | 0.38 | 0.27 | 44% | 2 | 1.5 | 6.9 | 51.8 | 26 | 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.0154, quality 0.884) | market_value_eur=82000000
quality_factor=0.8837
boost_factor=1.0154
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.8582
prior_reliability=0.1333
competition=La Liga | goalAssist: 0.2381 -> 0.2504 totalShots: 2.1326 -> 2.1426 totalCross: 1.2496 -> 1.24 onTargetScoringAttempt: 0.7739 -> 0.7798 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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 Cucurella, Dean Huijsen', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.191, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.9867, 'skill_edge': -0.0011, 'height_edge': -0.008, 'attacker_skill': 0.8837, 'defender_skill': 0.886, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Marc Cucurella', 'market_value': 62000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8842}, {'player': 'Dean Huijsen', 'market_value': 66000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8879}], 'xg_override': 0.3306} | totalShots: 2.1426 -> 2.1141 shotOffTarget: 1.3587 -> 1.3406 onTargetScoringAttempt: 0.7798 -> 0.7694 bigChanceMissed: 0.3846 -> 0.3795 | 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.67 (squad xG sum 2.2996, xG scale 1.1628, xA scale 1.2424, team xA 1.74 = 0.65 x lambda) | scoreline_reset=true
team_lambda=2.674
squad_xg_sum=2.2996
squad_xa_sum=1.399
team_expected_assists=1.7381
team_xa_to_xg_ratio=0.65 | expected_goals: 0.3306 -> 0.3844 expected_assists: 0.1171 -> 0.1455 | 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.3191
goal_rate=0.2618
scorer_weight=0.3149 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1354
assist_rate=0.2504
provider_weight=0.1819 | - |
|
| Fermín López | M | 80 | 0 | 0.28 | 0.28 | ok | 2 | 1.9 | 7.1 | 63.5 | 27 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0143, quality 0.896) | market_value_eur=113000000
quality_factor=0.8965
boost_factor=1.0143
reference_quality=0.505
history_matches=36
history_shrink=0.122 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0122) | blend_weight=0.0122
history_matches=36
season_overlap_discount=1.0
per90_to_match_factor=0.888
prior_reliability=0.1533
competition=La Liga | onTargetScoringAttempt: 0.8838 -> 0.8965 goals: 0.2234 -> 0.2348 wasFouled: 0.9768 -> 0.9837 wonTackle: 0.6874 -> 0.6931 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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 Cucurella', 'matchup_zone': 'LW vs CB', 'duel_win_rate': 0.43, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 1.014, 'skill_edge': 0.0055, 'height_edge': 0.004, 'attacker_skill': 0.8965, 'defender_skill': 0.8842, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Marc Cucurella', 'market_value': 62000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8842}], 'xg_override': 0.2419} | aerialWon: 0.5714 -> 0.9 totalShots: 2.1389 -> 2.1689 shotOffTarget: 1.2424 -> 1.2598 onTargetScoringAttempt: 0.8965 -> 0.9091 expectedGoalsOnTarget: 0.5662 -> 0.5741 | 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.67 (squad xG sum 2.2996, xG scale 1.1628, xA scale 1.2424, team xA 1.74 = 0.65 x lambda) | scoreline_reset=true
team_lambda=2.674
squad_xg_sum=2.2996
squad_xa_sum=1.399
team_expected_assists=1.7381
team_xa_to_xg_ratio=0.65 | expected_goals: 0.2419 -> 0.2813 expected_assists: 0.1781 -> 0.2213 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 90.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.2452
goal_rate=0.2381
scorer_weight=0.2776 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1985
assist_rate=0.167
provider_weight=0.2105 | - |
|
| Lamine Yamal | F | 83 | 1 | 0.75 | 0.52 | 46% | 5 | 3.6 | 8.4 | 67.3 | 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.0148, quality 0.900) | market_value_eur=237000000
quality_factor=0.9
boost_factor=1.0148
reference_quality=0.505
history_matches=35
history_shrink=0.125 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0146) | blend_weight=0.0146
history_matches=35
season_overlap_discount=1.0
per90_to_match_factor=0.9181
prior_reliability=0.18
competition=La Liga | totalOffside: 0.9147 -> 0.9312 totalCross: 2.6881 -> 2.7035 goalAssist: 0.6874 -> 0.6773 fouls: 1.2032 -> 1.1955 interceptionWon: 0.2533 -> 0.2595 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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 Cucurella, Dean Huijsen', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.198, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.9975, 'skill_edge': 0.0063, 'height_edge': -0.008, 'attacker_skill': 0.9, 'defender_skill': 0.886, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Marc Cucurella', 'market_value': 62000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8842}, {'player': 'Dean Huijsen', 'market_value': 66000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8879}], 'xg_override': 0.6468} | totalShots: 5.081 -> 5.0683 shotOffTarget: 3.3763 -> 3.3679 | 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.67 (squad xG sum 2.2996, xG scale 1.1628, xA scale 1.2424, team xA 1.74 = 0.65 x lambda) | scoreline_reset=true
team_lambda=2.674
squad_xg_sum=2.2996
squad_xa_sum=1.399
team_expected_assists=1.7381
team_xa_to_xg_ratio=0.65 | expected_goals: 0.6468 -> 0.7522 expected_assists: 0.2476 -> 0.3076 | 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.5287
goal_rate=0.7925
scorer_weight=0.9095 | - | integer_assist_projection | Team scoreline allocation: 1 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.2648
assist_rate=0.6773
provider_weight=0.3845 | - |
|
| Pedri | M | 80 | 0 | 0.10 | 0.05 | 111% | 1 | 0.6 | 7.2 | 64.6 | 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.0144, quality 0.900) | market_value_eur=164000000
quality_factor=0.8997
boost_factor=1.0144
reference_quality=0.505
history_matches=36
history_shrink=0.122 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0122) | blend_weight=0.0122
history_matches=36
season_overlap_discount=1.0
per90_to_match_factor=0.8863
prior_reliability=0.1533
competition=La Liga | wonTackle: 0.9161 -> 0.9237 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Yan Diomande, Jude Bellingham, Aurélien Tchouaméni', 'matchup_zone': 'Attacking Mid vs Double Pivot — Tight Space 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.67 (squad xG sum 2.2996, xG scale 1.1628, xA scale 1.2424, team xA 1.74 = 0.65 x lambda) | scoreline_reset=true
team_lambda=2.674
squad_xg_sum=2.2996
squad_xa_sum=1.399
team_expected_assists=1.7381
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0855 -> 0.0994 expected_assists: 0.1821 -> 0.2262 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 90.0) | match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0946
goal_rate=0.0927
scorer_weight=0.1047 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.2024
assist_rate=0.2025
provider_weight=0.2461 | - |
|
| Rodri | M | 82 | 0 | 0.11 | 0.08 | 42% | 1 | 0.7 | 7.5 | 68.9 | 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.0156, quality 0.837) | market_value_eur=54000000
quality_factor=0.837
boost_factor=1.0156
reference_quality=0.505
history_matches=27
history_shrink=0.1562 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0041) | blend_weight=0.0041
history_matches=27
season_overlap_discount=1.0
per90_to_match_factor=0.9159
prior_reliability=0.04
competition=La Liga | wonTackle: 1.7173 -> 1.7103 interceptionWon: 1.3892 -> 1.3836 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Yan Diomande, Aurélien Tchouaméni', 'matchup_zone': 'Attacking Mid vs Double Pivot — Tight Space 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.67 (squad xG sum 2.2996, xG scale 1.1628, xA scale 1.2424, team xA 1.74 = 0.65 x lambda) | scoreline_reset=true
team_lambda=2.674
squad_xg_sum=2.2996
squad_xa_sum=1.399
team_expected_assists=1.7381
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0957 -> 0.1113 expected_assists: 0.1041 -> 0.1293 | 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.1053
goal_rate=0.0726
scorer_weight=0.0937 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by 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.0662
provider_weight=0.1034 | - |
|
| João Cancelo | D | 83 | 0 | 0.05 | 0.02 | 139% | 1 | 0.6 | 6.9 | 55.2 | 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.9993, quality 0.493) | market_value_eur=7500000
quality_factor=0.4927
boost_factor=0.9993
reference_quality=0.505
history_matches=22
history_shrink=0.1852 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0024) | blend_weight=0.0024
history_matches=22
season_overlap_discount=1.0
per90_to_match_factor=0.9251
prior_reliability=0.02
competition=La Liga | totalCross: 2.4228 -> 2.417 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Federico Valverde', 'matchup_zone': 'Right Wingback vs Left Back — Overlapping Run'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.67 (squad xG sum 2.2996, xG scale 1.1628, xA scale 1.2424, team xA 1.74 = 0.65 x lambda) | scoreline_reset=true
team_lambda=2.674
squad_xg_sum=2.2996
squad_xa_sum=1.399
team_expected_assists=1.7381
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0471 -> 0.0548 expected_assists: 0.1527 -> 0.1897 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 83.0) | match_squad_rank=14
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
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.3069
scorer_weight=0.0685 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1728
assist_rate=0.0747
provider_weight=0.1518 | - |
|
| Gerard Martín | D | 82 | 0 | 0.02 | 0.01 | 83% | 0 | 0.2 | 7.1 | 56.0 | 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 1.0088, quality 0.758) | market_value_eur=36000000
quality_factor=0.7581
boost_factor=1.0088
reference_quality=0.505
history_matches=38
history_shrink=0.1163 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0101) | blend_weight=0.0101
history_matches=38
season_overlap_discount=1.0
per90_to_match_factor=0.9162
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': 'Kylian Mbappé', '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.67 (squad xG sum 2.2996, xG scale 1.1628, xA scale 1.2424, team xA 1.74 = 0.65 x lambda) | scoreline_reset=true
team_lambda=2.674
squad_xg_sum=2.2996
squad_xa_sum=1.399
team_expected_assists=1.7381
team_xa_to_xg_ratio=0.65 | expected_assists: 0.0229 -> 0.0285 | 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.0165
goal_rate=0.0
scorer_weight=0.0133 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0281
assist_rate=0.0
provider_weight=0.0228 | - |
|
| Pau Cubarsí | D | 85 | 0 | 0.05 | 0.02 | 105% | 0 | 0.2 | 7.2 | 55.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 1.0141, quality 0.891) | market_value_eur=94000000
quality_factor=0.891
boost_factor=1.0141
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.9471
prior_reliability=0.1333
competition=La Liga | wonTackle: 0.7334 -> 0.7407 interceptionWon: 1.1487 -> 1.1416 totalShots: 0.4521 -> 0.4573 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Kylian Mbappé', '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.67 (squad xG sum 2.2996, xG scale 1.1628, xA scale 1.2424, team xA 1.74 = 0.65 x lambda) | scoreline_reset=true
team_lambda=2.674
squad_xg_sum=2.2996
squad_xa_sum=1.399
team_expected_assists=1.7381
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0427 -> 0.0497 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 86.0) | match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0485
goal_rate=0.0113
scorer_weight=0.0398 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0248
assist_rate=0.0
provider_weight=0.0201 | - |
|
| Joan García | G | 84 | 0 | 0.00 | - | n/a | | 0.0 | 7.1 | 62.2 | 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.0111, quality 0.809) | market_value_eur=46000000
quality_factor=0.8089
boost_factor=1.0111
reference_quality=0.505
history_matches=36
history_shrink=0.122 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0159) | blend_weight=0.0159
history_matches=36
season_overlap_discount=1.0
per90_to_match_factor=0.9288
prior_reliability=0.2
competition=La Liga | saves: 2.7355 -> 2.7167 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Kylian Mbappé, Jude Bellingham', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.8402} | - | 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.67 (squad xG sum 2.2996, xG scale 1.1628, xA scale 1.2424, team xA 1.74 = 0.65 x lambda) | scoreline_reset=true
team_lambda=2.674
squad_xg_sum=2.2996
squad_xa_sum=1.399
team_expected_assists=1.7381
team_xa_to_xg_ratio=0.65 | shots_faced: 17.5 -> 14.5 expected_saves: 4.28 -> 3.55 high_pressure_saves: 1.47 -> 1.22 | 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: 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.8912 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by 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.8872 | - |
|
| Xavi Espart | D | 88 | 0 | 0.03 | 0.01 | 320% | 1 | 0.2 | 6.9 | 26.0 | 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 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.0464) | blend_weight=0.0464
history_matches=9
season_overlap_discount=1.0
per90_to_match_factor=0.9799
prior_reliability=0.2
competition=La Liga | wasFouled: 0.9951 -> 0.9641 totalCross: 0.6563 -> 0.6865 interceptionWon: 0.9864 -> 1.0164 fouls: 1.5835 -> 1.5555 goalAssist: 0.3055 -> 0.3216 goals: 0.2455 -> 0.2341 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Eduardo Camavinga', 'matchup_zone': 'Left Wingback vs Right Back — Overlapping Run'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.67 (squad xG sum 2.2996, xG scale 1.1628, xA scale 1.2424, team xA 1.74 = 0.65 x lambda) | scoreline_reset=true
team_lambda=2.674
squad_xg_sum=2.2996
squad_xa_sum=1.399
team_expected_assists=1.7381
team_xa_to_xg_ratio=0.65 | expected_assists: 0.069 -> 0.0857 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 15 by projected rating, fifa_overall 67.0) | match_squad_rank=15
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0338
goal_rate=0.2341
scorer_weight=0.043 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0821
assist_rate=0.3216
provider_weight=0.1071 | - |
|
| Team totals | 2 | 2.67 | | 19 | | 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.8% | Market-value substitute prior |
| Alejandro Balde | D | 15.2m | 37.1% | Market-value substitute prior |
| Ferran Torres | M | 23.6m | 57.3% | Market-value substitute prior |
| Dani Olmo | M | 25.5m | 59.7% | Market-value substitute prior |
| Karim Adeyemi | F | 19.1m | 61.9% | Market-value substitute prior |
Real Madrid — projected line vs season baseline (3-4-1-2)
| Player | Pos | Min | Proj G | Proj xG | Season xG/g | | Proj Sh | Season Sh/g | Proj Rtg | Season Rtg | Rec | Model / FBref Prior |
|---|
| Marc Cucurella | D | 88 | 0 | 0.03 | 0.07 | 63% | 0 | 0.3 | 6.8 | 57.6 | 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.0115, quality 0.857) | market_value_eur=62000000
quality_factor=0.8569
boost_factor=1.0115
reference_quality=0.505
history_matches=41
history_shrink=0.1087 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0085) | blend_weight=0.0085
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=0.9801
prior_reliability=0.12
competition=La Liga | totalCross: 1.5102 -> 1.4974 wasFouled: 0.7829 -> 0.7763 fouls: 0.7318 -> 0.7256 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Fermín López', '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.53 (squad xG sum 1.5869, xG scale 0.9623, xA scale 1.1580, team xA 0.99 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.527
squad_xg_sum=1.5869
squad_xa_sum=0.8571
team_expected_assists=0.9925
team_xa_to_xg_ratio=0.65 | expected_assists: 0.037 -> 0.0428 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 17 by projected rating, fifa_overall 85.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: 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.0
scorer_weight=0.021 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0419
assist_rate=0.066
provider_weight=0.0535 | - |
|
| Eduardo Camavinga | M | 78 | 0 | 0.03 | 0.01 | 149% | 0 | 0.3 | 7.0 | 59.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.0117, quality 0.817) | market_value_eur=48000000
quality_factor=0.8168
boost_factor=1.0117
reference_quality=0.505
history_matches=35
history_shrink=0.125 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0070) | blend_weight=0.007
history_matches=35
season_overlap_discount=1.0
per90_to_match_factor=0.8658
prior_reliability=0.0867
competition=La Liga | interceptionWon: 0.7623 -> 0.771 wasFouled: 1.1843 -> 1.176 | 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': 'Xavi Espart', 'matchup_zone': 'Left Wingback vs Right Back — Overlapping Run', 'duel_win_rate': 0.475, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 1.1097, 'skill_edge': 0.0466, 'height_edge': 0.028, 'attacker_skill': 0.8686, 'defender_skill': 0.765, 'attacker_role': 'LWB', 'attacker_mv_price_index': 0.7, 'defender_adjusted_parts': [{'player': 'Xavi Espart', 'market_value': 26000000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.765}], 'xg_override': 0.0326} | aerialWon: 0.4488 -> 1.1 totalShots: 0.413 -> 0.4583 shotOffTarget: 0.2963 -> 0.3288 onTargetScoringAttempt: 0.1167 -> 0.1295 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.53 (squad xG sum 1.5869, xG scale 0.9623, xA scale 1.1580, team xA 0.99 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.527
squad_xg_sum=1.5869
squad_xa_sum=0.8571
team_expected_assists=0.9925
team_xa_to_xg_ratio=0.65 | expected_assists: 0.0457 -> 0.0529 | 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
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0309
goal_rate=0.0428
scorer_weight=0.0353 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0515
assist_rate=0.0359
provider_weight=0.0475 | - |
|
| Aurélien Tchouaméni | M | 79 | 0 | 0.05 | 0.07 | ok | 1 | 1.3 | 7.0 | 62.7 | 23 | XGBoost M_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0135, quality 0.875) | market_value_eur=73000000
quality_factor=0.8747
boost_factor=1.0135
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': 'Pedri', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.498, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 1.0711, 'skill_edge': -0.0076, 'height_edge': 0.056, 'attacker_skill': 0.883, 'defender_skill': 0.8999, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Pedri', 'market_value': 164000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8999}], 'xg_override': 0.0536} | aerialWon: 1.4642 -> 1.2 totalShots: 0.9994 -> 1.0705 shotOffTarget: 0.7871 -> 0.8431 onTargetScoringAttempt: 0.2123 -> 0.2274 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.53 (squad xG sum 1.5869, xG scale 0.9623, xA scale 1.1580, team xA 0.99 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.527
squad_xg_sum=1.5869
squad_xa_sum=0.8571
team_expected_assists=0.9925
team_xa_to_xg_ratio=0.65 | expected_assists: 0.0549 -> 0.0636 | 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: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0503
goal_rate=0.0549
scorer_weight=0.0522 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0616
assist_rate=0.0571
provider_weight=0.0649 | - |
|
| Federico Valverde | M | 82 | 0 | 0.09 | 0.08 | ok | 1 | 1.3 | 7.0 | 68.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.0127, quality 0.887) | market_value_eur=87000000
quality_factor=0.8873
boost_factor=1.0127
reference_quality=0.505
history_matches=40
history_shrink=0.1111 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0135) | blend_weight=0.0135
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=0.9144
prior_reliability=0.1867
competition=La Liga | wonTackle: 0.6717 -> 0.6847 wasFouled: 0.6002 -> 0.5921 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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 Cancelo', 'matchup_zone': 'Right Wingback vs Left Back — Overlapping Run', 'duel_win_rate': 0.561, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.237, 'skill_edge': 0.1652, 'height_edge': -0.004, 'attacker_skill': 0.898, 'defender_skill': 0.5308, 'attacker_role': 'RWB', 'attacker_mv_price_index': 0.7, 'defender_adjusted_parts': [{'player': 'João Cancelo', 'market_value': 7500000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.5308}], 'xg_override': 0.0931} | aerialWon: 0.7368 -> 1.1 totalShots: 0.9499 -> 1.175 shotOffTarget: 0.6587 -> 0.8148 onTargetScoringAttempt: 0.2912 -> 0.3602 goals: 0.0908 -> 0.1123 expectedGoalsOnTarget: 0.0829 -> 0.1025 expectedGoals: 0.0753 -> 0.0931 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.53 (squad xG sum 1.5869, xG scale 0.9623, xA scale 1.1580, team xA 0.99 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.527
squad_xg_sum=1.5869
squad_xa_sum=0.8571
team_expected_assists=0.9925
team_xa_to_xg_ratio=0.65 | expected_assists: 0.0693 -> 0.0802 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 87.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.0857
goal_rate=0.1123
scorer_weight=0.1016 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0771
assist_rate=0.0648
provider_weight=0.0772 | - |
|
| Dean Huijsen | D | 82 | 0 | 0.09 | 0.06 | 56% | 1 | 0.5 | 7.0 | 60.0 | 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.0138, quality 0.864) | market_value_eur=66000000
quality_factor=0.8644
boost_factor=1.0138
reference_quality=0.505
history_matches=34
history_shrink=0.1282 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0167) | blend_weight=0.0167
history_matches=34
season_overlap_discount=1.0
per90_to_match_factor=0.9133
prior_reliability=0.2
competition=La Liga | totalShots: 0.5436 -> 0.5498 fouls: 0.9422 -> 0.9366 onTargetScoringAttempt: 0.3172 -> 0.3119 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Lamine Yamal', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.53 (squad xG sum 1.5869, xG scale 0.9623, xA scale 1.1580, team xA 0.99 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.527
squad_xg_sum=1.5869
squad_xa_sum=0.8571
team_expected_assists=0.9925
team_xa_to_xg_ratio=0.65 | expected_assists: 0.0363 -> 0.042 | 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.0825
goal_rate=0.0285
scorer_weight=0.0689 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0411
assist_rate=0.0173
provider_weight=0.0336 | - |
|
| Ibrahima Konaté | D | 89 | 0 | 0.05 | 0.03 | 81% | 1 | 0.3 | 6.8 | 60.9 | 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 1.0097, quality 0.809) | market_value_eur=46000000
quality_factor=0.8089
boost_factor=1.0097
reference_quality=0.505
history_matches=42
history_shrink=0.1064 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0092) | blend_weight=0.0092
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.9877
prior_reliability=0.1333
competition=La Liga | wonTackle: 0.6798 -> 0.6917 fouls: 1.1435 -> 1.1375 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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': '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.53 (squad xG sum 1.5869, xG scale 0.9623, xA scale 1.1580, team xA 0.99 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.527
squad_xg_sum=1.5869
squad_xa_sum=0.8571
team_expected_assists=0.9925
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 84.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.0472
goal_rate=0.0069
scorer_weight=0.0387 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0143
assist_rate=0.0
provider_weight=0.0115 | - |
|
| Antonio Rüdiger | D | 88 | 0 | 0.05 | 0.04 | ok | 1 | 0.5 | 6.9 | 41.8 | 25 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9984, quality 0.477) | market_value_eur=6200000
quality_factor=0.4769
boost_factor=0.9984
reference_quality=0.505
history_matches=21
history_shrink=0.1923 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0083) | blend_weight=0.0083
history_matches=21
season_overlap_discount=1.0
per90_to_match_factor=0.9793
prior_reliability=0.0667
competition=La Liga | interceptionWon: 0.7771 -> 0.7706 wasFouled: 0.2651 -> 0.2711 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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': '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.53 (squad xG sum 1.5869, xG scale 0.9623, xA scale 1.1580, team xA 0.99 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.527
squad_xg_sum=1.5869
squad_xa_sum=0.8571
team_expected_assists=0.9925
team_xa_to_xg_ratio=0.65 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 83.0) | match_squad_rank=12
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0481
goal_rate=0.0427
scorer_weight=0.0452 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0148
assist_rate=0.0
provider_weight=0.0119 | - |
|
| Thibaut Courtois | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 7.0 | 63.0 | 23 | 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.0023, quality 0.574) | market_value_eur=14500000
quality_factor=0.5737
boost_factor=1.0023
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 | saves: 2.7104 -> 2.695 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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, Raphinha', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 2.8353} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.53 (squad xG sum 1.5869, xG scale 0.9623, xA scale 1.1580, team xA 0.99 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.527
squad_xg_sum=1.5869
squad_xa_sum=0.8571
team_expected_assists=0.9925
team_xa_to_xg_ratio=0.65 | shots_faced: 26.9 -> 25.4 expected_saves: 6.58 -> 6.22 high_pressure_saves: 2.27 -> 2.14 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 90.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.5727 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by 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.0718 | - |
|
| Jude Bellingham | M | 83 | 0 | 0.20 | 0.17 | ok | 2 | 1.6 | 7.1 | 66.8 | 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.0148, quality 0.899) | market_value_eur=151000000
quality_factor=0.8995
boost_factor=1.0148
reference_quality=0.505
history_matches=35
history_shrink=0.125 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0146) | blend_weight=0.0146
history_matches=35
season_overlap_discount=1.0
per90_to_match_factor=0.9238
prior_reliability=0.18
competition=La Liga | totalShots: 2.0296 -> 2.0402 interceptionWon: 0.5849 -> 0.5763 onTargetScoringAttempt: 0.7994 -> 0.8078 goalAssist: 0.1397 -> 0.1477 fouls: 1.1525 -> 1.1457 goals: 0.2175 -> 0.2243 wasFouled: 2.8032 -> 2.7972 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Pedri', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.506, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 1.0822, 'skill_edge': -0.0001, 'height_edge': 0.056, 'attacker_skill': 0.8998, 'defender_skill': 0.8999, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Pedri', 'market_value': 164000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8999}], 'xg_override': 0.2085} | aerialWon: 0.7921 -> 1.2 totalShots: 2.0402 -> 2.2079 shotOffTarget: 1.2301 -> 1.3312 onTargetScoringAttempt: 0.8078 -> 0.8742 expectedGoalsOnTarget: 0.317 -> 0.3431 goals: 0.2243 -> 0.2427 expectedGoals: 0.1927 -> 0.2085 bigChanceMissed: 0.183 -> 0.198 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.53 (squad xG sum 1.5869, xG scale 0.9623, xA scale 1.1580, team xA 0.99 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.527
squad_xg_sum=1.5869
squad_xa_sum=0.8571
team_expected_assists=0.9925
team_xa_to_xg_ratio=0.65 | expected_goals: 0.2085 -> 0.2006 expected_assists: 0.1453 -> 0.1683 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 90.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.1818
goal_rate=0.2427
scorer_weight=0.2271 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1549
assist_rate=0.1477
provider_weight=0.1704 | - |
|
| Yan Diomande | F | 81 | 0 | 0.10 | 0.03 | 203% | 1 | 0.5 | 6.9 | 57.3 | 11 | 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.0492, quality 0.899) | market_value_eur=132000000
quality_factor=0.8986
boost_factor=1.0492
reference_quality=0.505
history_matches=7
history_shrink=0.4167 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0126) | blend_weight=0.0126
history_matches=7
season_overlap_discount=1.0
per90_to_match_factor=0.8954
prior_reliability=0.0467
competition=La Liga | totalCross: 1.9738 -> 2.0136 wasFouled: 2.251 -> 2.2225 totalShots: 1.1221 -> 1.1079 wonTackle: 0.8958 -> 0.8845 fouls: 0.7034 -> 0.6945 interceptionWon: 0.5316 -> 0.5249 onTargetScoringAttempt: 0.4204 -> 0.4151 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Pedri, Rodri', 'matchup_zone': 'Attacking Mid vs Double Pivot — Tight Space Battle', 'duel_win_rate': 0.239, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.9979, 'skill_edge': 0.0086, 'height_edge': -0.01, 'attacker_skill': 0.899, 'defender_skill': 0.8799, 'attacker_role': 'CAM', 'attacker_mv_price_index': 0.95, 'defender_adjusted_parts': [{'player': 'Pedri', 'market_value': 164000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8999}, {'player': 'Rodri', 'market_value': 54000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8599}], 'xg_override': 0.0988} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.53 (squad xG sum 1.5869, xG scale 0.9623, xA scale 1.1580, team xA 0.99 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.527
squad_xg_sum=1.5869
squad_xa_sum=0.8571
team_expected_assists=0.9925
team_xa_to_xg_ratio=0.65 | expected_assists: 0.1326 -> 0.1536 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 84.0) | match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_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.0907
goal_rate=0.1077
scorer_weight=0.1008 | - | integer_assist_projection | Team scoreline allocation: 1 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.1424
assist_rate=0.1944
provider_weight=0.192 | - |
|
| Kylian Mbappé | F | 89 | 1 | 0.68 | 0.70 | ok | 5 | 4.3 | 7.9 | 64.2 | 23 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0138, quality 0.900) | market_value_eur=212000000
quality_factor=0.9
boost_factor=1.0138
reference_quality=0.505
history_matches=38
history_shrink=0.1163 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0151) | blend_weight=0.0151
history_matches=38
season_overlap_discount=1.0
per90_to_match_factor=0.9897
prior_reliability=0.2
competition=La Liga | totalShots: 4.8434 -> 4.8899 onTargetScoringAttempt: 2.2079 -> 2.2444 totalOffside: 1.4266 -> 1.41 totalCross: 1.2446 -> 1.2358 goals: 0.746 -> 0.7547 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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.199, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.9987, 'skill_edge': 0.0191, 'height_edge': -0.02, 'attacker_skill': 0.9, '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.7032} | totalShots: 4.8899 -> 4.8835 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; 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.53 (squad xG sum 1.5869, xG scale 0.9623, xA scale 1.1580, team xA 0.99 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.527
squad_xg_sum=1.5869
squad_xa_sum=0.8571
team_expected_assists=0.9925
team_xa_to_xg_ratio=0.65 | expected_goals: 0.7032 -> 0.6765 expected_assists: 0.1718 -> 0.199 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 91.0) | match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.4916
goal_rate=0.7537
scorer_weight=0.7218 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by 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.2471
provider_weight=0.2488 | - |
|
| Team totals | 1 | 1.53 | | 17 | | 7.0 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Andriy Lunin | G | 4.8m | 12.7% | Market-value substitute prior |
| Trent Alexander-Arnold | D | 12.9m | 44.3% | Market-value substitute prior |
| Álvaro Carreras | D | 15.1m | 24.9% | Market-value substitute prior |
| Arda Güler | M | 12.9m | 47.2% | Market-value substitute prior |
| Franco Mastantuono | M | 23.4m | 56.4% | Market-value substitute prior |
| Vinícius Júnior | F | 27.1m | 37.1% | Market-value substitute prior |
Antagonist / tactical summary
Midfield is evenly contested — Pedri vs Jude Bellingham will be the pivotal duel. Total antagonist xG — Home: 1.73, Away: 1.19. 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.49, key duel: Pedri vs Jude Bellingham
Fermín López xG 0.24Lamine Yamal xG 0.65Raphinha xG 0.51Kylian Mbappé xG 0.70Yan Diomande xG 0.10Eduardo Camavinga xG 0.03
Summary
Antagonist matchup analysis for Barcelona vs Real Madrid. Most likely scoreline: 2-1. Lambdas derived from 4 home and 6 away individual player duels. Head-to-head: Barcelona 7W-0D-3L vs Real Madrid over 10 meetings.
Tactical parity between 4-2-3-1 and 3-4-1-2. Match outcome driven primarily by individual player quality. Midfield is evenly contested — Pedri vs Jude Bellingham will be the pivotal duel. Total antagonist xG — Home: 1.73, Away: 1.19. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Generated 2026-10-25 15:17:36 UTC · Soccer prediction reporting