Soccer predictions: actual data vs predicted data
Slate 20261107 · 8 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 | Score | Winner | H / D / A | O2.5 | BTTS | Conf | λ H/A | Actual | Result |
|---|
| Osasuna vs Athletic Club LaLiga | 2-1 | Osasuna | 45.1% / 24.2% / 30.7% | 57.3% | 59.6% | 0.67 | 1.66 / 1.33 | - | pending |
| Espanyol vs Deportivo LaLiga | 2-1 | Espanyol | 54.1% / 22.8% / 23.0% | 57.3% | 57.2% | 0.69 | 1.85 / 1.13 | - | pending |
| Arsenal vs Hull Premier League | 1-0 | Arsenal | 64.4% / 20.9% / 14.7% | 53.0% | 48.3% | 0.72 | 1.98 / 0.82 | - | pending |
| Forest vs Man City Premier League | 0-1 | Man City | 22.6% / 23.4% / 54.0% | 54.2% | 54.6% | 0.69 | 1.07 / 1.78 | - | pending |
| Fulham vs Newcastle Premier League | 1-0 | Fulham | 42.9% / 25.4% / 31.8% | 52.6% | 56.1% | 0.66 | 1.51 / 1.27 | - | pending |
| Valencia vs Real Madrid LaLiga | 0-2 | Real Madrid | 14.2% / 18.7% / 67.2% | 61.8% | 54.4% | 0.73 | 0.94 / 2.26 | - | pending |
| Málaga vs Racing Club LaLiga | 1-0 | Málaga | 42.8% / 26.1% / 31.1% | 49.5% | 53.6% | 0.65 | 1.45 / 1.20 | - | pending |
| Leeds vs Tottenham Premier League | 1-1 | Draw | 40.2% / 25.6% / 34.3% | 52.6% | 56.4% | 0.65 | 1.46 / 1.33 | - | pending |
Match detail
Osasuna vs Athletic Club
LaLiga · 20261107 · 4-3-3 vs 4-2-3-1
Predicted 2-1Winner: OsasunaWinning H 2-1 (9.2%)Winning A 1-2 (7.4%)Confidence 0.67λ home/away 1.66 / 1.33Most-likely P 9.2%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset TracingAntagonist + XGBoost match analysis for Osasuna vs Athletic Club. Player statistics regressed using position-specific XGBoost models (G, D, M, F) with 2026-2027 FBref priors. Micro-duels resolved across 4-3-3 vs 4-2-3-1 (duel lambdas: Home 1.117, Away 1.080). Final calibrated Poisson lambdas: Home 1.656, Away 1.328 (most likely score 2-1).
Home Starters 11/11 XGBoost (9 FBref) Away Starters 11/11 XGBoost (9 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.12 / 1.08 Final λ (H/A) 1.66 / 1.33
FBref Team Priors: Osasuna (Gls/90: 1.0, GA/90: 1.0 → E[λ]: 0.741) vs Athletic Club (Gls/90: 1.0, GA/90: 1.0 → E[λ]: 0.741) | Blend Weight: 0.228
Modeling Pipeline Stages (5 layers)
- 1. XGBoost player regressions for volume & event rates with market-value quality scaling
- 2. Multi-source prior blending (FBref 2026-2027 tables + Sofascore season history)
- 3. Antagonist formation duel matrix resolving 1v1 and zonal matchups
- 4. Team-level prior calibration (FBref possession and attack/defense efficiencies)
- 5. Bivariate Poisson matrix with Dixon-Coles low-score correction
Standing & form context
| Metric | Osasuna | Athletic Club |
|---|
| League position | 14.00 | 7.00 |
| Points per game | 1.20 | 1.35 |
| Attack index | 0.85 | 0.91 |
| Defense (concede) index | 0.82 | 1.15 |
| Form multiplier | 0.99 | 1.01 |
| Standing λ multiplier | 0.86 | 1.02 |
Lambda decomposition (how the goal rates were built)
| Stage | Osasuna λ | Athletic Club λ |
|---|
| FBref Squad Prior E[λ] (weight 0.228) | 0.741 | 0.741 |
| Pre-competitive-floor | 1.220 | 1.055 |
| Pre-calibration (Micro-duels) | 1.117 | 1.080 |
| Final λ | 1.656 | 1.328 |
competition calibration scale 1.312competition observed total goals 2.984quality gap applied Truemismatch score pressure applied Falsecompetitive underdog floor applied Falsestage discount 1.0
Scoreline distribution & markets
| Top 5 scorelines | P |
|---|
| 1-1 | 11.2% |
| 2-1 | 9.2% |
| 1-0 | 8.3% |
| 1-2 | 7.4% |
| 2-0 | 6.9% |
| Home win | 45.1% |
| Draw | 24.2% |
| Away win | 30.7% |
| Over 2.5 | 57.3% |
| BTTS yes | 59.6% |
Pregame fair line — favorite Osasuna (45.1%), fair total 2.98, fair spread 0.33
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.
Osasuna — 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 |
|---|
| Sergio Herrera | G | 88 | 0 | 0.00 | - | n/a | | 0.0 | 7.0 | 52.0 | 32 | FBref Prior G_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost G_service raw output over 3 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9978, quality 0.437) | market_value_eur=2600000
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=0.977
prior_reliability=0.2
competition=La Liga | saves: 2.678 -> 2.6545 wasFouled: 0.2569 -> 0.2624 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Oihan Sancet, Robert Navarro', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.0798} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.66 (squad xG sum 1.0981, xG scale 1.5081, xA scale 1.5547, team xA 1.08 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.656
squad_xg_sum=1.0981
squad_xa_sum=0.6924
team_expected_assists=1.0764
team_xa_to_xg_ratio=0.65 | shots_faced: 10.3 -> 12.6 expected_saves: 2.53 -> 3.08 high_pressure_saves: 0.86 -> 1.06 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 79.0) | match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.7367 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by 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.0448 | - |
|
| Alejandro Catena | D | 90 | 0 | 0.15 | 0.05 | 197% | 1 | 0.3 | 6.9 | 60.2 | 32 | 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.9979, quality 0.437) | market_value_eur=2700000
quality_factor=0.4374
boost_factor=0.9979
reference_quality=0.505
history_matches=44
history_shrink=0.102 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Robert Navarro', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.66 (squad xG sum 1.0981, xG scale 1.5081, xA scale 1.5547, team xA 1.08 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.656
squad_xg_sum=1.0981
squad_xa_sum=0.6924
team_expected_assists=1.0764
team_xa_to_xg_ratio=0.65 | expected_goals: 0.1015 -> 0.1531 expected_assists: 0.0959 -> 0.1491 | 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: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.142
goal_rate=0.0176
scorer_weight=0.1225 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1385
assist_rate=0.1121
provider_weight=0.1657 | - |
|
| Enzo Boyomo | D | 86 | 0 | 0.06 | 0.03 | 132% | 0 | 0.4 | 6.8 | 43.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.0026, quality 0.575) | market_value_eur=14600000
quality_factor=0.5748
boost_factor=1.0026
reference_quality=0.505
history_matches=35
history_shrink=0.125 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0033) | blend_weight=0.0033
history_matches=35
season_overlap_discount=1.0
per90_to_match_factor=0.9601
prior_reliability=0.04
competition=La Liga | wonTackle: 0.823 -> 0.8307 fouls: 0.8518 -> 0.8594 | 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': 'Peio Canales', '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.66 (squad xG sum 1.0981, xG scale 1.5081, xA scale 1.5547, team xA 1.08 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.656
squad_xg_sum=1.0981
squad_xa_sum=0.6924
team_expected_assists=1.0764
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0428 -> 0.0645 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 79.0) | match_squad_rank=11
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0625
goal_rate=0.0069
scorer_weight=0.0516 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0134
assist_rate=0.0669
provider_weight=0.0169 | - |
|
| Jorge Herrando | D | 72 | 0 | 0.04 | 0.01 | 392% | 0 | 0.1 | 6.8 | 46.5 | 26 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9973, quality 0.440) | market_value_eur=3200000
quality_factor=0.4399
boost_factor=0.9973
reference_quality=0.505
history_matches=31
history_shrink=0.1389 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0126) | blend_weight=0.0126
history_matches=31
season_overlap_discount=1.0
per90_to_match_factor=0.7969
prior_reliability=0.14
competition=La Liga | onTargetScoringAttempt: 0.2249 -> 0.2318 totalShots: 0.3327 -> 0.3383 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Robert Navarro', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.66 (squad xG sum 1.0981, xG scale 1.5081, xA scale 1.5547, team xA 1.08 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.656
squad_xg_sum=1.0981
squad_xa_sum=0.6924
team_expected_assists=1.0764
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0253 -> 0.0382 expected_assists: 0.026 -> 0.0404 | 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: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0375
goal_rate=0.0
scorer_weight=0.0306 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0396
assist_rate=0.0302
provider_weight=0.0426 | - |
|
| Valentin Rosier | D | 85 | 0 | 0.04 | 0.02 | 99% | 1 | 0.6 | 6.7 | 59.3 | 27 | 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.9974, quality 0.439) | market_value_eur=3100000
quality_factor=0.4387
boost_factor=0.9974
reference_quality=0.505
history_matches=34
history_shrink=0.1282 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Iñigo Ruiz de Galarreta', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.66 (squad xG sum 1.0981, xG scale 1.5081, xA scale 1.5547, team xA 1.08 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.656
squad_xg_sum=1.0981
squad_xa_sum=0.6924
team_expected_assists=1.0764
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0293 -> 0.0442 expected_assists: 0.0611 -> 0.095 | 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: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0432
goal_rate=0.0299
scorer_weight=0.0445 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by 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.0012
provider_weight=0.076 | - |
|
| Jon Moncayola | M | 82 | 0 | 0.06 | 0.05 | ok | 1 | 0.5 | 6.8 | 60.8 | 32 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9996, quality 0.490) | market_value_eur=7300000
quality_factor=0.4903
boost_factor=0.9996
reference_quality=0.505
history_matches=46
history_shrink=0.098 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0106) | blend_weight=0.0106
history_matches=46
season_overlap_discount=1.0
per90_to_match_factor=0.9056
prior_reliability=0.1667
competition=La Liga | totalCross: 2.467 -> 2.4523 interceptionWon: 0.5678 -> 0.581 wonTackle: 0.8813 -> 0.8912 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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.0689, 'skill_edge': 0.0109, 'height_edge': 0.036, 'attacker_skill': 0.5, '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.0405} | aerialWon: 0.4309 -> 1.1 totalShots: 0.5455 -> 0.5831 shotOffTarget: 0.3683 -> 0.3937 onTargetScoringAttempt: 0.1772 -> 0.1894 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.66 (squad xG sum 1.0981, xG scale 1.5081, xA scale 1.5547, team xA 1.08 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.656
squad_xg_sum=1.0981
squad_xa_sum=0.6924
team_expected_assists=1.0764
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0405 -> 0.0611 expected_assists: 0.0713 -> 0.1108 | 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.0593
goal_rate=0.0669
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.1049
assist_rate=0.0685
provider_weight=0.1082 | - |
|
| Moi Gómez | M | 77 | 0 | 0.06 | 0.01 | 715% | 0 | 0.2 | 7.1 | 45.6 | 32 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9973, quality 0.437) | market_value_eur=1600000
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.0114) | blend_weight=0.0114
history_matches=33
season_overlap_discount=1.0
per90_to_match_factor=0.8591
prior_reliability=0.1333
competition=La Liga | totalCross: 2.1195 -> 2.1002 interceptionWon: 0.648 -> 0.6553 wonTackle: 0.5733 -> 0.5668 totalShots: 0.5036 -> 0.4979 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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.437, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9804, 'skill_edge': -0.0173, 'height_edge': 0.004, 'attacker_skill': 0.4374, '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.039} | aerialWon: 0.4176 -> 0.9 totalShots: 0.502 -> 0.4922 shotOffTarget: 0.3657 -> 0.3585 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.66 (squad xG sum 1.0981, xG scale 1.5081, xA scale 1.5547, team xA 1.08 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.656
squad_xg_sum=1.0981
squad_xa_sum=0.6924
team_expected_assists=1.0764
team_xa_to_xg_ratio=0.65 | expected_goals: 0.039 -> 0.0588 expected_assists: 0.1159 -> 0.1803 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 76.0) | match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0571
goal_rate=0.0604
scorer_weight=0.0729 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.165
assist_rate=0.1022
provider_weight=0.1654 | - |
|
| Iker Muñoz | M | 81 | 0 | 0.07 | 0.01 | 415% | 1 | 0.4 | 6.9 | 42.9 | 33 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9968, quality 0.437) | market_value_eur=1800000
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.0156) | blend_weight=0.0156
history_matches=27
season_overlap_discount=1.0
per90_to_match_factor=0.8978
prior_reliability=0.1533
competition=La Liga | wasFouled: 1.7395 -> 1.7246 totalCross: 0.5181 -> 0.5283 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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.427, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0098, 'skill_edge': -0.0173, 'height_edge': 0.024, '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.0473} | aerialWon: 1.643 -> 1.0 totalShots: 0.611 -> 0.617 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.66 (squad xG sum 1.0981, xG scale 1.5081, xA scale 1.5547, team xA 1.08 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.656
squad_xg_sum=1.0981
squad_xa_sum=0.6924
team_expected_assists=1.0764
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0473 -> 0.0713 expected_assists: 0.0402 -> 0.0625 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 73.0) | match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0688
goal_rate=0.0494
scorer_weight=0.0728 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0606
assist_rate=0.0556
provider_weight=0.0732 | - |
|
| Ante Budimir | F | 87 | 1 | 0.55 | 0.48 | ok | 2 | 2.6 | 6.8 | 63.9 | 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 0.9981, quality 0.437) | market_value_eur=2600000
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.0092) | blend_weight=0.0092
history_matches=47
season_overlap_discount=1.0
per90_to_match_factor=0.9712
prior_reliability=0.1467
competition=La Liga | totalShots: 2.4772 -> 2.4902 wasFouled: 1.2591 -> 1.2718 onTargetScoringAttempt: 0.9927 -> 1.0035 wonTackle: 0.5852 -> 0.592 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Aymeric Laporte, Dani Vivian', '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.9077, 'skill_edge': -0.0748, 'height_edge': 0.012, 'attacker_skill': 0.4374, 'defender_skill': 0.6037, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Aymeric Laporte', 'market_value': 8400000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5365}, {'player': 'Dani Vivian', 'market_value': 18200000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6709}], 'xg_override': 0.3658} | totalShots: 2.4902 -> 2.2604 shotOffTarget: 1.4845 -> 1.3475 onTargetScoringAttempt: 1.0035 -> 0.9109 expectedGoalsOnTarget: 0.5953 -> 0.5404 bigChanceMissed: 0.528 -> 0.4793 goals: 0.4355 -> 0.3953 expectedGoals: 0.403 -> 0.3658 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.66 (squad xG sum 1.0981, xG scale 1.5081, xA scale 1.5547, team xA 1.08 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.656
squad_xg_sum=1.0981
squad_xa_sum=0.6924
team_expected_assists=1.0764
team_xa_to_xg_ratio=0.65 | expected_goals: 0.3658 -> 0.5516 expected_assists: 0.0323 -> 0.0502 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 82.0) | match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=1
goal_probability=0.424
goal_rate=0.3953
scorer_weight=0.5907 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.049
assist_rate=0.0
provider_weight=0.0402 | - |
|
| Rubén García | F | 71 | 0 | 0.16 | 0.06 | 157% | 1 | 0.9 | 6.9 | 58.1 | 42 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9980, quality 0.437) | market_value_eur=1700000
quality_factor=0.4374
boost_factor=0.998
reference_quality=0.505
history_matches=45
history_shrink=0.1 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0074) | blend_weight=0.0074
history_matches=45
season_overlap_discount=1.0
per90_to_match_factor=0.7902
prior_reliability=0.1133
competition=La Liga | totalCross: 4.4939 -> 4.5019 totalShots: 1.1581 -> 1.1637 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Yeray Álvarez', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.432, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9294, 'skill_edge': 0.0, 'height_edge': -0.048, 'attacker_skill': 0.4374, 'defender_skill': 0.4374, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Yeray Álvarez', 'market_value': 930000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.4374}], 'xg_override': 0.1091} | totalShots: 1.1637 -> 1.0815 shotOffTarget: 0.7404 -> 0.6881 onTargetScoringAttempt: 0.4217 -> 0.3919 goals: 0.1371 -> 0.1274 expectedGoals: 0.1174 -> 0.1091 bigChanceMissed: 0.1024 -> 0.0952 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.66 (squad xG sum 1.0981, xG scale 1.5081, xA scale 1.5547, team xA 1.08 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.656
squad_xg_sum=1.0981
squad_xa_sum=0.6924
team_expected_assists=1.0764
team_xa_to_xg_ratio=0.65 | expected_goals: 0.1091 -> 0.1645 expected_assists: 0.0981 -> 0.1525 | 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.1517
goal_rate=0.1274
scorer_weight=0.1834 | - | integer_assist_projection | Team scoreline allocation: 1 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.1414
assist_rate=0.1156
provider_weight=0.1705 | - |
|
| Jonathan Dubasin | F | 70 | 1 | 0.27 | 0.13 | 103% | 2 | 0.6 | 6.8 | 45.3 | 17 | 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.9949, quality 0.454) | market_value_eur=4300000
quality_factor=0.4535
boost_factor=0.9949
reference_quality=0.505
history_matches=10
history_shrink=0.3333 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0188) | blend_weight=0.0188
history_matches=10
season_overlap_discount=1.0
per90_to_match_factor=0.7748
prior_reliability=0.0867
competition=La Liga | wonTackle: 0.9366 -> 0.919 interceptionWon: 0.8744 -> 0.8916 totalOffside: 0.5308 -> 0.5208 fouls: 0.7694 -> 0.7773 wasFouled: 0.2255 -> 0.2325 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Yuri Berchiche', 'matchup_zone': 'Right Wing vs Left Back — Flank Battle', 'duel_win_rate': 0.483, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0048, 'skill_edge': 0.0073, 'height_edge': -0.004, 'attacker_skill': 0.4535, 'defender_skill': 0.4374, 'attacker_role': 'RW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Yuri Berchiche', 'market_value': 910000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.4374}], 'xg_override': 0.181} | totalShots: 1.4945 -> 1.5017 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.66 (squad xG sum 1.0981, xG scale 1.5081, xA scale 1.5547, team xA 1.08 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.656
squad_xg_sum=1.0981
squad_xa_sum=0.6924
team_expected_assists=1.0764
team_xa_to_xg_ratio=0.65 | expected_goals: 0.181 -> 0.273 expected_assists: 0.0804 -> 0.125 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 77.0) | match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_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.2389
goal_rate=0.2301
scorer_weight=0.331 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1175
assist_rate=0.0
provider_weight=0.1 | - |
|
| Team totals | 2 | 1.66 | | 11 | | 6.9 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Aitor Fernández | G | 4.4m | 10.9% | Market-value substitute prior |
| Abel Bretones | D | 13.6m | 21.7% | Market-value substitute prior |
| Rockson Yeboah | D | 13.6m | 29.9% | Market-value substitute prior |
| Aimar Oroz | M | 14.9m | 43.9% | Market-value substitute prior |
| Lucas Torró | M | 18.1m | 56.4% | Market-value substitute prior |
| Romain Del Castillo | F | 25.4m | 56.2% | Market-value substitute prior |
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 |
|---|
| Unai Simón | G | 84 | 0 | 0.00 | - | n/a | | 0.0 | 7.0 | 58.5 | 33 | FBref Prior G_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost G_service raw output over 3 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0040, quality 0.641) | market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.004
reference_quality=0.505
history_matches=46
history_shrink=0.098 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0127) | blend_weight=0.0127
history_matches=46
season_overlap_discount=1.0
per90_to_match_factor=0.9329
prior_reliability=0.2
competition=La Liga | saves: 2.9989 -> 3.0082 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Ante Budimir, Jonathan Dubasin', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.1166} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_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 0.9363, xG scale 1.4183, xA scale 1.2583, team xA 1.06 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.328
squad_xg_sum=0.9363
squad_xa_sum=0.8443
team_expected_assists=1.0624
team_xa_to_xg_ratio=0.8 | shots_faced: 10.6 -> 15.7 expected_saves: 2.59 -> 3.84 high_pressure_saves: 0.89 -> 1.32 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 85.0) | match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.4267 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by 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.0061 | - |
|
| Yuri Berchiche | D | 78 | 0 | 0.07 | 0.02 | 183% | 1 | 1.0 | 7.0 | 55.1 | 29 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9977, quality 0.437) | market_value_eur=910000
quality_factor=0.4374
boost_factor=0.9977
reference_quality=0.505
history_matches=39
history_shrink=0.1136 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0054) | blend_weight=0.0054
history_matches=39
season_overlap_discount=1.0
per90_to_match_factor=0.8656
prior_reliability=0.0733
competition=La Liga | totalShots: 1.2353 -> 1.2413 wonTackle: 1.0031 -> 0.9977 fouls: 0.656 -> 0.661 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Jonathan Dubasin', 'matchup_zone': 'Right Wing vs Left Back — Flank Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.33 (squad xG sum 0.9363, xG scale 1.4183, xA scale 1.2583, team xA 1.06 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.328
squad_xg_sum=0.9363
squad_xa_sum=0.8443
team_expected_assists=1.0624
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0476 -> 0.0675 expected_assists: 0.1455 -> 0.1831 | 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.0653
goal_rate=0.0
scorer_weight=0.054 | - | integer_assist_projection | Team scoreline allocation: 1 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.1673
assist_rate=0.1268
provider_weight=0.1656 | - |
|
| Aymeric Laporte | D | 85 | 0 | 0.07 | 0.07 | ok | 1 | 0.5 | 7.0 | 53.8 | 28 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9999, quality 0.503) | market_value_eur=8400000
quality_factor=0.5035
boost_factor=0.9999
reference_quality=0.505
history_matches=33
history_shrink=0.1316 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0137) | blend_weight=0.0137
history_matches=33
season_overlap_discount=1.0
per90_to_match_factor=0.9497
prior_reliability=0.16
competition=La Liga | fouls: 1.0724 -> 1.0631 wonTackle: 0.8242 -> 0.8292 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Ante Budimir', '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.33 (squad xG sum 0.9363, xG scale 1.4183, xA scale 1.2583, team xA 1.06 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.328
squad_xg_sum=0.9363
squad_xa_sum=0.8443
team_expected_assists=1.0624
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0528 -> 0.0749 | 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.0722
goal_rate=0.0
scorer_weight=0.0599 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0177
assist_rate=0.0031
provider_weight=0.0148 | - |
|
| Yeray Álvarez | D | 81 | 0 | 0.06 | 0.02 | 222% | 1 | 0.2 | 6.9 | 38.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 0.9940, quality 0.437) | market_value_eur=930000
quality_factor=0.4374
boost_factor=0.994
reference_quality=0.505
history_matches=12
history_shrink=0.2941 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0255) | blend_weight=0.0255
history_matches=12
season_overlap_discount=1.0
per90_to_match_factor=0.9024
prior_reliability=0.1333
competition=La Liga | totalCross: 0.8649 -> 0.8889 totalShots: 0.5928 -> 0.6122 wonTackle: 0.5787 -> 0.564 goalAssist: 0.0934 -> 0.1025 wasFouled: 0.6635 -> 0.6581 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Rubén García', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_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 0.9363, xG scale 1.4183, xA scale 1.2583, team xA 1.06 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.328
squad_xg_sum=0.9363
squad_xa_sum=0.8443
team_expected_assists=1.0624
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0396 -> 0.0562 expected_assists: 0.0297 -> 0.0374 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 77.0) | match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_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.0546
goal_rate=0.0
scorer_weight=0.045 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0367
assist_rate=0.1025
provider_weight=0.0467 | - |
|
| Dani Vivian | D | 79 | 0 | 0.03 | 0.02 | 84% | 1 | 0.4 | 6.7 | 48.3 | 22 | 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.0044, quality 0.613) | market_value_eur=18200000
quality_factor=0.613
boost_factor=1.0044
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': 'Ante Budimir', '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.33 (squad xG sum 0.9363, xG scale 1.4183, xA scale 1.2583, team xA 1.06 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.328
squad_xg_sum=0.9363
squad_xa_sum=0.8443
team_expected_assists=1.0624
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0239 -> 0.0339 expected_assists: 0.0281 -> 0.0354 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 78.0) | match_squad_rank=14
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_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.0333
goal_rate=0.0578
scorer_weight=0.0424 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0348
assist_rate=0.0
provider_weight=0.0283 | - |
|
| Iñigo Ruiz de Galarreta | M | 64 | 0 | 0.09 | 0.02 | 284% | 1 | 0.6 | 7.1 | 58.5 | 31 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9978, quality 0.437) | market_value_eur=1800000
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.0037) | blend_weight=0.0037
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.7158
prior_reliability=0.0533
competition=La Liga | fouls: 1.5193 -> 1.5269 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Valentin Rosier', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.468, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9824, 'skill_edge': -0.008, 'height_edge': -0.004, 'attacker_skill': 0.4374, 'defender_skill': 0.4551, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Valentin Rosier', 'market_value': 3100000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.4551}], 'xg_override': 0.0639} | aerialWon: 0.9703 -> 0.9 totalShots: 0.8901 -> 0.8744 shotOffTarget: 0.6363 -> 0.6251 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_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 0.9363, xG scale 1.4183, xA scale 1.2583, team xA 1.06 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.328
squad_xg_sum=0.9363
squad_xa_sum=0.8443
team_expected_assists=1.0624
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0639 -> 0.0906 expected_assists: 0.1055 -> 0.1327 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 82.0) | match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0866
goal_rate=0.0638
scorer_weight=0.0905 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1243
assist_rate=0.1057
provider_weight=0.1329 | - |
|
| Oihan Sancet | M | 81 | 1 | 0.42 | 0.26 | 61% | 3 | 1.8 | 6.9 | 61.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.0063, quality 0.669) | market_value_eur=24000000
quality_factor=0.6685
boost_factor=1.0063
reference_quality=0.505
history_matches=34
history_shrink=0.1282 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0150) | blend_weight=0.015
history_matches=34
season_overlap_discount=1.0
per90_to_match_factor=0.9019
prior_reliability=0.18
competition=La Liga | totalShots: 2.0801 -> 2.0888 interceptionWon: 0.2163 -> 0.2231 fouls: 0.6682 -> 0.6632 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Iker Muñoz', 'matchup_zone': 'Attacking Mid vs Single Holding Mid — Space Creator Duel', 'duel_win_rate': 0.605, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.2131, 'skill_edge': 0.109, 'height_edge': 0.036, 'attacker_skill': 0.6796, 'defender_skill': 0.4374, 'attacker_role': 'CAM', 'attacker_mv_price_index': 0.95, 'defender_adjusted_parts': [{'player': 'Iker Muñoz', 'market_value': 1800000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4374}], 'xg_override': 0.2992} | aerialWon: 0.7062 -> 1.2 totalShots: 2.0888 -> 2.5339 shotOffTarget: 1.3219 -> 1.6036 onTargetScoringAttempt: 0.7618 -> 0.9241 bigChanceMissed: 0.4451 -> 0.54 goals: 0.2962 -> 0.3593 expectedGoals: 0.2466 -> 0.2992 expectedGoalsOnTarget: 0.2451 -> 0.2973 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_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 0.9363, xG scale 1.4183, xA scale 1.2583, team xA 1.06 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.328
squad_xg_sum=0.9363
squad_xa_sum=0.8443
team_expected_assists=1.0624
team_xa_to_xg_ratio=0.8 | expected_goals: 0.2992 -> 0.4244 expected_assists: 0.1399 -> 0.176 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 78.0) | match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.3458
goal_rate=0.3593
scorer_weight=0.4974 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1614
assist_rate=0.1305
provider_weight=0.1673 | - |
|
| Beñat Gerenabarrena | M | 79 | 0 | 0.04 | 0.00 | 1775% | 0 | 0.1 | 6.8 | 35.7 | 13 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9950, quality 0.465) | market_value_eur=5200000
quality_factor=0.4646
boost_factor=0.995
reference_quality=0.505
history_matches=7
history_shrink=0.4167 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0379) | blend_weight=0.0379
history_matches=7
season_overlap_discount=1.0
per90_to_match_factor=0.8832
prior_reliability=0.14
competition=La Liga | totalCross: 0.9188 -> 0.9796 interceptionWon: 1.8932 -> 1.933 fouls: 2.2103 -> 2.2381 wonTackle: 1.6337 -> 1.6515 wasFouled: 1.4033 -> 1.4139 onTargetScoringAttempt: 0.1373 -> 0.1478 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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 Moncayola', 'matchup_zone': 'Holding Mid vs Central Mid — Midfield Anchor Duel', 'duel_win_rate': 0.353, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9311, 'skill_edge': -0.0109, 'height_edge': -0.036, 'attacker_skill': 0.4759, 'defender_skill': 0.5, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Jon Moncayola', 'market_value': 7300000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.5}], 'xg_override': 0.0317} | aerialWon: 0.6976 -> 0.9 totalShots: 0.4711 -> 0.4386 shotOffTarget: 0.3233 -> 0.301 onTargetScoringAttempt: 0.1478 -> 0.1376 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_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 0.9363, xG scale 1.4183, xA scale 1.2583, team xA 1.06 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.328
squad_xg_sum=0.9363
squad_xa_sum=0.8443
team_expected_assists=1.0624
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0317 -> 0.045 expected_assists: 0.0444 -> 0.0559 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 80.0) | match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.044
goal_rate=0.0406
scorer_weight=0.0499 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0544
assist_rate=0.0595
provider_weight=0.0648 | - |
|
| Mikel Jauregizar | M | 70 | 0 | 0.11 | 0.03 | 272% | 1 | 0.7 | 6.8 | 55.6 | 30 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0057, quality 0.686) | market_value_eur=26000000
quality_factor=0.6858
boost_factor=1.0057
reference_quality=0.505
history_matches=43
history_shrink=0.1042 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0050) | blend_weight=0.005
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=0.7826
prior_reliability=0.0733
competition=La Liga | totalCross: 1.437 -> 1.4299 interceptionWon: 1.0022 -> 1.0078 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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 Moncayola', 'matchup_zone': 'Holding Mid vs Central Mid — Midfield Anchor Duel', 'duel_win_rate': 0.48, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.1174, 'skill_edge': 0.0999, 'height_edge': -0.02, 'attacker_skill': 0.7219, 'defender_skill': 0.5, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Jon Moncayola', 'market_value': 7300000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.5}], 'xg_override': 0.0767} | aerialWon: 1.65 -> 1.0 totalShots: 0.9626 -> 1.0756 shotOffTarget: 0.6842 -> 0.7645 onTargetScoringAttempt: 0.2784 -> 0.3111 expectedGoals: 0.0686 -> 0.0767 goals: 0.0554 -> 0.0619 expectedGoalsOnTarget: 0.0481 -> 0.0537 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_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 0.9363, xG scale 1.4183, xA scale 1.2583, team xA 1.06 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.328
squad_xg_sum=0.9363
squad_xa_sum=0.8443
team_expected_assists=1.0624
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0767 -> 0.1088 expected_assists: 0.0531 -> 0.0668 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 79.0) | match_squad_rank=12
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1031
goal_rate=0.0619
scorer_weight=0.0961 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by 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.0561
provider_weight=0.0687 | - |
|
| Peio Canales | M | 80 | 0 | 0.09 | 0.04 | 130% | 1 | 0.5 | 6.9 | 41.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.0017, quality 0.519) | market_value_eur=9700000
quality_factor=0.5189
boost_factor=1.0017
reference_quality=0.505
history_matches=7
history_shrink=0.4167 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0415) | blend_weight=0.0415
history_matches=7
season_overlap_discount=1.0
per90_to_match_factor=0.8876
prior_reliability=0.1533
competition=La Liga | onTargetScoringAttempt: 0.2253 -> 0.248 totalShots: 0.6943 -> 0.7137 fouls: 0.7746 -> 0.7585 wasFouled: 1.1607 -> 1.1766 wonTackle: 1.0358 -> 1.0248 totalCross: 1.3747 -> 1.3817 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Enzo Boyomo', 'matchup_zone': 'Right Wing vs Left Back — Flank Battle', 'duel_win_rate': 0.402, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.885, 'skill_edge': -0.0542, 'height_edge': -0.024, 'attacker_skill': 0.5189, 'defender_skill': 0.6394, 'attacker_role': 'RW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Enzo Boyomo', 'market_value': 14600000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.6394}], 'xg_override': 0.0627} | aerialWon: 0.0 -> 0.9 totalShots: 0.717 -> 0.6346 shotOffTarget: 0.469 -> 0.4151 onTargetScoringAttempt: 0.248 -> 0.2195 goals: 0.0794 -> 0.0703 expectedGoals: 0.0708 -> 0.0627 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_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 0.9363, xG scale 1.4183, xA scale 1.2583, team xA 1.06 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.328
squad_xg_sum=0.9363
squad_xa_sum=0.8443
team_expected_assists=1.0624
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0627 -> 0.0889 expected_assists: 0.0789 -> 0.0993 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 73.0) | match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0851
goal_rate=0.0703
scorer_weight=0.0949 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0945
assist_rate=0.08
provider_weight=0.1001 | - |
|
| Robert Navarro | F | 77 | 0 | 0.23 | 0.12 | 96% | 2 | 0.8 | 7.0 | 52.0 | 41 | 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=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': 'Alejandro Catena, Jorge Herrando', '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.9407, 'skill_edge': 0.0196, 'height_edge': -0.06, 'attacker_skill': 0.4927, 'defender_skill': 0.449, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Alejandro Catena', 'market_value': 2700000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4449}, {'player': 'Jorge Herrando', 'market_value': 3200000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4531}], 'xg_override': 0.163} | totalShots: 1.5662 -> 1.4734 shotOffTarget: 0.96 -> 0.9031 onTargetScoringAttempt: 0.6062 -> 0.5703 expectedGoalsOnTarget: 0.2526 -> 0.2376 goals: 0.2151 -> 0.2023 expectedGoals: 0.1733 -> 0.163 bigChanceMissed: 0.1111 -> 0.1045 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_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 0.9363, xG scale 1.4183, xA scale 1.2583, team xA 1.06 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.328
squad_xg_sum=0.9363
squad_xa_sum=0.8443
team_expected_assists=1.0624
team_xa_to_xg_ratio=0.8 | expected_goals: 0.163 -> 0.2312 expected_assists: 0.1444 -> 0.1817 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 76.0) | match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.2064
goal_rate=0.2023
scorer_weight=0.2739 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1661
assist_rate=0.0
provider_weight=0.1454 | - |
|
| Team totals | 1 | 1.33 | | 13 | | 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 |
| Aitor Paredes | D | 13.8m | 22.1% | Market-value substitute prior |
| Jesús Areso | D | 13.7m | 21.9% | Market-value substitute prior |
| Beñat Prados | M | 22.4m | 51.9% | Market-value substitute prior |
| Alejandro Rego Mora | M | 22.1m | 50.4% | Market-value substitute prior |
| Nico Williams | F | 25.8m | 62.0% | Market-value substitute prior |
Antagonist / tactical summary
Away midfield dictates play with ~52% possession expected (Jon Moncayola vs Mikel Jauregizar). Total antagonist xG — Home: 0.78, Away: 0.70. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Attacking Mid vs Single Holding Mid — Space Creator Duel.
Midfield — possession 48.1% / 51.9%, dominance ratio 0.43, key duel: Jon Moncayola vs Mikel Jauregizar
Rubén García xG 0.11Jonathan Dubasin xG 0.18Ante Budimir xG 0.37Iñigo Ruiz de Galarreta xG 0.06Peio Canales xG 0.06Oihan Sancet xG 0.30
Summary
Antagonist matchup analysis for Osasuna vs Athletic Club. Most likely scoreline: 2-1. Lambdas derived from 6 home and 6 away individual player duels. Head-to-head: Osasuna 3W-3D-4L vs Athletic Club over 10 meetings.
Tactical parity between 4-3-3 and 4-2-3-1. Match outcome driven primarily by individual player quality. Away midfield dictates play with ~52% possession expected (Jon Moncayola vs Mikel Jauregizar). Total antagonist xG — Home: 0.78, Away: 0.70. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Attacking Mid vs Single Holding Mid — Space Creator Duel.
Espanyol vs Deportivo
LaLiga · 20261107 · 4-2-3-1 vs 4-2-3-1
Predicted 2-1Winner: EspanyolWinning H 2-1 (9.8%)Winning A 1-2 (6.0%)Confidence 0.69λ home/away 1.85 / 1.13Most-likely P 9.8%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset TracingAntagonist + XGBoost match analysis for Espanyol vs Deportivo. 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.402, Away 0.851). Final calibrated Poisson lambdas: Home 1.851, Away 1.132 (most likely score 2-1).
Home Starters 11/11 XGBoost (9 FBref) Away Starters 11/11 XGBoost (0 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.40 / 0.85 Final λ (H/A) 1.85 / 1.13
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 | Espanyol | Deportivo |
|---|
| League position | 13.00 | 12.00 |
| Points per game | 1.13 | 1.20 |
| Attack index | 0.94 | 0.94 |
| Defense (concede) index | 0.94 | 0.97 |
| Form multiplier | 1.00 | 1.00 |
| Standing λ multiplier | 0.95 | 0.96 |
Lambda decomposition (how the goal rates were built)
| Stage | Espanyol λ | Deportivo λ |
|---|
| Pre-competitive-floor | 1.422 | 0.839 |
| Pre-calibration (Micro-duels) | 1.403 | 0.851 |
| Final λ | 1.851 | 1.132 |
competition calibration scale 1.32competition 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 |
|---|
| 1-1 | 10.7% |
| 2-1 | 9.8% |
| 1-0 | 9.3% |
| 2-0 | 8.7% |
| 3-1 | 6.1% |
| Home win | 54.1% |
| Draw | 22.8% |
| Away win | 23.0% |
| Over 2.5 | 57.3% |
| BTTS yes | 57.2% |
Pregame fair line — favorite Espanyol (54.1%), fair total 2.98, fair spread 0.72
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.
Espanyol — 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 |
|---|
| Marko Dmitrović | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 7.0 | 55.8 | 34 | FBref Prior G_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost G_service raw output over 3 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9979, quality 0.437) | market_value_eur=650000
quality_factor=0.4374
boost_factor=0.9979
reference_quality=0.505
history_matches=44
history_shrink=0.102 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.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.9989 -> 3.0166 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Bil Nsongo, Diego Villares', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 0.8507} | - | 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.85 (squad xG sum 1.0006, xG scale 1.8499, xA scale 1.8499, team xA 1.30 = 0.70 x lambda) | scoreline_reset=true
team_lambda=1.851
squad_xg_sum=1.0006
squad_xa_sum=0.7036
team_expected_assists=1.3016
team_xa_to_xg_ratio=0.7032 | shots_faced: 8.1 -> 10.8 expected_saves: 1.98 -> 2.65 high_pressure_saves: 0.68 -> 0.91 | 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.0
scorer_weight=0.0
squad_weight_total=1.9266 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by 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.316 | - |
|
| Leandro Cabrera | D | 90 | 0 | 0.14 | 0.06 | 116% | 1 | 1.1 | 6.9 | 62.5 | 31 | XGBoost D_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9980, quality 0.437) | market_value_eur=930000
quality_factor=0.4374
boost_factor=0.998
reference_quality=0.505
history_matches=45
history_shrink=0.1 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Bil Nsongo', '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.85 (squad xG sum 1.0006, xG scale 1.8499, xA scale 1.8499, team xA 1.30 = 0.70 x lambda) | scoreline_reset=true
team_lambda=1.851
squad_xg_sum=1.0006
squad_xa_sum=0.7036
team_expected_assists=1.3016
team_xa_to_xg_ratio=0.7032 | expected_goals: 0.0747 -> 0.1382 expected_assists: 0.0235 -> 0.0435 | 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: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.1291
goal_rate=0.1595
scorer_weight=0.1727 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0426
assist_rate=0.0
provider_weight=0.0348 | - |
|
| Roger Hinojo | D | 75 | 0 | 0.01 | 0.00 | 190% | 0 | 0.1 | 6.7 | 51.6 | 13 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9934, quality 0.439) | market_value_eur=3100000
quality_factor=0.4387
boost_factor=0.9934
reference_quality=0.505
history_matches=10
history_shrink=0.3333 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0433) | blend_weight=0.0433
history_matches=10
season_overlap_discount=1.0
per90_to_match_factor=0.8387
prior_reliability=0.2
competition=La Liga | wonTackle: 1.1317 -> 1.1553 totalShots: 0.3551 -> 0.3397 interceptionWon: 0.8827 -> 0.8687 wasFouled: 0.5128 -> 0.5027 fouls: 0.9778 -> 0.9718 totalCross: 0.1591 -> 0.1643 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Marc Casadó', '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.85 (squad xG sum 1.0006, xG scale 1.8499, xA scale 1.8499, team xA 1.30 = 0.70 x lambda) | scoreline_reset=true
team_lambda=1.851
squad_xg_sum=1.0006
squad_xa_sum=0.7036
team_expected_assists=1.3016
team_xa_to_xg_ratio=0.7032 | expected_goals: 0.0069 -> 0.0128 expected_assists: 0.0272 -> 0.0503 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 16 by projected rating, fifa_overall 68.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.0127
goal_rate=0.0
scorer_weight=0.0112 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0491
assist_rate=0.0
provider_weight=0.0402 | - |
|
| Clemens Riedel | D | 86 | 0 | 0.01 | 0.00 | 620% | 0 | 0.1 | 6.7 | 41.4 | 32 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9974, quality 0.449) | market_value_eur=3900000
quality_factor=0.4486
boost_factor=0.9974
reference_quality=0.505
history_matches=28
history_shrink=0.1515 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0112) | blend_weight=0.0112
history_matches=28
season_overlap_discount=1.0
per90_to_match_factor=0.9577
prior_reliability=0.1133
competition=La Liga | fouls: 1.4847 -> 1.5058 interceptionWon: 0.8863 -> 0.8764 wonTackle: 0.6176 -> 0.6233 | 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': 'Bil Nsongo', '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.85 (squad xG sum 1.0006, xG scale 1.8499, xA scale 1.8499, team xA 1.30 = 0.70 x lambda) | scoreline_reset=true
team_lambda=1.851
squad_xg_sum=1.0006
squad_xa_sum=0.7036
team_expected_assists=1.3016
team_xa_to_xg_ratio=0.7032 | expected_assists: 0.0085 -> 0.0157 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 70.0) | match_squad_rank=12
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0083
goal_rate=0.0
scorer_weight=0.0076 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0156
assist_rate=0.0069
provider_weight=0.0153 | - |
|
| Quilindschy Hartman | D | 87 | 0 | 0.03 | 0.01 | 372% | 0 | 0.1 | 6.7 | 29.7 | 27 | 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.0017, quality 0.541) | market_value_eur=11600000
quality_factor=0.5411
boost_factor=1.0017
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': 'Mario Soriano', '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.85 (squad xG sum 1.0006, xG scale 1.8499, xA scale 1.8499, team xA 1.30 = 0.70 x lambda) | scoreline_reset=true
team_lambda=1.851
squad_xg_sum=1.0006
squad_xa_sum=0.7036
team_expected_assists=1.3016
team_xa_to_xg_ratio=0.7032 | expected_goals: 0.0154 -> 0.0285 expected_assists: 0.0723 -> 0.1337 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 75.0) | match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0281
goal_rate=0.0
scorer_weight=0.0228 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1251
assist_rate=0.1128
provider_weight=0.1671 | - |
|
| Javier Hernández | M | 79 | 0 | 0.20 | 0.07 | 202% | 1 | 0.9 | 6.7 | 56.6 | 14 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9976, quality 0.479) | market_value_eur=6400000
quality_factor=0.4793
boost_factor=0.9976
reference_quality=0.505
history_matches=11
history_shrink=0.3125 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0339) | blend_weight=0.0339
history_matches=11
season_overlap_discount=1.0
per90_to_match_factor=0.8783
prior_reliability=0.1667
competition=La Liga | totalCross: 2.0082 -> 1.9521 fouls: 1.4545 -> 1.5004 wasFouled: 1.2202 -> 1.2622 goalAssist: 0.1971 -> 0.2261 interceptionWon: 0.6599 -> 0.6376 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Giacomo Quagliata', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.475, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9926, 'skill_edge': 0.003, 'height_edge': -0.008, 'attacker_skill': 0.4793, 'defender_skill': 0.4727, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Giacomo Quagliata', 'market_value': 4099999, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.4727}], 'xg_override': 0.1071} | aerialWon: 0.1103 -> 0.9 totalShots: 1.1497 -> 1.1412 shotOffTarget: 0.7835 -> 0.7777 | 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.85 (squad xG sum 1.0006, xG scale 1.8499, xA scale 1.8499, team xA 1.30 = 0.70 x lambda) | scoreline_reset=true
team_lambda=1.851
squad_xg_sum=1.0006
squad_xa_sum=0.7036
team_expected_assists=1.3016
team_xa_to_xg_ratio=0.7032 | expected_goals: 0.1071 -> 0.1981 expected_assists: 0.1261 -> 0.2333 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 86.0) | match_squad_rank=11
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.1797
goal_rate=0.0727
scorer_weight=0.1585 | - | integer_assist_projection | Team scoreline allocation: 1 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.2081
assist_rate=0.2261
provider_weight=0.2916 | - |
|
| Edu Expósito | M | 84 | 0 | 0.14 | 0.08 | 67% | 1 | 1.4 | 7.1 | 66.0 | 33 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9986, quality 0.456) | market_value_eur=4500000
quality_factor=0.456
boost_factor=0.9986
reference_quality=0.505
history_matches=47
history_shrink=0.0962 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0112) | blend_weight=0.0112
history_matches=47
season_overlap_discount=1.0
per90_to_match_factor=0.9323
prior_reliability=0.18
competition=La Liga | totalCross: 3.957 -> 3.9241 totalShots: 1.0719 -> 1.0951 interceptionWon: 1.088 -> 1.0796 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Ximo Navarro', 'matchup_zone': 'Right Wing vs Left Back — Flank Battle', 'duel_win_rate': 0.484, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0064, 'skill_edge': 0.0084, 'height_edge': -0.004, 'attacker_skill': 0.456, 'defender_skill': 0.4374, 'attacker_role': 'RW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Ximo Navarro', 'market_value': 95000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.4374}], 'xg_override': 0.074} | aerialWon: 0.6537 -> 0.9 totalShots: 1.0951 -> 1.1021 | 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.85 (squad xG sum 1.0006, xG scale 1.8499, xA scale 1.8499, team xA 1.30 = 0.70 x lambda) | scoreline_reset=true
team_lambda=1.851
squad_xg_sum=1.0006
squad_xa_sum=0.7036
team_expected_assists=1.3016
team_xa_to_xg_ratio=0.7032 | expected_goals: 0.074 -> 0.1369 expected_assists: 0.1405 -> 0.26 | 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.1279
goal_rate=0.0947
scorer_weight=0.1597 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.2289
assist_rate=0.0951
provider_weight=0.208 | - |
|
| Urko González | M | 76 | 0 | 0.09 | 0.02 | 468% | 1 | 0.4 | 6.8 | 60.3 | 32 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0011, quality 0.541) | market_value_eur=11600000
quality_factor=0.5411
boost_factor=1.0011
reference_quality=0.505
history_matches=45
history_shrink=0.1 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0091) | blend_weight=0.0091
history_matches=45
season_overlap_discount=1.0
per90_to_match_factor=0.8472
prior_reliability=0.14
competition=La Liga | totalShots: 0.6489 -> 0.643 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Lorenzo Amatucci, Diego Villares', 'matchup_zone': 'Attacking Mid vs Double Pivot — Tight Space Battle', 'duel_win_rate': 0.305, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.0957, 'skill_edge': 0.0251, 'height_edge': 0.04, 'attacker_skill': 0.5481, 'defender_skill': 0.4922, 'attacker_role': 'CAM', 'attacker_mv_price_index': 0.95, 'defender_adjusted_parts': [{'player': 'Lorenzo Amatucci', 'market_value': 10300000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.547}, {'player': 'Diego Villares', 'market_value': 1000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4374}], 'xg_override': 0.0483} | aerialWon: 0.5985 -> 1.3 totalShots: 0.6474 -> 0.7094 shotOffTarget: 0.4901 -> 0.537 onTargetScoringAttempt: 0.1573 -> 0.1724 | 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.85 (squad xG sum 1.0006, xG scale 1.8499, xA scale 1.8499, team xA 1.30 = 0.70 x lambda) | scoreline_reset=true
team_lambda=1.851
squad_xg_sum=1.0006
squad_xa_sum=0.7036
team_expected_assists=1.3016
team_xa_to_xg_ratio=0.7032 | expected_goals: 0.0483 -> 0.0893 expected_assists: 0.0328 -> 0.0607 | 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.0854
goal_rate=0.0524
scorer_weight=0.093 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0589
assist_rate=0.0528
provider_weight=0.0754 | - |
|
| Álex Calatrava | M | 76 | 0 | 0.20 | 0.09 | 112% | 2 | 1.2 | 6.8 | 55.8 | 12 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9956, quality 0.461) | market_value_eur=4900000
quality_factor=0.4609
boost_factor=0.9956
reference_quality=0.505
history_matches=10
history_shrink=0.3333 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0361) | blend_weight=0.0361
history_matches=10
season_overlap_discount=1.0
per90_to_match_factor=0.8432
prior_reliability=0.1667
competition=La Liga | fouls: 1.1742 -> 1.2049 onTargetScoringAttempt: 0.5284 -> 0.5577 wasFouled: 0.9373 -> 0.9156 totalShots: 1.4967 -> 1.5154 interceptionWon: 0.3462 -> 0.3581 goals: 0.1287 -> 0.1362 wonTackle: 1.5078 -> 1.5143 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Lorenzo Amatucci', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.398, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9677, 'skill_edge': -0.0339, 'height_edge': 0.012, 'attacker_skill': 0.4716, 'defender_skill': 0.547, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Lorenzo Amatucci', 'market_value': 10300000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.547}], 'xg_override': 0.1074} | aerialWon: 0.9722 -> 0.9 totalShots: 1.526 -> 1.4767 shotOffTarget: 0.9683 -> 0.937 onTargetScoringAttempt: 0.5577 -> 0.5397 bigChanceMissed: 0.1939 -> 0.1876 | 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.85 (squad xG sum 1.0006, xG scale 1.8499, xA scale 1.8499, team xA 1.30 = 0.70 x lambda) | scoreline_reset=true
team_lambda=1.851
squad_xg_sum=1.0006
squad_xa_sum=0.7036
team_expected_assists=1.3016
team_xa_to_xg_ratio=0.7032 | expected_goals: 0.1074 -> 0.1987 expected_assists: 0.103 -> 0.1905 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 87.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.1802
goal_rate=0.1318
scorer_weight=0.2295 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1735
assist_rate=0.0958
provider_weight=0.1815 | - |
|
| Pol Lozano | M | 79 | 0 | 0.09 | 0.03 | 247% | 1 | 0.5 | 6.7 | 49.5 | 31 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9989, quality 0.472) | market_value_eur=5800000
quality_factor=0.472
boost_factor=0.9989
reference_quality=0.505
history_matches=40
history_shrink=0.1111 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0019) | blend_weight=0.0019
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=0.8754
prior_reliability=0.0267
competition=La Liga | wonTackle: 1.1115 -> 1.1178 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Lorenzo Amatucci', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.408, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9822, 'skill_edge': -0.0281, 'height_edge': 0.016, 'attacker_skill': 0.4845, 'defender_skill': 0.547, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Lorenzo Amatucci', 'market_value': 10300000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.547}], 'xg_override': 0.0472} | aerialWon: 0.3301 -> 0.9 totalShots: 0.653 -> 0.6414 shotOffTarget: 0.4528 -> 0.4447 | 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.85 (squad xG sum 1.0006, xG scale 1.8499, xA scale 1.8499, team xA 1.30 = 0.70 x lambda) | scoreline_reset=true
team_lambda=1.851
squad_xg_sum=1.0006
squad_xa_sum=0.7036
team_expected_assists=1.3016
team_xa_to_xg_ratio=0.7032 | expected_goals: 0.0472 -> 0.0873 expected_assists: 0.0479 -> 0.0886 | 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: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0836
goal_rate=0.057
scorer_weight=0.0961 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0848
assist_rate=0.0542
provider_weight=0.0943 | - |
|
| Roberto Fernández | F | 85 | 2 | 0.77 | 0.26 | 200% | 2 | 1.4 | 6.7 | 62.8 | 34 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0038, quality 0.641) | market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.0038
reference_quality=0.505
history_matches=49
history_shrink=0.0926 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0116) | blend_weight=0.0116
history_matches=49
season_overlap_discount=1.0
per90_to_match_factor=0.9448
prior_reliability=0.1933
competition=La Liga | fouls: 2.2257 -> 2.2112 totalOffside: 0.9712 -> 0.9599 goals: 0.3696 -> 0.3767 wasFouled: 1.1099 -> 1.1159 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'José María Giménez, Lucas Noubi', '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.1195, 'skill_edge': 0.0753, 'height_edge': 0.006, 'attacker_skill': 0.6408, 'defender_skill': 0.4735, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'José María Giménez', 'market_value': 5800000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4955}, {'player': 'Lucas Noubi', 'market_value': 3100000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4515}], 'xg_override': 0.4184} | totalShots: 2.063 -> 2.3095 shotOffTarget: 1.233 -> 1.3803 onTargetScoringAttempt: 0.83 -> 0.9292 goals: 0.3767 -> 0.4217 expectedGoals: 0.3737 -> 0.4184 bigChanceMissed: 0.3407 -> 0.3814 expectedGoalsOnTarget: 0.2847 -> 0.3187 | 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.85 (squad xG sum 1.0006, xG scale 1.8499, xA scale 1.8499, team xA 1.30 = 0.70 x lambda) | scoreline_reset=true
team_lambda=1.851
squad_xg_sum=1.0006
squad_xa_sum=0.7036
team_expected_assists=1.3016
team_xa_to_xg_ratio=0.7032 | expected_goals: 0.4184 -> 0.774 expected_assists: 0.0403 -> 0.0745 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 74.0) | match_squad_rank=14
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=2
goal_probability=0.5388
goal_rate=0.4217
scorer_weight=0.7794 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0718
assist_rate=0.0187
provider_weight=0.0596 | - |
|
| Team totals | 2 | 1.85 | | 11 | | 6.8 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Ángel Fortuño | G | 4.4m | 10.9% | Market-value substitute prior |
| Vanja Drkušić | D | 19.9m | 41.2% | Market-value substitute prior |
| Unai Núñez | D | 13.6m | 21.7% | Market-value substitute prior |
| Gabriel Moscardo | M | 34.7m | 69.6% | Market-value substitute prior |
| Rafael Bauzà | M | 22.0m | 69.2% | Market-value substitute prior |
| Tyrhys Dolan | F | 25.7m | 34.2% | Market-value substitute prior |
Deportivo — 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 |
|---|
| Leo Román | G | 85 | 0 | 0.00 | - | n/a | | 0.0 | 7.1 | 62.3 | 35 | XGBoost G_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost G_service raw output over 3 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0001, quality 0.507) | market_value_eur=8700000
quality_factor=0.5071
boost_factor=1.0001
reference_quality=0.505
history_matches=43
history_shrink=0.1042 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Roberto Fernández, Álex Calatrava', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.4025} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.13 (squad xG sum 0.7291, xG scale 1.5526, xA scale 1.5526, team xA 0.86 = 0.76 x lambda) | scoreline_reset=true
team_lambda=1.132
squad_xg_sum=0.7291
squad_xa_sum=0.5542
team_expected_assists=0.8605
team_xa_to_xg_ratio=0.7602 | shots_faced: 13.3 -> 17.6 expected_saves: 3.25 -> 4.31 high_pressure_saves: 1.12 -> 1.48 | 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.0
scorer_weight=0.0
squad_weight_total=1.1493 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0
provider_weight=0.0
squad_weight_total=0.8384 | - |
|
| Ximo Navarro | D | 78 | 0 | 0.05 | 0.02 | 165% | 0 | 0.3 | 6.7 | 39.5 | 13 | XGBoost D_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9922, quality 0.437) | market_value_eur=95000
quality_factor=0.4374
boost_factor=0.9922
reference_quality=0.505
history_matches=8
history_shrink=0.3846 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Edu Expósito', 'matchup_zone': 'Right Wing vs Left Back — Flank Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.13 (squad xG sum 0.7291, xG scale 1.5526, xA scale 1.5526, team xA 0.86 = 0.76 x lambda) | scoreline_reset=true
team_lambda=1.132
squad_xg_sum=0.7291
squad_xa_sum=0.5542
team_expected_assists=0.8605
team_xa_to_xg_ratio=0.7602 | expected_goals: 0.0333 -> 0.0517 expected_assists: 0.0126 -> 0.0196 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 72.0) | match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0504
goal_rate=0.0
scorer_weight=0.0414 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0194
assist_rate=0.0
provider_weight=0.0157 | - |
|
| Giacomo Quagliata | D | 81 | 0 | 0.04 | 0.02 | 131% | 1 | 0.4 | 6.7 | 46.4 | 14 | XGBoost D_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9946, quality 0.451) | market_value_eur=4099999
quality_factor=0.4511
boost_factor=0.9946
reference_quality=0.505
history_matches=10
history_shrink=0.3333 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Javier Hernández', '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.13 (squad xG sum 0.7291, xG scale 1.5526, xA scale 1.5526, team xA 0.86 = 0.76 x lambda) | scoreline_reset=true
team_lambda=1.132
squad_xg_sum=0.7291
squad_xa_sum=0.5542
team_expected_assists=0.8605
team_xa_to_xg_ratio=0.7602 | expected_goals: 0.027 -> 0.0419 expected_assists: 0.0863 -> 0.134 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 17 by projected rating, fifa_overall 73.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.041
goal_rate=0.0
scorer_weight=0.0335 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1254
assist_rate=0.0
provider_weight=0.1072 | - |
|
| José María Giménez | D | 80 | 0 | 0.09 | 0.04 | 143% | 1 | 0.4 | 6.9 | 45.7 | 27 | 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.9983, quality 0.472) | market_value_eur=5800000
quality_factor=0.472
boost_factor=0.9983
reference_quality=0.505
history_matches=25
history_shrink=0.1667 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Roberto Fernández', '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.13 (squad xG sum 0.7291, xG scale 1.5526, xA scale 1.5526, team xA 0.86 = 0.76 x lambda) | scoreline_reset=true
team_lambda=1.132
squad_xg_sum=0.7291
squad_xa_sum=0.5542
team_expected_assists=0.8605
team_xa_to_xg_ratio=0.7602 | expected_goals: 0.0607 -> 0.0942 expected_assists: 0.0182 -> 0.0283 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 82.0) | match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0899
goal_rate=0.0
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.0279
assist_rate=0.0416
provider_weight=0.0354 | - |
|
| Lucas Noubi | D | 90 | 0 | 0.00 | - | n/a | 1 | 0.0 | 6.8 | 25.8 | 13 | XGBoost D_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9901, quality 0.439) | market_value_eur=3100000
quality_factor=0.4387
boost_factor=0.9901
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': 'Roberto Fernández', '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.13 (squad xG sum 0.7291, xG scale 1.5526, xA scale 1.5526, team xA 0.86 = 0.76 x lambda) | scoreline_reset=true
team_lambda=1.132
squad_xg_sum=0.7291
squad_xa_sum=0.5542
team_expected_assists=0.8605
team_xa_to_xg_ratio=0.7602 | expected_assists: 0.0102 -> 0.0158 | 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.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.0157
assist_rate=0.0
provider_weight=0.0131 | - |
|
| Mario Soriano | M | 80 | 0 | 0.09 | 0.05 | 102% | 1 | 0.9 | 7.2 | 50.6 | 14 | 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.9965, quality 0.470) | market_value_eur=5600000
quality_factor=0.4695
boost_factor=0.9965
reference_quality=0.505
history_matches=10
history_shrink=0.3333 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Quilindschy Hartman', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.363, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.8281, 'skill_edge': -0.0569, 'height_edge': -0.06, 'attacker_skill': 0.4695, 'defender_skill': 0.5961, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Quilindschy Hartman', 'market_value': 11600000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.5961}], 'xg_override': 0.0596} | aerialWon: 0.2269 -> 0.6 totalShots: 1.2861 -> 1.065 shotOffTarget: 1.0298 -> 0.8528 onTargetScoringAttempt: 0.2563 -> 0.2122 expectedGoalsOnTarget: 0.0992 -> 0.0821 goals: 0.0844 -> 0.0699 expectedGoals: 0.072 -> 0.0596 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.13 (squad xG sum 0.7291, xG scale 1.5526, xA scale 1.5526, team xA 0.86 = 0.76 x lambda) | scoreline_reset=true
team_lambda=1.132
squad_xg_sum=0.7291
squad_xa_sum=0.5542
team_expected_assists=0.8605
team_xa_to_xg_ratio=0.7602 | expected_goals: 0.0596 -> 0.0925 expected_assists: 0.1347 -> 0.209 | 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.0884
goal_rate=0.0699
scorer_weight=0.1012 | - | integer_assist_projection | Team scoreline allocation: 1 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.1886
assist_rate=0.1063
provider_weight=0.1769 | - |
|
| Lorenzo Amatucci | M | 88 | 0 | 0.07 | 0.02 | 174% | 1 | 0.1 | 6.9 | 46.2 | 12 | XGBoost M_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0024, quality 0.526) | market_value_eur=10300000
quality_factor=0.526
boost_factor=1.0024
reference_quality=0.505
history_matches=8
history_shrink=0.3846 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Álex Calatrava', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.442, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0323, 'skill_edge': 0.0339, 'height_edge': -0.012, 'attacker_skill': 0.547, 'defender_skill': 0.4716, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Álex Calatrava', 'market_value': 4900000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4716}], 'xg_override': 0.0435} | aerialWon: 1.2176 -> 0.8 totalShots: 0.5222 -> 0.5391 shotOffTarget: 0.3783 -> 0.3905 bigChanceMissed: 0.2213 -> 0.2284 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.13 (squad xG sum 0.7291, xG scale 1.5526, xA scale 1.5526, team xA 0.86 = 0.76 x lambda) | scoreline_reset=true
team_lambda=1.132
squad_xg_sum=0.7291
squad_xa_sum=0.5542
team_expected_assists=0.8605
team_xa_to_xg_ratio=0.7602 | expected_goals: 0.0435 -> 0.0675 expected_assists: 0.0344 -> 0.0534 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 73.0) | match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0653
goal_rate=0.0509
scorer_weight=0.0728 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.052
assist_rate=0.0463
provider_weight=0.0609 | - |
|
| Riki Rodríguez | M | 65 | 0 | 0.09 | 0.02 | 511% | 1 | 0.2 | 6.7 | 35.1 | 13 | XGBoost M_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9916, quality 0.437) | market_value_eur=1400000
quality_factor=0.4374
boost_factor=0.9916
reference_quality=0.505
history_matches=7
history_shrink=0.4167 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Álex Calatrava, Pol Lozano', 'matchup_zone': 'Attacking Mid vs Double Pivot — Tight Space Battle', 'duel_win_rate': 0.22, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 0.9702, 'skill_edge': -0.0183, 'height_edge': -0.002, 'attacker_skill': 0.4374, 'defender_skill': 0.478, 'attacker_role': 'CAM', 'attacker_mv_price_index': 0.95, 'defender_adjusted_parts': [{'player': 'Álex Calatrava', 'market_value': 4900000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4716}, {'player': 'Pol Lozano', 'market_value': 5800000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4845}], 'xg_override': 0.0591} | aerialWon: 0.1932 -> 0.9 totalShots: 0.7408 -> 0.7187 shotOffTarget: 0.5525 -> 0.536 onTargetScoringAttempt: 0.1882 -> 0.1826 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.13 (squad xG sum 0.7291, xG scale 1.5526, xA scale 1.5526, team xA 0.86 = 0.76 x lambda) | scoreline_reset=true
team_lambda=1.132
squad_xg_sum=0.7291
squad_xa_sum=0.5542
team_expected_assists=0.8605
team_xa_to_xg_ratio=0.7602 | expected_goals: 0.0591 -> 0.0918 expected_assists: 0.0311 -> 0.0483 | 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_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.0877
goal_rate=0.0604
scorer_weight=0.0929 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0472
assist_rate=0.0504
provider_weight=0.0598 | - |
|
| Diego Villares | M | 67 | 0 | 0.11 | 0.04 | 196% | 1 | 0.3 | 6.9 | 31.7 | 13 | XGBoost M_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9908, quality 0.437) | market_value_eur=1000000
quality_factor=0.4374
boost_factor=0.9908
reference_quality=0.505
history_matches=6
history_shrink=0.4545 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=true | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Álex Calatrava', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.449, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0421, 'skill_edge': -0.0154, 'height_edge': 0.044, 'attacker_skill': 0.4374, 'defender_skill': 0.4716, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Álex Calatrava', 'market_value': 4900000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4716}], 'xg_override': 0.0684} | aerialWon: 0.2783 -> 1.2 totalShots: 0.7815 -> 0.8144 bigChanceMissed: 0.5753 -> 0.5995 shotOffTarget: 0.5603 -> 0.5839 onTargetScoringAttempt: 0.2212 -> 0.2305 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.13 (squad xG sum 0.7291, xG scale 1.5526, xA scale 1.5526, team xA 0.86 = 0.76 x lambda) | scoreline_reset=true
team_lambda=1.132
squad_xg_sum=0.7291
squad_xa_sum=0.5542
team_expected_assists=0.8605
team_xa_to_xg_ratio=0.7602 | expected_goals: 0.0684 -> 0.1062 expected_assists: 0.0441 -> 0.0685 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 79.0) | match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_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.1008
goal_rate=0.068
scorer_weight=0.1058 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0662
assist_rate=0.0557
provider_weight=0.0769 | - |
|
| Marc Casadó | M | 70 | 0 | 0.09 | 0.02 | 259% | 0 | 0.1 | 6.9 | 32.6 | 27 | 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.0032, quality 0.574) | market_value_eur=14500000
quality_factor=0.5737
boost_factor=1.0032
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': 'Roger Hinojo', 'matchup_zone': 'Right Wing vs Left Back — Flank Battle', 'duel_win_rate': 0.501, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0314, 'skill_edge': 0.0534, 'height_edge': -0.032, 'attacker_skill': 0.5737, 'defender_skill': 0.4551, 'attacker_role': 'RW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Roger Hinojo', 'market_value': 3100000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.4551}], 'xg_override': 0.0566} | aerialWon: 0.4609 -> 0.8 totalShots: 0.4683 -> 0.483 shotOffTarget: 0.3354 -> 0.3459 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.13 (squad xG sum 0.7291, xG scale 1.5526, xA scale 1.5526, team xA 0.86 = 0.76 x lambda) | scoreline_reset=true
team_lambda=1.132
squad_xg_sum=0.7291
squad_xa_sum=0.5542
team_expected_assists=0.8605
team_xa_to_xg_ratio=0.7602 | expected_goals: 0.0566 -> 0.0879 expected_assists: 0.0405 -> 0.0629 | 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.0841
goal_rate=0.0724
scorer_weight=0.1009 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.061
assist_rate=0.0548
provider_weight=0.0728 | - |
|
| Bil Nsongo | F | 71 | 1 | 0.33 | 0.11 | 203% | 2 | 1.5 | 6.7 | 48.9 | 15 | 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.9961, quality 0.466) | market_value_eur=5300000
quality_factor=0.4659
boost_factor=0.9961
reference_quality=0.505
history_matches=10
history_shrink=0.3333 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Leandro Cabrera, Clemens Riedel', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.183, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 0.9745, 'skill_edge': 0.0067, 'height_edge': -0.024, 'attacker_skill': 0.4659, 'defender_skill': 0.451, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Leandro Cabrera', 'market_value': 930000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'Clemens Riedel', 'market_value': 3900000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4646}], 'xg_override': 0.2134} | totalShots: 1.8388 -> 1.7919 shotOffTarget: 1.2445 -> 1.2128 onTargetScoringAttempt: 0.5942 -> 0.579 goals: 0.2227 -> 0.217 expectedGoals: 0.219 -> 0.2134 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.13 (squad xG sum 0.7291, xG scale 1.5526, xA scale 1.5526, team xA 0.86 = 0.76 x lambda) | scoreline_reset=true
team_lambda=1.132
squad_xg_sum=0.7291
squad_xa_sum=0.5542
team_expected_assists=0.8605
team_xa_to_xg_ratio=0.7602 | expected_goals: 0.2134 -> 0.3315 expected_assists: 0.0449 -> 0.0697 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 69.0) | match_squad_rank=14
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.2822
goal_rate=0.217
scorer_weight=0.336 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0673
assist_rate=0.0
provider_weight=0.0558 | - |
|
| Team totals | 1 | 1.13 | | 11 | | 6.9 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Álvaro Ferllo | G | 4.4m | 10.9% | Market-value substitute prior |
| Bright Ede | D | 13.7m | 30.6% | Market-value substitute prior |
| Adrià Altimira | D | 13.6m | 29.9% | Market-value substitute prior |
| Angeliño | M | 22.0m | 50.0% | Market-value substitute prior |
| Noé Carrillo | M | 22.0m | 49.9% | Market-value substitute prior |
| Yeremay Hernández | F | 26.2m | 59.9% | Market-value substitute prior |
Antagonist / tactical summary
Midfield is evenly contested — Urko González vs Marc Casadó will be the pivotal duel. Total antagonist xG — Home: 0.80, Away: 0.50. 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.0% / 50.0%, dominance ratio 0.50, key duel: Urko González vs Marc Casadó
Javier Hernández xG 0.11Edu Expósito xG 0.07Urko González xG 0.05Mario Soriano xG 0.06Marc Casadó xG 0.06Riki Rodríguez xG 0.06
Summary
Antagonist matchup analysis for Espanyol vs Deportivo. Most likely scoreline: 2-1. Lambdas derived from 6 home and 6 away individual player duels. Head-to-head: Espanyol 4W-4D-2L vs Deportivo over 10 meetings.
Tactical parity between 4-2-3-1 and 4-2-3-1. Match outcome driven primarily by individual player quality. Midfield is evenly contested — Urko González vs Marc Casadó will be the pivotal duel. Total antagonist xG — Home: 0.80, Away: 0.50. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Arsenal vs Hull
Premier League · 20261107 · 4-2-3-1 vs 5-4-1
Predicted 1-0Winner: ArsenalWinning H 1-0 (12.0%)Winning A 0-1 (5.0%)Confidence 0.72λ home/away 1.98 / 0.82Most-likely P 12.0%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset TracingAntagonist + XGBoost match analysis for Arsenal vs Hull. 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-4-1 (duel lambdas: Home 2.172, Away 1.062). Final calibrated Poisson lambdas: Home 1.976, Away 0.820 (most likely score 1-0).
Home Starters 11/11 XGBoost (10 FBref) Away Starters 11/11 XGBoost (9 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 2.17 / 1.06 Final λ (H/A) 1.98 / 0.82
FBref Team Priors: Arsenal (Gls/90: 2.0, GA/90: 2.0 → E[λ]: 2.069) vs Hull City (Gls/90: 1.5, GA/90: 1.5 → 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 | Arsenal | Hull |
|---|
| League position | 2.00 | 10.00 |
| Points per game | 2.08 | 1.28 |
| Attack index | 1.07 | 0.91 |
| Defense (concede) index | 0.88 | 0.78 |
| Form multiplier | 1.04 | 0.96 |
| Standing λ multiplier | 0.98 | 0.87 |
Lambda decomposition (how the goal rates were built)
| Stage | Arsenal λ | Hull λ |
|---|
| FBref Squad Prior E[λ] (weight 0.192) | 2.069 | 2.069 |
| Pre-mismatch | 2.281 | 1.009 |
| Pre-calibration (Micro-duels) | 2.172 | 1.062 |
| Final λ | 1.976 | 0.820 |
competition calibration scale 0.85competition observed total goals 2.781quality gap applied Truemismatch score pressure applied Truecompetitive underdog floor applied Falsestage discount 1.0
Scoreline distribution & markets
| Top 5 scorelines | P |
|---|
| 1-0 | 12.0% |
| 2-0 | 11.9% |
| 1-1 | 10.0% |
| 2-1 | 9.8% |
| 3-0 | 7.8% |
| Home win | 64.4% |
| Draw | 20.9% |
| Away win | 14.7% |
| Over 2.5 | 53.0% |
| BTTS yes | 48.3% |
Pregame fair line — favorite Arsenal (64.4%), fair total 2.80, fair spread 1.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.
Arsenal — 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 |
|---|
| David Raya | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 7.1 | 56.6 | 32 | FBref Prior G_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost G_service raw output over 3 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0070, quality 0.739) | market_value_eur=33000000
quality_factor=0.7389
boost_factor=1.007
reference_quality=0.505
history_matches=45
history_shrink=0.1 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0087) | blend_weight=0.0087
history_matches=45
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League | saves: 2.9289 -> 2.9079 wasFouled: 0.7105 -> 0.7043 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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, Tim Iroegbunam', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.0616} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.98 (squad xG sum 1.4874, xG scale 1.3285, xA scale 1.2370, team xA 1.58 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.976
squad_xg_sum=1.4874
squad_xa_sum=1.2779
team_expected_assists=1.5808
team_xa_to_xg_ratio=0.8 | shots_faced: 10.1 -> 7.8 expected_saves: 2.47 -> 1.91 high_pressure_saves: 0.85 -> 0.66 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 88.0) | match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=2.0855 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by 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.5615 | - |
|
| William Saliba | D | 90 | 0 | 0.03 | 0.03 | ok | 0 | 0.1 | 7.0 | 53.3 | 21 | 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.0161, quality 0.891) | market_value_eur=94000000
quality_factor=0.891
boost_factor=1.0161
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': 'Oliver McBurnie', '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.98 (squad xG sum 1.4874, xG scale 1.3285, xA scale 1.2370, team xA 1.58 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.976
squad_xg_sum=1.4874
squad_xa_sum=1.2779
team_expected_assists=1.5808
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0258 -> 0.0343 expected_assists: 0.0747 -> 0.0924 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 88.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.0337
goal_rate=0.0493
scorer_weight=0.0429 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0883
assist_rate=0.0
provider_weight=0.0739 | - |
|
| Ben White | D | 75 | 0 | 0.03 | 0.01 | 183% | 0 | 0.1 | 6.9 | 36.2 | 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.0142, quality 0.732) | market_value_eur=32000000
quality_factor=0.732
boost_factor=1.0142
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.8366
prior_reliability=0.1333
competition=Premier League | totalCross: 1.7465 -> 1.7603 wasFouled: 0.9206 -> 0.9115 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Elliot Stroud', 'matchup_zone': 'Right Mid vs Left Back — Wide Channel'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.98 (squad xG sum 1.4874, xG scale 1.3285, xA scale 1.2370, team xA 1.58 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.976
squad_xg_sum=1.4874
squad_xa_sum=1.2779
team_expected_assists=1.5808
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0206 -> 0.0274 expected_assists: 0.1179 -> 0.1458 | 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.027
goal_rate=0.0
scorer_weight=0.0219 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1357
assist_rate=0.363
provider_weight=0.1823 | - |
|
| Gabriel Magalhães | D | 90 | 0 | 0.27 | 0.10 | 186% | 1 | 0.8 | 7.1 | 59.4 | 33 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0122, quality 0.871) | market_value_eur=70000000
quality_factor=0.8707
boost_factor=1.0122
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.9997
prior_reliability=0.1333
competition=Premier League | wonTackle: 0.8153 -> 0.8075 fouls: 0.82 -> 0.8265 onTargetScoringAttempt: 0.5264 -> 0.5213 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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', '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.98 (squad xG sum 1.4874, xG scale 1.3285, xA scale 1.2370, team xA 1.58 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.976
squad_xg_sum=1.4874
squad_xa_sum=1.2779
team_expected_assists=1.5808
team_xa_to_xg_ratio=0.8 | expected_goals: 0.2057 -> 0.2733 expected_assists: 0.0365 -> 0.0452 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 88.0) | match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_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.2391
goal_rate=0.1574
scorer_weight=0.2217 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0442
assist_rate=0.0221
provider_weight=0.0377 | - |
|
| Myles Lewis-Skelly | D | 74 | 0 | 0.03 | 0.01 | 153% | 1 | 0.2 | 6.8 | 32.6 | 36 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0176, quality 0.869) | market_value_eur=69000000
quality_factor=0.8692
boost_factor=1.0176
reference_quality=0.505
history_matches=26
history_shrink=0.1613 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0126) | blend_weight=0.0126
history_matches=26
season_overlap_discount=1.0
per90_to_match_factor=0.8218
prior_reliability=0.12
competition=Premier League | fouls: 1.4186 -> 1.4065 wonTackle: 0.7693 -> 0.7596 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.98 (squad xG sum 1.4874, xG scale 1.3285, xA scale 1.2370, team xA 1.58 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.976
squad_xg_sum=1.4874
squad_xa_sum=1.2779
team_expected_assists=1.5808
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0213 -> 0.0283 expected_assists: 0.0944 -> 0.1168 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 78.0) | match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0279
goal_rate=0.0
scorer_weight=0.0226 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1102
assist_rate=0.0
provider_weight=0.0934 | - |
|
| Declan Rice | M | 86 | 0 | 0.11 | 0.04 | 166% | 1 | 0.6 | 7.3 | 59.1 | 33 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0120, quality 0.897) | market_value_eur=114000000
quality_factor=0.8967
boost_factor=1.012
reference_quality=0.505
history_matches=44
history_shrink=0.102 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0075) | blend_weight=0.0075
history_matches=44
season_overlap_discount=1.0
per90_to_match_factor=0.9503
prior_reliability=0.1133
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': 'John Egan', 'matchup_zone': 'LW vs CB', 'duel_win_rate': 0.639, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.3214, 'skill_edge': 0.2067, 'height_edge': 0.012, 'attacker_skill': 0.8967, '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.0834} | totalShots: 0.9942 -> 1.3137 shotOffTarget: 0.7469 -> 0.987 aerialWon: 0.988 -> 1.2 onTargetScoringAttempt: 0.2444 -> 0.323 goals: 0.0853 -> 0.1127 expectedGoals: 0.0631 -> 0.0834 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.98 (squad xG sum 1.4874, xG scale 1.3285, xA scale 1.2370, team xA 1.58 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.976
squad_xg_sum=1.4874
squad_xa_sum=1.2779
team_expected_assists=1.5808
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0834 -> 0.1108 expected_assists: 0.2143 -> 0.265 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 88.0) | match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1049
goal_rate=0.1127
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=1
assist_probability=0.2328
assist_rate=0.2552
provider_weight=0.306 | - |
|
| Martin Ødegaard | M | 83 | 0 | 0.35 | 0.10 | 253% | 2 | 0.7 | 7.3 | 51.9 | 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.0155, quality 0.888) | market_value_eur=88000000
quality_factor=0.8879
boost_factor=1.0155
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.9177
prior_reliability=0.1067
competition=Premier League | wonTackle: 0.3892 -> 0.4017 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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': 'RW vs CB', 'duel_win_rate': 0.595, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.2568, 'skill_edge': 0.2027, 'height_edge': -0.028, 'attacker_skill': 0.8879, 'defender_skill': 0.4374, 'attacker_role': 'RW', '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.2619} | aerialWon: 0.0502 -> 1.0 totalShots: 1.9598 -> 2.4631 shotOffTarget: 1.1923 -> 1.4985 onTargetScoringAttempt: 0.7627 -> 0.9586 goals: 0.2787 -> 0.3503 expectedGoals: 0.2084 -> 0.2619 bigChanceMissed: 0.1196 -> 0.1503 expectedGoalsOnTarget: 0.0911 -> 0.1145 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.98 (squad xG sum 1.4874, xG scale 1.3285, xA scale 1.2370, team xA 1.58 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.976
squad_xg_sum=1.4874
squad_xa_sum=1.2779
team_expected_assists=1.5808
team_xa_to_xg_ratio=0.8 | expected_goals: 0.2619 -> 0.3479 expected_assists: 0.2063 -> 0.2552 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 86.0) | match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.2938
goal_rate=0.3503
scorer_weight=0.4349 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.2252
assist_rate=0.2328
provider_weight=0.2816 | - |
|
| Eberechi Eze | M | 71 | 0 | 0.18 | 0.08 | 127% | 2 | 1.1 | 6.8 | 49.4 | 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.0121, quality 0.859) | market_value_eur=63000000
quality_factor=0.8589
boost_factor=1.0121
reference_quality=0.505
history_matches=39
history_shrink=0.1136 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0034) | blend_weight=0.0034
history_matches=39
season_overlap_discount=1.0
per90_to_match_factor=0.794
prior_reliability=0.0467
competition=Premier League | wasFouled: 1.5846 -> 1.5909 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Matt Crooks', 'matchup_zone': 'CAM vs CM', 'duel_win_rate': 0.552, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.1946, 'skill_edge': 0.1924, 'height_edge': -0.06, 'attacker_skill': 0.865, 'defender_skill': 0.4374, 'attacker_role': 'CAM', 'attacker_mv_price_index': 0.95, 'defender_adjusted_parts': [{'player': 'Matt Crooks', 'market_value': 1000000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.4374}], 'xg_override': 0.1364} | aerialWon: 0.3971 -> 1.0 totalShots: 1.5033 -> 1.7958 shotOffTarget: 1.0325 -> 1.2334 onTargetScoringAttempt: 0.4703 -> 0.5618 expectedGoalsOnTarget: 0.2375 -> 0.2837 goals: 0.1165 -> 0.1392 expectedGoals: 0.1142 -> 0.1364 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.98 (squad xG sum 1.4874, xG scale 1.3285, xA scale 1.2370, team xA 1.58 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.976
squad_xg_sum=1.4874
squad_xa_sum=1.2779
team_expected_assists=1.5808
team_xa_to_xg_ratio=0.8 | expected_goals: 0.1364 -> 0.1812 expected_assists: 0.077 -> 0.0952 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 84.0) | match_squad_rank=11
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1657
goal_rate=0.1392
scorer_weight=0.1839 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0908
assist_rate=0.0703
provider_weight=0.0902 | - |
|
| Bruno Guimarães | M | 79 | 0 | 0.11 | 0.12 | ok | 1 | 0.8 | 7.1 | 52.8 | 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.0140, quality 0.879) | market_value_eur=77000000
quality_factor=0.8792
boost_factor=1.014
reference_quality=0.505
history_matches=35
history_shrink=0.125 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0011) | blend_weight=0.0011
history_matches=35
season_overlap_discount=1.0
per90_to_match_factor=0.8807
prior_reliability=0.0133
competition=Premier League | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Matt Crooks, 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 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.98 (squad xG sum 1.4874, xG scale 1.3285, xA scale 1.2370, team xA 1.58 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.976
squad_xg_sum=1.4874
squad_xa_sum=1.2779
team_expected_assists=1.5808
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0808 -> 0.1073 expected_assists: 0.1143 -> 0.1414 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 86.0) | match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1017
goal_rate=0.0935
scorer_weight=0.1177 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1319
assist_rate=0.0989
provider_weight=0.1282 | - |
|
| Mikel Merino | M | 77 | 0 | 0.20 | 0.10 | 89% | 2 | 0.8 | 6.8 | 41.2 | 18 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0078, quality 0.686) | market_value_eur=26000000
quality_factor=0.6858
boost_factor=1.0078
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.8559
prior_reliability=0.0267
competition=Premier League | fouls: 1.3666 -> 1.3791 wasFouled: 1.5574 -> 1.5641 totalShots: 1.7345 -> 1.7411 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.98 (squad xG sum 1.4874, xG scale 1.3285, xA scale 1.2370, team xA 1.58 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.976
squad_xg_sum=1.4874
squad_xa_sum=1.2779
team_expected_assists=1.5808
team_xa_to_xg_ratio=0.8 | expected_goals: 0.1488 -> 0.1977 expected_assists: 0.0665 -> 0.0823 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 83.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.1794
goal_rate=0.1301
scorer_weight=0.1791 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.079
assist_rate=0.0526
provider_weight=0.0725 | - |
|
| Bukayo Saka | F | 85 | 1 | 0.51 | 0.29 | 78% | 3 | 1.9 | 7.2 | 59.3 | 32 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0137, quality 0.897) | market_value_eur=115000000
quality_factor=0.8968
boost_factor=1.0137
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.9417
prior_reliability=0.1133
competition=Premier League | wasFouled: 2.5768 -> 2.5879 totalCross: 3.9217 -> 3.9308 fouls: 1.0385 -> 1.0296 goals: 0.3271 -> 0.3338 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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.363, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.2392, 'skill_edge': 0.2067, 'height_edge': -0.044, 'attacker_skill': 0.8968, '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.3839} | totalShots: 2.369 -> 2.9357 shotOffTarget: 1.3394 -> 1.6598 onTargetScoringAttempt: 1.0272 -> 1.2729 bigChanceMissed: 0.4955 -> 0.614 expectedGoalsOnTarget: 0.4303 -> 0.5332 goals: 0.3338 -> 0.4136 expectedGoals: 0.3098 -> 0.3839 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.98 (squad xG sum 1.4874, xG scale 1.3285, xA scale 1.2370, team xA 1.58 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.976
squad_xg_sum=1.4874
squad_xa_sum=1.2779
team_expected_assists=1.5808
team_xa_to_xg_ratio=0.8 | expected_goals: 0.3839 -> 0.5099 expected_assists: 0.1994 -> 0.2467 | 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: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.3994
goal_rate=0.4136
scorer_weight=0.5448 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.2186
assist_rate=0.0961
provider_weight=0.1974 | - |
|
| Team totals | 1 | 1.98 | | 15 | | 7.0 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Illan Meslier | G | 4.5m | 11.5% | Market-value substitute prior |
| Jurriën Timber | D | 15.3m | 37.7% | Market-value substitute prior |
| Riccardo Calafiori | D | 15.2m | 25.1% | Market-value substitute prior |
| Martín Zubimendi | M | 18.9m | 72.7% | Market-value substitute prior |
| Max Dowman | M | 23.5m | 57.0% | Market-value substitute prior |
| Kai Havertz | F | 26.9m | 36.7% | Market-value substitute prior |
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 |
|---|
| Konstantinos Tzolakis | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 6.9 | 44.8 | 14 | XGBoost G_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost G_service raw output over 3 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0145, quality 0.641) | market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.0145
reference_quality=0.505
history_matches=9
history_shrink=0.3571 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Bukayo Saka, Martin Ødegaard', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 2.1716} | - | 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.82 (squad xG sum 0.7338, xG scale 1.1175, xA scale 1.3349, team xA 0.53 = 0.65 x lambda) | scoreline_reset=true
team_lambda=0.82
squad_xg_sum=0.7338
squad_xa_sum=0.3993
team_expected_assists=0.533
team_xa_to_xg_ratio=0.65 | shots_faced: 20.6 -> 18.8 expected_saves: 5.04 -> 4.6 high_pressure_saves: 1.74 -> 1.58 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 79.0) | match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation 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.8559 | - | 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.6106 | - |
|
| Lewie Coyle | D | 79 | 0 | 0.03 | 0.02 | 94% | 0 | 0.2 | 6.6 | 41.6 | 14 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9928, quality 0.437) | market_value_eur=2700000
quality_factor=0.4374
boost_factor=0.9928
reference_quality=0.505
history_matches=9
history_shrink=0.3571 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0201) | blend_weight=0.0201
history_matches=9
season_overlap_discount=1.0
per90_to_match_factor=0.8802
prior_reliability=0.0867
competition=Premier League | wasFouled: 0.7366 -> 0.7763 fouls: 0.234 -> 0.2565 totalCross: 2.3774 -> 2.3568 totalShots: 0.4645 -> 0.4552 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Martin Ødegaard, Myles Lewis-Skelly', 'matchup_zone': 'LWB vs RW + RB'} | - | 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.82 (squad xG sum 0.7338, xG scale 1.1175, xA scale 1.3349, team xA 0.53 = 0.65 x lambda) | scoreline_reset=true
team_lambda=0.82
squad_xg_sum=0.7338
squad_xa_sum=0.3993
team_expected_assists=0.533
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 70.0) | match_squad_rank=16
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0339
goal_rate=0.0
scorer_weight=0.0276 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0132
assist_rate=0.0
provider_weight=0.0111 | - |
|
| John Egan | D | 82 | 0 | 0.05 | 0.02 | 145% | 0 | 0.4 | 6.7 | 44.1 | 14 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9928, quality 0.437) | market_value_eur=1500000
quality_factor=0.4374
boost_factor=0.9928
reference_quality=0.505
history_matches=9
history_shrink=0.3571 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0309) | blend_weight=0.0309
history_matches=9
season_overlap_discount=1.0
per90_to_match_factor=0.909
prior_reliability=0.1333
competition=Premier League | totalShots: 0.4993 -> 0.4838 wonTackle: 0.8202 -> 0.8089 fouls: 0.2451 -> 0.2375 | 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': 'Declan Rice', '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.82 (squad xG sum 0.7338, xG scale 1.1175, xA scale 1.3349, team xA 0.53 = 0.65 x lambda) | scoreline_reset=true
team_lambda=0.82
squad_xg_sum=0.7338
squad_xa_sum=0.3993
team_expected_assists=0.533
team_xa_to_xg_ratio=0.65 | expected_assists: 0.0207 -> 0.0276 | 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 skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0446
goal_rate=0.0
scorer_weight=0.0365 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0272
assist_rate=0.0
provider_weight=0.0221 | - |
|
| Semi Ajayi | D | 89 | 0 | 0.04 | 0.05 | ok | 0 | 0.2 | 6.8 | 43.9 | 14 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9928, quality 0.437) | market_value_eur=930000
quality_factor=0.4374
boost_factor=0.9928
reference_quality=0.505
history_matches=9
history_shrink=0.3571 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0263) | blend_weight=0.0263
history_matches=9
season_overlap_discount=1.0
per90_to_match_factor=0.9874
prior_reliability=0.1133
competition=Premier League | wonTackle: 1.2722 -> 1.254 goals: 0.0528 -> 0.0667 onTargetScoringAttempt: 0.0528 -> 0.0667 wasFouled: 0.0621 -> 0.0757 fouls: 0.4317 -> 0.4203 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Bukayo Saka', '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.82 (squad xG sum 0.7338, xG scale 1.1175, xA scale 1.3349, team xA 0.53 = 0.65 x lambda) | scoreline_reset=true
team_lambda=0.82
squad_xg_sum=0.7338
squad_xa_sum=0.3993
team_expected_assists=0.533
team_xa_to_xg_ratio=0.65 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 70.0) | match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.043
goal_rate=0.0667
scorer_weight=0.055 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0079
assist_rate=0.0
provider_weight=0.0071 | - |
|
| Nobel Mendy | D | 77 | 0 | 0.08 | 0.04 | 104% | 1 | 0.3 | 6.8 | 48.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.0058, quality 0.641) | market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.0058
reference_quality=0.505
history_matches=30
history_shrink=0.1429 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0081) | blend_weight=0.0081
history_matches=30
season_overlap_discount=1.0
per90_to_match_factor=0.8589
prior_reliability=0.0867
competition=Premier League | onTargetScoringAttempt: 0.2585 -> 0.2667 interceptionWon: 0.9919 -> 0.9839 fouls: 1.5087 -> 1.5019 totalShots: 0.4929 -> 0.4992 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Bukayo Saka', '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.82 (squad xG sum 0.7338, xG scale 1.1175, xA scale 1.3349, team xA 0.53 = 0.65 x lambda) | scoreline_reset=true
team_lambda=0.82
squad_xg_sum=0.7338
squad_xa_sum=0.3993
team_expected_assists=0.533
team_xa_to_xg_ratio=0.65 | expected_goals: 0.071 -> 0.0793 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 75.0) | match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0762
goal_rate=0.0999
scorer_weight=0.0982 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0096
assist_rate=0.0
provider_weight=0.0084 | - |
|
| Ryan Giles | D | 83 | 0 | 0.00 | 0.00 | ok | 0 | 0.1 | 6.6 | 42.4 | 14 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0074, quality 0.574) | market_value_eur=14500000
quality_factor=0.5737
boost_factor=1.0074
reference_quality=0.505
history_matches=9
history_shrink=0.3571 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0294) | blend_weight=0.0294
history_matches=9
season_overlap_discount=1.0
per90_to_match_factor=0.9237
prior_reliability=0.1267
competition=Premier League | totalCross: 6.7403 -> 6.7279 fouls: 0.3353 -> 0.3254 interceptionWon: 0.7394 -> 0.732 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Declan Rice, Ben White', 'matchup_zone': 'RWB vs LW + LB'} | - | 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.82 (squad xG sum 0.7338, xG scale 1.1175, xA scale 1.3349, team xA 0.53 = 0.65 x lambda) | scoreline_reset=true
team_lambda=0.82
squad_xg_sum=0.7338
squad_xa_sum=0.3993
team_expected_assists=0.533
team_xa_to_xg_ratio=0.65 | expected_assists: 0.0547 -> 0.073 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 18 by projected rating, fifa_overall 72.0) | match_squad_rank=18
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0016
goal_rate=0.0
scorer_weight=0.0016 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0704
assist_rate=0.1052
provider_weight=0.0912 | - |
|
| Regan Slater | M | 85 | 0 | 0.06 | 0.02 | 154% | 1 | 0.6 | 6.8 | 43.6 | 14 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0009, quality 0.513) | market_value_eur=9200000
quality_factor=0.513
boost_factor=1.0009
reference_quality=0.505
history_matches=9
history_shrink=0.3571 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0309) | blend_weight=0.0309
history_matches=9
season_overlap_discount=1.0
per90_to_match_factor=0.9434
prior_reliability=0.1333
competition=Premier League | totalShots: 1.0386 -> 1.0065 fouls: 0.6782 -> 0.701 interceptionWon: 0.4561 -> 0.442 goalAssist: 0.0794 -> 0.0915 onTargetScoringAttempt: 0.3058 -> 0.2963 totalCross: 1.1502 -> 1.1438 | 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': 'Myles Lewis-Skelly', 'matchup_zone': 'Left Mid vs Right Back — Wide Channel', 'duel_win_rate': 0.275, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.7273, 'skill_edge': -0.1655, 'height_edge': -0.02, 'attacker_skill': 0.5251, 'defender_skill': 0.8928, 'attacker_role': 'LM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Myles Lewis-Skelly', 'market_value': 69000000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.8928}], 'xg_override': 0.0521} | totalShots: 1.0291 -> 0.7485 shotOffTarget: 0.7328 -> 0.533 onTargetScoringAttempt: 0.2963 -> 0.2155 aerialWon: 0.9208 -> 0.9 expectedGoals: 0.0717 -> 0.0521 goals: 0.0699 -> 0.0508 | 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.82 (squad xG sum 0.7338, xG scale 1.1175, xA scale 1.3349, team xA 0.53 = 0.65 x lambda) | scoreline_reset=true
team_lambda=0.82
squad_xg_sum=0.7338
squad_xa_sum=0.3993
team_expected_assists=0.533
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0521 -> 0.0582 expected_assists: 0.07 -> 0.0934 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 72.0) | match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0565
goal_rate=0.0508
scorer_weight=0.0575 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0892
assist_rate=0.0915
provider_weight=0.1101 | - |
|
| Elliot Stroud | M | 72 | 0 | 0.05 | 0.00 | 901% | 1 | 0.2 | 6.7 | 32.9 | 14 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9998, quality 0.503) | market_value_eur=8400000
quality_factor=0.5035
boost_factor=0.9998
reference_quality=0.505
history_matches=7
history_shrink=0.4167 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0253) | blend_weight=0.0253
history_matches=7
season_overlap_discount=1.0
per90_to_match_factor=0.8026
prior_reliability=0.0933
competition=Premier League | totalCross: 0.4872 -> 0.5183 interceptionWon: 0.4733 -> 0.4903 wonTackle: 0.5923 -> 0.6063 wasFouled: 0.2047 -> 0.1995 onTargetScoringAttempt: 0.2013 -> 0.1962 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Ben White', 'matchup_zone': 'Right Mid vs Left Back — Wide Channel', 'duel_win_rate': 0.324, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.8002, 'skill_edge': -0.1319, 'height_edge': -0.004, 'attacker_skill': 0.5146, 'defender_skill': 0.8077, 'attacker_role': 'RM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Ben White', 'market_value': 32000000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.8077}], 'xg_override': 0.042} | aerialWon: 0.5216 -> 1.2 totalShots: 0.7192 -> 0.5755 shotOffTarget: 0.522 -> 0.4177 onTargetScoringAttempt: 0.1962 -> 0.157 goals: 0.0592 -> 0.0474 expectedGoals: 0.0525 -> 0.042 | 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.82 (squad xG sum 0.7338, xG scale 1.1175, xA scale 1.3349, team xA 0.53 = 0.65 x lambda) | scoreline_reset=true
team_lambda=0.82
squad_xg_sum=0.7338
squad_xa_sum=0.3993
team_expected_assists=0.533
team_xa_to_xg_ratio=0.65 | expected_assists: 0.0433 -> 0.0578 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 74.0) | match_squad_rank=11
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0458
goal_rate=0.0474
scorer_weight=0.0497 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0562
assist_rate=0.0646
provider_weight=0.071 | - |
|
| Matt Crooks | M | 72 | 0 | 0.04 | - | n/a | 0 | 0.0 | 6.7 | 32.8 | 12 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9908, quality 0.437) | market_value_eur=1000000
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.0197) | blend_weight=0.0197
history_matches=6
season_overlap_discount=1.0
per90_to_match_factor=0.7976
prior_reliability=0.0667
competition=Premier League | wonTackle: 1.2986 -> 1.3202 totalShots: 0.5707 -> 0.5595 fouls: 2.0268 -> 2.0183 wasFouled: 0.4066 -> 0.4143 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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 Guimarães', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.291, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.7657, 'skill_edge': -0.2034, 'height_edge': 0.044, 'attacker_skill': 0.4374, 'defender_skill': 0.8893, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Bruno Guimarães', 'market_value': 77000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8893}], 'xg_override': 0.0315} | aerialWon: 1.0767 -> 1.4 totalShots: 0.5673 -> 0.4344 shotOffTarget: 0.3986 -> 0.3052 onTargetScoringAttempt: 0.1687 -> 0.1292 goals: 0.0611 -> 0.0468 expectedGoals: 0.0411 -> 0.0315 | 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.82 (squad xG sum 0.7338, xG scale 1.1175, xA scale 1.3349, team xA 0.53 = 0.65 x lambda) | scoreline_reset=true
team_lambda=0.82
squad_xg_sum=0.7338
squad_xa_sum=0.3993
team_expected_assists=0.533
team_xa_to_xg_ratio=0.65 | expected_assists: 0.0265 -> 0.0354 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 71.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.0346
goal_rate=0.0468
scorer_weight=0.0418 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0348
assist_rate=0.052
provider_weight=0.0442 | - |
|
| Tim Iroegbunam | M | 81 | 0 | 0.08 | 0.03 | 189% | 1 | 0.4 | 6.8 | 44.4 | 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 1.0029, quality 0.585) | market_value_eur=15500000
quality_factor=0.5846
boost_factor=1.0029
reference_quality=0.505
history_matches=36
history_shrink=0.122 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Bruno Guimarães', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.321, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.8105, 'skill_edge': -0.1289, 'height_edge': 0.0, 'attacker_skill': 0.6029, 'defender_skill': 0.8893, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Bruno Guimarães', 'market_value': 77000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8893}], 'xg_override': 0.0747} | totalShots: 1.1492 -> 0.9314 shotOffTarget: 0.8265 -> 0.6699 onTargetScoringAttempt: 0.3227 -> 0.2615 aerialWon: 1.1209 -> 1.1 expectedGoals: 0.0922 -> 0.0747 goals: 0.0673 -> 0.0545 expectedGoalsOnTarget: 0.0576 -> 0.0467 | 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.82 (squad xG sum 0.7338, xG scale 1.1175, xA scale 1.3349, team xA 0.53 = 0.65 x lambda) | scoreline_reset=true
team_lambda=0.82
squad_xg_sum=0.7338
squad_xa_sum=0.3993
team_expected_assists=0.533
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0747 -> 0.0835 expected_assists: 0.0387 -> 0.0517 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 76.0) | match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0801
goal_rate=0.0545
scorer_weight=0.07 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0504
assist_rate=0.0539
provider_weight=0.0606 | - |
|
| Oliver McBurnie | F | 87 | 0 | 0.25 | 0.16 | 57% | 2 | 0.9 | 6.8 | 44.3 | 14 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9988, quality 0.494) | market_value_eur=7600000
quality_factor=0.4939
boost_factor=0.9988
reference_quality=0.505
history_matches=9
history_shrink=0.3571 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0309) | blend_weight=0.0309
history_matches=9
season_overlap_discount=1.0
per90_to_match_factor=0.9674
prior_reliability=0.1333
competition=Premier League | totalShots: 1.9287 -> 1.899 wasFouled: 1.6175 -> 1.6423 goals: 0.3555 -> 0.3445 goalAssist: 0.2815 -> 0.2728 interceptionWon: 0.2675 -> 0.2592 onTargetScoringAttempt: 0.7013 -> 0.7095 fouls: 1.2368 -> 1.2434 totalOffside: 0.195 -> 0.189 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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 Saliba, Gabriel Magalhães', '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.7145, 'skill_edge': -0.1802, 'height_edge': -0.014, 'attacker_skill': 0.4939, 'defender_skill': 0.8944, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'William Saliba', 'market_value': 94000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8981}, {'player': 'Gabriel Magalhães', 'market_value': 70000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8907}], 'xg_override': 0.2232} | totalShots: 1.9369 -> 1.3839 shotOffTarget: 1.2274 -> 0.877 onTargetScoringAttempt: 0.7095 -> 0.5069 goals: 0.3445 -> 0.2461 expectedGoals: 0.3124 -> 0.2232 expectedGoalsOnTarget: 0.238 -> 0.1701 bigChanceMissed: 0.2131 -> 0.1523 | 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.82 (squad xG sum 0.7338, xG scale 1.1175, xA scale 1.3349, team xA 0.53 = 0.65 x lambda) | scoreline_reset=true
team_lambda=0.82
squad_xg_sum=0.7338
squad_xa_sum=0.3993
team_expected_assists=0.533
team_xa_to_xg_ratio=0.65 | expected_goals: 0.2232 -> 0.2495 expected_assists: 0.0313 -> 0.0418 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 75.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.2208
goal_rate=0.2461
scorer_weight=0.2704 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0409
assist_rate=0.2728
provider_weight=0.0522 | - |
|
| Team totals | 0 | 0.82 | | 8 | | 6.7 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Jack Butland | G | 4.4m | 10.9% | Market-value substitute prior |
| Lucas Herrington | D | 22.9m | 61.5% | Market-value substitute prior |
| Charlie Hughes | D | 13.9m | 31.2% | Market-value substitute prior |
| Christos Mouzakitis | M | 22.8m | 53.5% | 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 |
Antagonist / tactical summary
Home midfield dominates with ~53% possession expected (Declan Rice vs Tim Iroegbunam). Total antagonist xG — Home: 0.87, Away: 0.45. 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 53.3% / 46.7%, dominance ratio 0.62, key duel: Declan Rice vs Tim Iroegbunam
Declan Rice xG 0.08Eberechi Eze xG 0.14Martin Ødegaard xG 0.26Oliver McBurnie xG 0.22Regan Slater xG 0.05Elliot Stroud xG 0.04
Summary
Antagonist matchup analysis for Arsenal vs Hull. Most likely scoreline: 1-0. Lambdas derived from 4 home and 7 away individual player duels. Head-to-head: Arsenal 8W-2D-0L vs Hull over 10 meetings.
Tactical parity between 4-2-3-1 and 5-4-1. Match outcome driven primarily by individual player quality. Home midfield dominates with ~53% possession expected (Declan Rice vs Tim Iroegbunam). Total antagonist xG — Home: 0.87, Away: 0.45. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Forest vs Man City
Premier League · 20261107 · 3-4-2-1 vs 4-2-3-1
Predicted 0-1Winner: Man CityWinning H 1-0 (6.1%)Winning A 0-1 (10.3%)Confidence 0.69λ home/away 1.07 / 1.78Most-likely P 10.3%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset TracingAntagonist + XGBoost match analysis for Forest vs Man City. 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.242, Away 2.083). Final calibrated Poisson lambdas: Home 1.067, Away 1.780 (most likely score 0-1).
Home Starters 11/11 XGBoost (10 FBref) Away Starters 11/11 XGBoost (10 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.24 / 2.08 Final λ (H/A) 1.07 / 1.78
FBref Team Priors: Nottingham Forest (Gls/90: 1.0, GA/90: 1.0 → E[λ]: 2.069) vs Manchester City (Gls/90: 3.0, GA/90: 3.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 | Forest | Man City |
|---|
| League position | 19.00 | 1.00 |
| Points per game | 0.94 | 1.94 |
| Attack index | 0.82 | 1.21 |
| Defense (concede) index | 0.88 | 1.04 |
| Form multiplier | 0.95 | 1.05 |
| Standing λ multiplier | 0.87 | 1.11 |
Lambda decomposition (how the goal rates were built)
| Stage | Forest λ | Man City λ |
|---|
| FBref Squad Prior E[λ] (weight 0.192) | 2.069 | 2.069 |
| Pre-mismatch | 1.206 | 2.143 |
| Pre-competitive-floor | 1.171 | 2.364 |
| Pre-calibration (Micro-duels) | 1.242 | 2.083 |
| Final λ | 1.067 | 1.780 |
competition calibration scale 0.85competition observed total goals 2.781quality gap applied Truemismatch score pressure applied Truecompetitive underdog floor applied Falsestage discount 1.0
Scoreline distribution & markets
| Top 5 scorelines | P |
|---|
| 1-1 | 11.1% |
| 0-1 | 10.3% |
| 1-2 | 9.8% |
| 0-2 | 9.2% |
| 1-0 | 6.1% |
| Home win | 22.6% |
| Draw | 23.4% |
| Away win | 54.0% |
| Over 2.5 | 54.2% |
| BTTS yes | 54.6% |
Pregame fair line — favorite Man City (54.0%), fair total 2.85, fair spread -0.71
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.
Forest — projected line vs season baseline (3-4-2-1)
| Player | Pos | Min | Proj G | Proj xG | Season xG/g | | Proj Sh | Season Sh/g | Proj Rtg | Season Rtg | Rec | Model / FBref Prior |
|---|
| Matz Sels | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 7.0 | 57.0 | 30 | FBref Prior G_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost G_service raw output over 3 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9980, quality 0.446) | market_value_eur=3700000
quality_factor=0.4461
boost_factor=0.998
reference_quality=0.505
history_matches=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.9972
prior_reliability=0.1333
competition=Premier League | saves: 2.8442 -> 2.836 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Erling Haaland, Rayan Cherki', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 2.0832} | - | 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.07 (squad xG sum 1.5371, xG scale 0.6942, xA scale 0.7186, team xA 0.69 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.067
squad_xg_sum=1.5371
squad_xa_sum=0.9652
team_expected_assists=0.6935
team_xa_to_xg_ratio=0.65 | shots_faced: 19.8 -> 16.9 expected_saves: 4.85 -> 4.13 high_pressure_saves: 1.67 -> 1.42 | 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 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.0916 | - | 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.6575 | - |
|
| Murillo | D | 88 | 0 | 0.08 | 0.06 | 33% | 1 | 0.8 | 6.9 | 56.0 | 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.0121, quality 0.821) | market_value_eur=49000000
quality_factor=0.8206
boost_factor=1.0121
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.9806
prior_reliability=0.1333
competition=Premier League | interceptionWon: 1.333 -> 1.3236 totalShots: 1.3045 -> 1.2955 wonTackle: 1.1854 -> 1.1777 fouls: 1.14 -> 1.1328 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Enzo Fernández', 'matchup_zone': 'LW vs CB'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.07 (squad xG sum 1.5371, xG scale 0.6942, xA scale 0.7186, team xA 0.69 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.067
squad_xg_sum=1.5371
squad_xa_sum=0.9652
team_expected_assists=0.6935
team_xa_to_xg_ratio=0.65 | expected_goals: 0.1121 -> 0.0778 expected_assists: 0.0474 -> 0.0341 | 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 skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0749
goal_rate=0.0028
scorer_weight=0.0622 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0335
assist_rate=0.0668
provider_weight=0.0409 | - |
|
| Neco Williams | D | 89 | 0 | 0.07 | 0.06 | ok | 1 | 1.2 | 6.8 | 59.3 | 39 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0060, quality 0.710) | market_value_eur=29000000
quality_factor=0.71
boost_factor=1.006
reference_quality=0.505
history_matches=46
history_shrink=0.098 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0085) | blend_weight=0.0085
history_matches=46
season_overlap_discount=1.0
per90_to_match_factor=0.9864
prior_reliability=0.1333
competition=Premier League | wonTackle: 1.2558 -> 1.2745 totalCross: 6.1286 -> 6.1101 interceptionWon: 1.0569 -> 1.0479 totalShots: 1.1601 -> 1.1544 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Erling Haaland', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 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.07 (squad xG sum 1.5371, xG scale 0.6942, xA scale 0.7186, team xA 0.69 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.067
squad_xg_sum=1.5371
squad_xa_sum=0.9652
team_expected_assists=0.6935
team_xa_to_xg_ratio=0.65 | expected_goals: 0.1001 -> 0.0695 expected_assists: 0.128 -> 0.092 | 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 skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0671
goal_rate=0.1548
scorer_weight=0.0869 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0879
assist_rate=0.0269
provider_weight=0.0736 | - |
|
| Ola Aina | D | 78 | 0 | 0.01 | 0.01 | 34% | 1 | 0.5 | 6.8 | 51.5 | 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.0046, quality 0.594) | market_value_eur=16399999
quality_factor=0.5942
boost_factor=1.0046
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.8722
prior_reliability=0.12
competition=Premier League | totalCross: 1.7844 -> 1.7995 wonTackle: 1.4219 -> 1.4093 fouls: 0.7515 -> 0.7609 interceptionWon: 1.1149 -> 1.1064 onTargetScoringAttempt: 0.0742 -> 0.0799 totalShots: 0.5761 -> 0.5817 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Erling Haaland', 'matchup_zone': 'Shape fallback'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 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.07 (squad xG sum 1.5371, xG scale 0.6942, xA scale 0.7186, team xA 0.69 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.067
squad_xg_sum=1.5371
squad_xa_sum=0.9652
team_expected_assists=0.6935
team_xa_to_xg_ratio=0.65 | expected_assists: 0.0586 -> 0.0421 | 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.0098
goal_rate=0.0
scorer_weight=0.0078 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0412
assist_rate=0.0
provider_weight=0.0337 | - |
|
| Morgan Gibbs-White | M | 89 | 0 | 0.16 | 0.29 | 45% | 2 | 1.8 | 7.1 | 61.7 | 38 | 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.0112, quality 0.878) | market_value_eur=76000000
quality_factor=0.8781
boost_factor=1.0112
reference_quality=0.505
history_matches=45
history_shrink=0.1 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0087) | blend_weight=0.0087
history_matches=45
season_overlap_discount=1.0
per90_to_match_factor=0.9912
prior_reliability=0.1333
competition=Premier League | totalCross: 3.8645 -> 3.8482 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Elliot Anderson', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.412, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9445, 'skill_edge': -0.0058, 'height_edge': -0.032, 'attacker_skill': 0.8855, 'defender_skill': 0.8984, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Elliot Anderson', 'market_value': 109000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8984}], 'xg_override': 0.2309} | aerialWon: 0.3993 -> 0.8 totalShots: 2.1948 -> 2.073 shotOffTarget: 1.4163 -> 1.3377 onTargetScoringAttempt: 0.7779 -> 0.7347 bigChanceMissed: 0.3845 -> 0.3632 goals: 0.2735 -> 0.2583 expectedGoals: 0.2445 -> 0.2309 expectedGoalsOnTarget: 0.1835 -> 0.1733 | 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.07 (squad xG sum 1.5371, xG scale 0.6942, xA scale 0.7186, team xA 0.69 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.067
squad_xg_sum=1.5371
squad_xa_sum=0.9652
team_expected_assists=0.6935
team_xa_to_xg_ratio=0.65 | expected_goals: 0.2309 -> 0.1603 expected_assists: 0.1793 -> 0.1288 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 83.0) | match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.1481
goal_rate=0.2583
scorer_weight=0.1759 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.1209
assist_rate=0.1876
provider_weight=0.1335 | - |
|
| James McAtee | M | 86 | 0 | 0.05 | 0.03 | 79% | 1 | 0.6 | 7.0 | 31.1 | 33 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0066, quality 0.629) | market_value_eur=19800000
quality_factor=0.6291
boost_factor=1.0066
reference_quality=0.505
history_matches=23
history_shrink=0.1786 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0139) | blend_weight=0.0139
history_matches=23
season_overlap_discount=1.0
per90_to_match_factor=0.9569
prior_reliability=0.12
competition=Premier League | totalShots: 1.31 -> 1.2918 fouls: 1.0172 -> 1.003 interceptionWon: 1.0154 -> 1.0013 totalCross: 3.1018 -> 3.1104 wasFouled: 1.6649 -> 1.6713 wonTackle: 1.4361 -> 1.4309 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Abdukodir Khusanov', 'matchup_zone': 'Left Wingback vs Right Back — Overlapping Run', 'duel_win_rate': 0.303, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.8576, 'skill_edge': -0.0729, 'height_edge': -0.024, 'attacker_skill': 0.7044, 'defender_skill': 0.8663, 'attacker_role': 'LWB', 'attacker_mv_price_index': 0.7, 'defender_adjusted_parts': [{'player': 'Abdukodir Khusanov', 'market_value': 47000000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.8663}], 'xg_override': 0.0677} | aerialWon: 0.3329 -> 1.1 totalShots: 1.3056 -> 1.1197 shotOffTarget: 0.9915 -> 0.8503 onTargetScoringAttempt: 0.3141 -> 0.2694 goals: 0.1013 -> 0.0869 expectedGoals: 0.0789 -> 0.0677 | 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.07 (squad xG sum 1.5371, xG scale 0.6942, xA scale 0.7186, team xA 0.69 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.067
squad_xg_sum=1.5371
squad_xa_sum=0.9652
team_expected_assists=0.6935
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0677 -> 0.047 expected_assists: 0.161 -> 0.1157 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 73.0) | match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0459
goal_rate=0.0869
scorer_weight=0.0547 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.1093
assist_rate=0.0907
provider_weight=0.0926 | - |
|
| Xaver Schlager | M | 79 | 0 | 0.03 | 0.03 | ok | 1 | 0.9 | 6.9 | 44.8 | 14 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0070, quality 0.570) | market_value_eur=14200000
quality_factor=0.5704
boost_factor=1.007
reference_quality=0.505
history_matches=9
history_shrink=0.3571 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0186) | blend_weight=0.0186
history_matches=9
season_overlap_discount=1.0
per90_to_match_factor=0.8817
prior_reliability=0.08
competition=Premier League | fouls: 1.3902 -> 1.3644 interceptionWon: 1.2399 -> 1.2169 wonTackle: 1.9064 -> 1.8983 totalCross: 0.353 -> 0.3601 totalShots: 1.1076 -> 1.1145 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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 Guéhi', 'matchup_zone': 'Right Wingback vs Left Back — Overlapping Run', 'duel_win_rate': 0.251, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.781, 'skill_edge': -0.117, 'height_edge': -0.032, 'attacker_skill': 0.6339, 'defender_skill': 0.8938, 'attacker_role': 'RWB', 'attacker_mv_price_index': 0.7, 'defender_adjusted_parts': [{'player': 'Marc Guéhi', 'market_value': 71000000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.8938}], 'xg_override': 0.0444} | aerialWon: 0.5381 -> 0.9 totalShots: 1.1145 -> 0.8704 shotOffTarget: 0.8856 -> 0.6917 onTargetScoringAttempt: 0.2179 -> 0.1702 bigChanceMissed: 0.0921 -> 0.0719 goals: 0.0766 -> 0.0598 expectedGoals: 0.0568 -> 0.0444 | 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.07 (squad xG sum 1.5371, xG scale 0.6942, xA scale 0.7186, team xA 0.69 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.067
squad_xg_sum=1.5371
squad_xa_sum=0.9652
team_expected_assists=0.6935
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0444 -> 0.0308 expected_assists: 0.054 -> 0.0388 | 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.0303
goal_rate=0.0598
scorer_weight=0.0358 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0381
assist_rate=0.0527
provider_weight=0.0383 | - |
|
| Daniel Muñoz | M | 82 | 0 | 0.07 | 0.06 | ok | 1 | 0.7 | 6.8 | 51.3 | 32 | XGBoost M_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0055, quality 0.660) | market_value_eur=23000000
quality_factor=0.6595
boost_factor=1.0055
reference_quality=0.505
history_matches=37
history_shrink=0.119 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Elliot Anderson', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.369, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.8804, 'skill_edge': -0.0973, 'height_edge': 0.016, 'attacker_skill': 0.6821, 'defender_skill': 0.8984, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Elliot Anderson', 'market_value': 109000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8984}], 'xg_override': 0.0976} | aerialWon: 1.9688 -> 1.1 totalShots: 1.1292 -> 0.9942 shotOffTarget: 0.7593 -> 0.6685 onTargetScoringAttempt: 0.3699 -> 0.3257 bigChanceMissed: 0.3313 -> 0.2917 goals: 0.1166 -> 0.1027 expectedGoals: 0.1109 -> 0.0976 expectedGoalsOnTarget: 0.0853 -> 0.0751 | 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.07 (squad xG sum 1.5371, xG scale 0.6942, xA scale 0.7186, team xA 0.69 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.067
squad_xg_sum=1.5371
squad_xa_sum=0.9652
team_expected_assists=0.6935
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0976 -> 0.0677 expected_assists: 0.0921 -> 0.0662 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 82.0) | match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0655
goal_rate=0.1027
scorer_weight=0.07 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0641
assist_rate=0.1027
provider_weight=0.0711 | - |
|
| Dan Ndoye | F | 69 | 0 | 0.16 | 0.08 | 114% | 2 | 0.8 | 6.8 | 33.7 | 34 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0095, quality 0.746) | market_value_eur=34000000
quality_factor=0.7455
boost_factor=1.0095
reference_quality=0.505
history_matches=33
history_shrink=0.1316 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0080) | blend_weight=0.008
history_matches=33
season_overlap_discount=1.0
per90_to_match_factor=0.7612
prior_reliability=0.0933
competition=Premier League | fouls: 0.7663 -> 0.7732 totalCross: 0.7986 -> 0.7922 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Elliot Anderson, Matheus Nunes', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle', 'duel_win_rate': 0.225, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.9338, 'skill_edge': -0.057, 'height_edge': 0.012, 'attacker_skill': 0.7455, 'defender_skill': 0.8723, 'attacker_role': 'SS', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Elliot Anderson', 'market_value': 109000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8984}, {'player': 'Matheus Nunes', 'market_value': 43000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8462}], 'xg_override': 0.2354} | totalShots: 2.1009 -> 1.9618 shotOffTarget: 1.3998 -> 1.3071 onTargetScoringAttempt: 0.7011 -> 0.6547 bigChanceMissed: 0.6101 -> 0.5697 expectedGoals: 0.2521 -> 0.2354 goals: 0.2316 -> 0.2163 expectedGoalsOnTarget: 0.1768 -> 0.1651 | 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.07 (squad xG sum 1.5371, xG scale 0.6942, xA scale 0.7186, team xA 0.69 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.067
squad_xg_sum=1.5371
squad_xa_sum=0.9652
team_expected_assists=0.6935
team_xa_to_xg_ratio=0.65 | expected_goals: 0.2354 -> 0.1634 expected_assists: 0.0684 -> 0.0492 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 77.0) | match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.1507
goal_rate=0.2163
scorer_weight=0.1525 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.048
assist_rate=0.0051
provider_weight=0.0394 | - |
|
| Liam Delap | F | 79 | 0 | 0.19 | 0.19 | ok | 2 | 1.4 | 6.7 | 52.9 | 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.0095, quality 0.764) | market_value_eur=37000000
quality_factor=0.7641
boost_factor=1.0095
reference_quality=0.505
history_matches=36
history_shrink=0.122 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0016) | blend_weight=0.0016
history_matches=36
season_overlap_discount=1.0
per90_to_match_factor=0.88
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': 'Matheus Nunes, Rúben Dias', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.9391, 'skill_edge': -0.0434, 'height_edge': 0.002, 'attacker_skill': 0.7641, 'defender_skill': 0.8606, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Matheus Nunes', 'market_value': 43000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8462}, {'player': 'Rúben Dias', 'market_value': 55000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8751}], 'xg_override': 0.2672} | totalShots: 2.2508 -> 2.1137 shotOffTarget: 1.5302 -> 1.437 onTargetScoringAttempt: 0.718 -> 0.6743 bigChanceMissed: 0.4986 -> 0.4682 expectedGoals: 0.2845 -> 0.2672 goals: 0.2722 -> 0.2556 expectedGoalsOnTarget: 0.1002 -> 0.0941 | 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.07 (squad xG sum 1.5371, xG scale 0.6942, xA scale 0.7186, team xA 0.69 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.067
squad_xg_sum=1.5371
squad_xa_sum=0.9652
team_expected_assists=0.6935
team_xa_to_xg_ratio=0.65 | expected_goals: 0.2672 -> 0.1855 expected_assists: 0.0632 -> 0.0454 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 77.0) | match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.1693
goal_rate=0.2556
scorer_weight=0.1787 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0444
assist_rate=0.0
provider_weight=0.0363 | - |
|
| Igor Jesus | F | 80 | 0 | 0.17 | 0.15 | ok | 2 | 1.4 | 6.8 | 55.6 | 29 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0058, quality 0.686) | market_value_eur=26000000
quality_factor=0.6858
boost_factor=1.0058
reference_quality=0.505
history_matches=42
history_shrink=0.1064 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0092) | blend_weight=0.0092
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.8877
prior_reliability=0.1333
competition=Premier League | fouls: 1.5816 -> 1.5875 totalShots: 2.0962 -> 2.1016 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Elliot Anderson, Matheus Nunes', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.8649, 'skill_edge': -0.0839, 'height_edge': -0.008, 'attacker_skill': 0.6858, 'defender_skill': 0.8723, 'attacker_role': 'SS', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Elliot Anderson', 'market_value': 109000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8984}, {'player': 'Matheus Nunes', 'market_value': 43000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8462}], 'xg_override': 0.2446} | totalShots: 2.1016 -> 1.8177 shotOffTarget: 1.3054 -> 1.129 onTargetScoringAttempt: 0.7917 -> 0.6847 goals: 0.3096 -> 0.2678 expectedGoals: 0.2828 -> 0.2446 expectedGoalsOnTarget: 0.212 -> 0.1834 bigChanceMissed: 0.2081 -> 0.18 | 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.07 (squad xG sum 1.5371, xG scale 0.6942, xA scale 0.7186, team xA 0.69 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.067
squad_xg_sum=1.5371
squad_xa_sum=0.9652
team_expected_assists=0.6935
team_xa_to_xg_ratio=0.65 | expected_goals: 0.2446 -> 0.1698 expected_assists: 0.0567 -> 0.0407 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 77.0) | match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.1562
goal_rate=0.2678
scorer_weight=0.1832 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0399
assist_rate=0.1175
provider_weight=0.0509 | - |
|
| Team totals | 0 | 1.07 | | 16 | | 6.9 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| John Victor | G | 4.4m | 11.0% | Market-value substitute prior |
| Ousmane Diomande | D | 15.0m | 36.4% | Market-value substitute prior |
| Jair | D | 14.6m | 34.3% | Market-value substitute prior |
| Ibrahim Sangaré | M | 22.8m | 32.3% | Market-value substitute prior |
| Nicolás Domínguez | M | 10.6m | 70.1% | Market-value substitute prior |
| Callum Hudson Odoi | F | 26.3m | 60.3% | Market-value substitute prior |
Man City — projected line vs season baseline (4-2-3-1)
| Player | Pos | Min | Proj G | Proj xG | Season xG/g | | Proj Sh | Season Sh/g | Proj Rtg | Season Rtg | Rec | Model / FBref Prior |
|---|
| Gianluigi Donnarumma | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 7.0 | 60.1 | 33 | FBref Prior G_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost G_service raw output over 3 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0095, quality 0.809) | market_value_eur=46000000
quality_factor=0.8089
boost_factor=1.0095
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.8616 -> 2.8538 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Liam Delap, Igor Jesus', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.2421} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.78 (squad xG sum 1.4796, xG scale 1.2030, xA scale 1.1857, team xA 1.42 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.78
squad_xg_sum=1.4796
squad_xa_sum=1.201
team_expected_assists=1.424
team_xa_to_xg_ratio=0.8 | shots_faced: 11.8 -> 10.1 expected_saves: 2.89 -> 2.47 high_pressure_saves: 0.99 -> 0.85 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 89.0) | match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.9743 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by 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.3335 | - |
|
| Marc Guéhi | D | 84 | 0 | 0.09 | 0.14 | 32% | 1 | 0.8 | 7.1 | 60.0 | 33 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0115, quality 0.872) | market_value_eur=71000000
quality_factor=0.8721
boost_factor=1.0115
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.9282
prior_reliability=0.1333
competition=Premier League | wonTackle: 0.5519 -> 0.5637 interceptionWon: 0.8281 -> 0.8332 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Xaver Schlager', 'matchup_zone': 'Right Wingback vs Left Back — Overlapping Run'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.78 (squad xG sum 1.4796, xG scale 1.2030, xA scale 1.1857, team xA 1.42 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.78
squad_xg_sum=1.4796
squad_xa_sum=1.201
team_expected_assists=1.424
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0765 -> 0.092 expected_assists: 0.0506 -> 0.06 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 85.0) | match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0879
goal_rate=0.0698
scorer_weight=0.0871 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0582
assist_rate=0.1191
provider_weight=0.075 | - |
|
| Rúben Dias | D | 89 | 0 | 0.06 | 0.03 | 134% | 1 | 0.3 | 7.0 | 46.0 | 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.0126, quality 0.840) | market_value_eur=55000000
quality_factor=0.8399
boost_factor=1.0126
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.9884
prior_reliability=0.1333
competition=Premier League | fouls: 1.4023 -> 1.3871 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Liam Delap', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.78 (squad xG sum 1.4796, xG scale 1.2030, xA scale 1.1857, team xA 1.42 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.78
squad_xg_sum=1.4796
squad_xa_sum=1.201
team_expected_assists=1.424
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0492 -> 0.0592 expected_assists: 0.0604 -> 0.0716 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 87.0) | match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0575
goal_rate=0.0112
scorer_weight=0.0474 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0691
assist_rate=0.0
provider_weight=0.0573 | - |
|
| Matheus Nunes | D | 86 | 0 | 0.03 | 0.01 | 310% | 0 | 0.1 | 6.9 | 52.5 | 33 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0097, quality 0.796) | market_value_eur=43000000
quality_factor=0.7957
boost_factor=1.0097
reference_quality=0.505
history_matches=40
history_shrink=0.1111 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0019) | blend_weight=0.0019
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=0.9574
prior_reliability=0.0267
competition=Premier League | totalCross: 1.1608 -> 1.1678 | 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': 'Liam Delap', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.78 (squad xG sum 1.4796, xG scale 1.2030, xA scale 1.1857, team xA 1.42 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.78
squad_xg_sum=1.4796
squad_xa_sum=1.201
team_expected_assists=1.424
team_xa_to_xg_ratio=0.8 | expected_assists: 0.0492 -> 0.0583 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 83.0) | match_squad_rank=11
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0287
goal_rate=0.0005
scorer_weight=0.0233 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0566
assist_rate=0.0421
provider_weight=0.0541 | - |
|
| Abdukodir Khusanov | D | 89 | 0 | 0.04 | 0.02 | 69% | 1 | 0.3 | 7.0 | 47.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.0144, quality 0.813) | market_value_eur=47000000
quality_factor=0.8129
boost_factor=1.0144
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.9877
prior_reliability=0.1333
competition=Premier League | wonTackle: 0.907 -> 0.9281 fouls: 1.2869 -> 1.2695 totalShots: 0.5421 -> 0.5348 wasFouled: 0.4795 -> 0.473 | 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': 'James McAtee', 'matchup_zone': 'Left Wingback vs Right Back — Overlapping Run'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.78 (squad xG sum 1.4796, xG scale 1.2030, xA scale 1.1857, team xA 1.42 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.78
squad_xg_sum=1.4796
squad_xa_sum=1.201
team_expected_assists=1.424
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0334 -> 0.0402 expected_assists: 0.0423 -> 0.0502 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 82.0) | match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0394
goal_rate=0.0
scorer_weight=0.0322 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.049
assist_rate=0.0
provider_weight=0.0402 | - |
|
| Elliot Anderson | M | 87 | 0 | 0.06 | 0.04 | 48% | 1 | 1.0 | 7.3 | 63.1 | 33 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0113, quality 0.896) | market_value_eur=109000000
quality_factor=0.8957
boost_factor=1.0113
reference_quality=0.505
history_matches=47
history_shrink=0.0962 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0067) | blend_weight=0.0067
history_matches=47
season_overlap_discount=1.0
per90_to_match_factor=0.967
prior_reliability=0.1067
competition=Premier League | interceptionWon: 1.3574 -> 1.3685 wasFouled: 2.9373 -> 2.9298 wonTackle: 1.384 -> 1.3909 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Dan Ndoye, Igor Jesus, Morgan Gibbs-White', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.78 (squad xG sum 1.4796, xG scale 1.2030, xA scale 1.1857, team xA 1.42 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.78
squad_xg_sum=1.4796
squad_xa_sum=1.201
team_expected_assists=1.424
team_xa_to_xg_ratio=0.8 | expected_goals: 0.049 -> 0.0589 expected_assists: 0.1684 -> 0.1997 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 84.0) | match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0572
goal_rate=0.059
scorer_weight=0.0648 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.181
assist_rate=0.0844
provider_weight=0.1598 | - |
|
| Enzo Fernández | M | 83 | 0 | 0.19 | 0.18 | ok | 2 | 1.5 | 7.2 | 60.2 | 31 | XGBoost M_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0120, quality 0.897) | market_value_eur=116000000
quality_factor=0.897
boost_factor=1.012
reference_quality=0.505
history_matches=44
history_shrink=0.102 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Murillo', 'matchup_zone': 'LW vs CB', 'duel_win_rate': 0.411, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.987, 'skill_edge': 0.0152, 'height_edge': -0.024, 'attacker_skill': 0.897, 'defender_skill': 0.8633, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Murillo', 'market_value': 49000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8633}], 'xg_override': 0.1615} | aerialWon: 0.6552 -> 1.0 totalShots: 1.5751 -> 1.5546 shotOffTarget: 0.9926 -> 0.9797 onTargetScoringAttempt: 0.5825 -> 0.5749 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.78 (squad xG sum 1.4796, xG scale 1.2030, xA scale 1.1857, team xA 1.42 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.78
squad_xg_sum=1.4796
squad_xa_sum=1.201
team_expected_assists=1.424
team_xa_to_xg_ratio=0.8 | expected_goals: 0.1615 -> 0.1943 expected_assists: 0.1981 -> 0.2349 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 86.0) | match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1766
goal_rate=0.1712
scorer_weight=0.2032 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.2094
assist_rate=0.1265
provider_weight=0.1879 | - |
|
| Rayan Cherki | M | 73 | 0 | 0.25 | 0.14 | 83% | 3 | 1.6 | 7.2 | 59.7 | 34 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0128, quality 0.898) | market_value_eur=120000000
quality_factor=0.8975
boost_factor=1.0128
reference_quality=0.505
history_matches=41
history_shrink=0.1087 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0057) | blend_weight=0.0057
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=0.8119
prior_reliability=0.08
competition=Premier League | totalCross: 2.2817 -> 2.2917 fouls: 0.9869 -> 0.9966 onTargetScoringAttempt: 0.649 -> 0.6567 goalAssist: 0.2049 -> 0.2114 goals: 0.2675 -> 0.2736 wasFouled: 0.8826 -> 0.8776 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Morgan Gibbs-White', 'matchup_zone': 'CAM vs CM', 'duel_win_rate': 0.446, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 1.0378, 'skill_edge': 0.0057, 'height_edge': 0.02, 'attacker_skill': 0.8982, 'defender_skill': 0.8855, 'attacker_role': 'CAM', 'attacker_mv_price_index': 0.95, 'defender_adjusted_parts': [{'player': 'Morgan Gibbs-White', 'market_value': 76000000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.8855}], 'xg_override': 0.2076} | aerialWon: 0.0 -> 0.9 totalShots: 2.3609 -> 2.4501 shotOffTarget: 1.7042 -> 1.7686 onTargetScoringAttempt: 0.6567 -> 0.6815 expectedGoalsOnTarget: 0.4314 -> 0.4477 goals: 0.2736 -> 0.2839 expectedGoals: 0.2 -> 0.2076 bigChanceMissed: 0.1986 -> 0.2061 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.78 (squad xG sum 1.4796, xG scale 1.2030, xA scale 1.1857, team xA 1.42 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.78
squad_xg_sum=1.4796
squad_xa_sum=1.201
team_expected_assists=1.424
team_xa_to_xg_ratio=0.8 | expected_goals: 0.2076 -> 0.2497 expected_assists: 0.2018 -> 0.2391 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 86.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.221
goal_rate=0.2839
scorer_weight=0.3121 | - | integer_assist_projection | Team scoreline allocation: 1 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.2127
assist_rate=0.2114
provider_weight=0.2482 | - |
|
| Phil Foden | M | 74 | 0 | 0.16 | 0.12 | ok | 2 | 0.8 | 7.0 | 50.5 | 32 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0117, quality 0.857) | market_value_eur=62000000
quality_factor=0.8569
boost_factor=1.0117
reference_quality=0.505
history_matches=40
history_shrink=0.1111 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0092) | blend_weight=0.0092
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=0.8271
prior_reliability=0.1267
competition=Premier League | totalCross: 3.771 -> 3.7843 fouls: 0.5569 -> 0.5638 goalAssist: 0.1872 -> 0.1935 wasFouled: 1.0474 -> 1.0537 totalShots: 1.5436 -> 1.5494 onTargetScoringAttempt: 0.5485 -> 0.5435 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Murillo', 'matchup_zone': 'RW vs CB', 'duel_win_rate': 0.369, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9252, 'skill_edge': -0.0029, 'height_edge': -0.048, 'attacker_skill': 0.8569, 'defender_skill': 0.8633, 'attacker_role': 'RW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Murillo', 'market_value': 49000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8633}], 'xg_override': 0.1313} | aerialWon: 0.5132 -> 0.8 totalShots: 1.5494 -> 1.4335 shotOffTarget: 0.9951 -> 0.9207 onTargetScoringAttempt: 0.5435 -> 0.5028 bigChanceMissed: 0.2781 -> 0.2573 goals: 0.1671 -> 0.1546 expectedGoalsOnTarget: 0.1574 -> 0.1456 expectedGoals: 0.1419 -> 0.1313 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.78 (squad xG sum 1.4796, xG scale 1.2030, xA scale 1.1857, team xA 1.42 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.78
squad_xg_sum=1.4796
squad_xa_sum=1.201
team_expected_assists=1.424
team_xa_to_xg_ratio=0.8 | expected_goals: 0.1313 -> 0.158 expected_assists: 0.1959 -> 0.2323 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 84.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.1462
goal_rate=0.1546
scorer_weight=0.1783 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.2073
assist_rate=0.1935
provider_weight=0.23 | - |
|
| Ayyoub Bouaddi | M | 79 | 0 | 0.05 | 0.00 | 2950% | 1 | 0.1 | 6.9 | 26.2 | 13 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0581, quality 0.893) | market_value_eur=98000000
quality_factor=0.8926
boost_factor=1.0581
reference_quality=0.505
history_matches=5
history_shrink=0.5 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0022) | blend_weight=0.0022
history_matches=5
season_overlap_discount=1.0
per90_to_match_factor=0.8727
prior_reliability=0.0067
competition=Premier League | interceptionWon: 0.3914 -> 0.4096 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'James McAtee', 'matchup_zone': '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.78 (squad xG sum 1.4796, xG scale 1.2030, xA scale 1.1857, team xA 1.42 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.78
squad_xg_sum=1.4796
squad_xa_sum=1.201
team_expected_assists=1.424
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0456 -> 0.0549 expected_assists: 0.0485 -> 0.0575 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 80.0) | match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0534
goal_rate=0.0645
scorer_weight=0.0658 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0559
assist_rate=0.0827
provider_weight=0.0719 | - |
|
| Erling Haaland | F | 88 | 1 | 0.75 | 0.49 | 53% | 4 | 2.9 | 7.2 | 58.5 | 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.0121, quality 0.900) | market_value_eur=240000000
quality_factor=0.9
boost_factor=1.0121
reference_quality=0.505
history_matches=44
history_shrink=0.102 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0088) | blend_weight=0.0088
history_matches=44
season_overlap_discount=1.0
per90_to_match_factor=0.9803
prior_reliability=0.1333
competition=Premier League | totalShots: 3.2489 -> 3.2635 onTargetScoringAttempt: 1.4086 -> 1.4178 fouls: 0.6535 -> 0.6477 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Murillo, Neco Williams', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.285, 'pressing_faced': 'HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 1.1245, 'skill_edge': 0.0367, 'height_edge': 0.048, 'attacker_skill': 0.9, 'defender_skill': 0.8184, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Murillo', 'market_value': 49000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8633}, {'player': 'Neco Williams', 'market_value': 29000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7736}], 'xg_override': 0.6263} | totalShots: 3.2635 -> 3.6698 shotOffTarget: 1.8402 -> 2.0693 onTargetScoringAttempt: 1.4178 -> 1.5943 expectedGoalsOnTarget: 0.8394 -> 0.9439 bigChanceMissed: 0.7053 -> 0.7931 goals: 0.6349 -> 0.7139 expectedGoals: 0.557 -> 0.6263 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | goals: 1.0 -> 0 | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.78 (squad xG sum 1.4796, xG scale 1.2030, xA scale 1.1857, team xA 1.42 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.78
squad_xg_sum=1.4796
squad_xa_sum=1.201
team_expected_assists=1.424
team_xa_to_xg_ratio=0.8 | expected_goals: 0.6263 -> 0.7535 expected_assists: 0.0526 -> 0.0624 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 91.0) | match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.5293
goal_rate=0.7139
scorer_weight=0.8511 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by 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.0572
provider_weight=0.0652 | - |
|
| Team totals | 1 | 1.78 | | 17 | | 7.1 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Gerónimo Rulli | G | 4.5m | 11.3% | Market-value substitute prior |
| Nico O'Reilly | D | 15.3m | 25.3% | Market-value substitute prior |
| Joško Gvardiol | D | 15.3m | 25.2% | Market-value substitute prior |
| Mateo Kovačić | M | 22.1m | 69.9% | Market-value substitute prior |
| Floyd Samba | M | 22.0m | 49.9% | Market-value substitute prior |
| Antoine Semenyo | F | 27.1m | 37.0% | Market-value substitute prior |
Antagonist / tactical summary
Away midfield dictates play with ~52% possession expected (Morgan Gibbs-White vs Rayan Cherki). Total antagonist xG — Home: 1.19, Away: 1.13. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Midfield — possession 48.5% / 51.5%, dominance ratio 0.43, key duel: Morgan Gibbs-White vs Rayan Cherki
Liam Delap xG 0.27Dan Ndoye xG 0.24Igor Jesus xG 0.24Enzo Fernández xG 0.16Rayan Cherki xG 0.21Phil Foden xG 0.13
Summary
Antagonist matchup analysis for Forest vs Man City. Most likely scoreline: 0-1. Lambdas derived from 7 home and 4 away individual player duels. Head-to-head: Forest 2W-2D-6L vs Man City over 10 meetings.
Tactical parity between 3-4-2-1 and 4-2-3-1. Match outcome driven primarily by individual player quality. Away midfield dictates play with ~52% possession expected (Morgan Gibbs-White vs Rayan Cherki). Total antagonist xG — Home: 1.19, Away: 1.13. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Fulham vs Newcastle
Premier League · 20261107 · 4-2-3-1 vs 4-2-3-1
Predicted 1-0Winner: FulhamWinning H 1-0 (9.3%)Winning A 0-1 (7.8%)Confidence 0.66λ home/away 1.51 / 1.27Most-likely P 9.3%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset TracingAntagonist + XGBoost match analysis for Fulham vs Newcastle. 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.353, Away 1.192). Final calibrated Poisson lambdas: Home 1.513, Away 1.268 (most likely score 1-0).
Home Starters 11/11 XGBoost (9 FBref) Away Starters 11/11 XGBoost (7 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.35 / 1.19 Final λ (H/A) 1.51 / 1.27
FBref Team Priors: Fulham (Gls/90: 1.0, GA/90: 1.0 → E[λ]: 1.379) vs Newcastle United (Gls/90: 2.0, GA/90: 2.0 → E[λ]: 1.379) | Blend Weight: 0.192
Modeling Pipeline Stages (5 layers)
- 1. XGBoost player regressions for volume & event rates with market-value quality scaling
- 2. Multi-source prior blending (FBref 2026-2027 tables + Sofascore season history)
- 3. Antagonist formation duel matrix resolving 1v1 and zonal matchups
- 4. Team-level prior calibration (FBref possession and attack/defense efficiencies)
- 5. Bivariate Poisson matrix with Dixon-Coles low-score correction
Standing & form context
| Metric | Fulham | Newcastle |
|---|
| League position | 15.00 | 12.00 |
| Points per game | 1.14 | 1.37 |
| Attack index | 0.93 | 1.04 |
| Defense (concede) index | 1.11 | 1.00 |
| Form multiplier | 0.99 | 1.01 |
| Standing λ multiplier | 1.01 | 1.02 |
Lambda decomposition (how the goal rates were built)
| Stage | Fulham λ | Newcastle λ |
|---|
| FBref Squad Prior E[λ] (weight 0.192) | 1.379 | 1.379 |
| Pre-competitive-floor | 1.445 | 1.189 |
| Pre-calibration (Micro-duels) | 1.353 | 1.192 |
| Final λ | 1.513 | 1.268 |
competition calibration scale 1.056competition observed total goals 2.781quality gap applied Truemismatch score pressure applied Falsecompetitive underdog floor applied Falsestage discount 1.0
Scoreline distribution & markets
| Top 5 scorelines | P |
|---|
| 1-1 | 12.0% |
| 1-0 | 9.3% |
| 2-1 | 9.0% |
| 0-1 | 7.8% |
| 1-2 | 7.5% |
| Home win | 42.9% |
| Draw | 25.4% |
| Away win | 31.8% |
| Over 2.5 | 52.6% |
| BTTS yes | 56.1% |
Pregame fair line — favorite Fulham (42.9%), fair total 2.78, fair spread 0.24
Projected players vs season baseline
Proj = projected for this match · Season = this season's per-game average from match data · deviation badge compares projected xG to the player's season xG/game.
Fulham — projected line vs season baseline (4-2-3-1)
| Player | Pos | Min | Proj G | Proj xG | Season xG/g | | Proj Sh | Season Sh/g | Proj Rtg | Season Rtg | Rec | Model / FBref Prior |
|---|
| Bernd Leno | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 7.0 | 58.6 | 34 | FBref Prior G_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost G_service raw output over 3 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9989, quality 0.468) | market_value_eur=5500000
quality_factor=0.4683
boost_factor=0.9989
reference_quality=0.505
history_matches=47
history_shrink=0.0962 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0083) | blend_weight=0.0083
history_matches=47
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Harvey Barnes, Joe Willock', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.1922} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_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.1733, xG scale 1.2895, xA scale 1.2895, team xA 1.19 = 0.79 x lambda) | scoreline_reset=true
team_lambda=1.513
squad_xg_sum=1.1733
squad_xa_sum=0.9264
team_expected_assists=1.1946
team_xa_to_xg_ratio=0.7896 | shots_faced: 11.3 -> 12.0 expected_saves: 2.76 -> 2.93 high_pressure_saves: 0.95 -> 1.01 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 79.0) | match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.4297 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by 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.0368 | - |
|
| Calvin Bassey | D | 90 | 0 | 0.07 | 0.04 | 70% | 1 | 0.5 | 7.0 | 53.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.0070, quality 0.710) | market_value_eur=29000000
quality_factor=0.71
boost_factor=1.007
reference_quality=0.505
history_matches=39
history_shrink=0.1136 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0098) | blend_weight=0.0098
history_matches=39
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League | fouls: 1.2751 -> 1.2675 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Harvey Barnes', '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.1733, xG scale 1.2895, xA scale 1.2895, team xA 1.19 = 0.79 x lambda) | scoreline_reset=true
team_lambda=1.513
squad_xg_sum=1.1733
squad_xa_sum=0.9264
team_expected_assists=1.1946
team_xa_to_xg_ratio=0.7896 | expected_goals: 0.0529 -> 0.0682 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 78.0) | match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0659
goal_rate=0.0046
scorer_weight=0.0546 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0197
assist_rate=0.0
provider_weight=0.0159 | - |
|
| Antonee Robinson | D | 87 | 0 | 0.09 | 0.04 | 129% | 1 | 0.3 | 6.8 | 50.4 | 32 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0070, quality 0.669) | market_value_eur=24000000
quality_factor=0.6685
boost_factor=1.007
reference_quality=0.505
history_matches=30
history_shrink=0.1429 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0118) | blend_weight=0.0118
history_matches=30
season_overlap_discount=1.0
per90_to_match_factor=0.9716
prior_reliability=0.1267
competition=Premier League | fouls: 1.4061 -> 1.3896 wonTackle: 1.6098 -> 1.6209 interceptionWon: 1.1706 -> 1.1628 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Sean Steur', 'matchup_zone': 'Right Wing vs Left Back — Flank Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.51 (squad xG sum 1.1733, xG scale 1.2895, xA scale 1.2895, team xA 1.19 = 0.79 x lambda) | scoreline_reset=true
team_lambda=1.513
squad_xg_sum=1.1733
squad_xa_sum=0.9264
team_expected_assists=1.1946
team_xa_to_xg_ratio=0.7896 | expected_goals: 0.0702 -> 0.0905 expected_assists: 0.0732 -> 0.0944 | 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.0865
goal_rate=0.0389
scorer_weight=0.0724 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0901
assist_rate=0.0
provider_weight=0.0755 | - |
|
| David Affengruber | D | 89 | 0 | 0.08 | 0.03 | 147% | 1 | 0.5 | 7.0 | 56.9 | 35 | 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.0032, quality 0.612) | market_value_eur=18100000
quality_factor=0.612
boost_factor=1.0032
reference_quality=0.505
history_matches=45
history_shrink=0.1 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Joe Willock', '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.1733, xG scale 1.2895, xA scale 1.2895, team xA 1.19 = 0.79 x lambda) | scoreline_reset=true
team_lambda=1.513
squad_xg_sum=1.1733
squad_xa_sum=0.9264
team_expected_assists=1.1946
team_xa_to_xg_ratio=0.7896 | expected_goals: 0.0588 -> 0.0758 expected_assists: 0.0296 -> 0.0382 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 76.0) | match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.073
goal_rate=0.0141
scorer_weight=0.0606 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0375
assist_rate=0.0131
provider_weight=0.0306 | - |
|
| Timothy Castagne | D | 87 | 0 | 0.08 | 0.05 | 57% | 1 | 0.4 | 6.8 | 50.4 | 34 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9996, quality 0.494) | market_value_eur=7600000
quality_factor=0.4939
boost_factor=0.9996
reference_quality=0.505
history_matches=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.9632
prior_reliability=0.1133
competition=Premier League | wasFouled: 0.5543 -> 0.569 fouls: 1.1517 -> 1.1661 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Harvey Barnes', '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.1733, xG scale 1.2895, xA scale 1.2895, team xA 1.19 = 0.79 x lambda) | scoreline_reset=true
team_lambda=1.513
squad_xg_sum=1.1733
squad_xa_sum=0.9264
team_expected_assists=1.1946
team_xa_to_xg_ratio=0.7896 | expected_goals: 0.0613 -> 0.079 expected_assists: 0.1336 -> 0.1723 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 75.0) | match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.076
goal_rate=0.0
scorer_weight=0.0632 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1583
assist_rate=0.053
provider_weight=0.1378 | - |
|
| Alex Iwobi | M | 81 | 0 | 0.21 | 0.08 | 174% | 2 | 1.1 | 7.2 | 52.6 | 37 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0047, quality 0.641) | market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.0047
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.8991
prior_reliability=0.1333
competition=Premier League | totalCross: 4.7632 -> 4.7379 totalShots: 1.9683 -> 1.953 interceptionWon: 0.5573 -> 0.5653 onTargetScoringAttempt: 0.6321 -> 0.6257 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.39, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.8678, 'skill_edge': -0.1059, 'height_edge': 0.016, 'attacker_skill': 0.6408, 'defender_skill': 0.8762, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Lewis Hall', 'market_value': 52000000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.8762}], 'xg_override': 0.1657} | aerialWon: 0.0602 -> 1.1 totalShots: 1.9619 -> 1.7026 shotOffTarget: 1.3362 -> 1.1596 onTargetScoringAttempt: 0.6257 -> 0.543 bigChanceMissed: 0.3515 -> 0.305 goals: 0.2091 -> 0.1815 expectedGoals: 0.191 -> 0.1657 expectedGoalsOnTarget: 0.1098 -> 0.0953 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_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.1733, xG scale 1.2895, xA scale 1.2895, team xA 1.19 = 0.79 x lambda) | scoreline_reset=true
team_lambda=1.513
squad_xg_sum=1.1733
squad_xa_sum=0.9264
team_expected_assists=1.1946
team_xa_to_xg_ratio=0.7896 | expected_goals: 0.1657 -> 0.2137 expected_assists: 0.1983 -> 0.2557 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 80.0) | match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1924
goal_rate=0.1815
scorer_weight=0.2293 | - | integer_assist_projection | Team scoreline allocation: 1 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.2256
assist_rate=0.1265
provider_weight=0.2046 | - |
|
| Josh King | M | 78 | 0 | 0.22 | 0.10 | 115% | 2 | 1.0 | 6.9 | 50.8 | 31 | XGBoost M_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.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': 'Lewis Miley, Joelinton', 'matchup_zone': 'Attacking Mid vs Double Pivot — Tight Space Battle', 'duel_win_rate': 0.214, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 0.9615, 'skill_edge': 0.0338, 'height_edge': -0.06, 'attacker_skill': 0.7964, 'defender_skill': 0.7213, 'attacker_role': 'CAM', 'attacker_mv_price_index': 0.95, 'defender_adjusted_parts': [{'player': 'Lewis Miley', 'market_value': 32000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.7679}, {'player': 'Joelinton', 'market_value': 21000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.6747}], 'xg_override': 0.1703} | aerialWon: 0.2495 -> 0.8 totalShots: 2.0531 -> 1.9741 shotOffTarget: 1.2874 -> 1.2378 onTargetScoringAttempt: 0.7657 -> 0.7362 bigChanceMissed: 0.2746 -> 0.264 goals: 0.2107 -> 0.2026 expectedGoalsOnTarget: 0.1808 -> 0.1738 expectedGoals: 0.1771 -> 0.1703 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_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.1733, xG scale 1.2895, xA scale 1.2895, team xA 1.19 = 0.79 x lambda) | scoreline_reset=true
team_lambda=1.513
squad_xg_sum=1.1733
squad_xa_sum=0.9264
team_expected_assists=1.1946
team_xa_to_xg_ratio=0.7896 | expected_goals: 0.1703 -> 0.2196 expected_assists: 0.1434 -> 0.1849 | 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.1972
goal_rate=0.2026
scorer_weight=0.2518 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1688
assist_rate=0.1352
provider_weight=0.1771 | - |
|
| Shea Charles | M | 86 | 0 | 0.10 | 0.05 | 102% | 1 | 0.5 | 7.0 | 45.0 | 14 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0175, quality 0.669) | market_value_eur=24000000
quality_factor=0.6685
boost_factor=1.0175
reference_quality=0.505
history_matches=9
history_shrink=0.3571 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0077) | blend_weight=0.0077
history_matches=9
season_overlap_discount=1.0
per90_to_match_factor=0.96
prior_reliability=0.0333
competition=Premier League | totalShots: 0.9258 -> 0.9471 totalCross: 0.1172 -> 0.1311 wasFouled: 1.2587 -> 1.249 wonTackle: 1.1237 -> 1.1299 fouls: 0.6776 -> 0.6724 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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 Miley', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.395, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9637, 'skill_edge': -0.0287, 'height_edge': 0.004, 'attacker_skill': 0.704, 'defender_skill': 0.7679, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Lewis Miley', 'market_value': 32000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.7679}], 'xg_override': 0.0768} | aerialWon: 1.5107 -> 1.3 totalShots: 0.9471 -> 0.9127 shotOffTarget: 0.6662 -> 0.642 onTargetScoringAttempt: 0.2576 -> 0.2482 bigChanceMissed: 0.2247 -> 0.2165 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_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.1733, xG scale 1.2895, xA scale 1.2895, team xA 1.19 = 0.79 x lambda) | scoreline_reset=true
team_lambda=1.513
squad_xg_sum=1.1733
squad_xa_sum=0.9264
team_expected_assists=1.1946
team_xa_to_xg_ratio=0.7896 | expected_goals: 0.0768 -> 0.099 expected_assists: 0.0829 -> 0.1069 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 73.0) | match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0943
goal_rate=0.0711
scorer_weight=0.0945 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1014
assist_rate=0.0582
provider_weight=0.087 | - |
|
| Sander Berge | M | 85 | 0 | 0.08 | 0.04 | 116% | 1 | 0.5 | 7.0 | 54.7 | 33 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0055, quality 0.686) | market_value_eur=26000000
quality_factor=0.6858
boost_factor=1.0055
reference_quality=0.505
history_matches=44
history_shrink=0.102 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0075) | blend_weight=0.0075
history_matches=44
season_overlap_discount=1.0
per90_to_match_factor=0.943
prior_reliability=0.1133
competition=Premier League | wonTackle: 0.8683 -> 0.8618 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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 Miley', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.427, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 1.0108, 'skill_edge': -0.0207, 'height_edge': 0.028, 'attacker_skill': 0.7219, 'defender_skill': 0.7679, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Lewis Miley', 'market_value': 32000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.7679}], 'xg_override': 0.0606} | aerialWon: 0.9748 -> 1.4 totalShots: 0.5474 -> 0.5533 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_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.1733, xG scale 1.2895, xA scale 1.2895, team xA 1.19 = 0.79 x lambda) | scoreline_reset=true
team_lambda=1.513
squad_xg_sum=1.1733
squad_xa_sum=0.9264
team_expected_assists=1.1946
team_xa_to_xg_ratio=0.7896 | expected_goals: 0.0606 -> 0.0781 expected_assists: 0.0558 -> 0.072 | 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.0751
goal_rate=0.0593
scorer_weight=0.0772 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0695
assist_rate=0.0571
provider_weight=0.0729 | - |
|
| Emile Smith Rowe | M | 73 | 0 | 0.13 | 0.08 | 60% | 1 | 0.7 | 6.8 | 50.6 | 30 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0026, quality 0.586) | market_value_eur=15600000
quality_factor=0.5857
boost_factor=1.0026
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.8114
prior_reliability=0.0133
competition=Premier League | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Fabian Schär', 'matchup_zone': 'Right Wing vs Left Back — Flank Battle', 'duel_win_rate': 0.524, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0652, 'skill_edge': 0.0603, 'height_edge': -0.016, 'attacker_skill': 0.5857, 'defender_skill': 0.4516, 'attacker_role': 'RW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Fabian Schär', 'market_value': 2900000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.4516}], 'xg_override': 0.0984} | aerialWon: 0.2709 -> 1.1 totalShots: 1.0901 -> 1.1612 shotOffTarget: 0.7542 -> 0.8034 onTargetScoringAttempt: 0.332 -> 0.3536 bigChanceMissed: 0.1887 -> 0.201 expectedGoals: 0.0924 -> 0.0984 goals: 0.0908 -> 0.0967 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_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.1733, xG scale 1.2895, xA scale 1.2895, team xA 1.19 = 0.79 x lambda) | scoreline_reset=true
team_lambda=1.513
squad_xg_sum=1.1733
squad_xa_sum=0.9264
team_expected_assists=1.1946
team_xa_to_xg_ratio=0.7896 | expected_goals: 0.0984 -> 0.1269 expected_assists: 0.0416 -> 0.0536 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 77.0) | match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1192
goal_rate=0.0967
scorer_weight=0.1254 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by 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.0645
provider_weight=0.067 | - |
|
| Gonzalo García | F | 82 | 1 | 0.35 | 0.24 | 48% | 2 | 1.2 | 6.7 | 50.7 | 34 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.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.0098) | blend_weight=0.0098
history_matches=39
season_overlap_discount=1.0
per90_to_match_factor=0.9096
prior_reliability=0.1333
competition=Premier League | fouls: 0.8761 -> 0.8854 totalShots: 1.9645 -> 1.972 wasFouled: 0.262 -> 0.2684 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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.8863, 'skill_edge': -0.0314, 'height_edge': -0.046, 'attacker_skill': 0.7581, '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.2728} | totalShots: 1.972 -> 1.7478 shotOffTarget: 1.2588 -> 1.1157 bigChanceMissed: 0.7427 -> 0.6583 onTargetScoringAttempt: 0.7032 -> 0.6232 expectedGoals: 0.3078 -> 0.2728 goals: 0.2412 -> 0.2138 expectedGoalsOnTarget: 0.1307 -> 0.1158 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_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.1733, xG scale 1.2895, xA scale 1.2895, team xA 1.19 = 0.79 x lambda) | scoreline_reset=true
team_lambda=1.513
squad_xg_sum=1.1733
squad_xa_sum=0.9264
team_expected_assists=1.1946
team_xa_to_xg_ratio=0.7896 | expected_goals: 0.2728 -> 0.3519 expected_assists: 0.0568 -> 0.0732 | 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_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.2966
goal_rate=0.2138
scorer_weight=0.2876 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0706
assist_rate=0.0
provider_weight=0.0586 | - |
|
| Team totals | 1 | 1.51 | | 15 | | 6.9 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Benjamin Lecomte | G | 4.4m | 10.9% | Market-value substitute prior |
| Ryan Sessegnon | D | 18.0m | 61.8% | Market-value substitute prior |
| Joachim Andersen | D | 14.2m | 23.0% | Market-value substitute prior |
| Hugo Larsson | M | 22.9m | 54.0% | Market-value substitute prior |
| Manuel Ángel Morán | M | 22.1m | 50.2% | Market-value substitute prior |
| Oscar Bobb | F | 26.3m | 35.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 |
|---|
| Nick Pope | G | 90 | 0 | 0.00 | 0.01 | 100% | | 0.0 | 6.9 | 31.8 | 30 | XGBoost G_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost G_service raw output over 3 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9968, quality 0.437) | market_value_eur=2900000
quality_factor=0.4374
boost_factor=0.9968
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': 'Gonzalo García, Josh King', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.3528} | - | 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.27 (squad xG sum 0.9590, xG scale 1.3222, xA scale 1.3222, team xA 0.96 = 0.75 x lambda) | scoreline_reset=true
team_lambda=1.268
squad_xg_sum=0.959
squad_xa_sum=0.7236
team_expected_assists=0.9567
team_xa_to_xg_ratio=0.7545 | shots_faced: 12.9 -> 14.4 expected_saves: 3.16 -> 3.53 high_pressure_saves: 1.08 -> 1.21 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 78.0) | match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.3379 | - | 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.9545 | - |
|
| Lewis Hall | D | 89 | 0 | 0.05 | 0.03 | 83% | 1 | 0.6 | 6.9 | 52.4 | 33 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0114, quality 0.831) | market_value_eur=52000000
quality_factor=0.8309
boost_factor=1.0114
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.9861
prior_reliability=0.1333
competition=Premier League | fouls: 0.7338 -> 0.7413 wasFouled: 1.7102 -> 1.7029 wonTackle: 1.2852 -> 1.2921 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Alex Iwobi', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 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.27 (squad xG sum 0.9590, xG scale 1.3222, xA scale 1.3222, team xA 0.96 = 0.75 x lambda) | scoreline_reset=true
team_lambda=1.268
squad_xg_sum=0.959
squad_xa_sum=0.7236
team_expected_assists=0.9567
team_xa_to_xg_ratio=0.7545 | expected_goals: 0.0356 -> 0.0471 expected_assists: 0.0971 -> 0.1284 | 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 skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.046
goal_rate=0.1032
scorer_weight=0.0589 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.1205
assist_rate=0.0684
provider_weight=0.1033 | - |
|
| Sven Botman | D | 89 | 0 | 0.07 | 0.06 | ok | 1 | 0.6 | 7.1 | 47.9 | 31 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.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 | - | 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.9912
prior_reliability=0.1333
competition=Premier League | interceptionWon: 1.1257 -> 1.1125 wonTackle: 0.6733 -> 0.6654 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Gonzalo García', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 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.27 (squad xG sum 0.9590, xG scale 1.3222, xA scale 1.3222, team xA 0.96 = 0.75 x lambda) | scoreline_reset=true
team_lambda=1.268
squad_xg_sum=0.959
squad_xa_sum=0.7236
team_expected_assists=0.9567
team_xa_to_xg_ratio=0.7545 | expected_goals: 0.0495 -> 0.0654 expected_assists: 0.0381 -> 0.0504 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 81.0) | match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0633
goal_rate=0.1396
scorer_weight=0.0818 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0492
assist_rate=0.0
provider_weight=0.0403 | - |
|
| Malick Thiaw | D | 90 | 0 | 0.07 | 0.10 | 34% | 0 | 0.5 | 6.8 | 55.9 | 32 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0095, quality 0.809) | market_value_eur=46000000
quality_factor=0.8089
boost_factor=1.0095
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.9983
prior_reliability=0.1333
competition=Premier League | wasFouled: 0.3308 -> 0.3413 interceptionWon: 0.9739 -> 0.9651 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Gonzalo García', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 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.27 (squad xG sum 0.9590, xG scale 1.3222, xA scale 1.3222, team xA 0.96 = 0.75 x lambda) | scoreline_reset=true
team_lambda=1.268
squad_xg_sum=0.959
squad_xa_sum=0.7236
team_expected_assists=0.9567
team_xa_to_xg_ratio=0.7545 | expected_goals: 0.0521 -> 0.0689 expected_assists: 0.0247 -> 0.0327 | 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 skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0666
goal_rate=0.0131
scorer_weight=0.0551 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0322
assist_rate=0.0
provider_weight=0.0262 | - |
|
| Fabian Schär | D | 88 | 0 | 0.12 | 0.02 | 501% | 1 | 0.1 | 7.0 | 18.2 | 16 | 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.9958, quality 0.437) | market_value_eur=2900000
quality_factor=0.4374
boost_factor=0.9958
reference_quality=0.505
history_matches=19
history_shrink=0.2083 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Emile Smith Rowe', 'matchup_zone': 'Right Wing vs Left Back — Flank Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.27 (squad xG sum 0.9590, xG scale 1.3222, xA scale 1.3222, team xA 0.96 = 0.75 x lambda) | scoreline_reset=true
team_lambda=1.268
squad_xg_sum=0.959
squad_xa_sum=0.7236
team_expected_assists=0.9567
team_xa_to_xg_ratio=0.7545 | expected_goals: 0.0915 -> 0.121 expected_assists: 0.0315 -> 0.0416 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 81.0) | match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.114
goal_rate=0.0
scorer_weight=0.0968 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0407
assist_rate=0.0
provider_weight=0.0333 | - |
|
| Lewis Miley | M | 82 | 0 | 0.05 | 0.03 | 55% | 0 | 0.2 | 6.9 | 50.6 | 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.0097, quality 0.732) | market_value_eur=32000000
quality_factor=0.732
boost_factor=1.0097
reference_quality=0.505
history_matches=30
history_shrink=0.1429 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0111) | blend_weight=0.0111
history_matches=30
season_overlap_discount=1.0
per90_to_match_factor=0.9129
prior_reliability=0.12
competition=Premier League | totalCross: 1.8178 -> 1.7975 wasFouled: 0.1804 -> 0.1897 wonTackle: 1.1649 -> 1.1576 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Shea Charles', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.445, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 1.0363, 'skill_edge': 0.0287, 'height_edge': -0.004, 'attacker_skill': 0.7679, 'defender_skill': 0.704, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Shea Charles', 'market_value': 24000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.704}], 'xg_override': 0.038} | aerialWon: 1.7925 -> 1.2 totalShots: 0.394 -> 0.4083 shotOffTarget: 0.266 -> 0.2757 | 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.27 (squad xG sum 0.9590, xG scale 1.3222, xA scale 1.3222, team xA 0.96 = 0.75 x lambda) | scoreline_reset=true
team_lambda=1.268
squad_xg_sum=0.959
squad_xa_sum=0.7236
team_expected_assists=0.9567
team_xa_to_xg_ratio=0.7545 | expected_goals: 0.038 -> 0.0502 expected_assists: 0.0765 -> 0.1011 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 77.0) | match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.049
goal_rate=0.0469
scorer_weight=0.0553 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0962
assist_rate=0.0742
provider_weight=0.0993 | - |
|
| Nico González | M | 77 | 0 | 0.06 | 0.01 | 613% | 1 | 0.2 | 7.1 | 34.4 | 28 | 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.0138, quality 0.837) | market_value_eur=54000000
quality_factor=0.837
boost_factor=1.0138
reference_quality=0.505
history_matches=31
history_shrink=0.1389 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Shea Charles, Sander Berge', 'matchup_zone': 'Attacking Mid vs Double Pivot — Tight Space Battle', 'duel_win_rate': 0.275, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 1.052, 'skill_edge': 0.0594, 'height_edge': -0.024, 'attacker_skill': 0.8449, 'defender_skill': 0.713, 'attacker_role': 'CAM', 'attacker_mv_price_index': 0.95, 'defender_adjusted_parts': [{'player': 'Shea Charles', 'market_value': 24000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.704}, {'player': 'Sander Berge', 'market_value': 26000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.7219}], 'xg_override': 0.0434} | aerialWon: 1.1459 -> 1.2 totalShots: 0.5823 -> 0.6126 shotOffTarget: 0.4404 -> 0.4633 onTargetScoringAttempt: 0.1419 -> 0.1493 | 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.27 (squad xG sum 0.9590, xG scale 1.3222, xA scale 1.3222, team xA 0.96 = 0.75 x lambda) | scoreline_reset=true
team_lambda=1.268
squad_xg_sum=0.959
squad_xa_sum=0.7236
team_expected_assists=0.9567
team_xa_to_xg_ratio=0.7545 | expected_goals: 0.0434 -> 0.0574 expected_assists: 0.0741 -> 0.098 | 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 skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0558
goal_rate=0.0468
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.0934
assist_rate=0.0665
provider_weight=0.092 | - |
|
| Joelinton | M | 86 | 0 | 0.10 | 0.07 | 47% | 1 | 1.0 | 6.8 | 48.1 | 21 | XGBoost M_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0058, quality 0.641) | market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.0058
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': 'Shea Charles', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.395, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 0.963, 'skill_edge': -0.0132, 'height_edge': -0.012, 'attacker_skill': 0.6747, 'defender_skill': 0.704, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Shea Charles', 'market_value': 24000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.704}], 'xg_override': 0.0787} | aerialWon: 3.3331 -> 1.2 totalShots: 1.0305 -> 0.9924 shotOffTarget: 0.7464 -> 0.7188 onTargetScoringAttempt: 0.2841 -> 0.2736 | 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.27 (squad xG sum 0.9590, xG scale 1.3222, xA scale 1.3222, team xA 0.96 = 0.75 x lambda) | scoreline_reset=true
team_lambda=1.268
squad_xg_sum=0.959
squad_xa_sum=0.7236
team_expected_assists=0.9567
team_xa_to_xg_ratio=0.7545 | expected_goals: 0.0787 -> 0.1041 expected_assists: 0.0516 -> 0.0682 | 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.0989
goal_rate=0.0815
scorer_weight=0.1064 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0659
assist_rate=0.0732
provider_weight=0.0827 | - |
|
| Joe Willock | M | 72 | 0 | 0.21 | 0.07 | 204% | 2 | 0.9 | 6.9 | 44.2 | 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.0046, quality 0.618) | market_value_eur=18700000
quality_factor=0.6181
boost_factor=1.0046
reference_quality=0.505
history_matches=32
history_shrink=0.1351 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0070) | blend_weight=0.007
history_matches=32
season_overlap_discount=1.0
per90_to_match_factor=0.8034
prior_reliability=0.08
competition=Premier League | fouls: 0.7199 -> 0.7384 wasFouled: 1.1597 -> 1.1516 totalCross: 0.4003 -> 0.4069 totalShots: 1.888 -> 1.8941 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'David Affengruber', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.454, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9619, 'skill_edge': -0.0299, 'height_edge': 0.004, 'attacker_skill': 0.6181, 'defender_skill': 0.6846, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'David Affengruber', 'market_value': 18100000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.6846}], 'xg_override': 0.1568} | aerialWon: 0.3971 -> 1.2 totalShots: 1.8941 -> 1.8219 shotOffTarget: 1.2799 -> 1.2311 onTargetScoringAttempt: 0.6087 -> 0.5855 expectedGoals: 0.163 -> 0.1568 goals: 0.157 -> 0.151 | 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.27 (squad xG sum 0.9590, xG scale 1.3222, xA scale 1.3222, team xA 0.96 = 0.75 x lambda) | scoreline_reset=true
team_lambda=1.268
squad_xg_sum=0.959
squad_xa_sum=0.7236
team_expected_assists=0.9567
team_xa_to_xg_ratio=0.7545 | expected_goals: 0.1568 -> 0.2073 expected_assists: 0.1083 -> 0.1432 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 76.0) | match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.1872
goal_rate=0.151
scorer_weight=0.2015 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.1334
assist_rate=0.1131
provider_weight=0.1475 | - |
|
| Sean Steur | M | 74 | 0 | 0.04 | - | n/a | 0 | 0.0 | 6.8 | 30.7 | 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.0185, quality 0.641) | market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.0185
reference_quality=0.505
history_matches=6
history_shrink=0.4545 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0157) | blend_weight=0.0157
history_matches=6
season_overlap_discount=1.0
per90_to_match_factor=0.8189
prior_reliability=0.0533
competition=Premier League | wonTackle: 0.7714 -> 0.7593 totalShots: 0.4913 -> 0.4836 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Antonee Robinson', 'matchup_zone': 'Right Wing vs Left Back — Flank Battle', 'duel_win_rate': 0.432, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 0.9295, 'skill_edge': -0.048, 'height_edge': 0.0, 'attacker_skill': 0.6408, 'defender_skill': 0.7474, 'attacker_role': 'RW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Antonee Robinson', 'market_value': 24000000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.7474}], 'xg_override': 0.0327} | aerialWon: 0.0 -> 1.1 totalShots: 0.489 -> 0.4545 shotOffTarget: 0.352 -> 0.3272 onTargetScoringAttempt: 0.137 -> 0.1273 | 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.27 (squad xG sum 0.9590, xG scale 1.3222, xA scale 1.3222, team xA 0.96 = 0.75 x lambda) | scoreline_reset=true
team_lambda=1.268
squad_xg_sum=0.959
squad_xa_sum=0.7236
team_expected_assists=0.9567
team_xa_to_xg_ratio=0.7545 | expected_goals: 0.0327 -> 0.0432 expected_assists: 0.0345 -> 0.0456 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 72.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.0423
goal_rate=0.0554
scorer_weight=0.054 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0446
assist_rate=0.0533
provider_weight=0.0557 | - |
|
| Harvey Barnes | F | 85 | 0 | 0.35 | 0.15 | 138% | 3 | 1.7 | 6.9 | 57.9 | 39 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0079, quality 0.770) | market_value_eur=38000000
quality_factor=0.7699
boost_factor=1.0079
reference_quality=0.505
history_matches=45
history_shrink=0.1 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0087) | blend_weight=0.0087
history_matches=45
season_overlap_discount=1.0
per90_to_match_factor=0.943
prior_reliability=0.1333
competition=Premier League | totalCross: 3.6855 -> 3.6658 totalShots: 2.2026 -> 2.1918 onTargetScoringAttempt: 0.7315 -> 0.7252 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Calvin Bassey, Timothy Castagne', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.238, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.0566, 'skill_edge': 0.0545, 'height_edge': -0.016, 'attacker_skill': 0.7699, 'defender_skill': 0.6488, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Calvin Bassey', 'market_value': 29000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7736}, {'player': 'Timothy Castagne', 'market_value': 7600000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.524}], 'xg_override': 0.2652} | totalShots: 2.1962 -> 2.3205 shotOffTarget: 1.471 -> 1.5543 onTargetScoringAttempt: 0.7252 -> 0.7662 goals: 0.2942 -> 0.3109 expectedGoals: 0.251 -> 0.2652 expectedGoalsOnTarget: 0.2049 -> 0.2165 bigChanceMissed: 0.1296 -> 0.1369 | 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.27 (squad xG sum 0.9590, xG scale 1.3222, xA scale 1.3222, team xA 0.96 = 0.75 x lambda) | scoreline_reset=true
team_lambda=1.268
squad_xg_sum=0.959
squad_xa_sum=0.7236
team_expected_assists=0.9567
team_xa_to_xg_ratio=0.7545 | expected_goals: 0.2652 -> 0.3507 expected_assists: 0.1131 -> 0.1496 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 80.0) | match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.2958
goal_rate=0.3109
scorer_weight=0.4016 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.1389
assist_rate=0.2277
provider_weight=0.187 | - |
|
| Team totals | 0 | 1.27 | | 11 | | 6.9 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Lukáš Horníček | G | 5.3m | 15.1% | 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 |
| Mason Miley | M | 22.0m | 49.9% | Market-value substitute prior |
| Matías Fernández-Pardo | F | 26.9m | 63.3% | Market-value substitute prior |
Antagonist / tactical summary
Midfield is evenly contested — Josh King vs Nico González will be the pivotal duel. Total antagonist xG — Home: 0.84, Away: 0.61. 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.7% / 50.3%, dominance ratio 0.49, key duel: Josh King vs Nico González
Alex Iwobi xG 0.17Emile Smith Rowe xG 0.10Josh King xG 0.17Joe Willock xG 0.16Sean Steur xG 0.03Nico González xG 0.04
Summary
Antagonist matchup analysis for Fulham vs Newcastle. Most likely scoreline: 1-0. Lambdas derived from 6 home and 6 away individual player duels. Head-to-head: Fulham 3W-0D-7L vs Newcastle over 10 meetings.
Tactical parity between 4-2-3-1 and 4-2-3-1. Match outcome driven primarily by individual player quality. Midfield is evenly contested — Josh King vs Nico González will be the pivotal duel. Total antagonist xG — Home: 0.84, Away: 0.61. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Valencia vs Real Madrid
LaLiga · 20261107 · 4-4-2 vs 4-2-3-1
Predicted 0-2Winner: Real MadridWinning H 2-1 (4.1%)Winning A 0-2 (10.5%)Confidence 0.73λ home/away 0.94 / 2.26Most-likely P 10.5%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset TracingAntagonist + XGBoost match analysis for Valencia 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-4-2 vs 4-2-3-1 (duel lambdas: Home 0.859, Away 2.463). Final calibrated Poisson lambdas: Home 0.935, Away 2.256 (most likely score 0-2).
Home Starters 11/11 XGBoost (8 FBref) Away Starters 11/11 XGBoost (8 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 0.86 / 2.46 Final λ (H/A) 0.94 / 2.26
FBref Team Priors: Valencia (Gls/90: 0.3333333333333333, GA/90: 0.33 → E[λ]: 0.822) vs Real Madrid (Gls/90: 3.0, GA/90: 3.33 → E[λ]: 0.733) | 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 | Valencia | Real Madrid |
|---|
| League position | 19.00 | 3.00 |
| Points per game | 0.89 | 2.01 |
| Attack index | 0.76 | 1.30 |
| Defense (concede) index | 0.85 | 1.06 |
| Form multiplier | 0.95 | 1.05 |
| Standing λ multiplier | 0.83 | 1.15 |
Lambda decomposition (how the goal rates were built)
| Stage | Valencia λ | Real Madrid λ |
|---|
| FBref Squad Prior E[λ] (weight 0.228) | 0.822 | 0.733 |
| Pre-mismatch | 1.077 | 2.678 |
| Pre-calibration (Micro-duels) | 0.859 | 2.463 |
| Final λ | 0.935 | 2.256 |
competition calibration scale 0.85competition observed total goals 2.984quality gap applied Truemismatch score pressure applied Truecompetitive underdog floor applied Falsestage discount 1.0
Scoreline distribution & markets
| Top 5 scorelines | P |
|---|
| 0-2 | 10.5% |
| 1-2 | 9.8% |
| 0-1 | 9.2% |
| 1-1 | 8.7% |
| 0-3 | 7.9% |
| Home win | 14.2% |
| Draw | 18.7% |
| Away win | 67.2% |
| Over 2.5 | 61.8% |
| BTTS yes | 54.4% |
Pregame fair line — favorite Real Madrid (67.2%), fair total 3.19, fair spread -1.32
Projected players vs season baseline
Proj = projected for this match · Season = this season's per-game average from match data · deviation badge compares projected xG to the player's season xG/game.
Valencia — 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 |
|---|
| Stole Dimitrievski | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 6.9 | 63.1 | 33 | FBref Prior G_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost G_service raw output over 3 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9971, quality 0.437) | market_value_eur=2100000
quality_factor=0.4374
boost_factor=0.9971
reference_quality=0.505
history_matches=30
history_shrink=0.1429 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0186) | blend_weight=0.0186
history_matches=30
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': 'Kylian Mbappé, Arda Güler', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 2.4627} | - | 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.94 (squad xG sum 0.7768, xG scale 1.2036, xA scale 1.2036, team xA 0.72 = 0.77 x lambda) | scoreline_reset=true
team_lambda=0.935
squad_xg_sum=0.7768
squad_xa_sum=0.5964
team_expected_assists=0.7179
team_xa_to_xg_ratio=0.7678 | shots_faced: 23.4 -> 21.4 expected_saves: 5.73 -> 5.23 high_pressure_saves: 1.97 -> 1.8 | 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.0
scorer_weight=0.0
squad_weight_total=1.0185 | - | 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.7168 | - |
|
| José Copete | D | 88 | 0 | 0.04 | 0.02 | 99% | 1 | 0.6 | 6.8 | 50.6 | 9 | 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.9972, quality 0.456) | market_value_eur=4500000
quality_factor=0.456
boost_factor=0.9972
reference_quality=0.505
history_matches=21
history_shrink=0.1923 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Thiago Pitarch', 'matchup_zone': 'Right Wing vs Left Back — Flank Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.94 (squad xG sum 0.7768, xG scale 1.2036, xA scale 1.2036, team xA 0.72 = 0.77 x lambda) | scoreline_reset=true
team_lambda=0.935
squad_xg_sum=0.7768
squad_xa_sum=0.5964
team_expected_assists=0.7179
team_xa_to_xg_ratio=0.7678 | expected_goals: 0.0313 -> 0.0377 expected_assists: 0.0277 -> 0.0333 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 77.0) | match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_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.037
goal_rate=0.0
scorer_weight=0.0302 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0328
assist_rate=0.0
provider_weight=0.0266 | - |
|
| José Luis Gayà | D | 83 | 0 | 0.05 | 0.03 | 91% | 1 | 0.4 | 6.8 | 55.0 | 31 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9983, quality 0.454) | market_value_eur=4300000
quality_factor=0.4535
boost_factor=0.9983
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.9267
prior_reliability=0.0533
competition=La Liga | wasFouled: 0.8235 -> 0.8292 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Arda Güler', '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 0.94 (squad xG sum 0.7768, xG scale 1.2036, xA scale 1.2036, team xA 0.72 = 0.77 x lambda) | scoreline_reset=true
team_lambda=0.935
squad_xg_sum=0.7768
squad_xa_sum=0.5964
team_expected_assists=0.7179
team_xa_to_xg_ratio=0.7678 | expected_goals: 0.0453 -> 0.0545 expected_assists: 0.0598 -> 0.072 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 80.0) | match_squad_rank=12
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.053
goal_rate=0.0052
scorer_weight=0.0436 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0695
assist_rate=0.0313
provider_weight=0.0576 | - |
|
| Mouctar Diakhaby | D | 73 | 0 | 0.04 | 0.01 | 300% | 0 | 0.2 | 6.7 | 37.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.9944, quality 0.437) | market_value_eur=1500000
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.0301) | blend_weight=0.0301
history_matches=13
season_overlap_discount=1.0
per90_to_match_factor=0.8106
prior_reliability=0.1667
competition=La Liga | interceptionWon: 1.0322 -> 1.0499 wonTackle: 0.6469 -> 0.6372 fouls: 0.6461 -> 0.6364 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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 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.94 (squad xG sum 0.7768, xG scale 1.2036, xA scale 1.2036, team xA 0.72 = 0.77 x lambda) | scoreline_reset=true
team_lambda=0.935
squad_xg_sum=0.7768
squad_xa_sum=0.5964
team_expected_assists=0.7179
team_xa_to_xg_ratio=0.7678 | expected_goals: 0.033 -> 0.0397 | 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.0389
goal_rate=0.0342
scorer_weight=0.0403 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0089
assist_rate=0.0
provider_weight=0.0078 | - |
|
| César Tárrega | D | 83 | 0 | 0.05 | 0.02 | 133% | 1 | 0.4 | 6.9 | 49.6 | 31 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0003, quality 0.514) | market_value_eur=9300000
quality_factor=0.5142
boost_factor=1.0003
reference_quality=0.505
history_matches=39
history_shrink=0.1136 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0148) | blend_weight=0.0148
history_matches=39
season_overlap_discount=1.0
per90_to_match_factor=0.9186
prior_reliability=0.2
competition=La Liga | interceptionWon: 1.2556 -> 1.2416 wonTackle: 0.9316 -> 0.9405 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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 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.94 (squad xG sum 0.7768, xG scale 1.2036, xA scale 1.2036, team xA 0.72 = 0.77 x lambda) | scoreline_reset=true
team_lambda=0.935
squad_xg_sum=0.7768
squad_xa_sum=0.5964
team_expected_assists=0.7179
team_xa_to_xg_ratio=0.7678 | expected_goals: 0.0425 -> 0.0512 | 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 skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0499
goal_rate=0.0
scorer_weight=0.041 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.007
assist_rate=0.0
provider_weight=0.0063 | - |
|
| Javier Guerra | M | 81 | 0 | 0.16 | 0.10 | 57% | 1 | 1.1 | 6.9 | 59.0 | 37 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0053, quality 0.686) | market_value_eur=26000000
quality_factor=0.6858
boost_factor=1.0053
reference_quality=0.505
history_matches=46
history_shrink=0.098 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0115) | blend_weight=0.0115
history_matches=46
season_overlap_discount=1.0
per90_to_match_factor=0.901
prior_reliability=0.18
competition=La Liga | fouls: 1.1056 -> 1.0929 totalShots: 1.6755 -> 1.668 onTargetScoringAttempt: 0.5347 -> 0.5286 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Álvaro Carreras', 'matchup_zone': 'Left Mid vs Right Back — Wide Channel', 'duel_win_rate': 0.388, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.8943, 'skill_edge': -0.0759, 'height_edge': 0.004, 'attacker_skill': 0.7091, 'defender_skill': 0.8778, 'attacker_role': 'LM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Álvaro Carreras', 'market_value': 53000000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.8778}], 'xg_override': 0.1348} | aerialWon: 0.618 -> 1.2 totalShots: 1.6694 -> 1.4929 shotOffTarget: 1.1408 -> 1.0202 onTargetScoringAttempt: 0.5286 -> 0.4727 bigChanceMissed: 0.2735 -> 0.2446 goals: 0.1959 -> 0.1752 expectedGoals: 0.1507 -> 0.1348 expectedGoalsOnTarget: 0.1226 -> 0.1096 | 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.94 (squad xG sum 0.7768, xG scale 1.2036, xA scale 1.2036, team xA 0.72 = 0.77 x lambda) | scoreline_reset=true
team_lambda=0.935
squad_xg_sum=0.7768
squad_xa_sum=0.5964
team_expected_assists=0.7179
team_xa_to_xg_ratio=0.7678 | expected_goals: 0.1348 -> 0.1621 expected_assists: 0.126 -> 0.1517 | 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.1496
goal_rate=0.1752
scorer_weight=0.1975 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.1408
assist_rate=0.1375
provider_weight=0.1616 | - |
|
| Pepelu | M | 85 | 0 | 0.05 | 0.10 | 50% | 0 | 0.5 | 6.9 | 53.2 | 40 | 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.9995, quality 0.490) | market_value_eur=7300000
quality_factor=0.4903
boost_factor=0.9995
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': 'Federico Valverde', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.289, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.7629, 'skill_edge': -0.1773, 'height_edge': 0.016, 'attacker_skill': 0.5, 'defender_skill': 0.894, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Federico Valverde', 'market_value': 87000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.894}], 'xg_override': 0.0406} | aerialWon: 0.5012 -> 1.2 totalShots: 0.5882 -> 0.4487 shotOffTarget: 0.4094 -> 0.3123 onTargetScoringAttempt: 0.1788 -> 0.1364 expectedGoalsOnTarget: 0.1549 -> 0.1182 goals: 0.0642 -> 0.049 expectedGoals: 0.0532 -> 0.0406 | 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.94 (squad xG sum 0.7768, xG scale 1.2036, xA scale 1.2036, team xA 0.72 = 0.77 x lambda) | scoreline_reset=true
team_lambda=0.935
squad_xg_sum=0.7768
squad_xa_sum=0.5964
team_expected_assists=0.7179
team_xa_to_xg_ratio=0.7678 | expected_goals: 0.0406 -> 0.0489 expected_assists: 0.0391 -> 0.0471 | 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.0477
goal_rate=0.049
scorer_weight=0.0534 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.046
assist_rate=0.0516
provider_weight=0.0537 | - |
|
| Guido Rodríguez | M | 86 | 0 | 0.04 | 0.04 | ok | 0 | 0.6 | 7.0 | 59.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 0.9973, quality 0.445) | market_value_eur=3600000
quality_factor=0.4449
boost_factor=0.9973
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.9508
prior_reliability=0.1333
competition=La Liga | interceptionWon: 1.3963 -> 1.4088 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.266, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.7297, 'skill_edge': -0.1999, 'height_edge': 0.016, 'attacker_skill': 0.4498, 'defender_skill': 0.894, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Federico Valverde', 'market_value': 87000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.894}], 'xg_override': 0.0303} | totalShots: 0.5557 -> 0.4055 shotOffTarget: 0.3968 -> 0.2895 aerialWon: 1.2549 -> 1.2 onTargetScoringAttempt: 0.1589 -> 0.1159 goals: 0.0561 -> 0.0409 expectedGoals: 0.0415 -> 0.0303 expectedGoalsOnTarget: 0.0325 -> 0.0237 | 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.94 (squad xG sum 0.7768, xG scale 1.2036, xA scale 1.2036, team xA 0.72 = 0.77 x lambda) | scoreline_reset=true
team_lambda=0.935
squad_xg_sum=0.7768
squad_xa_sum=0.5964
team_expected_assists=0.7179
team_xa_to_xg_ratio=0.7678 | expected_goals: 0.0303 -> 0.0365 expected_assists: 0.0355 -> 0.0427 | 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 skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0358
goal_rate=0.0409
scorer_weight=0.0413 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0418
assist_rate=0.0471
provider_weight=0.0485 | - |
|
| Filip Ugrinić | M | 74 | 0 | 0.05 | 0.04 | 38% | 1 | 0.7 | 6.8 | 63.3 | 31 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9988, quality 0.471) | market_value_eur=5700000
quality_factor=0.4708
boost_factor=0.9988
reference_quality=0.505
history_matches=37
history_shrink=0.119 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0114) | blend_weight=0.0114
history_matches=37
season_overlap_discount=1.0
per90_to_match_factor=0.8234
prior_reliability=0.1467
competition=La Liga | wasFouled: 1.0776 -> 1.0994 totalShots: 0.6637 -> 0.6822 totalCross: 2.8281 -> 2.8427 onTargetScoringAttempt: 0.205 -> 0.2114 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Raúl Asencio', 'matchup_zone': 'Right Mid vs Left Back — Wide Channel', 'duel_win_rate': 0.381, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.8844, 'skill_edge': -0.0826, 'height_edge': 0.004, 'attacker_skill': 0.4785, 'defender_skill': 0.6621, 'attacker_role': 'RM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Raúl Asencio', 'market_value': 16300000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.6621}], 'xg_override': 0.044} | aerialWon: 0.3855 -> 1.2 totalShots: 0.6822 -> 0.6033 shotOffTarget: 0.4587 -> 0.4057 onTargetScoringAttempt: 0.2114 -> 0.187 goals: 0.058 -> 0.0513 expectedGoals: 0.0497 -> 0.044 | 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.94 (squad xG sum 0.7768, xG scale 1.2036, xA scale 1.2036, team xA 0.72 = 0.77 x lambda) | scoreline_reset=true
team_lambda=0.935
squad_xg_sum=0.7768
squad_xa_sum=0.5964
team_expected_assists=0.7179
team_xa_to_xg_ratio=0.7678 | expected_goals: 0.044 -> 0.053 expected_assists: 0.0845 -> 0.1017 | 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.0516
goal_rate=0.0513
scorer_weight=0.0571 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0967
assist_rate=0.07
provider_weight=0.0907 | - |
|
| Arnaut Danjuma | F | 83 | 0 | 0.11 | 0.08 | 37% | 1 | 1.0 | 6.9 | 52.8 | 35 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9977, quality 0.437) | market_value_eur=2800000
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.0092) | blend_weight=0.0092
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=0.9237
prior_reliability=0.1267
competition=La Liga | totalShots: 1.5769 -> 1.5943 wasFouled: 0.7597 -> 0.7705 fouls: 0.7168 -> 0.7236 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Dean Huijsen, Ibrahima Konaté', '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.6245, 'skill_edge': -0.1954, 'height_edge': -0.06, 'attacker_skill': 0.4374, 'defender_skill': 0.8717, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Dean Huijsen', 'market_value': 66000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8879}, {'player': 'Ibrahima Konaté', 'market_value': 46000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8555}], 'xg_override': 0.0906} | totalShots: 1.5943 -> 0.9956 shotOffTarget: 0.9717 -> 0.6068 onTargetScoringAttempt: 0.6088 -> 0.3802 bigChanceMissed: 0.4115 -> 0.257 goals: 0.1932 -> 0.1207 expectedGoals: 0.1451 -> 0.0906 expectedGoalsOnTarget: 0.107 -> 0.0668 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.94 (squad xG sum 0.7768, xG scale 1.2036, xA scale 1.2036, team xA 0.72 = 0.77 x lambda) | scoreline_reset=true
team_lambda=0.935
squad_xg_sum=0.7768
squad_xa_sum=0.5964
team_expected_assists=0.7179
team_xa_to_xg_ratio=0.7678 | expected_goals: 0.0906 -> 0.1091 expected_assists: 0.0938 -> 0.1129 | 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 skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.1034
goal_rate=0.1207
scorer_weight=0.1325 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.1068
assist_rate=0.032
provider_weight=0.0903 | - |
|
| Diego López | F | 72 | 0 | 0.12 | 0.03 | 335% | 1 | 0.4 | 6.8 | 49.6 | 23 | 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.0005, quality 0.518) | market_value_eur=9600000
quality_factor=0.5177
boost_factor=1.0005
reference_quality=0.505
history_matches=34
history_shrink=0.1282 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Dean Huijsen, Ibrahima Konaté', '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.6777, 'skill_edge': -0.1593, 'height_edge': -0.06, 'attacker_skill': 0.5177, 'defender_skill': 0.8717, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Dean Huijsen', 'market_value': 66000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8879}, {'player': 'Ibrahima Konaté', 'market_value': 46000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8555}], 'xg_override': 0.0961} | totalShots: 1.4313 -> 0.97 shotOffTarget: 0.996 -> 0.675 onTargetScoringAttempt: 0.4353 -> 0.295 goals: 0.1757 -> 0.1191 expectedGoals: 0.1418 -> 0.0961 bigChanceMissed: 0.096 -> 0.0651 expectedGoalsOnTarget: 0.0893 -> 0.0605 | 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.94 (squad xG sum 0.7768, xG scale 1.2036, xA scale 1.2036, team xA 0.72 = 0.77 x lambda) | scoreline_reset=true
team_lambda=0.935
squad_xg_sum=0.7768
squad_xa_sum=0.5964
team_expected_assists=0.7179
team_xa_to_xg_ratio=0.7678 | expected_goals: 0.0961 -> 0.1157 expected_assists: 0.0851 -> 0.1024 | 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.1093
goal_rate=0.1191
scorer_weight=0.1339 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0973
assist_rate=0.1327
provider_weight=0.128 | - |
|
| Team totals | 0 | 0.94 | | 10 | | 6.8 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Kayne van Oevelen | G | 4.5m | 11.1% | Market-value substitute prior |
| Arnau Martínez | D | 13.9m | 22.5% | Market-value substitute prior |
| Justin De Haas | D | 13.8m | 22.2% | Market-value substitute prior |
| Harvey Elliott | M | 22.7m | 53.1% | Market-value substitute prior |
| Aaron Mayol | M | 22.1m | 50.3% | Market-value substitute prior |
| Hugo Duro | F | 22.6m | 59.8% | Market-value substitute prior |
Real Madrid — projected line vs season baseline (4-2-3-1)
| Player | Pos | Min | Proj G | Proj xG | Season xG/g | | Proj Sh | Season Sh/g | Proj Rtg | Season Rtg | Rec | Model / FBref Prior |
|---|
| Thibaut Courtois | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 7.0 | 61.6 | 26 | 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.0022, quality 0.574) | market_value_eur=14500000
quality_factor=0.5737
boost_factor=1.0022
reference_quality=0.505
history_matches=41
history_shrink=0.1087 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0141) | blend_weight=0.0141
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.2
competition=La Liga | saves: 2.7796 -> 2.7639 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Javier Guerra, Diego López', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 0.8591} | - | 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.7009, xG scale 1.3264, xA scale 1.6253, team xA 1.47 = 0.65 x lambda) | scoreline_reset=true
team_lambda=2.256
squad_xg_sum=1.7009
squad_xa_sum=0.9022
team_expected_assists=1.4664
team_xa_to_xg_ratio=0.65 | shots_faced: 8.2 -> 8.9 expected_saves: 2.01 -> 2.18 high_pressure_saves: 0.69 -> 0.75 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 90.0) | match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
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.5662 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by 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.4244 | - |
|
| Ibrahima Konaté | D | 89 | 0 | 0.04 | 0.02 | 80% | 0 | 0.3 | 6.9 | 59.9 | 32 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0091, quality 0.809) | market_value_eur=46000000
quality_factor=0.8089
boost_factor=1.0091
reference_quality=0.505
history_matches=45
history_shrink=0.1 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0087) | blend_weight=0.0087
history_matches=45
season_overlap_discount=1.0
per90_to_match_factor=0.9923
prior_reliability=0.1333
competition=La Liga | wonTackle: 0.8508 -> 0.8606 fouls: 1.0684 -> 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': 'Arnaut Danjuma', '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.7009, xG scale 1.3264, xA scale 1.6253, team xA 1.47 = 0.65 x lambda) | scoreline_reset=true
team_lambda=2.256
squad_xg_sum=1.7009
squad_xa_sum=0.9022
team_expected_assists=1.4664
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0323 -> 0.0428 expected_assists: 0.0095 -> 0.0154 | 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
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.0419
goal_rate=0.0042
scorer_weight=0.0342 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0153
assist_rate=0.0
provider_weight=0.0129 | - |
|
| Raúl Asencio | D | 87 | 0 | 0.07 | 0.04 | 85% | 0 | 0.3 | 7.0 | 37.0 | 21 | 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.0047, quality 0.593) | market_value_eur=16300000
quality_factor=0.5932
boost_factor=1.0047
reference_quality=0.505
history_matches=23
history_shrink=0.1786 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Filip Ugrinić', 'matchup_zone': 'Right Mid vs Left Back — Wide Channel'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.26 (squad xG sum 1.7009, xG scale 1.3264, xA scale 1.6253, team xA 1.47 = 0.65 x lambda) | scoreline_reset=true
team_lambda=2.256
squad_xg_sum=1.7009
squad_xa_sum=0.9022
team_expected_assists=1.4664
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0531 -> 0.0704 expected_assists: 0.0363 -> 0.059 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 80.0) | match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.068
goal_rate=0.0692
scorer_weight=0.0814 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0573
assist_rate=0.0
provider_weight=0.0472 | - |
|
| Dean Huijsen | D | 84 | 0 | 0.09 | 0.05 | 73% | 1 | 0.5 | 7.1 | 59.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.0131, quality 0.864) | market_value_eur=66000000
quality_factor=0.8644
boost_factor=1.0131
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.9372
prior_reliability=0.2
competition=La Liga | totalShots: 0.497 -> 0.504 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Arnaut Danjuma', '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.7009, xG scale 1.3264, xA scale 1.6253, team xA 1.47 = 0.65 x lambda) | scoreline_reset=true
team_lambda=2.256
squad_xg_sum=1.7009
squad_xa_sum=0.9022
team_expected_assists=1.4664
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0644 -> 0.0854 expected_assists: 0.0283 -> 0.046 | 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: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0819
goal_rate=0.0206
scorer_weight=0.0683 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by 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.0126
provider_weight=0.0368 | - |
|
| Álvaro Carreras | D | 77 | 0 | 0.05 | 0.02 | 240% | 0 | 0.1 | 6.9 | 41.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.0130, quality 0.834) | market_value_eur=53000000
quality_factor=0.834
boost_factor=1.013
reference_quality=0.505
history_matches=33
history_shrink=0.1316 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0068) | blend_weight=0.0068
history_matches=33
season_overlap_discount=1.0
per90_to_match_factor=0.8523
prior_reliability=0.08
competition=La Liga | - | 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': 'Javier Guerra', 'matchup_zone': 'Left Mid vs Right Back — Wide Channel'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.26 (squad xG sum 1.7009, xG scale 1.3264, xA scale 1.6253, team xA 1.47 = 0.65 x lambda) | scoreline_reset=true
team_lambda=2.256
squad_xg_sum=1.7009
squad_xa_sum=0.9022
team_expected_assists=1.4664
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0388 -> 0.0515 expected_assists: 0.0771 -> 0.1253 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 81.0) | match_squad_rank=12
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0502
goal_rate=0.163
scorer_weight=0.0644 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1178
assist_rate=0.1207
provider_weight=0.1566 | - |
|
| Federico Valverde | M | 81 | 0 | 0.10 | 0.07 | 34% | 1 | 1.2 | 7.0 | 68.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.0119, quality 0.887) | market_value_eur=87000000
quality_factor=0.8873
boost_factor=1.0119
reference_quality=0.505
history_matches=43
history_shrink=0.1042 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0126) | blend_weight=0.0126
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=0.8953
prior_reliability=0.1867
competition=La Liga | wonTackle: 0.6509 -> 0.6629 wasFouled: 0.4778 -> 0.4718 interceptionWon: 1.3539 -> 1.3489 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Pepelu', 'matchup_zone': 'Holding Mid vs Central Mid — Midfield Anchor Duel', 'duel_win_rate': 0.561, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.2371, 'skill_edge': 0.1773, 'height_edge': -0.016, 'attacker_skill': 0.894, 'defender_skill': 0.5, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Pepelu', 'market_value': 7300000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.5}], 'xg_override': 0.0726} | aerialWon: 0.6714 -> 1.1 totalShots: 0.7386 -> 0.9137 shotOffTarget: 0.4916 -> 0.6082 onTargetScoringAttempt: 0.2453 -> 0.3035 expectedGoals: 0.0587 -> 0.0726 goals: 0.0574 -> 0.071 expectedGoalsOnTarget: 0.0508 -> 0.0628 | 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.7009, xG scale 1.3264, xA scale 1.6253, team xA 1.47 = 0.65 x lambda) | scoreline_reset=true
team_lambda=2.256
squad_xg_sum=1.7009
squad_xa_sum=0.9022
team_expected_assists=1.4664
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0726 -> 0.0963 expected_assists: 0.0666 -> 0.1082 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 87.0) | match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0918
goal_rate=0.071
scorer_weight=0.095 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1026
assist_rate=0.0742
provider_weight=0.1153 | - |
|
| Aurélien Tchouaméni | M | 83 | 0 | 0.09 | 0.06 | 46% | 1 | 1.2 | 7.0 | 61.5 | 27 | 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.0126, quality 0.875) | market_value_eur=73000000
quality_factor=0.8747
boost_factor=1.0126
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=true | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Pepelu', 'matchup_zone': 'Holding Mid vs Central Mid — Midfield Anchor Duel', 'duel_win_rate': 0.586, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.2733, 'skill_edge': 0.1739, 'height_edge': 0.012, 'attacker_skill': 0.8865, 'defender_skill': 0.5, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Pepelu', 'market_value': 7300000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.5}], 'xg_override': 0.066} | totalShots: 0.837 -> 1.0658 shotOffTarget: 0.6569 -> 0.8364 aerialWon: 1.2886 -> 1.2 onTargetScoringAttempt: 0.1801 -> 0.2293 expectedGoals: 0.0518 -> 0.066 goals: 0.0489 -> 0.0623 bigChanceMissed: 0.04 -> 0.0509 expectedGoalsOnTarget: 0.0347 -> 0.0442 | 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.7009, xG scale 1.3264, xA scale 1.6253, team xA 1.47 = 0.65 x lambda) | scoreline_reset=true
team_lambda=2.256
squad_xg_sum=1.7009
squad_xa_sum=0.9022
team_expected_assists=1.4664
team_xa_to_xg_ratio=0.65 | expected_goals: 0.066 -> 0.0875 expected_assists: 0.041 -> 0.0666 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 84.0) | match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0838
goal_rate=0.0623
scorer_weight=0.0847 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0644
assist_rate=0.0579
provider_weight=0.079 | - |
|
| Jude Bellingham | M | 83 | 0 | 0.24 | 0.15 | 53% | 2 | 1.5 | 7.1 | 64.9 | 27 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0138, quality 0.899) | market_value_eur=151000000
quality_factor=0.8995
boost_factor=1.0138
reference_quality=0.505
history_matches=38
history_shrink=0.1163 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0136) | blend_weight=0.0136
history_matches=38
season_overlap_discount=1.0
per90_to_match_factor=0.9241
prior_reliability=0.18
competition=La Liga | totalShots: 1.6784 -> 1.693 wasFouled: 3.3107 -> 3.2983 onTargetScoringAttempt: 0.5848 -> 0.5956 goalAssist: 0.1251 -> 0.1327 goals: 0.1529 -> 0.1601 interceptionWon: 0.5104 -> 0.5035 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Pepelu', 'matchup_zone': 'CAM vs CM', 'duel_win_rate': 0.612, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.282, 'skill_edge': 0.1798, 'height_edge': 0.012, 'attacker_skill': 0.8996, 'defender_skill': 0.5, 'attacker_role': 'CAM', 'attacker_mv_price_index': 0.95, 'defender_adjusted_parts': [{'player': 'Pepelu', 'market_value': 7300000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.5}], 'xg_override': 0.1778} | aerialWon: 0.6141 -> 1.2 totalShots: 1.693 -> 2.1704 shotOffTarget: 1.0936 -> 1.402 onTargetScoringAttempt: 0.5956 -> 0.7636 expectedGoalsOnTarget: 0.1937 -> 0.2483 goals: 0.1601 -> 0.2052 expectedGoals: 0.1387 -> 0.1778 bigChanceMissed: 0.1282 -> 0.1644 | 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.7009, xG scale 1.3264, xA scale 1.6253, team xA 1.47 = 0.65 x lambda) | scoreline_reset=true
team_lambda=2.256
squad_xg_sum=1.7009
squad_xa_sum=0.9022
team_expected_assists=1.4664
team_xa_to_xg_ratio=0.65 | expected_goals: 0.1778 -> 0.2358 expected_assists: 0.1378 -> 0.224 | 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.2101
goal_rate=0.2052
scorer_weight=0.2642 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.2007
assist_rate=0.1327
provider_weight=0.2179 | - |
|
| Arda Güler | M | 74 | 0 | 0.31 | 0.11 | 168% | 3 | 1.3 | 7.2 | 65.8 | 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.0121, quality 0.892) | market_value_eur=97000000
quality_factor=0.8922
boost_factor=1.0121
reference_quality=0.505
history_matches=43
history_shrink=0.1042 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0072) | blend_weight=0.0072
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=0.821
prior_reliability=0.1067
competition=La Liga | wonTackle: 0.7624 -> 0.768 wasFouled: 1.771 -> 1.7656 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'José Luis Gayà', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.683, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.2987, 'skill_edge': 0.1872, 'height_edge': 0.016, 'attacker_skill': 0.8922, 'defender_skill': 0.4762, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'José Luis Gayà', 'market_value': 4300000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.4762}], 'xg_override': 0.2317} | aerialWon: 0.2778 -> 0.9 totalShots: 1.9559 -> 2.5401 shotOffTarget: 1.2365 -> 1.6058 onTargetScoringAttempt: 0.7194 -> 0.9343 goals: 0.1788 -> 0.2322 expectedGoals: 0.1784 -> 0.2317 expectedGoalsOnTarget: 0.1261 -> 0.1638 bigChanceMissed: 0.106 -> 0.1377 | 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.7009, xG scale 1.3264, xA scale 1.6253, team xA 1.47 = 0.65 x lambda) | scoreline_reset=true
team_lambda=2.256
squad_xg_sum=1.7009
squad_xa_sum=0.9022
team_expected_assists=1.4664
team_xa_to_xg_ratio=0.65 | expected_goals: 0.2317 -> 0.3073 expected_assists: 0.1926 -> 0.313 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 83.0) | match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.2646
goal_rate=0.2322
scorer_weight=0.3079 | - | integer_assist_projection | Team scoreline allocation: 1 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.2688
assist_rate=0.1794
provider_weight=0.296 | - |
|
| Thiago Pitarch | M | 74 | 0 | 0.08 | 0.02 | 321% | 1 | 0.3 | 6.9 | 28.3 | 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.0108, quality 0.613) | market_value_eur=18200000
quality_factor=0.613
boost_factor=1.0108
reference_quality=0.505
history_matches=10
history_shrink=0.3333 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'José Copete', 'matchup_zone': 'Right Wing vs Left Back — Flank Battle', 'duel_win_rate': 0.496, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0235, 'skill_edge': 0.06, 'height_edge': -0.044, 'attacker_skill': 0.613, 'defender_skill': 0.4797, 'attacker_role': 'RW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'José Copete', 'market_value': 4500000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.4797}], 'xg_override': 0.0566} | aerialWon: 0.2752 -> 1.0 totalShots: 0.7416 -> 0.759 shotOffTarget: 0.5247 -> 0.537 onTargetScoringAttempt: 0.2169 -> 0.222 | 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.7009, xG scale 1.3264, xA scale 1.6253, team xA 1.47 = 0.65 x lambda) | scoreline_reset=true
team_lambda=2.256
squad_xg_sum=1.7009
squad_xa_sum=0.9022
team_expected_assists=1.4664
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0566 -> 0.0751 expected_assists: 0.0543 -> 0.0883 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 70.0) | match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0723
goal_rate=0.0495
scorer_weight=0.0701 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0845
assist_rate=0.0643
provider_weight=0.0968 | - |
|
| Kylian Mbappé | F | 89 | 2 | 1.12 | 0.76 | 49% | 5 | 4.1 | 7.8 | 63.4 | 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.0129, quality 0.900) | market_value_eur=212000000
quality_factor=0.9
boost_factor=1.0129
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.9837
prior_reliability=0.2
competition=La Liga | totalShots: 3.8724 -> 3.9289 onTargetScoringAttempt: 2.0425 -> 2.0785 totalOffside: 1.3559 -> 1.3414 wasFouled: 1.7267 -> 1.7162 totalCross: 1.1122 -> 1.1058 fouls: 0.6096 -> 0.6149 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Mouctar Diakhaby, César Tárrega', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.333, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.1952, 'skill_edge': 0.1828, 'height_edge': -0.05, 'attacker_skill': 0.9, 'defender_skill': 0.4938, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Mouctar Diakhaby', 'market_value': 1500000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'César Tárrega', 'market_value': 9300000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5502}], 'xg_override': 0.8472} | totalShots: 3.9289 -> 4.6958 onTargetScoringAttempt: 2.0785 -> 2.4842 shotOffTarget: 1.8299 -> 2.1871 bigChanceMissed: 1.2781 -> 1.5276 expectedGoalsOnTarget: 1.1434 -> 1.3666 goals: 0.9862 -> 1.1787 expectedGoals: 0.7088 -> 0.8472 | 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.7009, xG scale 1.3264, xA scale 1.6253, team xA 1.47 = 0.65 x lambda) | scoreline_reset=true
team_lambda=2.256
squad_xg_sum=1.7009
squad_xa_sum=0.9022
team_expected_assists=1.4664
team_xa_to_xg_ratio=0.65 | expected_goals: 0.8472 -> 1.1238 expected_assists: 0.1804 -> 0.2932 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 91.0) | match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=2
goal_probability=0.675
goal_rate=1.1787
scorer_weight=1.4047 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.2541
assist_rate=0.1516
provider_weight=0.2566 | - |
|
| Team totals | 2 | 2.26 | | 15 | | 7.1 | | |
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 |
| Marc Cucurella | D | 26.6m | 50.8% | Market-value substitute prior |
| Eduardo Camavinga | M | 17.2m | 59.4% | Market-value substitute prior |
| Bernardo Silva | M | 17.9m | 45.2% | Market-value substitute prior |
| Vinícius Júnior | F | 27.1m | 37.1% | Market-value substitute prior |
Antagonist / tactical summary
Away midfield dictates play with ~54% possession expected (Javier Guerra vs Jude Bellingham). Total antagonist xG — Home: 0.44, Away: 1.45. Home danger zone: Left Mid vs Right Back — Wide Channel. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Midfield — possession 46.3% / 53.7%, dominance ratio 0.38, key duel: Javier Guerra vs Jude Bellingham
Arnaut Danjuma xG 0.09Diego López xG 0.10Javier Guerra xG 0.13Arda Güler xG 0.23Thiago Pitarch xG 0.06Jude Bellingham xG 0.18
Summary
Antagonist matchup analysis for Valencia vs Real Madrid. Most likely scoreline: 0-2. Lambdas derived from 6 home and 6 away individual player duels. Head-to-head: Valencia 2W-1D-7L vs Real Madrid over 10 meetings.
Tactical parity between 4-4-2 and 4-2-3-1. Match outcome driven primarily by individual player quality. Away midfield dictates play with ~54% possession expected (Javier Guerra vs Jude Bellingham). Total antagonist xG — Home: 0.44, Away: 1.45. Home danger zone: Left Mid vs Right Back — Wide Channel. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Málaga vs Racing Club
LaLiga · 20261107 · 4-1-4-1 vs 4-2-3-1
Predicted 1-0Winner: MálagaWinning H 1-0 (10.1%)Winning A 0-1 (8.3%)Confidence 0.65λ home/away 1.45 / 1.20Most-likely P 10.1%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset TracingAntagonist + XGBoost match analysis for Málaga vs Racing Club. Player statistics regressed using position-specific XGBoost models (G, D, M, F) with 2026-2027 FBref priors. Micro-duels resolved across 4-1-4-1 vs 4-2-3-1 (duel lambdas: Home 1.024, Away 0.941). Final calibrated Poisson lambdas: Home 1.453, Away 1.200 (most likely score 1-0).
Home Starters 11/11 XGBoost (0 FBref) Away Starters 11/11 XGBoost (0 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.02 / 0.94 Final λ (H/A) 1.45 / 1.20
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 | Málaga | Racing Club |
|---|
| League position | 20.00 | 15.00 |
| Points per game | 0.78 | 1.20 |
| Attack index | 0.79 | 1.00 |
| Defense (concede) index | 1.33 | 1.18 |
| Form multiplier | 0.98 | 1.02 |
| Standing λ multiplier | 1.01 | 1.07 |
Lambda decomposition (how the goal rates were built)
| Stage | Málaga λ | Racing Club λ |
|---|
| Pre-competitive-floor | 1.031 | 0.934 |
| Pre-calibration (Micro-duels) | 1.024 | 0.941 |
| Final λ | 1.453 | 1.200 |
competition calibration scale 1.35competition 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 |
|---|
| 1-1 | 12.4% |
| 1-0 | 10.1% |
| 2-1 | 8.9% |
| 0-1 | 8.3% |
| 2-0 | 7.4% |
| Home win | 42.8% |
| Draw | 26.1% |
| Away win | 31.1% |
| Over 2.5 | 49.5% |
| BTTS yes | 53.6% |
Pregame fair line — favorite Málaga (42.8%), fair total 2.65, fair spread 0.25
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.
Málaga — projected line vs season baseline (4-1-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 |
|---|
| Alfonso Herrero | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 7.0 | 58.7 | 13 | XGBoost G_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost G_service raw output over 3 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9937, quality 0.437) | market_value_eur=420000
quality_factor=0.4374
boost_factor=0.9937
reference_quality=0.505
history_matches=11
history_shrink=0.3125 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Maguette Gueye, Iñigo Vicente', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 0.9405} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_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 0.5938, xG scale 2.4468, xA scale 1.8415, team xA 1.16 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.453
squad_xg_sum=0.5938
squad_xa_sum=0.6312
team_expected_assists=1.1624
team_xa_to_xg_ratio=0.8 | shots_faced: 8.9 -> 11.4 expected_saves: 2.17 -> 2.79 high_pressure_saves: 0.75 -> 0.96 | 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.0
scorer_weight=0.0
squad_weight_total=1.608 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by 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.0769 | - |
|
| Ángel Recio | D | 90 | 0 | 0.04 | 0.01 | 212% | 0 | 0.6 | 6.9 | 55.7 | 12 | XGBoost D_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9932, quality 0.437) | market_value_eur=1000000
quality_factor=0.4374
boost_factor=0.9932
reference_quality=0.505
history_matches=10
history_shrink=0.3333 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Iñigo Vicente', '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 0.5938, xG scale 2.4468, xA scale 1.8415, team xA 1.16 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.453
squad_xg_sum=0.5938
squad_xa_sum=0.6312
team_expected_assists=1.1624
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0173 -> 0.0423 expected_assists: 0.0093 -> 0.0171 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 65.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.0414
goal_rate=0.0
scorer_weight=0.0338 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.017
assist_rate=0.0
provider_weight=0.0144 | - |
|
| Rafa Garrido | D | 89 | 0 | 0.02 | 0.01 | 272% | 0 | 0.2 | 6.8 | 56.2 | 13 | XGBoost D_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9937, quality 0.437) | market_value_eur=1400000
quality_factor=0.4374
boost_factor=0.9937
reference_quality=0.505
history_matches=11
history_shrink=0.3125 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'André Almeida', 'matchup_zone': 'Right Wing vs Left Back — Flank Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.45 (squad xG sum 0.5938, xG scale 2.4468, xA scale 1.8415, team xA 1.16 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.453
squad_xg_sum=0.5938
squad_xa_sum=0.6312
team_expected_assists=1.1624
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0088 -> 0.0215 expected_assists: 0.0224 -> 0.0412 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 79.0) | match_squad_rank=12
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0213
goal_rate=0.0
scorer_weight=0.0183 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0404
assist_rate=0.114
provider_weight=0.0515 | - |
|
| Einar Galilea | D | 84 | 0 | 0.00 | - | n/a | 0 | 0.0 | 6.9 | 41.5 | 13 | XGBoost D_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9922, quality 0.437) | market_value_eur=365000
quality_factor=0.4374
boost_factor=0.9922
reference_quality=0.505
history_matches=8
history_shrink=0.3846 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Iván Martín', '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.45 (squad xG sum 0.5938, xG scale 2.4468, xA scale 1.8415, team xA 1.16 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.453
squad_xg_sum=0.5938
squad_xa_sum=0.6312
team_expected_assists=1.1624
team_xa_to_xg_ratio=0.8 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 69.0) | match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
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.0096
assist_rate=0.0
provider_weight=0.0087 | - |
|
| Fernando Calero | D | 85 | 0 | 0.07 | 0.02 | 208% | 0 | 0.3 | 6.8 | 53.0 | 23 | XGBoost D_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9972, quality 0.437) | market_value_eur=2100000
quality_factor=0.4374
boost_factor=0.9972
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': 'Iñigo Vicente', '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 0.5938, xG scale 2.4468, xA scale 1.8415, team xA 1.16 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.453
squad_xg_sum=0.5938
squad_xa_sum=0.6312
team_expected_assists=1.1624
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0297 -> 0.0727 expected_assists: 0.0106 -> 0.0195 | 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_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.0701
goal_rate=0.0
scorer_weight=0.0582 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0193
assist_rate=0.0
provider_weight=0.0161 | - |
|
| Carlos Dotor | M | 80 | 0 | 0.16 | 0.05 | 231% | 1 | 0.5 | 6.9 | 58.1 | 13 | XGBoost M_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9932, quality 0.437) | market_value_eur=1200000
quality_factor=0.4374
boost_factor=0.9932
reference_quality=0.505
history_matches=10
history_shrink=0.3333 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Matteo Prati', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.396, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9647, 'skill_edge': -0.016, 'height_edge': -0.008, 'attacker_skill': 0.4374, 'defender_skill': 0.473, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Matteo Prati', 'market_value': 5000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.473}], 'xg_override': 0.0654} | aerialWon: 0.172 -> 1.1 totalShots: 0.8191 -> 0.7902 shotOffTarget: 0.5641 -> 0.5442 onTargetScoringAttempt: 0.2549 -> 0.2459 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_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 0.5938, xG scale 2.4468, xA scale 1.8415, team xA 1.16 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.453
squad_xg_sum=0.5938
squad_xa_sum=0.6312
team_expected_assists=1.1624
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0654 -> 0.16 expected_assists: 0.0666 -> 0.1226 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 85.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.1479
goal_rate=0.0637
scorer_weight=0.1576 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1154
assist_rate=0.0823
provider_weight=0.1391 | - |
|
| Pablo Martínez | M | 82 | 1 | 0.25 | 0.06 | 343% | 2 | 0.9 | 6.9 | 61.4 | 27 | 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.9974, quality 0.439) | market_value_eur=3100000
quality_factor=0.4387
boost_factor=0.9974
reference_quality=0.505
history_matches=34
history_shrink=0.1282 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Pablo Ramón', 'matchup_zone': 'Left Mid vs Right Back — Wide Channel', 'duel_win_rate': 0.446, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9801, 'skill_edge': 0.0025, 'height_edge': -0.016, 'attacker_skill': 0.4429, 'defender_skill': 0.4374, 'attacker_role': 'LM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Pablo Ramón', 'market_value': 1500000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.4374}], 'xg_override': 0.1032} | aerialWon: 0.3454 -> 1.1 totalShots: 1.6341 -> 1.6016 shotOffTarget: 1.1722 -> 1.1489 onTargetScoringAttempt: 0.4618 -> 0.4526 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_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 0.5938, xG scale 2.4468, xA scale 1.8415, team xA 1.16 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.453
squad_xg_sum=0.5938
squad_xa_sum=0.6312
team_expected_assists=1.1624
team_xa_to_xg_ratio=0.8 | expected_goals: 0.1032 -> 0.2525 expected_assists: 0.1702 -> 0.3134 | 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: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.2231
goal_rate=0.1404
scorer_weight=0.3138 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.269
assist_rate=0.1299
provider_weight=0.256 | - |
|
| Dani Lorenzo | M | 82 | 0 | 0.15 | 0.03 | 394% | 1 | 0.3 | 6.9 | 56.9 | 12 | XGBoost M_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9932, quality 0.437) | market_value_eur=2300000
quality_factor=0.4374
boost_factor=0.9932
reference_quality=0.505
history_matches=10
history_shrink=0.3333 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Jorge Salinas', 'matchup_zone': 'Right Mid vs Left Back — Wide Channel', 'duel_win_rate': 0.391, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.8979, 'skill_edge': -0.0494, 'height_edge': -0.02, 'attacker_skill': 0.4374, 'defender_skill': 0.5473, 'attacker_role': 'RM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Jorge Salinas', 'market_value': 8500000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.5473}], 'xg_override': 0.0598} | aerialWon: 0.148 -> 0.9 totalShots: 0.6896 -> 0.6192 shotOffTarget: 0.4473 -> 0.4016 onTargetScoringAttempt: 0.2422 -> 0.2175 bigChanceMissed: 0.104 -> 0.0934 goals: 0.0773 -> 0.0694 expectedGoals: 0.0666 -> 0.0598 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_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 0.5938, xG scale 2.4468, xA scale 1.8415, team xA 1.16 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.453
squad_xg_sum=0.5938
squad_xa_sum=0.6312
team_expected_assists=1.1624
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0598 -> 0.1463 expected_assists: 0.0804 -> 0.1481 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 72.0) | match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1361
goal_rate=0.0694
scorer_weight=0.1591 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1377
assist_rate=0.0769
provider_weight=0.1441 | - |
|
| Izan Merino | M | 73 | 0 | 0.09 | 0.00 | 2293% | 0 | 0.1 | 6.8 | 40.8 | 13 | XGBoost M_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9948, quality 0.460) | market_value_eur=4800000
quality_factor=0.4597
boost_factor=0.9948
reference_quality=0.505
history_matches=8
history_shrink=0.3846 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Matteo Prati', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.463, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0191, 'skill_edge': -0.003, 'height_edge': 0.016, 'attacker_skill': 0.4663, 'defender_skill': 0.473, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Matteo Prati', 'market_value': 5000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.473}], 'xg_override': 0.0355} | aerialWon: 0.0 -> 1.2 totalShots: 0.4362 -> 0.4445 shotOffTarget: 0.3087 -> 0.3146 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_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 0.5938, xG scale 2.4468, xA scale 1.8415, team xA 1.16 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.453
squad_xg_sum=0.5938
squad_xa_sum=0.6312
team_expected_assists=1.1624
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0355 -> 0.0869 expected_assists: 0.0319 -> 0.0587 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 70.0) | match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0832
goal_rate=0.0587
scorer_weight=0.1086 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.057
assist_rate=0.0492
provider_weight=0.0711 | - |
|
| Ramón Enríquez | M | 75 | 0 | 0.07 | - | n/a | 0 | 0.0 | 6.9 | 47.2 | 13 | XGBoost M_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9932, quality 0.437) | market_value_eur=380000
quality_factor=0.4374
boost_factor=0.9932
reference_quality=0.505
history_matches=10
history_shrink=0.3333 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Matteo Prati', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.398, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9235, 'skill_edge': -0.016, 'height_edge': -0.036, 'attacker_skill': 0.4374, 'defender_skill': 0.473, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Matteo Prati', 'market_value': 5000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.473}], 'xg_override': 0.0289} | aerialWon: 0.1577 -> 0.9 totalShots: 0.3387 -> 0.3128 shotOffTarget: 0.2309 -> 0.2132 onTargetScoringAttempt: 0.1078 -> 0.0996 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_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 0.5938, xG scale 2.4468, xA scale 1.8415, team xA 1.16 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.453
squad_xg_sum=0.5938
squad_xa_sum=0.6312
team_expected_assists=1.1624
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0289 -> 0.0707 expected_assists: 0.0418 -> 0.077 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 65.0) | match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0683
goal_rate=0.048
scorer_weight=0.0878 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0741
assist_rate=0.0593
provider_weight=0.0917 | - |
|
| David Larrubia | F | 81 | 0 | 0.21 | 0.05 | 352% | 1 | 1.1 | 6.9 | 51.5 | 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 0.9975, quality 0.478) | market_value_eur=6300000
quality_factor=0.4781
boost_factor=0.9975
reference_quality=0.505
history_matches=11
history_shrink=0.3125 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Alvaro Mantilla, Jeanuël Belocian', '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.9017, 'skill_edge': -0.0189, 'height_edge': -0.048, 'attacker_skill': 0.4781, 'defender_skill': 0.52, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Alvaro Mantilla', 'market_value': 1200000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'Jeanuël Belocian', 'market_value': 12900000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6027}], 'xg_override': 0.0845} | totalShots: 1.1797 -> 1.0637 shotOffTarget: 0.7219 -> 0.6509 onTargetScoringAttempt: 0.4578 -> 0.4128 goals: 0.1081 -> 0.0975 expectedGoals: 0.0937 -> 0.0845 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_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 0.5938, xG scale 2.4468, xA scale 1.8415, team xA 1.16 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.453
squad_xg_sum=0.5938
squad_xa_sum=0.6312
team_expected_assists=1.1624
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0845 -> 0.2068 expected_assists: 0.1729 -> 0.3185 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 81.0) | match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1868
goal_rate=0.0975
scorer_weight=0.2268 | - | integer_assist_projection | Team scoreline allocation: 1 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.2728
assist_rate=0.0
provider_weight=0.2548 | - |
|
| Team totals | 1 | 1.45 | | 8 | | 6.9 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Carlos Lopez | G | 4.4m | 10.9% | Market-value substitute prior |
| Adam Aznou | D | 13.7m | 30.6% | Market-value substitute prior |
| Jose Salinas | D | 13.6m | 29.9% | Market-value substitute prior |
| Jens-Lys Cajuste | M | 22.1m | 50.7% | Market-value substitute prior |
| Aarón Ochoa | M | 22.0m | 49.9% | Market-value substitute prior |
| Chupete | F | 25.7m | 57.6% | Market-value substitute prior |
Racing 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 |
|---|
| Julen Agirrezabala | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 6.8 | 39.2 | 19 | XGBoost G_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost G_service raw output over 3 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9989, quality 0.481) | market_value_eur=6500000
quality_factor=0.4805
boost_factor=0.9989
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': 'Pablo Martínez, David Larrubia', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.0243} | - | 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.20 (squad xG sum 0.7251, xG scale 1.6551, xA scale 1.0606, team xA 0.96 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.2
squad_xg_sum=0.7251
squad_xa_sum=0.9051
team_expected_assists=0.96
team_xa_to_xg_ratio=0.8 | shots_faced: 9.7 -> 13.8 expected_saves: 2.37 -> 3.38 high_pressure_saves: 0.82 -> 1.16 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 82.0) | match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_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.0
scorer_weight=0.0
squad_weight_total=1.2806 | - | 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.9553 | - |
|
| Alvaro Mantilla | D | 87 | 0 | 0.07 | 0.02 | 176% | 0 | 0.2 | 6.8 | 41.4 | 14 | XGBoost D_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9928, quality 0.437) | market_value_eur=1200000
quality_factor=0.4374
boost_factor=0.9928
reference_quality=0.505
history_matches=9
history_shrink=0.3571 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'David Larrubia', 'matchup_zone': '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.20 (squad xG sum 0.7251, xG scale 1.6551, xA scale 1.0606, team xA 0.96 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.2
squad_xg_sum=0.7251
squad_xa_sum=0.9051
team_expected_assists=0.96
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0394 -> 0.0652 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 77.0) | match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_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.0631
goal_rate=0.0
scorer_weight=0.0522 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0236
assist_rate=0.1938
provider_weight=0.0299 | - |
|
| Jorge Salinas | D | 89 | 0 | 0.13 | 0.04 | 186% | 1 | 0.6 | 6.8 | 50.7 | 13 | XGBoost D_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0000, quality 0.505) | market_value_eur=8500000
quality_factor=0.5047
boost_factor=1.0
reference_quality=0.505
history_matches=10
history_shrink=0.3333 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=true | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Dani Lorenzo', 'matchup_zone': 'Right Mid vs Left Back — Wide Channel'} | - | 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.20 (squad xG sum 0.7251, xG scale 1.6551, xA scale 1.0606, team xA 0.96 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.2
squad_xg_sum=0.7251
squad_xa_sum=0.9051
team_expected_assists=0.96
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0776 -> 0.1284 expected_assists: 0.2604 -> 0.2762 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 72.0) | match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.1205
goal_rate=0.0
scorer_weight=0.1027 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.2413
assist_rate=0.1019
provider_weight=0.221 | - |
|
| Pablo Ramón | D | 84 | 0 | 0.02 | 0.01 | 329% | 1 | 0.2 | 6.9 | 39.0 | 14 | XGBoost D_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9922, quality 0.437) | market_value_eur=1500000
quality_factor=0.4374
boost_factor=0.9922
reference_quality=0.505
history_matches=8
history_shrink=0.3846 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Pablo Martínez', 'matchup_zone': 'Left Mid vs Right Back — Wide Channel'} | - | 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.20 (squad xG sum 0.7251, xG scale 1.6551, xA scale 1.0606, team xA 0.96 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.2
squad_xg_sum=0.7251
squad_xa_sum=0.9051
team_expected_assists=0.96
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0137 -> 0.0227 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 69.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.0224
goal_rate=0.0
scorer_weight=0.0182 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0087
assist_rate=0.0
provider_weight=0.0075 | - |
|
| Jeanuël Belocian | D | 90 | 0 | 0.14 | 0.04 | 257% | 1 | 0.5 | 6.7 | 35.5 | 11 | 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.0069, quality 0.556) | market_value_eur=12900000
quality_factor=0.5559
boost_factor=1.0069
reference_quality=0.505
history_matches=6
history_shrink=0.4545 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'David Larrubia', '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.20 (squad xG sum 0.7251, xG scale 1.6551, xA scale 1.0606, team xA 0.96 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.2
squad_xg_sum=0.7251
squad_xa_sum=0.9051
team_expected_assists=0.96
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0849 -> 0.1405 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 71.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.1311
goal_rate=0.2715
scorer_weight=0.1756 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0088
assist_rate=0.0
provider_weight=0.0075 | - |
|
| Iván Martín | M | 86 | 0 | 0.07 | 0.03 | 166% | 1 | 0.4 | 7.1 | 56.9 | 34 | XGBoost M_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9979, quality 0.437) | market_value_eur=2700000
quality_factor=0.4374
boost_factor=0.9979
reference_quality=0.505
history_matches=43
history_shrink=0.1042 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Einar Galilea', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.464, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9765, 'skill_edge': 0.0, 'height_edge': -0.016, 'attacker_skill': 0.4374, 'defender_skill': 0.4374, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Einar Galilea', 'market_value': 365000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.4374}], 'xg_override': 0.0414} | aerialWon: 0.7754 -> 1.0 totalShots: 0.662 -> 0.6464 shotOffTarget: 0.4461 -> 0.4356 onTargetScoringAttempt: 0.2159 -> 0.2108 | 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.20 (squad xG sum 0.7251, xG scale 1.6551, xA scale 1.0606, team xA 0.96 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.2
squad_xg_sum=0.7251
squad_xa_sum=0.9051
team_expected_assists=0.96
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0414 -> 0.0685 | 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.0662
goal_rate=0.0663
scorer_weight=0.0856 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0646
assist_rate=0.0788
provider_weight=0.0761 | - |
|
| Matteo Prati | M | 81 | 0 | 0.06 | 0.01 | 894% | 1 | 0.2 | 6.9 | 39.2 | 12 | XGBoost M_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9946, quality 0.462) | market_value_eur=5000000
quality_factor=0.4622
boost_factor=0.9946
reference_quality=0.505
history_matches=7
history_shrink=0.4167 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Izan Merino, Ramón Enríquez, Carlos Dotor', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel'} | - | 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.20 (squad xG sum 0.7251, xG scale 1.6551, xA scale 1.0606, team xA 0.96 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.2
squad_xg_sum=0.7251
squad_xa_sum=0.9051
team_expected_assists=0.96
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0377 -> 0.0624 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 72.0) | match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0605
goal_rate=0.0511
scorer_weight=0.0719 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0418
assist_rate=0.0566
provider_weight=0.0504 | - |
|
| André Almeida | M | 69 | 0 | 0.09 | 0.02 | 513% | 1 | 0.2 | 6.9 | 32.1 | 32 | XGBoost M_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9982, quality 0.465) | market_value_eur=5200000
quality_factor=0.4646
boost_factor=0.9982
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': 'Rafa Garrido', 'matchup_zone': 'Right Wing vs Left Back — Flank Battle', 'duel_win_rate': 0.516, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0533, 'skill_edge': 0.0122, 'height_edge': 0.024, 'attacker_skill': 0.4646, 'defender_skill': 0.4374, 'attacker_role': 'RW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Rafa Garrido', 'market_value': 1400000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.4374}], 'xg_override': 0.0572} | aerialWon: 0.0328 -> 0.9 totalShots: 0.732 -> 0.7711 shotOffTarget: 0.5002 -> 0.5269 onTargetScoringAttempt: 0.2318 -> 0.2442 | 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.20 (squad xG sum 0.7251, xG scale 1.6551, xA scale 1.0606, team xA 0.96 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.2
squad_xg_sum=0.7251
squad_xa_sum=0.9051
team_expected_assists=0.96
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0572 -> 0.0947 expected_assists: 0.0967 -> 0.1026 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 74.0) | match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0904
goal_rate=0.0703
scorer_weight=0.1063 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0975
assist_rate=0.0776
provider_weight=0.0892 | - |
|
| Íñigo Sáinz-Maza | M | 83 | 0 | 0.06 | - | n/a | 0 | 0.0 | 6.7 | 9.9 | 13 | XGBoost M_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9855, quality 0.437) | market_value_eur=1000000
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': 'Ramón Enríquez', 'matchup_zone': 'Midfield lane'} | - | 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.20 (squad xG sum 0.7251, xG scale 1.6551, xA scale 1.0606, team xA 0.96 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.2
squad_xg_sum=0.7251
squad_xa_sum=0.9051
team_expected_assists=0.96
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0392 -> 0.0649 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 67.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.0628
goal_rate=0.0459
scorer_weight=0.0698 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0381
assist_rate=0.0467
provider_weight=0.0433 | - |
|
| Maguette Gueye | M | 87 | 0 | 0.14 | 0.03 | 306% | 1 | 0.2 | 6.7 | 36.0 | 13 | XGBoost M_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9916, quality 0.437) | market_value_eur=2600000
quality_factor=0.4374
boost_factor=0.9916
reference_quality=0.505
history_matches=7
history_shrink=0.4167 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Carlos Dotor', 'matchup_zone': 'Attacking Mid vs Single Holding Mid — Space Creator Duel', 'duel_win_rate': 0.472, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0176, 'skill_edge': 0.0, 'height_edge': 0.012, 'attacker_skill': 0.4374, 'defender_skill': 0.4374, 'attacker_role': 'CAM', 'attacker_mv_price_index': 0.95, 'defender_adjusted_parts': [{'player': 'Carlos Dotor', 'market_value': 1200000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4374}], 'xg_override': 0.0851} | aerialWon: 0.0826 -> 1.1 totalShots: 0.9464 -> 0.9631 shotOffTarget: 0.6832 -> 0.6952 | 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.20 (squad xG sum 0.7251, xG scale 1.6551, xA scale 1.0606, team xA 0.96 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.2
squad_xg_sum=0.7251
squad_xa_sum=0.9051
team_expected_assists=0.96
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0851 -> 0.1408 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 69.0) | match_squad_rank=14
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.1313
goal_rate=0.0937
scorer_weight=0.1498 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0351
assist_rate=0.0496
provider_weight=0.0425 | - |
|
| Iñigo Vicente | F | 86 | 0 | 0.13 | 0.03 | 318% | 1 | 0.5 | 7.2 | 51.8 | 24 | XGBoost F_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9977, quality 0.482) | market_value_eur=6600000
quality_factor=0.4818
boost_factor=0.9977
reference_quality=0.505
history_matches=10
history_shrink=0.3333 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Ángel Recio, Fernando Calero', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.196, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 0.994, 'skill_edge': 0.0199, 'height_edge': -0.024, 'attacker_skill': 0.4818, 'defender_skill': 0.4374, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Ángel Recio', 'market_value': 1000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'Fernando Calero', 'market_value': 2100000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.0787} | totalShots: 1.0533 -> 1.047 | 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.20 (squad xG sum 0.7251, xG scale 1.6551, xA scale 1.0606, team xA 0.96 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.2
squad_xg_sum=0.7251
squad_xa_sum=0.9051
team_expected_assists=0.96
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0787 -> 0.1303 expected_assists: 0.2773 -> 0.2941 | 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 skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.1222
goal_rate=0.1093
scorer_weight=0.1613 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.2548
assist_rate=0.3159
provider_weight=0.3288 | - |
|
| Team totals | 0 | 1.20 | | 11 | | 6.8 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Simon Eriksson | G | 4.4m | 10.9% | Market-value substitute prior |
| Facundo González | D | 13.6m | 29.9% | Market-value substitute prior |
| Pedro Felipe | D | 13.6m | 29.9% | Market-value substitute prior |
| Aarón Martín | M | 22.1m | 50.3% | Market-value substitute prior |
| Andrés Vallecillo | M | 22.0m | 49.9% | Market-value substitute prior |
| Yassir Zabiri | F | 26.1m | 59.7% | Market-value substitute prior |
Antagonist / tactical summary
Midfield is evenly contested — Izan Merino vs André Almeida will be the pivotal duel. Total antagonist xG — Home: 0.38, Away: 0.26. Home danger zone: Left Mid vs Right Back — Wide Channel. Away danger zone: Attacking Mid vs Single Holding Mid — Space Creator Duel.
Midfield — possession 49.9% / 50.1%, dominance ratio 0.50, key duel: Izan Merino vs André Almeida
David Larrubia xG 0.08Pablo Martínez xG 0.10Dani Lorenzo xG 0.06Iván Martín xG 0.04Maguette Gueye xG 0.09André Almeida xG 0.06
Summary
Antagonist matchup analysis for Málaga vs Racing Club. Most likely scoreline: 1-0. Lambdas derived from 6 home and 4 away individual player duels. Head-to-head: Málaga 4W-3D-3L vs Racing Club over 10 meetings.
Tactical parity between 4-1-4-1 and 4-2-3-1. Match outcome driven primarily by individual player quality. Midfield is evenly contested — Izan Merino vs André Almeida will be the pivotal duel. Total antagonist xG — Home: 0.38, Away: 0.26. Home danger zone: Left Mid vs Right Back — Wide Channel. Away danger zone: Attacking Mid vs Single Holding Mid — Space Creator Duel.
Leeds vs Tottenham
Premier League · 20261107 · 3-4-2-1 vs 4-2-3-1
Predicted 1-1Winner: DrawWinning H 1-0 (8.9%)Winning A 0-1 (8.1%)Confidence 0.65λ home/away 1.46 / 1.33Most-likely P 12.1%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset TracingAntagonist + XGBoost match analysis for Leeds vs Tottenham. 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.289, Away 1.117). Final calibrated Poisson lambdas: Home 1.455, Away 1.326 (most likely score 1-1).
Home Starters 11/11 XGBoost (9 FBref) Away Starters 11/11 XGBoost (10 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.29 / 1.12 Final λ (H/A) 1.46 / 1.33
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 | Leeds | Tottenham |
|---|
| League position | 11.00 | 8.00 |
| Points per game | 1.28 | 1.34 |
| Attack index | 0.93 | 0.88 |
| Defense (concede) index | 0.88 | 0.89 |
| Form multiplier | 1.00 | 1.00 |
| Standing λ multiplier | 0.92 | 0.91 |
Lambda decomposition (how the goal rates were built)
| Stage | Leeds λ | Tottenham λ |
|---|
| Pre-competitive-floor | 1.243 | 1.157 |
| Pre-calibration (Micro-duels) | 1.289 | 1.117 |
| Final λ | 1.455 | 1.326 |
competition calibration scale 1.159competition observed total goals 2.781quality gap applied Truemismatch score pressure applied Falsecompetitive underdog floor applied Falsestage discount 1.0
Scoreline distribution & markets
| Top 5 scorelines | P |
|---|
| 1-1 | 12.1% |
| 1-0 | 8.9% |
| 2-1 | 8.7% |
| 0-1 | 8.1% |
| 1-2 | 7.9% |
| Home win | 40.2% |
| Draw | 25.6% |
| Away win | 34.3% |
| Over 2.5 | 52.6% |
| BTTS yes | 56.4% |
Pregame fair line — favorite Leeds (40.2%), 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.
Leeds — projected line vs season baseline (3-4-2-1)
| Player | Pos | Min | Proj G | Proj xG | Season xG/g | | Proj Sh | Season Sh/g | Proj Rtg | Season Rtg | Rec | Model / FBref Prior |
|---|
| James Trafford | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 7.2 | 21.3 | 34 | FBref Prior G_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost G_service raw output over 3 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0221, quality 0.770) | market_value_eur=38000000
quality_factor=0.7699
boost_factor=1.0221
reference_quality=0.505
history_matches=13
history_shrink=0.2778 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0241) | blend_weight=0.0241
history_matches=13
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': 'Richarlison, Xavi Simons', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.1168} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.46 (squad xG sum 1.1774, xG scale 1.2358, xA scale 1.2732, team xA 0.95 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.455
squad_xg_sum=1.1774
squad_xa_sum=0.7428
team_expected_assists=0.9458
team_xa_to_xg_ratio=0.65 | shots_faced: 10.6 -> 12.6 expected_saves: 2.59 -> 3.08 high_pressure_saves: 0.89 -> 1.06 | 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.4716 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0
provider_weight=0.0
squad_weight_total=0.8556 | - |
|
| James Justin | D | 88 | 0 | 0.07 | 0.06 | ok | 1 | 0.9 | 6.8 | 61.1 | 36 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0031, quality 0.595) | market_value_eur=16500000
quality_factor=0.5953
boost_factor=1.0031
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.9763
prior_reliability=0.1333
competition=Premier League | wonTackle: 1.2335 -> 1.2457 totalCross: 2.45 -> 2.4401 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Mateus Fernandes', 'matchup_zone': '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.46 (squad xG sum 1.1774, xG scale 1.2358, xA scale 1.2732, team xA 0.95 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.455
squad_xg_sum=1.1774
squad_xa_sum=0.7428
team_expected_assists=0.9458
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0593 -> 0.0733 expected_assists: 0.1343 -> 0.171 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 76.0) | match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0707
goal_rate=0.1231
scorer_weight=0.0916 | - | integer_assist_projection | Team scoreline allocation: 1 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.1572
assist_rate=0.0708
provider_weight=0.1368 | - |
|
| Tarik Muharemović | D | 90 | 0 | 0.09 | 0.04 | 90% | 1 | 0.5 | 7.1 | 45.8 | 14 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0311, quality 0.796) | market_value_eur=43000000
quality_factor=0.7957
boost_factor=1.0311
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 | interceptionWon: 1.1959 -> 1.2208 wasFouled: 0.9384 -> 0.9248 totalCross: 0.0645 -> 0.078 onTargetScoringAttempt: 0.2259 -> 0.2344 totalShots: 0.7409 -> 0.7334 goalAssist: 0.2348 -> 0.2275 | 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': 'Richarlison', '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.46 (squad xG sum 1.1774, xG scale 1.2358, xA scale 1.2732, team xA 0.95 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.455
squad_xg_sum=1.1774
squad_xa_sum=0.7428
team_expected_assists=0.9458
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0688 -> 0.085 expected_assists: 0.0302 -> 0.0385 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 75.0) | match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0815
goal_rate=0.0
scorer_weight=0.068 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0378
assist_rate=0.2275
provider_weight=0.0481 | - |
|
| Joe Rodon | D | 81 | 0 | 0.03 | 0.02 | 66% | 0 | 0.3 | 6.8 | 50.2 | 24 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0041, quality 0.619) | market_value_eur=18800000
quality_factor=0.6191
boost_factor=1.0041
reference_quality=0.505
history_matches=37
history_shrink=0.119 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0072) | blend_weight=0.0072
history_matches=37
season_overlap_discount=1.0
per90_to_match_factor=0.9043
prior_reliability=0.0933
competition=Premier League | fouls: 0.842 -> 0.8499 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Richarlison', '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.46 (squad xG sum 1.1774, xG scale 1.2358, xA scale 1.2732, team xA 0.95 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.455
squad_xg_sum=1.1774
squad_xa_sum=0.7428
team_expected_assists=0.9458
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0282 -> 0.0348 expected_assists: 0.0249 -> 0.0317 | 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.0342
goal_rate=0.004
scorer_weight=0.0278 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0312
assist_rate=0.0
provider_weight=0.0254 | - |
|
| Ethan Ampadu | M | 90 | 0 | 0.05 | 0.05 | ok | 1 | 0.5 | 7.0 | 61.0 | 33 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0072, quality 0.739) | market_value_eur=33000000
quality_factor=0.7389
boost_factor=1.0072
reference_quality=0.505
history_matches=44
history_shrink=0.102 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0088) | blend_weight=0.0088
history_matches=44
season_overlap_discount=1.0
per90_to_match_factor=0.998
prior_reliability=0.1333
competition=Premier League | fouls: 2.3232 -> 2.3159 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Archie Gray', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.422, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9583, 'skill_edge': -0.0084, 'height_edge': -0.02, 'attacker_skill': 0.7622, 'defender_skill': 0.7808, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Archie Gray', 'market_value': 34000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.7808}], 'xg_override': 0.0411} | totalShots: 0.5886 -> 0.5641 aerialWon: 1.1228 -> 1.1 shotOffTarget: 0.4337 -> 0.4156 onTargetScoringAttempt: 0.1542 -> 0.1478 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.46 (squad xG sum 1.1774, xG scale 1.2358, xA scale 1.2732, team xA 0.95 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.455
squad_xg_sum=1.1774
squad_xa_sum=0.7428
team_expected_assists=0.9458
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0411 -> 0.0508 expected_assists: 0.0655 -> 0.0834 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 80.0) | match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0495
goal_rate=0.0465
scorer_weight=0.0538 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.08
assist_rate=0.0667
provider_weight=0.0843 | - |
|
| Gabriel Gudmundsson | M | 83 | 0 | 0.04 | 0.01 | 360% | 1 | 0.3 | 6.8 | 41.9 | 34 | FBref Prior M_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0062, quality 0.686) | market_value_eur=26000000
quality_factor=0.6858
boost_factor=1.0062
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': 'Archie Gray', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.394, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9173, 'skill_edge': -0.0322, 'height_edge': -0.024, 'attacker_skill': 0.7091, 'defender_skill': 0.7808, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Archie Gray', 'market_value': 34000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.7808}], 'xg_override': 0.0354} | aerialWon: 0.4332 -> 1.1 totalShots: 0.6321 -> 0.5798 shotOffTarget: 0.4324 -> 0.3966 onTargetScoringAttempt: 0.1997 -> 0.1832 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.46 (squad xG sum 1.1774, xG scale 1.2358, xA scale 1.2732, team xA 0.95 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.455
squad_xg_sum=1.1774
squad_xa_sum=0.7428
team_expected_assists=0.9458
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0354 -> 0.0437 expected_assists: 0.0719 -> 0.0915 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 78.0) | match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0428
goal_rate=0.0436
scorer_weight=0.0479 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0874
assist_rate=0.0828
provider_weight=0.0997 | - |
|
| Jayden Bogle | M | 83 | 0 | 0.16 | 0.08 | 100% | 1 | 0.6 | 6.9 | 57.1 | 30 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0037, quality 0.623) | market_value_eur=19200000
quality_factor=0.6231
boost_factor=1.0037
reference_quality=0.505
history_matches=43
history_shrink=0.1042 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0077) | blend_weight=0.0077
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=0.9211
prior_reliability=0.1133
competition=Premier League | wasFouled: 1.2203 -> 1.2317 totalCross: 3.1046 -> 3.0933 totalShots: 1.0977 -> 1.0893 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Andy Robertson', 'matchup_zone': 'Left Wingback vs Right Back — Overlapping Run', 'duel_win_rate': 0.475, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.1103, 'skill_edge': 0.0751, 'height_edge': 0.0, 'attacker_skill': 0.6976, 'defender_skill': 0.5308, 'attacker_role': 'LWB', 'attacker_mv_price_index': 0.7, 'defender_adjusted_parts': [{'player': 'Andy Robertson', 'market_value': 7500000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.5308}], 'xg_override': 0.1271} | aerialWon: 1.1604 -> 1.0 totalShots: 1.0949 -> 1.2157 shotOffTarget: 0.7369 -> 0.8182 onTargetScoringAttempt: 0.358 -> 0.3975 expectedGoalsOnTarget: 0.1435 -> 0.1593 expectedGoals: 0.1145 -> 0.1271 bigChanceMissed: 0.1082 -> 0.1201 goals: 0.0915 -> 0.1016 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.46 (squad xG sum 1.1774, xG scale 1.2358, xA scale 1.2732, team xA 0.95 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.455
squad_xg_sum=1.1774
squad_xa_sum=0.7428
team_expected_assists=0.9458
team_xa_to_xg_ratio=0.65 | expected_goals: 0.1271 -> 0.1571 expected_assists: 0.1114 -> 0.1418 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 76.0) | match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1454
goal_rate=0.1016
scorer_weight=0.1345 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1322
assist_rate=0.0921
provider_weight=0.1248 | - |
|
| Ao Tanaka | M | 76 | 0 | 0.09 | 0.05 | 71% | 1 | 0.4 | 6.9 | 38.1 | 34 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0032, quality 0.592) | market_value_eur=16200000
quality_factor=0.5921
boost_factor=1.0032
reference_quality=0.505
history_matches=36
history_shrink=0.122 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0026) | blend_weight=0.0026
history_matches=36
season_overlap_discount=1.0
per90_to_match_factor=0.845
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': 'Marcos Senesi', 'matchup_zone': 'Right Wingback vs Left Back — Overlapping Run', 'duel_win_rate': 0.373, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9599, 'skill_edge': -0.0113, 'height_edge': -0.016, 'attacker_skill': 0.6608, 'defender_skill': 0.6858, 'attacker_role': 'RWB', 'attacker_mv_price_index': 0.7, 'defender_adjusted_parts': [{'player': 'Marcos Senesi', 'market_value': 18200000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.6858}], 'xg_override': 0.0691} | aerialWon: 0.1947 -> 1.1 totalShots: 0.9906 -> 0.9509 shotOffTarget: 0.7222 -> 0.6932 onTargetScoringAttempt: 0.2684 -> 0.2576 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.46 (squad xG sum 1.1774, xG scale 1.2358, xA scale 1.2732, team xA 0.95 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.455
squad_xg_sum=1.1774
squad_xa_sum=0.7428
team_expected_assists=0.9458
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0691 -> 0.0854 expected_assists: 0.0533 -> 0.0679 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 76.0) | match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0819
goal_rate=0.0706
scorer_weight=0.0865 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0656
assist_rate=0.055
provider_weight=0.069 | - |
|
| Dominic Calvert-Lewin | F | 86 | 1 | 0.42 | 0.40 | ok | 2 | 1.7 | 6.8 | 56.7 | 33 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0058, quality 0.694) | market_value_eur=27000000
quality_factor=0.6941
boost_factor=1.0058
reference_quality=0.505
history_matches=44
history_shrink=0.102 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0088) | blend_weight=0.0088
history_matches=44
season_overlap_discount=1.0
per90_to_match_factor=0.9602
prior_reliability=0.1333
competition=Premier League | totalOffside: 0.645 -> 0.652 wasFouled: 1.2147 -> 1.2082 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Jan Paul van Hecke, Micky van de Ven', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.8567, 'skill_edge': -0.0815, 'height_edge': -0.016, 'attacker_skill': 0.6941, 'defender_skill': 0.8752, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Jan Paul van Hecke', 'market_value': 65000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.887}, {'player': 'Micky van de Ven', 'market_value': 49000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8633}], 'xg_override': 0.3409} | totalShots: 2.1413 -> 1.8345 shotOffTarget: 1.2045 -> 1.0319 onTargetScoringAttempt: 0.9346 -> 0.8007 bigChanceMissed: 0.6078 -> 0.5207 expectedGoalsOnTarget: 0.4689 -> 0.4017 expectedGoals: 0.3979 -> 0.3409 goals: 0.3654 -> 0.313 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.46 (squad xG sum 1.1774, xG scale 1.2358, xA scale 1.2732, team xA 0.95 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.455
squad_xg_sum=1.1774
squad_xa_sum=0.7428
team_expected_assists=0.9458
team_xa_to_xg_ratio=0.65 | expected_goals: 0.3409 -> 0.4212 expected_assists: 0.0317 -> 0.0404 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 79.0) | match_squad_rank=14
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.3437
goal_rate=0.313
scorer_weight=0.3911 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0396
assist_rate=0.0026
provider_weight=0.0323 | - |
|
| Noah Okafor | F | 72 | 0 | 0.21 | 0.11 | 91% | 2 | 0.9 | 6.8 | 54.2 | 27 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0090, quality 0.752) | market_value_eur=35000000
quality_factor=0.752
boost_factor=1.009
reference_quality=0.505
history_matches=36
history_shrink=0.122 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0053) | blend_weight=0.0053
history_matches=36
season_overlap_discount=1.0
per90_to_match_factor=0.7998
prior_reliability=0.0667
competition=Premier League | totalCross: 1.9211 -> 1.9321 wonTackle: 0.697 -> 0.706 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Archie Gray, Jan Paul van Hecke', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle', 'duel_win_rate': 0.221, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.9281, 'skill_edge': -0.0369, 'height_edge': -0.012, 'attacker_skill': 0.752, 'defender_skill': 0.8339, 'attacker_role': 'SS', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Archie Gray', 'market_value': 34000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.7808}, {'player': 'Jan Paul van Hecke', 'market_value': 65000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.887}], 'xg_override': 0.1697} | totalShots: 1.767 -> 1.64 shotOffTarget: 1.1473 -> 1.0648 onTargetScoringAttempt: 0.6174 -> 0.573 goals: 0.2282 -> 0.2118 expectedGoalsOnTarget: 0.1974 -> 0.1832 expectedGoals: 0.1829 -> 0.1697 bigChanceMissed: 0.1055 -> 0.0979 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.46 (squad xG sum 1.1774, xG scale 1.2358, xA scale 1.2732, team xA 0.95 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.455
squad_xg_sum=1.1774
squad_xa_sum=0.7428
team_expected_assists=0.9458
team_xa_to_xg_ratio=0.65 | expected_goals: 0.1697 -> 0.2097 expected_assists: 0.073 -> 0.0929 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 77.0) | match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1892
goal_rate=0.2118
scorer_weight=0.2499 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0887
assist_rate=0.0418
provider_weight=0.0743 | - |
|
| Mateo Joseph | F | 78 | 0 | 0.15 | 0.08 | 84% | 1 | 0.6 | 6.7 | 48.1 | 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.9974, quality 0.446) | market_value_eur=3700000
quality_factor=0.4461
boost_factor=0.9974
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': 'Archie Gray, Jan Paul van Hecke', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.6964, 'skill_edge': -0.1745, 'height_edge': -0.032, 'attacker_skill': 0.4461, 'defender_skill': 0.8339, 'attacker_role': 'SS', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Archie Gray', 'market_value': 34000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.7808}, {'player': 'Jan Paul van Hecke', 'market_value': 65000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.887}], 'xg_override': 0.1178} | totalShots: 1.3902 -> 0.9681 shotOffTarget: 0.8378 -> 0.5834 onTargetScoringAttempt: 0.5524 -> 0.3847 bigChanceMissed: 0.3987 -> 0.2777 expectedGoalsOnTarget: 0.2715 -> 0.1891 goals: 0.2073 -> 0.1444 expectedGoals: 0.1691 -> 0.1178 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.46 (squad xG sum 1.1774, xG scale 1.2358, xA scale 1.2732, team xA 0.95 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.455
squad_xg_sum=1.1774
squad_xa_sum=0.7428
team_expected_assists=0.9458
team_xa_to_xg_ratio=0.65 | expected_goals: 0.1178 -> 0.1456 expected_assists: 0.0614 -> 0.0782 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 15 by projected rating, fifa_overall 72.0) | match_squad_rank=15
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1355
goal_rate=0.1444
scorer_weight=0.1687 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0752
assist_rate=0.0
provider_weight=0.0626 | - |
|
| Team totals | 1 | 1.46 | | 13 | | 6.9 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Michael Zetterer | G | 4.5m | 11.1% | Market-value substitute prior |
| Jaka Bijol | D | 14.3m | 23.1% | Market-value substitute prior |
| Nico Elvedi | D | 37.6m | 61.0% | Market-value substitute prior |
| Anton Stach | M | 23.1m | 33.0% | Market-value substitute prior |
| Sean Longstaff | M | 15.0m | 70.0% | Market-value substitute prior |
| Jean-Mattéo Bahoya | F | 26.2m | 60.0% | Market-value substitute prior |
Tottenham — projected line vs season baseline (4-2-3-1)
| Player | Pos | Min | Proj G | Proj xG | Season xG/g | | Proj Sh | Season Sh/g | Proj Rtg | Season Rtg | Rec | Model / FBref Prior |
|---|
| Antonín Kinský | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 6.9 | 32.7 | 33 | FBref Prior G_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost G_service raw output over 3 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0082, quality 0.620) | market_value_eur=18900000
quality_factor=0.6201
boost_factor=1.0082
reference_quality=0.505
history_matches=16
history_shrink=0.2381 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0206) | blend_weight=0.0206
history_matches=16
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League | saves: 2.847 -> 2.8398 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Dominic Calvert-Lewin, Noah Okafor', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.289} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_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.1399, xG scale 1.1632, xA scale 1.0414, team xA 1.06 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.326
squad_xg_sum=1.1399
squad_xa_sum=1.0186
team_expected_assists=1.0608
team_xa_to_xg_ratio=0.8 | shots_faced: 12.2 -> 13.8 expected_saves: 2.98 -> 3.38 high_pressure_saves: 1.03 -> 1.16 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 77.0) | match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.4241 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by 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.0537 | - |
|
| Jan Paul van Hecke | D | 90 | 0 | 0.26 | 0.10 | 167% | 1 | 0.7 | 7.6 | 62.0 | 32 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0107, quality 0.863) | market_value_eur=65000000
quality_factor=0.8627
boost_factor=1.0107
reference_quality=0.505
history_matches=45
history_shrink=0.1 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0087) | blend_weight=0.0087
history_matches=45
season_overlap_discount=1.0
per90_to_match_factor=0.9984
prior_reliability=0.1333
competition=Premier League | interceptionWon: 1.168 -> 1.1622 totalShots: 1.1075 -> 1.1022 | 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': 'Dominic Calvert-Lewin', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.33 (squad xG sum 1.1399, xG scale 1.1632, xA scale 1.0414, team xA 1.06 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.326
squad_xg_sum=1.1399
squad_xa_sum=1.0186
team_expected_assists=1.0608
team_xa_to_xg_ratio=0.8 | expected_goals: 0.2257 -> 0.2625 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 81.0) | match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.2309
goal_rate=0.2653
scorer_weight=0.3002 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0814
assist_rate=0.0196
provider_weight=0.0679 | - |
|
| Marcos Senesi | D | 90 | 0 | 0.03 | 0.03 | ok | 0 | 0.3 | 7.2 | 46.4 | 33 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0037, quality 0.613) | market_value_eur=18200000
quality_factor=0.613
boost_factor=1.0037
reference_quality=0.505
history_matches=39
history_shrink=0.1136 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0049) | blend_weight=0.0049
history_matches=39
season_overlap_discount=1.0
per90_to_match_factor=0.9976
prior_reliability=0.0667
competition=Premier League | wonTackle: 1.0813 -> 1.0956 wasFouled: 1.3453 -> 1.3534 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Ao Tanaka', 'matchup_zone': 'Right Wingback vs Left Back — Overlapping Run'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.33 (squad xG sum 1.1399, xG scale 1.1632, xA scale 1.0414, team xA 1.06 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.326
squad_xg_sum=1.1399
squad_xa_sum=1.0186
team_expected_assists=1.0608
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 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.0249
goal_rate=0.0
scorer_weight=0.0202 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0627
assist_rate=0.0664
provider_weight=0.0672 | - |
|
| Andy Robertson | D | 79 | 0 | 0.07 | 0.04 | 99% | 1 | 0.4 | 6.6 | 43.4 | 33 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9995, quality 0.493) | market_value_eur=7500000
quality_factor=0.4927
boost_factor=0.9995
reference_quality=0.505
history_matches=32
history_shrink=0.1351 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0100) | blend_weight=0.01
history_matches=32
season_overlap_discount=1.0
per90_to_match_factor=0.8784
prior_reliability=0.1133
competition=Premier League | wasFouled: 0.1507 -> 0.1595 totalCross: 4.8941 -> 4.8865 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Jayden Bogle', 'matchup_zone': 'Left Wingback vs Right Back — Overlapping Run'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.33 (squad xG sum 1.1399, xG scale 1.1632, xA scale 1.0414, team xA 1.06 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.326
squad_xg_sum=1.1399
squad_xa_sum=1.0186
team_expected_assists=1.0608
team_xa_to_xg_ratio=0.8 | expected_goals: 0.061 -> 0.071 expected_assists: 0.1976 -> 0.2058 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 18 by projected rating, fifa_overall 85.0) | match_squad_rank=18
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.0685
goal_rate=0.0403
scorer_weight=0.0578 | - | integer_assist_projection | Team scoreline allocation: 1 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.186
assist_rate=0.2097
provider_weight=0.2159 | - |
|
| Micky van de Ven | D | 89 | 0 | 0.07 | 0.05 | 35% | 1 | 0.3 | 7.1 | 57.2 | 31 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0099, quality 0.821) | market_value_eur=49000000
quality_factor=0.8206
boost_factor=1.0099
reference_quality=0.505
history_matches=43
history_shrink=0.1042 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0045) | blend_weight=0.0045
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=0.9853
prior_reliability=0.0667
competition=Premier League | fouls: 0.7554 -> 0.7609 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Dominic Calvert-Lewin', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.33 (squad xG sum 1.1399, xG scale 1.1632, xA scale 1.0414, team xA 1.06 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.326
squad_xg_sum=1.1399
squad_xa_sum=1.0186
team_expected_assists=1.0608
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0563 -> 0.0655 | 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.0634
goal_rate=0.009
scorer_weight=0.0524 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0234
assist_rate=0.0036
provider_weight=0.019 | - |
|
| Sandro Tonali | M | 87 | 0 | 0.07 | 0.06 | ok | 1 | 1.2 | 7.3 | 58.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.0116, quality 0.884) | market_value_eur=83000000
quality_factor=0.8845
boost_factor=1.0116
reference_quality=0.505
history_matches=44
history_shrink=0.102 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0080) | blend_weight=0.008
history_matches=44
season_overlap_discount=1.0
per90_to_match_factor=0.9636
prior_reliability=0.12
competition=Premier League | wonTackle: 1.4391 -> 1.4319 wasFouled: 0.8447 -> 0.8508 totalCross: 1.7062 -> 1.7011 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Ethan Ampadu', 'matchup_zone': 'CAM vs CM', 'duel_win_rate': 0.472, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 1.077, 'skill_edge': 0.0564, 'height_edge': -0.004, 'attacker_skill': 0.8875, 'defender_skill': 0.7622, 'attacker_role': 'CAM', 'attacker_mv_price_index': 0.95, 'defender_adjusted_parts': [{'player': 'Ethan Ampadu', 'market_value': 33000000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.7622}], 'xg_override': 0.0599} | aerialWon: 0.5449 -> 1.1 totalShots: 1.2346 -> 1.3297 shotOffTarget: 0.9456 -> 1.0184 onTargetScoringAttempt: 0.288 -> 0.3102 goals: 0.0889 -> 0.0957 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_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.1399, xG scale 1.1632, xA scale 1.0414, team xA 1.06 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.326
squad_xg_sum=1.1399
squad_xa_sum=1.0186
team_expected_assists=1.0608
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0599 -> 0.0697 expected_assists: 0.1308 -> 0.1362 | 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.0673
goal_rate=0.0957
scorer_weight=0.0871 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1273
assist_rate=0.1445
provider_weight=0.1465 | - |
|
| Archie Gray | M | 79 | 0 | 0.06 | 0.04 | 48% | 1 | 0.4 | 6.9 | 49.0 | 38 | 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.0098, quality 0.746) | market_value_eur=34000000
quality_factor=0.7455
boost_factor=1.0098
reference_quality=0.505
history_matches=32
history_shrink=0.1351 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0100) | blend_weight=0.01
history_matches=32
season_overlap_discount=1.0
per90_to_match_factor=0.8752
prior_reliability=0.1133
competition=Premier League | wasFouled: 0.9615 -> 0.9724 totalShots: 0.6249 -> 0.6187 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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 Okafor, Mateo Joseph, Ethan Ampadu', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.33 (squad xG sum 1.1399, xG scale 1.1632, xA scale 1.0414, team xA 1.06 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.326
squad_xg_sum=1.1399
squad_xa_sum=1.0186
team_expected_assists=1.0608
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0547 -> 0.0636 | 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.0616
goal_rate=0.0581
scorer_weight=0.0657 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by 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.0722
provider_weight=0.0715 | - |
|
| Rodrigo Bentancur | M | 81 | 0 | 0.05 | 0.01 | 226% | 1 | 0.2 | 6.9 | 49.5 | 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.0036, quality 0.594) | market_value_eur=16399999
quality_factor=0.5942
boost_factor=1.0036
reference_quality=0.505
history_matches=32
history_shrink=0.1351 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0088) | blend_weight=0.0088
history_matches=32
season_overlap_discount=1.0
per90_to_match_factor=0.9049
prior_reliability=0.1
competition=Premier League | fouls: 1.0556 -> 1.0781 wonTackle: 1.7571 -> 1.7629 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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': '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.1399, xG scale 1.1632, xA scale 1.0414, team xA 1.06 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.326
squad_xg_sum=1.1399
squad_xa_sum=1.0186
team_expected_assists=1.0608
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0391 -> 0.0455 | 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.0445
goal_rate=0.0467
scorer_weight=0.0494 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0274
assist_rate=0.0492
provider_weight=0.0347 | - |
|
| Mateus Fernandes | M | 83 | 0 | 0.10 | 0.04 | 138% | 1 | 0.8 | 7.1 | 60.4 | 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.0109, quality 0.868) | market_value_eur=68000000
quality_factor=0.8677
boost_factor=1.0109
reference_quality=0.505
history_matches=45
history_shrink=0.1 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0065) | blend_weight=0.0065
history_matches=45
season_overlap_discount=1.0
per90_to_match_factor=0.9168
prior_reliability=0.1
competition=Premier League | totalCross: 2.9692 -> 2.9777 wasFouled: 0.8038 -> 0.7986 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'James Justin', 'matchup_zone': 'LW vs CB', 'duel_win_rate': 0.498, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.1144, 'skill_edge': 0.0978, 'height_edge': -0.02, 'attacker_skill': 0.8677, 'defender_skill': 0.6503, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'James Justin', 'market_value': 16500000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6503}], 'xg_override': 0.0874} | totalShots: 1.3287 -> 1.4807 shotOffTarget: 0.9826 -> 1.095 aerialWon: 0.9478 -> 1.0 onTargetScoringAttempt: 0.3461 -> 0.3857 goals: 0.111 -> 0.1237 expectedGoals: 0.0784 -> 0.0874 bigChanceMissed: 0.0487 -> 0.0543 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_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.1399, xG scale 1.1632, xA scale 1.0414, team xA 1.06 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.326
squad_xg_sum=1.1399
squad_xa_sum=1.0186
team_expected_assists=1.0608
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0874 -> 0.1017 expected_assists: 0.1233 -> 0.1284 | 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.0967
goal_rate=0.1237
scorer_weight=0.1271 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1205
assist_rate=0.086
provider_weight=0.1027 | - |
|
| Xavi Simons | M | 80 | 0 | 0.21 | 0.12 | 78% | 2 | 1.5 | 6.9 | 51.5 | 19 | 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.0132, quality 0.796) | market_value_eur=43000000
quality_factor=0.7957
boost_factor=1.0132
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': 'James Justin', 'matchup_zone': 'RW vs CB', 'duel_win_rate': 0.469, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0727, 'skill_edge': 0.0654, 'height_edge': -0.016, 'attacker_skill': 0.7957, 'defender_skill': 0.6503, 'attacker_role': 'RW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'James Justin', 'market_value': 16500000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6503}], 'xg_override': 0.1833} | aerialWon: 0.1706 -> 1.0 totalShots: 1.8823 -> 2.0192 shotOffTarget: 1.2265 -> 1.3157 onTargetScoringAttempt: 0.6558 -> 0.7035 bigChanceMissed: 0.3218 -> 0.3452 expectedGoalsOnTarget: 0.1911 -> 0.205 goals: 0.1839 -> 0.1973 expectedGoals: 0.1709 -> 0.1833 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_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.1399, xG scale 1.1632, xA scale 1.0414, team xA 1.06 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.326
squad_xg_sum=1.1399
squad_xa_sum=1.0186
team_expected_assists=1.0608
team_xa_to_xg_ratio=0.8 | expected_goals: 0.1833 -> 0.2132 expected_assists: 0.158 -> 0.1645 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 81.0) | match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.192
goal_rate=0.1973
scorer_weight=0.226 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1517
assist_rate=0.1828
provider_weight=0.1841 | - |
|
| Richarlison | F | 80 | 1 | 0.34 | 0.20 | 67% | 2 | 1.5 | 6.7 | 48.0 | 21 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0028, quality 0.575) | market_value_eur=14600000
quality_factor=0.5748
boost_factor=1.0028
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.89
prior_reliability=0.0467
competition=Premier League | totalShots: 2.1606 -> 2.152 fouls: 0.9924 -> 0.9986 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'James Justin, Tarik Muharemović', '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.8618, 'skill_edge': -0.078, 'height_edge': -0.016, 'attacker_skill': 0.5748, 'defender_skill': 0.7482, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'James Justin', 'market_value': 16500000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6503}, {'player': 'Tarik Muharemović', 'market_value': 43000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8462}], 'xg_override': 0.2887} | totalShots: 2.1573 -> 1.8592 shotOffTarget: 1.3232 -> 1.1403 onTargetScoringAttempt: 0.8341 -> 0.7188 bigChanceMissed: 0.5291 -> 0.456 expectedGoalsOnTarget: 0.3983 -> 0.3433 goals: 0.3489 -> 0.3007 expectedGoals: 0.335 -> 0.2887 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_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.1399, xG scale 1.1632, xA scale 1.0414, team xA 1.06 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.326
squad_xg_sum=1.1399
squad_xa_sum=1.0186
team_expected_assists=1.0608
team_xa_to_xg_ratio=0.8 | expected_goals: 0.2887 -> 0.3358 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 78.0) | match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.2852
goal_rate=0.3007
scorer_weight=0.3477 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0369
assist_rate=0.0375
provider_weight=0.0382 | - |
|
| Team totals | 1 | 1.33 | | 12 | | 7.0 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Brandon Austin | G | 4.4m | 10.9% | Market-value substitute prior |
| Pedro Porro | D | 15.0m | 24.6% | Market-value substitute prior |
| Destiny Udogie | D | 14.2m | 62.1% | Market-value substitute prior |
| Lucas Bergvall | M | 23.4m | 33.5% | Market-value substitute prior |
| Conor Gallagher | M | 23.1m | 33.0% | Market-value substitute prior |
| Omar Marmoush | F | 26.9m | 36.7% | Market-value substitute prior |
Antagonist / tactical summary
Midfield is evenly contested — Ethan Ampadu vs Sandro Tonali will be the pivotal duel. Total antagonist xG — Home: 0.90, Away: 0.62. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Midfield — possession 48.7% / 51.3%, dominance ratio 0.45, key duel: Ethan Ampadu vs Sandro Tonali
Dominic Calvert-Lewin xG 0.34Noah Okafor xG 0.17Mateo Joseph xG 0.12Mateus Fernandes xG 0.09Sandro Tonali xG 0.06Xavi Simons xG 0.18
Summary
Antagonist matchup analysis for Leeds vs Tottenham. Most likely scoreline: 1-1. Lambdas derived from 7 home and 4 away individual player duels. Head-to-head: Leeds 2W-1D-7L vs Tottenham 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 — Ethan Ampadu vs Sandro Tonali will be the pivotal duel. Total antagonist xG — Home: 0.90, Away: 0.62. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Generated 2026-11-03 14:38:26 UTC · Soccer prediction reporting