Soccer predictions: actual data vs predicted data
Slate 20261024 · 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 detail
Atlético Madrid vs Deportivo
LaLiga · 20261024 · 4-2-3-1 vs 4-2-3-1
Predicted 2-0Winner: Atlético MadridWinning H 2-0 (12.0%)Winning A 0-1 (1.8%)Confidence 0.84λ home/away 2.90 / 0.66Most-likely P 12.0%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset TracingAntagonist + XGBoost match analysis for Atlético Madrid 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 2.657, Away 0.808). Final calibrated Poisson lambdas: Home 2.903, Away 0.655 (most likely score 2-0).
Home Starters 11/11 XGBoost (9 FBref) Away Starters 11/11 XGBoost (10 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 2.66 / 0.81 Final λ (H/A) 2.90 / 0.66
Modeling Pipeline Stages (5 layers)
- 1. XGBoost player regressions for volume & event rates with market-value quality scaling
- 2. Multi-source prior blending (FBref 2026-2027 tables + Sofascore season history)
- 3. Antagonist formation duel matrix resolving 1v1 and zonal matchups
- 4. Team-level prior calibration (FBref possession and attack/defense efficiencies)
- 5. Bivariate Poisson matrix with Dixon-Coles low-score correction
Standing & form context
| Metric | Atlético Madrid | Deportivo |
|---|
| League position | 2.00 | 9.00 |
| Points per game | 2.01 | 1.28 |
| Attack index | 1.22 | 0.93 |
| Defense (concede) index | 0.90 | 0.86 |
| Form multiplier | 1.04 | 0.96 |
| Standing λ multiplier | 1.05 | 0.91 |
Lambda decomposition (how the goal rates were built)
| Stage | Atlético Madrid λ | Deportivo λ |
|---|
| Pre-mismatch | 2.790 | 0.768 |
| Pre-calibration (Micro-duels) | 2.657 | 0.808 |
| Final λ | 2.903 | 0.655 |
competition calibration scale 1.0competition observed total goals 0.0quality gap applied Truemismatch score pressure applied Truecompetitive underdog floor applied Falsestage discount 1.0
Scoreline distribution & markets
| Top 5 scorelines | P |
|---|
| 2-0 | 12.0% |
| 3-0 | 11.6% |
| 4-0 | 8.4% |
| 1-0 | 8.3% |
| 2-1 | 7.9% |
| Home win | 82.9% |
| Draw | 11.5% |
| Away win | 5.6% |
| Over 2.5 | 69.0% |
| BTTS yes | 45.4% |
Pregame fair line — favorite Atlético Madrid (82.9%), fair total 3.56, fair spread 2.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.
Atlético Madrid — projected line vs season baseline (4-2-3-1)
| Player | Pos | Min | Proj G | Proj xG | Season xG/g | | Proj Sh | Season Sh/g | Proj Rtg | Season Rtg | Rec | Model / FBref Prior |
|---|
| Marc Pubill | D | 80 | 0 | 0.09 | 0.04 | 142% | 1 | 0.4 | 6.8 | 50.2 | 28 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0151, quality 0.817) | market_value_eur=48000000
quality_factor=0.8168
boost_factor=1.0151
reference_quality=0.505
history_matches=26
history_shrink=0.1613 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0119) | blend_weight=0.0119
history_matches=26
season_overlap_discount=1.0
per90_to_match_factor=0.891
prior_reliability=0.1133
competition=La Liga | interceptionWon: 0.8317 -> 0.8218 totalShots: 0.5277 -> 0.5337 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Yeremay Herná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 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.90 (squad xG sum 1.7339, xG scale 1.6743, xA scale 1.6743, team xA 1.93 = 0.66 x lambda) | scoreline_reset=true
team_lambda=2.903
squad_xg_sum=1.7339
squad_xa_sum=1.1509
team_expected_assists=1.9269
team_xa_to_xg_ratio=0.6638 | expected_goals: 0.0547 -> 0.0916 expected_assists: 0.0207 -> 0.0347 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 87.0) | match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0875
goal_rate=0.1339
scorer_weight=0.1145 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0341
assist_rate=0.0083
provider_weight=0.0286 | - |
|
| Marcos Llorente | D | 83 | 0 | 0.09 | 0.04 | 147% | 1 | 0.6 | 7.0 | 60.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.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.0076) | blend_weight=0.0076
history_matches=38
season_overlap_discount=1.0
per90_to_match_factor=0.921
prior_reliability=0.1
competition=La Liga | fouls: 0.7435 -> 0.7657 totalCross: 1.7694 -> 1.756 interceptionWon: 1.0512 -> 1.0618 wasFouled: 0.239 -> 0.2465 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Yeremay Hernández', 'matchup_zone': 'Shape fallback'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.90 (squad xG sum 1.7339, xG scale 1.6743, xA scale 1.6743, team xA 1.93 = 0.66 x lambda) | scoreline_reset=true
team_lambda=2.903
squad_xg_sum=1.7339
squad_xa_sum=1.1509
team_expected_assists=1.9269
team_xa_to_xg_ratio=0.6638 | expected_goals: 0.0567 -> 0.0949 expected_assists: 0.0898 -> 0.1504 | 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
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.0905
goal_rate=0.0
scorer_weight=0.0759 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1396
assist_rate=0.108
provider_weight=0.17 | - |
|
| Jan Oblak | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 7.0 | 57.7 | 27 | FBref Prior G_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost G_service raw output over 3 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0029, quality 0.590) | market_value_eur=16000000
quality_factor=0.59
boost_factor=1.0029
reference_quality=0.505
history_matches=39
history_shrink=0.1136 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0148) | blend_weight=0.0148
history_matches=39
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.2
competition=La Liga | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Bil Nsongo, Yeremay Hernández', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 0.8083} | - | 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.90 (squad xG sum 1.7339, xG scale 1.6743, xA scale 1.6743, team xA 1.93 = 0.66 x lambda) | scoreline_reset=true
team_lambda=2.903
squad_xg_sum=1.7339
squad_xa_sum=1.1509
team_expected_assists=1.9269
team_xa_to_xg_ratio=0.6638 | shots_faced: 7.7 -> 6.2 expected_saves: 1.89 -> 1.51 high_pressure_saves: 0.65 -> 0.52 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 88.0) | match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
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=3.0444 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by 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.8319 | - |
|
| Dávid Hancko | D | 88 | 0 | 0.11 | 0.05 | 124% | 1 | 0.7 | 7.1 | 54.4 | 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.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.0148) | blend_weight=0.0148
history_matches=39
season_overlap_discount=1.0
per90_to_match_factor=0.9769
prior_reliability=0.2
competition=La Liga | interceptionWon: 1.0738 -> 1.0868 wasFouled: 0.2145 -> 0.2258 wonTackle: 0.7181 -> 0.7267 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Yeremay Herná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 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.90 (squad xG sum 1.7339, xG scale 1.6743, xA scale 1.6743, team xA 1.93 = 0.66 x lambda) | scoreline_reset=true
team_lambda=2.903
squad_xg_sum=1.7339
squad_xa_sum=1.1509
team_expected_assists=1.9269
team_xa_to_xg_ratio=0.6638 | expected_goals: 0.0664 -> 0.1112 expected_assists: 0.0501 -> 0.0839 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 83.0) | match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.1052
goal_rate=0.0
scorer_weight=0.089 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0805
assist_rate=0.1745
provider_weight=0.1049 | - |
|
| Alejandro Grimaldo | M | 88 | 0 | 0.31 | 0.20 | 58% | 2 | 1.3 | 7.1 | 52.1 | 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.0139, quality 0.625) | market_value_eur=19400000
quality_factor=0.6251
boost_factor=1.0139
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': 'José María Giménez', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.479, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.999, 'skill_edge': 0.0554, 'height_edge': -0.056, 'attacker_skill': 0.6251, 'defender_skill': 0.5021, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'José María Giménez', 'market_value': 5800000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.5021}], 'xg_override': 0.1848} | aerialWon: 0.4381 -> 0.8 | 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.90 (squad xG sum 1.7339, xG scale 1.6743, xA scale 1.6743, team xA 1.93 = 0.66 x lambda) | scoreline_reset=true
team_lambda=2.903
squad_xg_sum=1.7339
squad_xa_sum=1.1509
team_expected_assists=1.9269
team_xa_to_xg_ratio=0.6638 | expected_goals: 0.1848 -> 0.3094 expected_assists: 0.1409 -> 0.2359 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 89.0) | match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.2661
goal_rate=0.1541
scorer_weight=0.269 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.2101
assist_rate=0.1344
provider_weight=0.2279 | - |
|
| Morten Hjulmand | M | 84 | 0 | 0.10 | 0.03 | 292% | 1 | 0.5 | 7.0 | 50.6 | 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.0360, quality 0.817) | market_value_eur=48000000
quality_factor=0.8168
boost_factor=1.036
reference_quality=0.505
history_matches=8
history_shrink=0.3846 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0350) | blend_weight=0.035
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=0.9328
prior_reliability=0.14
competition=La Liga | interceptionWon: 3.2197 -> 3.1536 fouls: 0.5548 -> 0.582 wonTackle: 1.0476 -> 1.0731 totalShots: 0.8561 -> 0.8418 onTargetScoringAttempt: 0.2078 -> 0.2005 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Diego Villares', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.599, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.263, 'skill_edge': 0.1829, 'height_edge': -0.004, 'attacker_skill': 0.8439, 'defender_skill': 0.4374, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Diego Villares', 'market_value': 1000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4374}], 'xg_override': 0.061} | aerialWon: 1.5172 -> 1.2 totalShots: 0.8487 -> 1.0719 shotOffTarget: 0.6482 -> 0.8187 onTargetScoringAttempt: 0.2005 -> 0.2532 goals: 0.0593 -> 0.0749 expectedGoals: 0.0483 -> 0.061 | 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.90 (squad xG sum 1.7339, xG scale 1.6743, xA scale 1.6743, team xA 1.93 = 0.66 x lambda) | scoreline_reset=true
team_lambda=2.903
squad_xg_sum=1.7339
squad_xa_sum=1.1509
team_expected_assists=1.9269
team_xa_to_xg_ratio=0.6638 | expected_goals: 0.061 -> 0.1021 expected_assists: 0.0531 -> 0.0889 | 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: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0971
goal_rate=0.0749
scorer_weight=0.1149 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0851
assist_rate=0.0669
provider_weight=0.1008 | - |
|
| Pablo Barrios | M | 74 | 0 | 0.13 | 0.03 | 296% | 1 | 0.7 | 7.2 | 60.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.0165, quality 0.879) | market_value_eur=77000000
quality_factor=0.8792
boost_factor=1.0165
reference_quality=0.505
history_matches=29
history_shrink=0.1471 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0147) | blend_weight=0.0147
history_matches=29
season_overlap_discount=1.0
per90_to_match_factor=0.818
prior_reliability=0.1533
competition=La Liga | totalCross: 1.3818 -> 1.3668 wasFouled: 0.7955 -> 0.8099 totalShots: 0.9186 -> 0.9104 interceptionWon: 1.5158 -> 1.5092 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Diego Villares', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.603, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.2695, 'skill_edge': 0.2034, 'height_edge': -0.02, 'attacker_skill': 0.8893, 'defender_skill': 0.4374, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Diego Villares', 'market_value': 1000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4374}], 'xg_override': 0.0753} | aerialWon: 0.754 -> 1.1 totalShots: 0.9203 -> 1.1683 shotOffTarget: 0.6781 -> 0.8608 onTargetScoringAttempt: 0.2422 -> 0.3075 expectedGoalsOnTarget: 0.0921 -> 0.1169 goals: 0.06 -> 0.0762 expectedGoals: 0.0593 -> 0.0753 bigChanceMissed: 0.0207 -> 0.0263 | 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.90 (squad xG sum 1.7339, xG scale 1.6743, xA scale 1.6743, team xA 1.93 = 0.66 x lambda) | scoreline_reset=true
team_lambda=2.903
squad_xg_sum=1.7339
squad_xa_sum=1.1509
team_expected_assists=1.9269
team_xa_to_xg_ratio=0.6638 | expected_goals: 0.0753 -> 0.1261 expected_assists: 0.1306 -> 0.2187 | 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.1185
goal_rate=0.0762
scorer_weight=0.127 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1964
assist_rate=0.1249
provider_weight=0.2118 | - |
|
| Julián Alvarez | F | 73 | 1 | 0.49 | 0.12 | 319% | 3 | 1.4 | 7.0 | 52.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.0150, quality 0.895) | market_value_eur=107000000
quality_factor=0.8953
boost_factor=1.015
reference_quality=0.505
history_matches=34
history_shrink=0.1282 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0017) | blend_weight=0.0017
history_matches=34
season_overlap_discount=1.0
per90_to_match_factor=0.8101
prior_reliability=0.02
competition=La Liga | totalCross: 3.1189 -> 3.1137 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Lucas Noubi, Ximo Navarro', '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.2394, 'skill_edge': 0.2029, 'height_edge': -0.04, 'attacker_skill': 0.8953, 'defender_skill': 0.4445, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Lucas Noubi', 'market_value': 3100000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4515}, {'player': 'Ximo Navarro', 'market_value': 95000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.295} | totalShots: 2.2917 -> 2.8403 shotOffTarget: 1.446 -> 1.7922 onTargetScoringAttempt: 0.8433 -> 1.0452 goals: 0.2884 -> 0.3574 expectedGoals: 0.238 -> 0.295 expectedGoalsOnTarget: 0.1863 -> 0.2309 bigChanceMissed: 0.1519 -> 0.1883 | 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.90 (squad xG sum 1.7339, xG scale 1.6743, xA scale 1.6743, team xA 1.93 = 0.66 x lambda) | scoreline_reset=true
team_lambda=2.903
squad_xg_sum=1.7339
squad_xa_sum=1.1509
team_expected_assists=1.9269
team_xa_to_xg_ratio=0.6638 | expected_goals: 0.295 -> 0.4939 expected_assists: 0.0986 -> 0.1651 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 86.0) | match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
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.3898
goal_rate=0.3574
scorer_weight=0.5832 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1522
assist_rate=0.2564
provider_weight=0.2064 | - |
|
| Ademola Lookman | F | 63 | 1 | 0.55 | 0.22 | 149% | 3 | 1.5 | 6.8 | 57.2 | 28 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0170, quality 0.800) | market_value_eur=44000000
quality_factor=0.8002
boost_factor=1.017
reference_quality=0.505
history_matches=21
history_shrink=0.1923 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0217) | blend_weight=0.0217
history_matches=21
season_overlap_discount=1.0
per90_to_match_factor=0.7053
prior_reliability=0.1733
competition=La Liga | wasFouled: 0.8095 -> 0.8213 totalShots: 2.0301 -> 2.0216 interceptionWon: 0.0142 -> 0.0198 totalCross: 0.7723 -> 0.7673 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Lucas Noubi, Ximo Navarro', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.336, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.2001, 'skill_edge': 0.1601, 'height_edge': -0.024, 'attacker_skill': 0.8002, 'defender_skill': 0.4445, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Lucas Noubi', 'market_value': 3100000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4515}, {'player': 'Ximo Navarro', 'market_value': 95000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.3273} | totalShots: 2.0321 -> 2.4388 shotOffTarget: 1.3062 -> 1.5676 onTargetScoringAttempt: 0.7259 -> 0.8712 bigChanceMissed: 0.4286 -> 0.5144 expectedGoals: 0.2727 -> 0.3273 goals: 0.2299 -> 0.2759 expectedGoalsOnTarget: 0.1327 -> 0.1593 | 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.90 (squad xG sum 1.7339, xG scale 1.6743, xA scale 1.6743, team xA 1.93 = 0.66 x lambda) | scoreline_reset=true
team_lambda=2.903
squad_xg_sum=1.7339
squad_xa_sum=1.1509
team_expected_assists=1.9269
team_xa_to_xg_ratio=0.6638 | expected_goals: 0.3273 -> 0.5481 expected_assists: 0.1015 -> 0.1699 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 83.0) | match_squad_rank=14
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=1
goal_probability=0.422
goal_rate=0.2759
scorer_weight=0.4734 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1563
assist_rate=0.0
provider_weight=0.1359 | - |
|
| Alex Baena | F | 73 | 0 | 0.37 | 0.09 | 319% | 3 | 1.5 | 7.2 | 63.4 | 38 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0114, quality 0.817) | market_value_eur=48000000
quality_factor=0.8168
boost_factor=1.0114
reference_quality=0.505
history_matches=36
history_shrink=0.122 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0095) | blend_weight=0.0095
history_matches=36
season_overlap_discount=1.0
per90_to_match_factor=0.8082
prior_reliability=0.12
competition=La Liga | totalCross: 3.5951 -> 3.578 goals: 0.2277 -> 0.2383 interceptionWon: 1.3467 -> 1.3382 totalOffside: 0.1966 -> 0.2033 fouls: 1.1132 -> 1.1197 wasFouled: 1.235 -> 1.2403 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Lucas Noubi, Ximo Navarro', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.344, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.211, 'skill_edge': 0.1676, 'height_edge': -0.024, 'attacker_skill': 0.8168, 'defender_skill': 0.4445, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Lucas Noubi', 'market_value': 3100000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4515}, {'player': 'Ximo Navarro', 'market_value': 95000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.2206} | totalShots: 2.224 -> 2.6933 shotOffTarget: 1.3849 -> 1.6771 onTargetScoringAttempt: 0.8391 -> 1.0162 expectedGoalsOnTarget: 0.2492 -> 0.3018 goals: 0.2383 -> 0.2886 expectedGoals: 0.1822 -> 0.2206 | 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.90 (squad xG sum 1.7339, xG scale 1.6743, xA scale 1.6743, team xA 1.93 = 0.66 x lambda) | scoreline_reset=true
team_lambda=2.903
squad_xg_sum=1.7339
squad_xa_sum=1.1509
team_expected_assists=1.9269
team_xa_to_xg_ratio=0.6638 | expected_goals: 0.2206 -> 0.3693 expected_assists: 0.2243 -> 0.3754 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 83.0) | match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.3088
goal_rate=0.2886
scorer_weight=0.4616 | - | integer_assist_projection | Team scoreline allocation: 1 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.313
assist_rate=0.0615
provider_weight=0.3003 | - |
|
| Kang-in Lee | F | 74 | 0 | 0.33 | 0.14 | 134% | 3 | 1.9 | 7.1 | 56.2 | 16 | XGBoost F_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0278, quality 0.764) | market_value_eur=37000000
quality_factor=0.7641
boost_factor=1.0278
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': 'Lucas Noubi, Ximo Navarro', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.316, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.1703, 'skill_edge': 0.1439, 'height_edge': -0.028, 'attacker_skill': 0.7641, 'defender_skill': 0.4445, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Lucas Noubi', 'market_value': 3100000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4515}, {'player': 'Ximo Navarro', 'market_value': 95000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.1988} | totalShots: 2.1216 -> 2.4829 shotOffTarget: 1.4223 -> 1.6645 onTargetScoringAttempt: 0.6993 -> 0.8184 expectedGoalsOnTarget: 0.2602 -> 0.3045 goals: 0.189 -> 0.2212 bigChanceMissed: 0.1853 -> 0.2169 expectedGoals: 0.1699 -> 0.1988 | 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.90 (squad xG sum 1.7339, xG scale 1.6743, xA scale 1.6743, team xA 1.93 = 0.66 x lambda) | scoreline_reset=true
team_lambda=2.903
squad_xg_sum=1.7339
squad_xa_sum=1.1509
team_expected_assists=1.9269
team_xa_to_xg_ratio=0.6638 | expected_goals: 0.1988 -> 0.3328 expected_assists: 0.2044 -> 0.3422 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 80.0) | match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.2831
goal_rate=0.2212
scorer_weight=0.3628 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.2898
assist_rate=0.1007
provider_weight=0.2738 | - |
|
| Team totals | 2 | 2.90 | | 21 | | 7.0 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Juan Musso | G | 4.4m | 10.9% | Market-value substitute prior |
| Cristian Romero | D | 15.0m | 36.6% | Market-value substitute prior |
| Robin Le Normand | D | 14.3m | 23.2% | Market-value substitute prior |
| Giuliano Simeone | M | 29.2m | 46.5% | Market-value substitute prior |
| Rodrigo Mendoza | M | 13.6m | 45.2% | Market-value substitute prior |
| Jonathan David | F | 26.4m | 60.8% | 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 |
|---|
| Bil Nsongo | F | 76 | 0 | 0.16 | 0.13 | ok | 2 | 1.6 | 6.9 | 52.4 | 13 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9958, quality 0.466) | market_value_eur=5300000
quality_factor=0.4659
boost_factor=0.9958
reference_quality=0.505
history_matches=9
history_shrink=0.3571 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0248) | blend_weight=0.0248
history_matches=9
season_overlap_discount=1.0
per90_to_match_factor=0.8471
prior_reliability=0.1067
competition=La Liga | wonTackle: 0.7266 -> 0.7611 fouls: 1.0715 -> 1.0974 totalCross: 0.3178 -> 0.3362 totalShots: 2.1371 -> 2.1228 wasFouled: 0.6833 -> 0.6926 goals: 0.2747 -> 0.2679 onTargetScoringAttempt: 0.7632 -> 0.7571 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Marc Pubill, Dávid Hancko', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.7121, 'skill_edge': -0.1678, 'height_edge': -0.028, 'attacker_skill': 0.4659, 'defender_skill': 0.8388, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Marc Pubill', 'market_value': 48000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8608}, {'player': 'Dávid Hancko', 'market_value': 36000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8168}], 'xg_override': 0.1913} | totalShots: 2.131 -> 1.5175 shotOffTarget: 1.3739 -> 0.9784 onTargetScoringAttempt: 0.7571 -> 0.5391 expectedGoals: 0.2686 -> 0.1913 goals: 0.2679 -> 0.1908 expectedGoalsOnTarget: 0.1958 -> 0.1394 bigChanceMissed: 0.1746 -> 0.1243 | 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.66 (squad xG sum 0.7603, xG scale 0.8616, xA scale 0.7390, team xA 0.52 = 0.80 x lambda) | scoreline_reset=true
team_lambda=0.655
squad_xg_sum=0.7603
squad_xa_sum=0.709
team_expected_assists=0.524
team_xa_to_xg_ratio=0.8 | expected_goals: 0.1913 -> 0.1647 expected_assists: 0.0421 -> 0.0311 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 69.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.1519
goal_rate=0.1908
scorer_weight=0.1644 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0306
assist_rate=0.0
provider_weight=0.0249 | - |
|
| Yeremay Hernández | F | 78 | 0 | 0.09 | 0.16 | 42% | 1 | 0.9 | 7.0 | 54.0 | 13 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0178, quality 0.660) | market_value_eur=23000000
quality_factor=0.6595
boost_factor=1.0178
reference_quality=0.505
history_matches=8
history_shrink=0.3846 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0067) | blend_weight=0.0067
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=0.8679
prior_reliability=0.0267
competition=La Liga | wonTackle: 1.1939 -> 1.2149 totalCross: 2.4134 -> 2.3973 totalOffside: 0.0 -> 0.0145 totalShots: 1.5867 -> 1.5761 interceptionWon: 0.9585 -> 0.9521 | 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': 'Marc Pubill, Dávid Hancko', '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.7932, 'skill_edge': -0.0807, 'height_edge': -0.06, 'attacker_skill': 0.6595, 'defender_skill': 0.8388, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Marc Pubill', 'market_value': 48000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8608}, {'player': 'Dávid Hancko', 'market_value': 36000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8168}], 'xg_override': 0.1084} | totalShots: 1.5834 -> 1.256 shotOffTarget: 1.1048 -> 0.8763 onTargetScoringAttempt: 0.4786 -> 0.3796 expectedGoalsOnTarget: 0.3098 -> 0.2457 goals: 0.1468 -> 0.1164 expectedGoals: 0.1366 -> 0.1084 | 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.66 (squad xG sum 0.7603, xG scale 0.8616, xA scale 0.7390, team xA 0.52 = 0.80 x lambda) | scoreline_reset=true
team_lambda=0.655
squad_xg_sum=0.7603
squad_xa_sum=0.709
team_expected_assists=0.524
team_xa_to_xg_ratio=0.8 | expected_goals: 0.1084 -> 0.0934 expected_assists: 0.1334 -> 0.0986 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 78.0) | match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_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.0892
goal_rate=0.1164
scorer_weight=0.0981 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0939
assist_rate=0.0
provider_weight=0.0789 | - |
|
| Mario Soriano | M | 85 | 0 | 0.04 | 0.04 | ok | 1 | 0.9 | 7.2 | 53.2 | 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.9962, quality 0.470) | market_value_eur=5600000
quality_factor=0.4695
boost_factor=0.9962
reference_quality=0.505
history_matches=9
history_shrink=0.3571 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0387) | blend_weight=0.0387
history_matches=9
season_overlap_discount=1.0
per90_to_match_factor=0.9397
prior_reliability=0.1667
competition=La Liga | totalCross: 2.5408 -> 2.4716 fouls: 0.9242 -> 0.903 wasFouled: 1.5581 -> 1.5414 interceptionWon: 0.7633 -> 0.7483 wonTackle: 0.4325 -> 0.4449 goalAssist: 0.1061 -> 0.1165 onTargetScoringAttempt: 0.2602 -> 0.2501 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Jan Oblak', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.251, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.7523, 'skill_edge': -0.1085, 'height_edge': -0.06, 'attacker_skill': 0.4695, 'defender_skill': 0.7107, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Jan Oblak', 'market_value': 16000000, 'role': 'GK', 'price_index': 0.55, 'adjusted_quality': 0.7107}], 'xg_override': 0.0521} | aerialWon: 0.2818 -> 0.6 totalShots: 1.1835 -> 0.8903 shotOffTarget: 0.9259 -> 0.6966 onTargetScoringAttempt: 0.2501 -> 0.1882 expectedGoalsOnTarget: 0.1231 -> 0.0926 goals: 0.0771 -> 0.058 expectedGoals: 0.0693 -> 0.0521 | 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.66 (squad xG sum 0.7603, xG scale 0.8616, xA scale 0.7390, team xA 0.52 = 0.80 x lambda) | scoreline_reset=true
team_lambda=0.655
squad_xg_sum=0.7603
squad_xa_sum=0.709
team_expected_assists=0.524
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0521 -> 0.0449 expected_assists: 0.1492 -> 0.1103 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 75.0) | match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0439
goal_rate=0.058
scorer_weight=0.0475 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.1044
assist_rate=0.1165
provider_weight=0.0922 | - |
|
| Diego Villares | M | 80 | 0 | 0.04 | 0.04 | ok | 1 | 0.3 | 6.9 | 29.0 | 12 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9899, quality 0.437) | market_value_eur=1000000
quality_factor=0.4374
boost_factor=0.9899
reference_quality=0.505
history_matches=5
history_shrink=0.5 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0152) | blend_weight=0.0152
history_matches=5
season_overlap_discount=1.0
per90_to_match_factor=0.8936
prior_reliability=0.0467
competition=La Liga | wonTackle: 0.5702 -> 0.6003 totalShots: 0.8791 -> 0.8658 wasFouled: 0.4538 -> 0.4469 fouls: 0.9401 -> 0.9452 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Morten Hjulmand', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.241, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.737, 'skill_edge': -0.1829, 'height_edge': 0.004, 'attacker_skill': 0.4374, 'defender_skill': 0.8439, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Morten Hjulmand', 'market_value': 48000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8439}], 'xg_override': 0.0485} | aerialWon: 0.7476 -> 1.2 totalShots: 0.8754 -> 0.6452 shotOffTarget: 0.6451 -> 0.4754 onTargetScoringAttempt: 0.2303 -> 0.1697 expectedGoalsOnTarget: 0.1219 -> 0.0898 expectedGoals: 0.0658 -> 0.0485 goals: 0.0618 -> 0.0455 | 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.66 (squad xG sum 0.7603, xG scale 0.8616, xA scale 0.7390, team xA 0.52 = 0.80 x lambda) | scoreline_reset=true
team_lambda=0.655
squad_xg_sum=0.7603
squad_xa_sum=0.709
team_expected_assists=0.524
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0485 -> 0.0418 expected_assists: 0.0571 -> 0.0422 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 79.0) | match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0409
goal_rate=0.0455
scorer_weight=0.0405 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0413
assist_rate=0.0599
provider_weight=0.0433 | - |
|
| Lorenzo Amatucci | M | 89 | 0 | 0.02 | - | n/a | 0 | 0.0 | 6.9 | 48.7 | 10 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0026, quality 0.526) | market_value_eur=10300000
quality_factor=0.526
boost_factor=1.0026
reference_quality=0.505
history_matches=7
history_shrink=0.4167 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0542) | blend_weight=0.0542
history_matches=7
season_overlap_discount=1.0
per90_to_match_factor=0.9889
prior_reliability=0.2
competition=La Liga | wasFouled: 1.2782 -> 1.2268 wonTackle: 1.2507 -> 1.2901 fouls: 2.168 -> 2.1398 totalShots: 0.5015 -> 0.4743 goalAssist: 0.0551 -> 0.07 onTargetScoringAttempt: 0.1314 -> 0.1243 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Morten Hjulmand', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.234, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.7271, 'skill_edge': -0.1336, 'height_edge': -0.052, 'attacker_skill': 0.547, 'defender_skill': 0.8439, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Morten Hjulmand', 'market_value': 48000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8439}], 'xg_override': 0.0245} | aerialWon: 1.5629 -> 0.8 totalShots: 0.4944 -> 0.3595 shotOffTarget: 0.3701 -> 0.2691 onTargetScoringAttempt: 0.1243 -> 0.0904 goals: 0.0451 -> 0.0328 expectedGoals: 0.0337 -> 0.0245 | 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.66 (squad xG sum 0.7603, xG scale 0.8616, xA scale 0.7390, team xA 0.52 = 0.80 x lambda) | scoreline_reset=true
team_lambda=0.655
squad_xg_sum=0.7603
squad_xa_sum=0.709
team_expected_assists=0.524
team_xa_to_xg_ratio=0.8 | expected_assists: 0.0414 -> 0.0306 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 73.0) | match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0209
goal_rate=0.0328
scorer_weight=0.0235 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0301
assist_rate=0.07
provider_weight=0.0382 | - |
|
| Giacomo Quagliata | D | 88 | 0 | 0.03 | 0.02 | 35% | 0 | 0.5 | 6.7 | 48.5 | 12 | 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.9942, quality 0.451) | market_value_eur=4099999
quality_factor=0.4511
boost_factor=0.9942
reference_quality=0.505
history_matches=9
history_shrink=0.3571 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0464) | blend_weight=0.0464
history_matches=9
season_overlap_discount=1.0
per90_to_match_factor=0.9829
prior_reliability=0.2
competition=La Liga | totalCross: 3.7252 -> 3.6587 totalShots: 0.5042 -> 0.4808 wonTackle: 0.7983 -> 0.7764 onTargetScoringAttempt: 0.3309 -> 0.3155 interceptionWon: 1.0296 -> 1.0426 fouls: 1.5137 -> 1.5043 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Ademola Lookman', '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.66 (squad xG sum 0.7603, xG scale 0.8616, xA scale 0.7390, team xA 0.52 = 0.80 x lambda) | scoreline_reset=true
team_lambda=0.655
squad_xg_sum=0.7603
squad_xa_sum=0.709
team_expected_assists=0.524
team_xa_to_xg_ratio=0.8 | expected_assists: 0.066 -> 0.0488 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 73.0) | match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0279
goal_rate=0.0
scorer_weight=0.0226 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0476
assist_rate=0.0
provider_weight=0.039 | - |
|
| Lucas Noubi | D | 90 | 0 | 0.00 | - | n/a | 1 | 0.0 | 6.9 | 27.9 | 12 | 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.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 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0650) | blend_weight=0.065
history_matches=5
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.2
competition=La Liga | totalShots: 0.581 -> 0.5432 interceptionWon: 1.1855 -> 1.2168 wasFouled: 1.1043 -> 1.0759 fouls: 1.1881 -> 1.1759 wonTackle: 0.86 -> 0.8691 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Julián Alvarez', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 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.66 (squad xG sum 0.7603, xG scale 0.8616, xA scale 0.7390, team xA 0.52 = 0.80 x lambda) | scoreline_reset=true
team_lambda=0.655
squad_xg_sum=0.7603
squad_xa_sum=0.709
team_expected_assists=0.524
team_xa_to_xg_ratio=0.8 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 73.0) | match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0
goal_rate=0.0
scorer_weight=0.001 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0075
assist_rate=0.0
provider_weight=0.0062 | - |
|
| José María Giménez | D | 84 | 0 | 0.06 | 0.04 | 48% | 1 | 0.5 | 6.9 | 46.6 | 25 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9983, quality 0.472) | market_value_eur=5800000
quality_factor=0.472
boost_factor=0.9983
reference_quality=0.505
history_matches=24
history_shrink=0.1724 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0030) | blend_weight=0.003
history_matches=24
season_overlap_discount=1.0
per90_to_match_factor=0.9347
prior_reliability=0.0267
competition=La Liga | fouls: 1.2257 -> 1.236 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Alejandro Grimaldo', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 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.66 (squad xG sum 0.7603, xG scale 0.8616, xA scale 0.7390, team xA 0.52 = 0.80 x lambda) | scoreline_reset=true
team_lambda=0.655
squad_xg_sum=0.7603
squad_xa_sum=0.709
team_expected_assists=0.524
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0719 -> 0.0619 expected_assists: 0.0212 -> 0.0157 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 82.0) | match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.06
goal_rate=0.0
scorer_weight=0.0495 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0156
assist_rate=0.0426
provider_weight=0.0196 | - |
|
| Ximo Navarro | D | 80 | 0 | 0.03 | 0.02 | 36% | 0 | 0.3 | 6.7 | 43.1 | 12 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9922, quality 0.437) | market_value_eur=95000
quality_factor=0.4374
boost_factor=0.9922
reference_quality=0.505
history_matches=8
history_shrink=0.3846 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0483) | blend_weight=0.0483
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=0.8916
prior_reliability=0.1933
competition=La Liga | fouls: 0.3455 -> 0.3734 wonTackle: 1.1292 -> 1.1043 totalCross: 1.1315 -> 1.1511 wasFouled: 0.6001 -> 0.6157 interceptionWon: 0.9878 -> 0.9995 totalShots: 0.4357 -> 0.4444 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Julián Alvarez', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 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.66 (squad xG sum 0.7603, xG scale 0.8616, xA scale 0.7390, team xA 0.52 = 0.80 x lambda) | scoreline_reset=true
team_lambda=0.655
squad_xg_sum=0.7603
squad_xa_sum=0.709
team_expected_assists=0.524
team_xa_to_xg_ratio=0.8 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 72.0) | match_squad_rank=14
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0283
goal_rate=0.0
scorer_weight=0.023 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0093
assist_rate=0.0
provider_weight=0.0074 | - |
|
| Leo Román | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 7.0 | 63.9 | 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.0001, quality 0.507) | market_value_eur=8700000
quality_factor=0.5071
boost_factor=1.0001
reference_quality=0.505
history_matches=42
history_shrink=0.1064 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0138) | blend_weight=0.0138
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.2
competition=La Liga | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Ademola Lookman, Julián Alvarez', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 2.657} | - | 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.66 (squad xG sum 0.7603, xG scale 0.8616, xA scale 0.7390, team xA 0.52 = 0.80 x lambda) | scoreline_reset=true
team_lambda=0.655
squad_xg_sum=0.7603
squad_xa_sum=0.709
team_expected_assists=0.524
team_xa_to_xg_ratio=0.8 | shots_faced: 25.2 -> 27.6 expected_saves: 6.16 -> 6.76 high_pressure_saves: 2.13 -> 2.32 | 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=0.6442 | - | 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.457 | - |
|
| Luismi Cruz | F | 69 | 0 | 0.08 | 0.05 | 55% | 1 | 0.5 | 6.9 | 47.1 | 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.9928, quality 0.437) | market_value_eur=2100000
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': 'Marc Pubill, Dávid Hancko', '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.6463, 'skill_edge': -0.1806, 'height_edge': -0.06, 'attacker_skill': 0.4374, 'defender_skill': 0.8388, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Marc Pubill', 'market_value': 48000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8608}, {'player': 'Dávid Hancko', 'market_value': 36000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8168}], 'xg_override': 0.0949} | totalShots: 1.1487 -> 0.7424 shotOffTarget: 0.7253 -> 0.4688 onTargetScoringAttempt: 0.4234 -> 0.2736 expectedGoals: 0.1468 -> 0.0949 goals: 0.1383 -> 0.0894 expectedGoalsOnTarget: 0.1112 -> 0.0719 | 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.66 (squad xG sum 0.7603, xG scale 0.8616, xA scale 0.7390, team xA 0.52 = 0.80 x lambda) | scoreline_reset=true
team_lambda=0.655
squad_xg_sum=0.7603
squad_xa_sum=0.709
team_expected_assists=0.524
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0949 -> 0.0818 expected_assists: 0.1163 -> 0.0859 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 74.0) | match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0785
goal_rate=0.0894
scorer_weight=0.0787 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0823
assist_rate=0.0827
provider_weight=0.0687 | - |
|
| Team totals | 0 | 0.66 | | 10 | | 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 |
| Marc Casadó | M | 22.6m | 52.9% | Market-value substitute prior |
| Angeliño | M | 22.0m | 50.1% | Market-value substitute prior |
| Jonathan Asp Jensen | F | 25.4m | 56.5% | Market-value substitute prior |
Antagonist / tactical summary
Home midfield dominates with ~54% possession expected (Pablo Barrios vs Lorenzo Amatucci). Total antagonist xG — Home: 1.36, Away: 0.52. 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 54.0% / 46.0%, dominance ratio 0.62, key duel: Pablo Barrios vs Lorenzo Amatucci
Alejandro Grimaldo xG 0.18Julián Alvarez xG 0.29Ademola Lookman xG 0.33Mario Soriano xG 0.05Yeremay Hernández xG 0.11Bil Nsongo xG 0.19
Summary
Antagonist matchup analysis for Atlético Madrid vs Deportivo. Most likely scoreline: 2-0. Lambdas derived from 7 home and 6 away individual player duels. Head-to-head: Atlético Madrid 7W-3D-0L 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. Home midfield dominates with ~54% possession expected (Pablo Barrios vs Lorenzo Amatucci). Total antagonist xG — Home: 1.36, Away: 0.52. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Rayo Vallecano vs Elche
LaLiga · 20261024 · 4-2-3-1 vs 4-2-3-1
Predicted 1-1Winner: DrawWinning H 1-0 (11.6%)Winning A 0-1 (10.0%)Confidence 0.7λ home/away 1.29 / 1.11Most-likely P 13.1%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset TracingAntagonist + XGBoost match analysis for Rayo Vallecano vs Elche. 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.286, Away 1.111). Final calibrated Poisson lambdas: Home 1.286, Away 1.111 (most likely score 1-1).
Home Starters 11/11 XGBoost (5 FBref) Away Starters 11/11 XGBoost (8 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.29 / 1.11 Final λ (H/A) 1.29 / 1.11
FBref Team Priors: Rayo Vallecano (Gls/90: 1.3333333333333333, GA/90: 1.33 → E[λ]: 0.988) vs Elche (Gls/90: 1.0, GA/90: 1.0 → E[λ]: 0.985) | Blend Weight: 0.228
Modeling Pipeline Stages (5 layers)
- 1. XGBoost player regressions for volume & event rates with market-value quality scaling
- 2. Multi-source prior blending (FBref 2026-2027 tables + Sofascore season history)
- 3. Antagonist formation duel matrix resolving 1v1 and zonal matchups
- 4. Team-level prior calibration (FBref possession and attack/defense efficiencies)
- 5. Bivariate Poisson matrix with Dixon-Coles low-score correction
Standing & form context
| Metric | Rayo Vallecano | Elche |
|---|
| League position | 13.00 | 18.00 |
| Points per game | 1.22 | 1.01 |
| Attack index | 0.99 | 0.87 |
| Defense (concede) index | 1.05 | 1.15 |
| Form multiplier | 1.01 | 0.99 |
| Standing λ multiplier | 1.02 | 1.00 |
Lambda decomposition (how the goal rates were built)
| Stage | Rayo Vallecano λ | Elche λ |
|---|
| FBref Squad Prior E[λ] (weight 0.228) | 0.988 | 0.985 |
| Pre-competitive-floor | 1.286 | 1.111 |
| Pre-calibration (Micro-duels) | 1.286 | 1.111 |
| Final λ | 1.286 | 1.111 |
competition calibration scale 1.0competition observed total goals 0.0quality gap applied Falsemismatch score pressure applied Falsecompetitive underdog floor applied Falsestage discount 1.0
Scoreline distribution & markets
| Top 5 scorelines | P |
|---|
| 1-1 | 13.1% |
| 1-0 | 11.6% |
| 0-1 | 10.0% |
| 0-0 | 9.2% |
| 2-1 | 8.4% |
| Home win | 40.4% |
| Draw | 27.8% |
| Away win | 31.9% |
| Over 2.5 | 43.0% |
| BTTS yes | 48.7% |
Pregame fair line — favorite Rayo Vallecano (40.4%), fair total 2.40, fair spread 0.17
Projected players vs season baseline
Proj = projected for this match · Season = this season's per-game average from match data · deviation badge compares projected xG to the player's season xG/game.
Rayo Vallecano — projected line vs season baseline (4-2-3-1)
| Player | Pos | Min | Proj G | Proj xG | Season xG/g | | Proj Sh | Season Sh/g | Proj Rtg | Season Rtg | Rec | Model / FBref Prior |
|---|
| Mujaid Sadick | D | 85 | 0 | 0.00 | - | n/a | 0 | 0.0 | 6.8 | 33.0 | 8 | XGBoost D_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9922, quality 0.458) | market_value_eur=4700000
quality_factor=0.4585
boost_factor=0.9922
reference_quality=0.505
history_matches=4
history_shrink=0.5556 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Fernando Niño', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.29 (squad xG sum 1.0238, xG scale 1.2561, xA scale 1.2561, team xA 0.88 = 0.69 x lambda) | scoreline_reset=true
team_lambda=1.286
squad_xg_sum=1.0238
squad_xa_sum=0.7033
team_expected_assists=0.8834
team_xa_to_xg_ratio=0.6869 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 84.0) | match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
goal_rate=0.0
scorer_weight=0.001 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0053
assist_rate=0.0
provider_weight=0.0049 | - |
|
| Florian Lejeune | D | 90 | 0 | 0.09 | 0.06 | 56% | 1 | 1.4 | 7.1 | 61.4 | 31 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9979, quality 0.437) | market_value_eur=1700000
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 | interceptionWon: 1.1718 -> 1.1916 wonTackle: 0.9638 -> 0.9775 totalShots: 1.1128 -> 1.1202 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Fernando Niño', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.29 (squad xG sum 1.0238, xG scale 1.2561, xA scale 1.2561, team xA 0.88 = 0.69 x lambda) | scoreline_reset=true
team_lambda=1.286
squad_xg_sum=1.0238
squad_xa_sum=0.7033
team_expected_assists=0.8834
team_xa_to_xg_ratio=0.6869 | expected_goals: 0.0751 -> 0.0943 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 79.0) | match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.09
goal_rate=0.0555
scorer_weight=0.0795 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0159
assist_rate=0.011
provider_weight=0.0156 | - |
|
| Iván Balliu | D | 80 | 0 | 0.03 | 0.00 | 3416% | 0 | 0.0 | 6.6 | 27.5 | 29 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9961, quality 0.437) | market_value_eur=1100000
quality_factor=0.4374
boost_factor=0.9961
reference_quality=0.505
history_matches=21
history_shrink=0.1923 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0167) | blend_weight=0.0167
history_matches=21
season_overlap_discount=1.0
per90_to_match_factor=0.8852
prior_reliability=0.1333
competition=La Liga | totalCross: 0.8623 -> 0.8553 totalShots: 0.3318 -> 0.3263 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Lucas Cepeda', '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.29 (squad xG sum 1.0238, xG scale 1.2561, xA scale 1.2561, team xA 0.88 = 0.69 x lambda) | scoreline_reset=true
team_lambda=1.286
squad_xg_sum=1.0238
squad_xa_sum=0.7033
team_expected_assists=0.8834
team_xa_to_xg_ratio=0.6869 | expected_goals: 0.0232 -> 0.0291 expected_assists: 0.037 -> 0.0465 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 18 by projected rating, fifa_overall 74.0) | match_squad_rank=18
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0287
goal_rate=0.0
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.0454
assist_rate=0.0
provider_weight=0.0372 | - |
|
| Emil Audero | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 6.9 | 34.0 | 8 | 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.9887, quality 0.437) | market_value_eur=2700000
quality_factor=0.4374
boost_factor=0.9887
reference_quality=0.505
history_matches=4
history_shrink=0.5556 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Fernando Niño, Lucas Cepeda', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.1114} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.29 (squad xG sum 1.0238, xG scale 1.2561, xA scale 1.2561, team xA 0.88 = 0.69 x lambda) | scoreline_reset=true
team_lambda=1.286
squad_xg_sum=1.0238
squad_xa_sum=0.7033
team_expected_assists=0.8834
team_xa_to_xg_ratio=0.6869 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 79.0) | match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.3418 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by 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.8581 | - |
|
| Adrià Pedrosa | D | 86 | 0 | 0.05 | 0.02 | 217% | 1 | 0.4 | 6.7 | 45.5 | 30 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9973, quality 0.437) | market_value_eur=2700000
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.0040) | blend_weight=0.004
history_matches=33
season_overlap_discount=1.0
per90_to_match_factor=0.9541
prior_reliability=0.0467
competition=La Liga | fouls: 1.1654 -> 1.1716 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Thomas Lemar', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.29 (squad xG sum 1.0238, xG scale 1.2561, xA scale 1.2561, team xA 0.88 = 0.69 x lambda) | scoreline_reset=true
team_lambda=1.286
squad_xg_sum=1.0238
squad_xa_sum=0.7033
team_expected_assists=0.8834
team_xa_to_xg_ratio=0.6869 | expected_goals: 0.0383 -> 0.0481 expected_assists: 0.1302 -> 0.1635 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 74.0) | match_squad_rank=14
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.047
goal_rate=0.1225
scorer_weight=0.0601 | - | integer_assist_projection | Team scoreline allocation: 1 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.1508
assist_rate=0.144
provider_weight=0.176 | - |
|
| Unai López | M | 80 | 0 | 0.07 | 0.03 | 190% | 1 | 0.6 | 7.1 | 51.6 | 28 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9975, quality 0.437) | market_value_eur=2600000
quality_factor=0.4374
boost_factor=0.9975
reference_quality=0.505
history_matches=36
history_shrink=0.122 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0143) | blend_weight=0.0143
history_matches=36
season_overlap_discount=1.0
per90_to_match_factor=0.8883
prior_reliability=0.18
competition=La Liga | totalShots: 1.0254 -> 1.0155 fouls: 1.1166 -> 1.1241 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Matías Dituro', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.36, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9118, 'skill_edge': 0.0, 'height_edge': -0.06, 'attacker_skill': 0.4374, 'defender_skill': 0.4374, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Matías Dituro', 'market_value': 105000, 'role': 'GK', 'price_index': 0.55, 'adjusted_quality': 0.4374}], 'xg_override': 0.0585} | aerialWon: 0.3743 -> 0.8 totalShots: 1.0259 -> 0.9354 shotOffTarget: 0.7289 -> 0.6646 onTargetScoringAttempt: 0.297 -> 0.2708 goals: 0.0848 -> 0.0773 expectedGoals: 0.0642 -> 0.0585 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.29 (squad xG sum 1.0238, xG scale 1.2561, xA scale 1.2561, team xA 0.88 = 0.69 x lambda) | scoreline_reset=true
team_lambda=1.286
squad_xg_sum=1.0238
squad_xa_sum=0.7033
team_expected_assists=0.8834
team_xa_to_xg_ratio=0.6869 | expected_goals: 0.0585 -> 0.0735 expected_assists: 0.1442 -> 0.1811 | 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: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0709
goal_rate=0.0773
scorer_weight=0.0862 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1656
assist_rate=0.1158
provider_weight=0.1546 | - |
|
| Pathé Ismaël Ciss | M | 90 | 0 | 0.06 | 0.08 | ok | 1 | 0.5 | 6.9 | 62.3 | 30 | XGBoost M_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9976, quality 0.437) | market_value_eur=1600000
quality_factor=0.4374
boost_factor=0.9976
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': 'Javi Morcillo', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.42, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0, 'skill_edge': 0.0, 'height_edge': 0.0, 'attacker_skill': 0.4374, 'defender_skill': 0.4374, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Javi Morcillo', 'market_value': 2100000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4374}], 'xg_override': 0.0494} | aerialWon: 1.7013 -> 1.1 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.29 (squad xG sum 1.0238, xG scale 1.2561, xA scale 1.2561, team xA 0.88 = 0.69 x lambda) | scoreline_reset=true
team_lambda=1.286
squad_xg_sum=1.0238
squad_xa_sum=0.7033
team_expected_assists=0.8834
team_xa_to_xg_ratio=0.6869 | expected_goals: 0.0494 -> 0.0621 expected_assists: 0.0319 -> 0.0401 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 82.0) | match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_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.0602
goal_rate=0.0526
scorer_weight=0.0641 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0393
assist_rate=0.0495
provider_weight=0.0487 | - |
|
| Giorgi Tsitaishvili | F | 81 | 0 | 0.17 | 0.10 | 81% | 2 | 0.9 | 6.7 | 31.9 | 14 | XGBoost F_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9899, quality 0.437) | market_value_eur=2700000
quality_factor=0.4374
boost_factor=0.9899
reference_quality=0.505
history_matches=5
history_shrink=0.5 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Roy Revivo, Buba Sangaré', '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.8993, 'skill_edge': -0.0185, 'height_edge': -0.05, 'attacker_skill': 0.4374, 'defender_skill': 0.4785, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Roy Revivo', 'market_value': 4600000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4761}, {'player': 'Buba Sangaré', 'market_value': 4900000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4809}], 'xg_override': 0.1388} | totalShots: 1.5468 -> 1.391 shotOffTarget: 0.9573 -> 0.8609 onTargetScoringAttempt: 0.5894 -> 0.53 bigChanceMissed: 0.2126 -> 0.1912 goals: 0.2012 -> 0.1809 expectedGoals: 0.1543 -> 0.1388 expectedGoalsOnTarget: 0.0599 -> 0.0539 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.29 (squad xG sum 1.0238, xG scale 1.2561, xA scale 1.2561, team xA 0.88 = 0.69 x lambda) | scoreline_reset=true
team_lambda=1.286
squad_xg_sum=1.0238
squad_xa_sum=0.7033
team_expected_assists=0.8834
team_xa_to_xg_ratio=0.6869 | expected_goals: 0.1388 -> 0.1743 expected_assists: 0.0779 -> 0.0978 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 78.0) | match_squad_rank=12
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.16
goal_rate=0.1809
scorer_weight=0.2132 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0932
assist_rate=0.0
provider_weight=0.0782 | - |
|
| Alemão | F | 75 | 0 | 0.28 | 0.09 | 207% | 2 | 0.6 | 6.7 | 44.5 | 31 | XGBoost F_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9980, quality 0.455) | market_value_eur=4400000
quality_factor=0.4548
boost_factor=0.998
reference_quality=0.505
history_matches=33
history_shrink=0.1316 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Roy Revivo, Buba Sangaré', '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.9755, 'skill_edge': -0.0107, 'height_edge': -0.006, 'attacker_skill': 0.4548, 'defender_skill': 0.4785, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Roy Revivo', 'market_value': 4600000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4761}, {'player': 'Buba Sangaré', 'market_value': 4900000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4809}], 'xg_override': 0.2204} | totalShots: 1.6564 -> 1.6158 shotOffTarget: 0.9795 -> 0.9555 onTargetScoringAttempt: 0.6768 -> 0.6602 bigChanceMissed: 0.3269 -> 0.3189 expectedGoals: 0.2259 -> 0.2204 goals: 0.2058 -> 0.2008 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.29 (squad xG sum 1.0238, xG scale 1.2561, xA scale 1.2561, team xA 0.88 = 0.69 x lambda) | scoreline_reset=true
team_lambda=1.286
squad_xg_sum=1.0238
squad_xa_sum=0.7033
team_expected_assists=0.8834
team_xa_to_xg_ratio=0.6869 | expected_goals: 0.2204 -> 0.2768 expected_assists: 0.0274 -> 0.0344 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 15 by projected rating, fifa_overall 74.0) | match_squad_rank=15
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.2418
goal_rate=0.2008
scorer_weight=0.2567 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0338
assist_rate=0.0
provider_weight=0.0275 | - |
|
| Álvaro García | F | 80 | 1 | 0.28 | 0.18 | 60% | 2 | 1.1 | 6.8 | 54.4 | 35 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9977, quality 0.437) | market_value_eur=1500000
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.0106) | blend_weight=0.0106
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=0.8939
prior_reliability=0.1467
competition=La Liga | totalShots: 1.9809 -> 1.9686 totalCross: 3.3337 -> 3.3242 fouls: 0.4681 -> 0.4761 totalOffside: 0.3058 -> 0.3112 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Roy Revivo, Buba Sangaré', '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.8846, 'skill_edge': -0.0185, 'height_edge': -0.06, 'attacker_skill': 0.4374, 'defender_skill': 0.4785, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Roy Revivo', 'market_value': 4600000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4761}, {'player': 'Buba Sangaré', 'market_value': 4900000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4809}], 'xg_override': 0.2243} | totalShots: 1.9776 -> 1.7494 shotOffTarget: 1.2576 -> 1.1125 onTargetScoringAttempt: 0.72 -> 0.6369 expectedGoalsOnTarget: 0.3353 -> 0.2966 bigChanceMissed: 0.3047 -> 0.2695 goals: 0.278 -> 0.2459 expectedGoals: 0.2536 -> 0.2243 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.29 (squad xG sum 1.0238, xG scale 1.2561, xA scale 1.2561, team xA 0.88 = 0.69 x lambda) | scoreline_reset=true
team_lambda=1.286
squad_xg_sum=1.0238
squad_xa_sum=0.7033
team_expected_assists=0.8834
team_xa_to_xg_ratio=0.6869 | expected_goals: 0.2243 -> 0.2819 expected_assists: 0.0772 -> 0.097 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 81.0) | match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.2457
goal_rate=0.2459
scorer_weight=0.3041 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0924
assist_rate=0.2497
provider_weight=0.1212 | - |
|
| Isi Palazón | M | 67 | 0 | 0.14 | 0.11 | 36% | 1 | 1.2 | 6.8 | 55.7 | 22 | XGBoost M_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9974, quality 0.437) | market_value_eur=3000000
quality_factor=0.4374
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': 'Javi Morcillo', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.367, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.922, 'skill_edge': 0.003, 'height_edge': -0.056, 'attacker_skill': 0.444, 'defender_skill': 0.4374, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Javi Morcillo', 'market_value': 2100000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4374}], 'xg_override': 0.1141} | totalShots: 1.5077 -> 1.3901 shotOffTarget: 1.0291 -> 0.9488 aerialWon: 0.8711 -> 0.8 onTargetScoringAttempt: 0.4786 -> 0.4413 bigChanceMissed: 0.1481 -> 0.1365 expectedGoals: 0.1238 -> 0.1141 goals: 0.1183 -> 0.1091 expectedGoalsOnTarget: 0.0729 -> 0.0672 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.29 (squad xG sum 1.0238, xG scale 1.2561, xA scale 1.2561, team xA 0.88 = 0.69 x lambda) | scoreline_reset=true
team_lambda=1.286
squad_xg_sum=1.0238
squad_xa_sum=0.7033
team_expected_assists=0.8834
team_xa_to_xg_ratio=0.6869 | expected_goals: 0.1141 -> 0.1433 expected_assists: 0.107 -> 0.1344 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 79.0) | match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_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.1335
goal_rate=0.1091
scorer_weight=0.1389 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1258
assist_rate=0.0926
provider_weight=0.1221 | - |
|
| Team totals | 1 | 1.29 | | 13 | | 6.8 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Augusto Batalla | G | 4.5m | 13.4% | Market-value substitute prior |
| Andrei Rațiu | D | 14.4m | 23.4% | Market-value substitute prior |
| Abdul Mumin | D | 13.6m | 29.9% | Market-value substitute prior |
| Pedro Díaz | M | 23.1m | 69.2% | Market-value substitute prior |
| Óscar Valentín | M | 29.7m | 43.5% | Market-value substitute prior |
| Jorge de Frutos | F | 25.7m | 57.6% | Market-value substitute prior |
Elche — 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 |
|---|
| Fernando Niño | F | 75 | 1 | 0.41 | 0.28 | 47% | 2 | 1.2 | 6.9 | 58.0 | 11 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9936, quality 0.445) | market_value_eur=3600000
quality_factor=0.4449
boost_factor=0.9936
reference_quality=0.505
history_matches=9
history_shrink=0.3571 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0387) | blend_weight=0.0387
history_matches=9
season_overlap_discount=1.0
per90_to_match_factor=0.8302
prior_reliability=0.1667
competition=La Liga | totalShots: 2.086 -> 2.0564 fouls: 0.8201 -> 0.8012 totalOffside: 0.1347 -> 0.1295 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Mujaid Sadick, Florian Lejeune', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.204, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.0063, 'skill_edge': -0.0057, 'height_edge': 0.01, 'attacker_skill': 0.4449, 'defender_skill': 0.4576, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Mujaid Sadick', 'market_value': 4700000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4777}, {'player': 'Florian Lejeune', 'market_value': 1700000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.3468} | totalShots: 2.0831 -> 2.0963 onTargetScoringAttempt: 1.0585 -> 1.0652 shotOffTarget: 1.0246 -> 1.0311 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.11 (squad xG sum 0.9390, xG scale 1.1832, xA scale 1.1135, team xA 0.89 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.111
squad_xg_sum=0.939
squad_xa_sum=0.7982
team_expected_assists=0.8888
team_xa_to_xg_ratio=0.8 | expected_goals: 0.3468 -> 0.4105 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 81.0) | match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_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.3367
goal_rate=0.4068
scorer_weight=0.4726 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0457
assist_rate=0.0
provider_weight=0.0374 | - |
|
| Germán Valera | F | 85 | 0 | 0.11 | 0.04 | 195% | 1 | 0.5 | 6.8 | 58.3 | 42 | XGBoost F_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9992, quality 0.477) | market_value_eur=6200000
quality_factor=0.4769
boost_factor=0.9992
reference_quality=0.505
history_matches=45
history_shrink=0.1 | - | 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': 'Mujaid Sadick, Florian Lejeune', '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.9246, 'skill_edge': 0.0087, 'height_edge': -0.06, 'attacker_skill': 0.4769, 'defender_skill': 0.4576, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Mujaid Sadick', 'market_value': 4700000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4777}, {'player': 'Florian Lejeune', 'market_value': 1700000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.094} | totalShots: 1.0171 -> 0.9404 shotOffTarget: 0.6366 -> 0.5886 onTargetScoringAttempt: 0.3805 -> 0.3518 goals: 0.1407 -> 0.1301 expectedGoals: 0.1017 -> 0.094 bigChanceMissed: 0.0669 -> 0.0619 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.11 (squad xG sum 0.9390, xG scale 1.1832, xA scale 1.1135, team xA 0.89 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.111
squad_xg_sum=0.939
squad_xa_sum=0.7982
team_expected_assists=0.8888
team_xa_to_xg_ratio=0.8 | expected_goals: 0.094 -> 0.1112 expected_assists: 0.1524 -> 0.1697 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 82.0) | match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_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.1052
goal_rate=0.1301
scorer_weight=0.139 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1561
assist_rate=0.0411
provider_weight=0.1358 | - |
|
| Lucas Cepeda | F | 77 | 0 | 0.13 | 0.05 | 184% | 2 | 0.8 | 6.9 | 43.1 | 30 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9958, quality 0.437) | market_value_eur=2600000
quality_factor=0.4374
boost_factor=0.9958
reference_quality=0.505
history_matches=19
history_shrink=0.2083 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0081) | blend_weight=0.0081
history_matches=19
season_overlap_discount=1.0
per90_to_match_factor=0.8544
prior_reliability=0.06
competition=La Liga | totalCross: 1.5309 -> 1.5647 totalShots: 1.4 -> 1.4277 fouls: 0.8041 -> 0.8207 interceptionWon: 0.329 -> 0.3418 wasFouled: 2.3268 -> 2.3156 onTargetScoringAttempt: 0.5487 -> 0.5599 wonTackle: 1.0264 -> 1.0181 goalAssist: 0.0 -> 0.0077 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Mujaid Sadick, Florian Lejeune', '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.9249, 'skill_edge': -0.0091, 'height_edge': -0.042, 'attacker_skill': 0.4374, 'defender_skill': 0.4576, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Mujaid Sadick', 'market_value': 4700000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4777}, {'player': 'Florian Lejeune', 'market_value': 1700000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.1104} | totalShots: 1.4277 -> 1.3205 shotOffTarget: 0.8513 -> 0.7874 onTargetScoringAttempt: 0.5599 -> 0.5179 goals: 0.1645 -> 0.1521 expectedGoals: 0.1194 -> 0.1104 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.11 (squad xG sum 0.9390, xG scale 1.1832, xA scale 1.1135, team xA 0.89 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.111
squad_xg_sum=0.939
squad_xa_sum=0.7982
team_expected_assists=0.8888
team_xa_to_xg_ratio=0.8 | expected_goals: 0.1104 -> 0.1306 expected_assists: 0.105 -> 0.1169 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 71.0) | match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1224
goal_rate=0.1521
scorer_weight=0.1633 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1103
assist_rate=0.0077
provider_weight=0.0935 | - |
|
| Gonzalo Villar | M | 81 | 0 | 0.09 | 0.03 | 249% | 1 | 0.4 | 6.9 | 53.4 | 27 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9961, quality 0.437) | market_value_eur=1700000
quality_factor=0.4374
boost_factor=0.9961
reference_quality=0.505
history_matches=21
history_shrink=0.1923 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0250) | blend_weight=0.025
history_matches=21
season_overlap_discount=1.0
per90_to_match_factor=0.899
prior_reliability=0.2
competition=La Liga | wasFouled: 2.1057 -> 2.1579 totalCross: 1.2925 -> 1.3276 fouls: 1.6609 -> 1.6793 onTargetScoringAttempt: 0.2615 -> 0.2774 totalShots: 0.7097 -> 0.7218 goalAssist: 0.0876 -> 0.0929 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Pathé Ismaël Ciss, Isi Palazón', 'matchup_zone': 'Attacking Mid vs Double Pivot — Tight Space Battle', 'duel_win_rate': 0.259, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.0272, 'skill_edge': -0.0015, 'height_edge': 0.02, 'attacker_skill': 0.4374, 'defender_skill': 0.4407, 'attacker_role': 'CAM', 'attacker_mv_price_index': 0.95, 'defender_adjusted_parts': [{'player': 'Pathé Ismaël Ciss', 'market_value': 1600000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4374}, {'player': 'Isi Palazón', 'market_value': 3000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.444}], 'xg_override': 0.0745} | aerialWon: 0.7743 -> 1.1 totalShots: 0.7255 -> 0.7452 shotOffTarget: 0.4481 -> 0.4603 onTargetScoringAttempt: 0.2774 -> 0.2849 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.11 (squad xG sum 0.9390, xG scale 1.1832, xA scale 1.1135, team xA 0.89 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.111
squad_xg_sum=0.939
squad_xa_sum=0.7982
team_expected_assists=0.8888
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0745 -> 0.0881 expected_assists: 0.0794 -> 0.0884 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 72.0) | match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0843
goal_rate=0.0818
scorer_weight=0.0933 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0846
assist_rate=0.0929
provider_weight=0.0976 | - |
|
| Javi Morcillo | M | 87 | 0 | 0.04 | 0.01 | 178% | 1 | 0.2 | 6.7 | 41.3 | 21 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9940, quality 0.437) | market_value_eur=2100000
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.0051) | blend_weight=0.0051
history_matches=12
season_overlap_discount=1.0
per90_to_match_factor=0.9649
prior_reliability=0.0267
competition=La Liga | fouls: 0.6484 -> 0.6574 wonTackle: 1.1736 -> 1.1799 interceptionWon: 1.0933 -> 1.0877 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Pathé Ismaël Ciss', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.42, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0, 'skill_edge': 0.0, 'height_edge': 0.0, 'attacker_skill': 0.4374, 'defender_skill': 0.4374, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Pathé Ismaël Ciss', 'market_value': 1600000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4374}], 'xg_override': 0.0321} | aerialWon: 0.847 -> 1.1 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.11 (squad xG sum 0.9390, xG scale 1.1832, xA scale 1.1135, team xA 0.89 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.111
squad_xg_sum=0.939
squad_xa_sum=0.7982
team_expected_assists=0.8888
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0321 -> 0.038 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 79.0) | match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_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.0373
goal_rate=0.0417
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.0291
assist_rate=0.0384
provider_weight=0.0341 | - |
|
| Roy Revivo | D | 88 | 0 | 0.01 | 0.02 | 45% | 1 | 0.2 | 6.8 | 50.9 | 8 | XGBoost D_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9935, quality 0.457) | market_value_eur=4600000
quality_factor=0.4572
boost_factor=0.9935
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': 'Alemão', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.11 (squad xG sum 0.9390, xG scale 1.1832, xA scale 1.1135, team xA 0.89 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.111
squad_xg_sum=0.939
squad_xa_sum=0.7982
team_expected_assists=0.8888
team_xa_to_xg_ratio=0.8 | expected_assists: 0.1551 -> 0.1728 | 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: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.011
goal_rate=0.0
scorer_weight=0.0093 | - | integer_assist_projection | Team scoreline allocation: 1 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.1587
assist_rate=0.3871
provider_weight=0.216 | - |
|
| Federico Redondo | M | 68 | 0 | 0.03 | 0.01 | 561% | 0 | 0.1 | 6.8 | 33.2 | 34 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9954, quality 0.437) | market_value_eur=2400000
quality_factor=0.4374
boost_factor=0.9954
reference_quality=0.505
history_matches=17
history_shrink=0.2273 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0148) | blend_weight=0.0148
history_matches=17
season_overlap_discount=1.0
per90_to_match_factor=0.7547
prior_reliability=0.1
competition=La Liga | fouls: 0.9905 -> 0.9833 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Pathé Ismaël Ciss', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.44, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0294, 'skill_edge': 0.0, 'height_edge': 0.02, 'attacker_skill': 0.4374, 'defender_skill': 0.4374, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Pathé Ismaël Ciss', 'market_value': 1600000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4374}], 'xg_override': 0.0283} | aerialWon: 0.1472 -> 1.2 totalShots: 0.4631 -> 0.4767 shotOffTarget: 0.353 -> 0.3634 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.11 (squad xG sum 0.9390, xG scale 1.1832, xA scale 1.1135, team xA 0.89 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.111
squad_xg_sum=0.939
squad_xa_sum=0.7982
team_expected_assists=0.8888
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0283 -> 0.0335 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 70.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.0329
goal_rate=0.0388
scorer_weight=0.038 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by 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.0384
provider_weight=0.0401 | - |
|
| Víctor Chust | D | 90 | 0 | 0.05 | 0.02 | 103% | 1 | 0.4 | 6.9 | 63.9 | 30 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9977, quality 0.437) | market_value_eur=2700000
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.0144) | blend_weight=0.0144
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=0.995
prior_reliability=0.2
competition=La Liga | totalCross: 1.085 -> 1.0981 wonTackle: 0.944 -> 0.9495 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Alemão', '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.11 (squad xG sum 0.9390, xG scale 1.1832, xA scale 1.1135, team xA 0.89 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.111
squad_xg_sum=0.939
squad_xa_sum=0.7982
team_expected_assists=0.8888
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0384 -> 0.0454 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 74.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.0444
goal_rate=0.0413
scorer_weight=0.0469 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0388
assist_rate=0.0658
provider_weight=0.0495 | - |
|
| Buba Sangaré | D | 74 | 0 | 0.01 | 0.01 | ok | 0 | 0.1 | 6.6 | 52.1 | 25 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9974, quality 0.461) | market_value_eur=4900000
quality_factor=0.4609
boost_factor=0.9974
reference_quality=0.505
history_matches=20
history_shrink=0.2 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0251) | blend_weight=0.0251
history_matches=20
season_overlap_discount=1.0
per90_to_match_factor=0.8246
prior_reliability=0.1933
competition=La Liga | wonTackle: 0.9869 -> 1.005 totalCross: 0.9656 -> 0.9556 interceptionWon: 0.6732 -> 0.6634 fouls: 1.1181 -> 1.1257 goals: 0.0717 -> 0.077 onTargetScoringAttempt: 0.0717 -> 0.0769 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Alemão', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.11 (squad xG sum 0.9390, xG scale 1.1832, xA scale 1.1135, team xA 0.89 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.111
squad_xg_sum=0.939
squad_xa_sum=0.7982
team_expected_assists=0.8888
team_xa_to_xg_ratio=0.8 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 17 by projected rating, fifa_overall 69.0) | match_squad_rank=17
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0052
goal_rate=0.0769
scorer_weight=0.0065 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by 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.0137 | - |
|
| Matías Dituro | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 7.1 | 55.7 | 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.9972, quality 0.437) | market_value_eur=105000
quality_factor=0.4374
boost_factor=0.9972
reference_quality=0.505
history_matches=31
history_shrink=0.1389 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0181) | blend_weight=0.0181
history_matches=31
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.2
competition=La Liga | saves: 2.8862 -> 2.8762 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Álvaro García, Alemão', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.2861} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.11 (squad xG sum 0.9390, xG scale 1.1832, xA scale 1.1135, team xA 0.89 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.111
squad_xg_sum=0.939
squad_xa_sum=0.7982
team_expected_assists=0.8888
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 76.0) | match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.3027 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by 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.8565 | - |
|
| Thomas Lemar | M | 72 | 0 | 0.08 | 0.07 | ok | 1 | 0.6 | 7.0 | 61.7 | 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 0.9973, quality 0.437) | market_value_eur=1900000
quality_factor=0.4374
boost_factor=0.9973
reference_quality=0.505
history_matches=33
history_shrink=0.1316 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Adrià Pedrosa', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.451, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9577, 'skill_edge': -0.0048, 'height_edge': -0.024, 'attacker_skill': 0.4374, 'defender_skill': 0.4481, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Adrià Pedrosa', 'market_value': 2700000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.4481}], 'xg_override': 0.0712} | aerialWon: 0.0237 -> 0.8 totalShots: 1.0005 -> 0.9582 shotOffTarget: 0.6506 -> 0.6231 onTargetScoringAttempt: 0.3499 -> 0.3351 expectedGoalsOnTarget: 0.1251 -> 0.1198 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.11 (squad xG sum 0.9390, xG scale 1.1832, xA scale 1.1135, team xA 0.89 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.111
squad_xg_sum=0.939
squad_xa_sum=0.7982
team_expected_assists=0.8888
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0712 -> 0.0842 expected_assists: 0.1146 -> 0.1276 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 77.0) | match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0808
goal_rate=0.0938
scorer_weight=0.0999 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1198
assist_rate=0.0855
provider_weight=0.105 | - |
|
| Team totals | 1 | 1.11 | | 13 | | 6.9 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Iñaki Peña | G | 4.4m | 11.0% | Market-value substitute prior |
| Kevin Lomónaco | D | 13.8m | 31.0% | Market-value substitute prior |
| Rubén Sánchez | D | 13.6m | 29.9% | Market-value substitute prior |
| Martim Neto | M | 24.8m | 50.0% | Market-value substitute prior |
| Marc Aguado | M | 22.0m | 30.8% | Market-value substitute prior |
| Facundo Buonanotte | F | 26.4m | 53.4% | Market-value substitute prior |
Antagonist / tactical summary
Midfield is evenly contested — Isi Palazón vs Federico Redondo will be the pivotal duel. Total antagonist xG — Home: 0.81, Away: 0.76. 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.49, key duel: Isi Palazón vs Federico Redondo
Unai López xG 0.06Alemão xG 0.22Giorgi Tsitaishvili xG 0.14Thomas Lemar xG 0.07Gonzalo Villar xG 0.07Fernando Niño xG 0.35
Summary
Antagonist matchup analysis for Rayo Vallecano vs Elche. Most likely scoreline: 1-1. Lambdas derived from 6 home and 7 away individual player duels. Head-to-head: Rayo Vallecano 4W-2D-4L vs Elche 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 — Isi Palazón vs Federico Redondo will be the pivotal duel. Total antagonist xG — Home: 0.81, Away: 0.76. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Racing Club vs Espanyol
LaLiga · 20261024 · 4-2-3-1 vs 5-4-1
Predicted 1-1Winner: DrawWinning H 1-0 (8.1%)Winning A 0-1 (9.0%)Confidence 0.7λ home/away 1.31 / 1.46Most-likely P 12.1%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset TracingAntagonist + XGBoost match analysis for Racing Club vs Espanyol. 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 1.303, Away 1.470). Final calibrated Poisson lambdas: Home 1.312, Away 1.460 (most likely score 1-1).
Home Starters 11/11 XGBoost (9 FBref) Away Starters 11/11 XGBoost (8 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.30 / 1.47 Final λ (H/A) 1.31 / 1.46
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 | Racing Club | Espanyol |
|---|
| League position | 16.00 | 15.00 |
| Points per game | 1.08 | 1.08 |
| Attack index | 1.02 | 0.87 |
| Defense (concede) index | 0.90 | 1.42 |
| Form multiplier | 1.00 | 1.00 |
| Standing λ multiplier | 0.97 | 1.09 |
Lambda decomposition (how the goal rates were built)
| Stage | Racing Club λ | Espanyol λ |
|---|
| Pre-competitive-floor | 1.312 | 1.460 |
| Pre-calibration (Micro-duels) | 1.303 | 1.470 |
| Final λ | 1.312 | 1.460 |
competition calibration scale 1.0competition observed total goals 0.0quality gap applied Falsemismatch score pressure applied Falsecompetitive underdog floor applied Falsestage discount 1.0
Scoreline distribution & markets
| Top 5 scorelines | P |
|---|
| 1-1 | 12.1% |
| 0-1 | 9.0% |
| 1-2 | 8.7% |
| 1-0 | 8.1% |
| 2-1 | 7.9% |
| Home win | 33.8% |
| Draw | 25.6% |
| Away win | 40.6% |
| Over 2.5 | 52.4% |
| BTTS yes | 56.2% |
Pregame fair line — favorite Espanyol (40.6%), fair total 2.77, fair spread -0.15
Projected players vs season baseline
Proj = projected for this match · Season = this season's per-game average from match data · deviation badge compares projected xG to the player's season xG/game.
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 |
|---|
| Yassir Zabiri | F | 81 | 1 | 0.48 | 0.33 | 44% | 3 | 1.5 | 6.8 | 53.7 | 12 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0156, quality 0.650) | market_value_eur=22000000
quality_factor=0.6503
boost_factor=1.0156
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.9049
prior_reliability=0.0867
competition=La Liga | goals: 0.4029 -> 0.4368 totalOffside: 0.2588 -> 0.2816 onTargetScoringAttempt: 1.0145 -> 1.0362 totalShots: 2.4291 -> 2.4503 wasFouled: 0.6991 -> 0.685 fouls: 1.6086 -> 1.6183 wonTackle: 0.4055 -> 0.3973 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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, Vanja Drkušić', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.26, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.0879, 'skill_edge': 0.0838, 'height_edge': -0.024, 'attacker_skill': 0.6503, 'defender_skill': 0.464, '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': 'Vanja Drkušić', 'market_value': 5500000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4907}], 'xg_override': 0.4102} | totalShots: 2.4508 -> 2.6662 shotOffTarget: 1.4146 -> 1.5389 onTargetScoringAttempt: 1.0362 -> 1.1273 expectedGoalsOnTarget: 0.5924 -> 0.6445 goals: 0.4368 -> 0.4752 expectedGoals: 0.3771 -> 0.4102 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.31 (squad xG sum 1.1245, xG scale 1.1667, xA scale 1.1667, team xA 0.98 = 0.74 x lambda) | scoreline_reset=true
team_lambda=1.312
squad_xg_sum=1.1245
squad_xa_sum=0.8366
team_expected_assists=0.9761
team_xa_to_xg_ratio=0.744 | expected_goals: 0.4102 -> 0.4785 expected_assists: 0.0365 -> 0.0426 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 66.0) | match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.3803
goal_rate=0.4752
scorer_weight=0.5461 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0417
assist_rate=0.0
provider_weight=0.0341 | - |
|
| Iñigo Vicente | F | 86 | 0 | 0.10 | 0.04 | 170% | 1 | 0.5 | 7.1 | 53.5 | 22 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9975, quality 0.482) | market_value_eur=6600000
quality_factor=0.4818
boost_factor=0.9975
reference_quality=0.505
history_matches=9
history_shrink=0.3571 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0433) | blend_weight=0.0433
history_matches=9
season_overlap_discount=1.0
per90_to_match_factor=0.954
prior_reliability=0.1867
competition=La Liga | totalCross: 5.3659 -> 5.2515 totalShots: 0.953 -> 0.9266 interceptionWon: 0.8246 -> 0.8036 wonTackle: 1.1227 -> 1.1036 onTargetScoringAttempt: 0.3828 -> 0.3662 wasFouled: 2.3061 -> 2.2948 totalOffside: 0.1733 -> 0.1806 | 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': 'Leandro Cabrera, Vanja Drkušić', '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.9529, 'skill_edge': 0.008, 'height_edge': -0.04, 'attacker_skill': 0.4818, 'defender_skill': 0.464, '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': 'Vanja Drkušić', 'market_value': 5500000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4907}], 'xg_override': 0.0844} | totalShots: 0.9364 -> 0.8923 shotOffTarget: 0.5702 -> 0.5433 onTargetScoringAttempt: 0.3662 -> 0.349 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.31 (squad xG sum 1.1245, xG scale 1.1667, xA scale 1.1667, team xA 0.98 = 0.74 x lambda) | scoreline_reset=true
team_lambda=1.312
squad_xg_sum=1.1245
squad_xa_sum=0.8366
team_expected_assists=0.9761
team_xa_to_xg_ratio=0.744 | expected_goals: 0.0844 -> 0.0985 expected_assists: 0.2503 -> 0.2921 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 77.0) | match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0938
goal_rate=0.0907
scorer_weight=0.1031 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=1
assist_probability=0.2533
assist_rate=0.3902
provider_weight=0.3651 | - |
|
| Sergio Canales | F | 78 | 0 | 0.11 | 0.10 | ok | 2 | 1.8 | 6.8 | 53.2 | 21 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9930, quality 0.440) | market_value_eur=3200000
quality_factor=0.4399
boost_factor=0.993
reference_quality=0.505
history_matches=9
history_shrink=0.3571 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0387) | blend_weight=0.0387
history_matches=9
season_overlap_discount=1.0
per90_to_match_factor=0.8682
prior_reliability=0.1667
competition=La Liga | totalCross: 2.4412 -> 2.3602 totalShots: 1.6812 -> 1.7381 wasFouled: 1.9878 -> 1.9512 wonTackle: 0.6319 -> 0.6074 onTargetScoringAttempt: 0.5576 -> 0.5767 interceptionWon: 0.4066 -> 0.3909 fouls: 0.6698 -> 0.6573 totalOffside: 0.2048 -> 0.1969 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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, Vanja Drkušić', '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.9135, 'skill_edge': -0.0109, 'height_edge': -0.048, 'attacker_skill': 0.4399, 'defender_skill': 0.464, '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': 'Vanja Drkušić', 'market_value': 5500000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4907}], 'xg_override': 0.0978} | totalShots: 1.7381 -> 1.5878 shotOffTarget: 1.1236 -> 1.0264 onTargetScoringAttempt: 0.5767 -> 0.5268 expectedGoalsOnTarget: 0.1622 -> 0.1482 goals: 0.1325 -> 0.121 expectedGoals: 0.1071 -> 0.0978 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.31 (squad xG sum 1.1245, xG scale 1.1667, xA scale 1.1667, team xA 0.98 = 0.74 x lambda) | scoreline_reset=true
team_lambda=1.312
squad_xg_sum=1.1245
squad_xa_sum=0.8366
team_expected_assists=0.9761
team_xa_to_xg_ratio=0.744 | expected_goals: 0.0978 -> 0.1141 expected_assists: 0.1242 -> 0.1449 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 78.0) | match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1078
goal_rate=0.121
scorer_weight=0.132 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1349
assist_rate=0.0
provider_weight=0.1159 | - |
|
| Andrés Martín | F | 79 | 0 | 0.28 | 0.35 | ok | 2 | 1.5 | 6.9 | 38.5 | 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.9994, quality 0.501) | market_value_eur=8199999
quality_factor=0.5011
boost_factor=0.9994
reference_quality=0.505
history_matches=5
history_shrink=0.5 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0563) | blend_weight=0.0563
history_matches=5
season_overlap_discount=1.0
per90_to_match_factor=0.8752
prior_reliability=0.1733
competition=La Liga | totalShots: 2.0191 -> 2.073 interceptionWon: 0.9498 -> 0.9721 onTargetScoringAttempt: 0.665 -> 0.6832 totalCross: 3.8228 -> 3.835 fouls: 0.8916 -> 0.8983 goals: 0.2193 -> 0.2259 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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, Vanja Drkušić', '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.9657, 'skill_edge': 0.0167, 'height_edge': -0.04, 'attacker_skill': 0.5011, 'defender_skill': 0.464, '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': 'Vanja Drkušić', 'market_value': 5500000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4907}], 'xg_override': 0.2407} | totalShots: 2.073 -> 2.0019 shotOffTarget: 1.3541 -> 1.3077 onTargetScoringAttempt: 0.6832 -> 0.6598 bigChanceMissed: 0.6604 -> 0.6377 expectedGoalsOnTarget: 0.6358 -> 0.614 expectedGoals: 0.2492 -> 0.2407 goals: 0.2259 -> 0.2182 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.31 (squad xG sum 1.1245, xG scale 1.1667, xA scale 1.1667, team xA 0.98 = 0.74 x lambda) | scoreline_reset=true
team_lambda=1.312
squad_xg_sum=1.1245
squad_xa_sum=0.8366
team_expected_assists=0.9761
team_xa_to_xg_ratio=0.744 | expected_goals: 0.2407 -> 0.2808 expected_assists: 0.1361 -> 0.1588 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 77.0) | match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.2448
goal_rate=0.2182
scorer_weight=0.2591 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1468
assist_rate=0.0
provider_weight=0.127 | - |
|
| Iván Martín | M | 85 | 0 | 0.05 | 0.03 | 90% | 1 | 0.4 | 7.0 | 58.1 | 32 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9978, quality 0.437) | market_value_eur=2700000
quality_factor=0.4374
boost_factor=0.9978
reference_quality=0.505
history_matches=42
history_shrink=0.1064 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0069) | blend_weight=0.0069
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.9463
prior_reliability=0.1
competition=La Liga | wonTackle: 0.9693 -> 0.98 totalCross: 0.333 -> 0.3394 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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, Pol Lozano, Javier Hernández', '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.31 (squad xG sum 1.1245, xG scale 1.1667, xA scale 1.1667, team xA 0.98 = 0.74 x lambda) | scoreline_reset=true
team_lambda=1.312
squad_xg_sum=1.1245
squad_xa_sum=0.8366
team_expected_assists=0.9761
team_xa_to_xg_ratio=0.744 | expected_goals: 0.0446 -> 0.052 expected_assists: 0.071 -> 0.0828 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 77.0) | match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0507
goal_rate=0.0682
scorer_weight=0.065 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0795
assist_rate=0.0712
provider_weight=0.0829 | - |
|
| Jorge Salinas | D | 89 | 0 | 0.06 | 0.03 | 75% | 1 | 0.3 | 6.7 | 48.8 | 12 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0000, quality 0.505) | market_value_eur=8500000
quality_factor=0.5047
boost_factor=1.0
reference_quality=0.505
history_matches=9
history_shrink=0.3571 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0464) | blend_weight=0.0464
history_matches=9
season_overlap_discount=1.0
per90_to_match_factor=0.9872
prior_reliability=0.2
competition=La Liga | wasFouled: 1.7542 -> 1.7186 fouls: 1.3915 -> 1.3575 interceptionWon: 1.3402 -> 1.3238 totalShots: 0.5731 -> 0.5616 totalCross: 1.4693 -> 1.4775 goalAssist: 0.1266 -> 0.1207 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Omar El Hilali', 'matchup_zone': 'RWB vs LW + LB'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.31 (squad xG sum 1.1245, xG scale 1.1667, xA scale 1.1667, team xA 0.98 = 0.74 x lambda) | scoreline_reset=true
team_lambda=1.312
squad_xg_sum=1.1245
squad_xa_sum=0.8366
team_expected_assists=0.9761
team_xa_to_xg_ratio=0.744 | expected_goals: 0.0478 -> 0.0558 expected_assists: 0.114 -> 0.133 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 72.0) | match_squad_rank=14
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0543
goal_rate=0.0
scorer_weight=0.0446 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1245
assist_rate=0.1207
provider_weight=0.1384 | - |
|
| Jeanuël Belocian | D | 90 | 0 | 0.03 | 0.02 | 44% | 1 | 0.3 | 6.7 | 35.4 | 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 1.0076, quality 0.556) | market_value_eur=12900000
quality_factor=0.5559
boost_factor=1.0076
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.31 (squad xG sum 1.1245, xG scale 1.1667, xA scale 1.1667, team xA 0.98 = 0.74 x lambda) | scoreline_reset=true
team_lambda=1.312
squad_xg_sum=1.1245
squad_xa_sum=0.8366
team_expected_assists=0.9761
team_xa_to_xg_ratio=0.744 | - | 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: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0301
goal_rate=0.0
scorer_weight=0.0245 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0105
assist_rate=0.0
provider_weight=0.009 | - |
|
| Pablo Ramón | D | 85 | 0 | 0.01 | 0.00 | 145% | 0 | 0.2 | 6.9 | 39.3 | 12 | 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.9916, quality 0.437) | market_value_eur=1500000
quality_factor=0.4374
boost_factor=0.9916
reference_quality=0.505
history_matches=7
history_shrink=0.4167 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0325) | blend_weight=0.0325
history_matches=7
season_overlap_discount=1.0
per90_to_match_factor=0.939
prior_reliability=0.12
competition=La Liga | wonTackle: 0.9878 -> 1.0235 interceptionWon: 1.1301 -> 1.1612 totalShots: 0.4745 -> 0.4591 wasFouled: 1.2948 -> 1.2866 onTargetScoringAttempt: 0.1725 -> 0.1669 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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 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.31 (squad xG sum 1.1245, xG scale 1.1667, xA scale 1.1667, team xA 0.98 = 0.74 x lambda) | scoreline_reset=true
team_lambda=1.312
squad_xg_sum=1.1245
squad_xa_sum=0.8366
team_expected_assists=0.9761
team_xa_to_xg_ratio=0.744 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 69.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.006
goal_rate=0.0
scorer_weight=0.0054 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0115
assist_rate=0.0
provider_weight=0.0097 | - |
|
| Alvaro Mantilla | D | 87 | 0 | 0.01 | 0.01 | ok | 0 | 0.2 | 6.7 | 42.8 | 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.9922, quality 0.437) | market_value_eur=1200000
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': '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.31 (squad xG sum 1.1245, xG scale 1.1667, xA scale 1.1667, team xA 0.98 = 0.74 x lambda) | scoreline_reset=true
team_lambda=1.312
squad_xg_sum=1.1245
squad_xa_sum=0.8366
team_expected_assists=0.9761
team_xa_to_xg_ratio=0.744 | - | 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_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.0132
goal_rate=0.0
scorer_weight=0.0108 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0244
assist_rate=0.0
provider_weight=0.0198 | - |
|
| Julen Agirrezabala | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 7.1 | 40.2 | 17 | 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.481) | market_value_eur=6500000
quality_factor=0.4805
boost_factor=0.9989
reference_quality=0.505
history_matches=27
history_shrink=0.1562 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0203) | blend_weight=0.0203
history_matches=27
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.2
competition=La Liga | saves: 2.7346 -> 2.7468 wasFouled: 0.2586 -> 0.2669 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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, Javier Hernández', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.4702} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.31 (squad xG sum 1.1245, xG scale 1.1667, xA scale 1.1667, team xA 0.98 = 0.74 x lambda) | scoreline_reset=true
team_lambda=1.312
squad_xg_sum=1.1245
squad_xa_sum=0.8366
team_expected_assists=0.9761
team_xa_to_xg_ratio=0.744 | shots_faced: 14.0 -> 13.9 expected_saves: 3.43 -> 3.41 high_pressure_saves: 1.18 -> 1.17 | 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.0
scorer_weight=0.0
squad_weight_total=1.3832 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by 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.9828 | - |
|
| Matteo Prati | M | 84 | 0 | 0.05 | 0.01 | 528% | 1 | 0.3 | 6.8 | 40.3 | 10 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9942, quality 0.462) | market_value_eur=5000000
quality_factor=0.4622
boost_factor=0.9942
reference_quality=0.505
history_matches=6
history_shrink=0.4545 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0079) | blend_weight=0.0079
history_matches=6
season_overlap_discount=1.0
per90_to_match_factor=0.9349
prior_reliability=0.0267
competition=La Liga | fouls: 0.1646 -> 0.1817 interceptionWon: 0.6897 -> 0.7027 wonTackle: 1.4858 -> 1.4741 wasFouled: 0.9249 -> 0.9176 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Pol Lozano', '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.31 (squad xG sum 1.1245, xG scale 1.1667, xA scale 1.1667, team xA 0.98 = 0.74 x lambda) | scoreline_reset=true
team_lambda=1.312
squad_xg_sum=1.1245
squad_xa_sum=0.8366
team_expected_assists=0.9761
team_xa_to_xg_ratio=0.744 | expected_goals: 0.0405 -> 0.0473 expected_assists: 0.0395 -> 0.0461 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 72.0) | match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0462
goal_rate=0.0454
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.0451
assist_rate=0.0647
provider_weight=0.0576 | - |
|
| Team totals | 1 | 1.31 | | 14 | | 6.9 | | |
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 |
| Gustavo Puerta | M | 22.7m | 32.2% | Market-value substitute prior |
| André Almeida | M | 22.1m | 50.6% | Market-value substitute prior |
| Pablo García | F | 25.5m | 57.0% | Market-value substitute prior |
Espanyol — 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 |
|---|
| Edu Expósito | M | 82 | 0 | 0.14 | 0.08 | 68% | 1 | 1.4 | 7.0 | 65.2 | 31 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9985, quality 0.456) | market_value_eur=4500000
quality_factor=0.456
boost_factor=0.9985
reference_quality=0.505
history_matches=45
history_shrink=0.1 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0117) | blend_weight=0.0117
history_matches=45
season_overlap_discount=1.0
per90_to_match_factor=0.9072
prior_reliability=0.18
competition=La Liga | totalCross: 3.6204 -> 3.5898 totalShots: 1.2737 -> 1.2945 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.448, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9973, 'skill_edge': 0.0101, 'height_edge': -0.012, 'attacker_skill': 0.4622, 'defender_skill': 0.4396, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Iván Martín', 'market_value': 2700000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4396}], 'xg_override': 0.1068} | aerialWon: 0.905 -> 0.9 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_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.1085, xG scale 1.3171, xA scale 1.3171, team xA 0.96 = 0.66 x lambda) | scoreline_reset=true
team_lambda=1.46
squad_xg_sum=1.1085
squad_xa_sum=0.7277
team_expected_assists=0.9585
team_xa_to_xg_ratio=0.6565 | expected_goals: 0.1068 -> 0.1407 expected_assists: 0.15 -> 0.1975 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 77.0) | match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1313
goal_rate=0.1155
scorer_weight=0.1485 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1792
assist_rate=0.1021
provider_weight=0.158 | - |
|
| Javier Hernández | M | 77 | 0 | 0.20 | 0.08 | 164% | 2 | 1.1 | 6.8 | 54.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.9972, quality 0.479) | market_value_eur=6400000
quality_factor=0.4793
boost_factor=0.9972
reference_quality=0.505
history_matches=9
history_shrink=0.3571 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0387) | blend_weight=0.0387
history_matches=9
season_overlap_discount=1.0
per90_to_match_factor=0.8594
prior_reliability=0.1667
competition=La Liga | totalCross: 2.0138 -> 1.9492 wasFouled: 1.2904 -> 1.3336 fouls: 1.7226 -> 1.7624 goalAssist: 0.2242 -> 0.2554 totalShots: 1.6947 -> 1.6694 interceptionWon: 0.4909 -> 0.4719 onTargetScoringAttempt: 0.5692 -> 0.5605 wonTackle: 0.4748 -> 0.483 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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.439, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9687, 'skill_edge': 0.0227, 'height_edge': -0.044, 'attacker_skill': 0.488, '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.1515} | aerialWon: 0.1654 -> 0.9 totalShots: 1.686 -> 1.6333 shotOffTarget: 1.1255 -> 1.0903 onTargetScoringAttempt: 0.5605 -> 0.543 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_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.1085, xG scale 1.3171, xA scale 1.3171, team xA 0.96 = 0.66 x lambda) | scoreline_reset=true
team_lambda=1.46
squad_xg_sum=1.1085
squad_xa_sum=0.7277
team_expected_assists=0.9585
team_xa_to_xg_ratio=0.6565 | expected_goals: 0.1515 -> 0.1995 expected_assists: 0.128 -> 0.1686 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 86.0) | match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1809
goal_rate=0.1388
scorer_weight=0.1869 | - | integer_assist_projection | Team scoreline allocation: 1 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.1552
assist_rate=0.2554
provider_weight=0.2107 | - |
|
| Roger Hinojo | D | 78 | 0 | 0.01 | 0.01 | 113% | 0 | 0.1 | 6.6 | 54.6 | 11 | 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.9929, quality 0.439) | market_value_eur=3100000
quality_factor=0.4387
boost_factor=0.9929
reference_quality=0.505
history_matches=9
history_shrink=0.3571 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0464) | blend_weight=0.0464
history_matches=9
season_overlap_discount=1.0
per90_to_match_factor=0.8664
prior_reliability=0.2
competition=La Liga | wonTackle: 1.1399 -> 1.1674 totalShots: 0.324 -> 0.309 interceptionWon: 0.8387 -> 0.8266 fouls: 0.9735 -> 0.9685 wasFouled: 0.3961 -> 0.3911 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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, Julen Agirrezabala', 'matchup_zone': 'LWB vs RW + RB'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.46 (squad xG sum 1.1085, xG scale 1.3171, xA scale 1.3171, team xA 0.96 = 0.66 x lambda) | scoreline_reset=true
team_lambda=1.46
squad_xg_sum=1.1085
squad_xa_sum=0.7277
team_expected_assists=0.9585
team_xa_to_xg_ratio=0.6565 | expected_assists: 0.033 -> 0.0435 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 18 by projected rating, fifa_overall 68.0) | match_squad_rank=18
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.011
goal_rate=0.0
scorer_weight=0.0095 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by 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 | - |
|
| Leandro Cabrera | D | 90 | 0 | 0.07 | 0.06 | ok | 1 | 1.0 | 6.8 | 61.8 | 29 | XGBoost D_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9979, quality 0.437) | market_value_eur=930000
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': 'Yassir Zabiri', '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.1085, xG scale 1.3171, xA scale 1.3171, team xA 0.96 = 0.66 x lambda) | scoreline_reset=true
team_lambda=1.46
squad_xg_sum=1.1085
squad_xa_sum=0.7277
team_expected_assists=0.9585
team_xa_to_xg_ratio=0.6565 | expected_goals: 0.0556 -> 0.0732 expected_assists: 0.0296 -> 0.039 | 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.0706
goal_rate=0.0072
scorer_weight=0.0586 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0382
assist_rate=0.0
provider_weight=0.0312 | - |
|
| Vanja Drkušić | D | 83 | 0 | 0.00 | - | n/a | 0 | 0.0 | 6.7 | 18.8 | 11 | 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.9939, quality 0.468) | market_value_eur=5500000
quality_factor=0.4683
boost_factor=0.9939
reference_quality=0.505
history_matches=4
history_shrink=0.5556 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0313) | blend_weight=0.0313
history_matches=4
season_overlap_discount=1.0
per90_to_match_factor=0.9219
prior_reliability=0.0867
competition=La Liga | fouls: 0.6423 -> 0.6888 wasFouled: 0.6761 -> 0.7215 interceptionWon: 0.6788 -> 0.6575 wonTackle: 0.8876 -> 0.9042 totalShots: 0.3653 -> 0.3539 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Yassir Zabiri', '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.1085, xG scale 1.3171, xA scale 1.3171, team xA 0.96 = 0.66 x lambda) | scoreline_reset=true
team_lambda=1.46
squad_xg_sum=1.1085
squad_xa_sum=0.7277
team_expected_assists=0.9585
team_xa_to_xg_ratio=0.6565 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 15 by projected rating, fifa_overall 80.0) | match_squad_rank=15
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
goal_rate=0.0
scorer_weight=0.001 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0024
assist_rate=0.0
provider_weight=0.0023 | - |
|
| Clemens Riedel | D | 86 | 0 | 0.01 | 0.00 | 396% | 0 | 0.1 | 6.7 | 42.8 | 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.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.908 -> 0.8979 wonTackle: 0.6238 -> 0.6294 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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': '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.1085, xG scale 1.3171, xA scale 1.3171, team xA 0.96 = 0.66 x lambda) | scoreline_reset=true
team_lambda=1.46
squad_xg_sum=1.1085
squad_xa_sum=0.7277
team_expected_assists=0.9585
team_xa_to_xg_ratio=0.6565 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 70.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.0059
goal_rate=0.0
scorer_weight=0.0054 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0111
assist_rate=0.0069
provider_weight=0.0109 | - |
|
| Omar El Hilali | D | 88 | 0 | 0.00 | - | n/a | 0 | 0.0 | 6.8 | 60.8 | 30 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0026, quality 0.589) | market_value_eur=15900000
quality_factor=0.5889
boost_factor=1.0026
reference_quality=0.505
history_matches=44
history_shrink=0.102 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0133) | blend_weight=0.0133
history_matches=44
season_overlap_discount=1.0
per90_to_match_factor=0.983
prior_reliability=0.2
competition=La Liga | totalCross: 2.5741 -> 2.5878 wasFouled: 0.8407 -> 0.8295 wonTackle: 1.1883 -> 1.1812 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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, Julen Agirrezabala', 'matchup_zone': 'RWB vs LW + LB'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.46 (squad xG sum 1.1085, xG scale 1.3171, xA scale 1.3171, team xA 0.96 = 0.66 x lambda) | scoreline_reset=true
team_lambda=1.46
squad_xg_sum=1.1085
squad_xa_sum=0.7277
team_expected_assists=0.9585
team_xa_to_xg_ratio=0.6565 | expected_assists: 0.0952 -> 0.1254 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 75.0) | match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.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.1179
assist_rate=0.0915
provider_weight=0.1222 | - |
|
| Ángel Fortuño | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 6.9 | 7.0 | 32 | 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.9873, quality 0.437) | market_value_eur=290000
quality_factor=0.4374
boost_factor=0.9873
reference_quality=0.505
history_matches=3
history_shrink=0.625 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Yassir Zabiri, Andrés Martín', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.3032} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_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.1085, xG scale 1.3171, xA scale 1.3171, team xA 0.96 = 0.66 x lambda) | scoreline_reset=true
team_lambda=1.46
squad_xg_sum=1.1085
squad_xa_sum=0.7277
team_expected_assists=0.9585
team_xa_to_xg_ratio=0.6565 | shots_faced: 12.4 -> 12.5 expected_saves: 3.04 -> 3.06 high_pressure_saves: 1.04 -> 1.05 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 89.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.0
scorer_weight=0.0
squad_weight_total=1.4744 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by 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.8905 | - |
|
| Pol Lozano | M | 78 | 0 | 0.12 | 0.03 | 341% | 1 | 0.5 | 6.7 | 48.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.9988, quality 0.472) | market_value_eur=5800000
quality_factor=0.472
boost_factor=0.9988
reference_quality=0.505
history_matches=38
history_shrink=0.1163 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0020) | blend_weight=0.002
history_matches=38
season_overlap_discount=1.0
per90_to_match_factor=0.8632
prior_reliability=0.0267
competition=La Liga | wonTackle: 1.1313 -> 1.1377 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.46, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0149, 'skill_edge': 0.0181, 'height_edge': -0.008, 'attacker_skill': 0.4799, 'defender_skill': 0.4396, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Iván Martín', 'market_value': 2700000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4396}], 'xg_override': 0.09} | aerialWon: 0.3888 -> 0.9 totalShots: 0.9862 -> 1.0009 shotOffTarget: 0.6455 -> 0.6551 onTargetScoringAttempt: 0.3375 -> 0.3425 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_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.1085, xG scale 1.3171, xA scale 1.3171, team xA 0.96 = 0.66 x lambda) | scoreline_reset=true
team_lambda=1.46
squad_xg_sum=1.1085
squad_xa_sum=0.7277
team_expected_assists=0.9585
team_xa_to_xg_ratio=0.6565 | expected_goals: 0.09 -> 0.1185 expected_assists: 0.0592 -> 0.078 | 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.1117
goal_rate=0.0764
scorer_weight=0.107 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.075
assist_rate=0.0571
provider_weight=0.0765 | - |
|
| Bryan Zaragoza | F | 77 | 0 | 0.17 | 0.12 | 40% | 1 | 1.1 | 7.0 | 58.3 | 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.9994, quality 0.493) | market_value_eur=7500000
quality_factor=0.4927
boost_factor=0.9994
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': 'Jeanuël Belocian, Alvaro Mantilla', '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.8937, 'skill_edge': -0.0123, 'height_edge': -0.06, 'attacker_skill': 0.4927, 'defender_skill': 0.52, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Jeanuël Belocian', 'market_value': 12900000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6027}, {'player': 'Alvaro Mantilla', 'market_value': 1200000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.1274} | totalShots: 1.6634 -> 1.4866 shotOffTarget: 1.1176 -> 0.9988 onTargetScoringAttempt: 0.5457 -> 0.4877 expectedGoalsOnTarget: 0.1941 -> 0.1735 goals: 0.1546 -> 0.1382 expectedGoals: 0.1426 -> 0.1274 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_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.1085, xG scale 1.3171, xA scale 1.3171, team xA 0.96 = 0.66 x lambda) | scoreline_reset=true
team_lambda=1.46
squad_xg_sum=1.1085
squad_xa_sum=0.7277
team_expected_assists=0.9585
team_xa_to_xg_ratio=0.6565 | expected_goals: 0.1274 -> 0.1678 expected_assists: 0.1447 -> 0.1906 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 77.0) | match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1545
goal_rate=0.1382
scorer_weight=0.178 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by 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.0442
provider_weight=0.1525 | - |
|
| Roberto Fernández | F | 83 | 1 | 0.58 | 0.28 | 110% | 2 | 1.5 | 6.8 | 62.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.0039, quality 0.641) | market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.0039
reference_quality=0.505
history_matches=47
history_shrink=0.0962 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0121) | blend_weight=0.0121
history_matches=47
season_overlap_discount=1.0
per90_to_match_factor=0.9256
prior_reliability=0.1933
competition=La Liga | totalOffside: 0.9933 -> 0.9813 fouls: 1.5359 -> 1.5289 goals: 0.4238 -> 0.4302 | 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': 'Jeanuël Belocian, Alvaro Mantilla', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.262, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.0916, 'skill_edge': 0.0543, 'height_edge': 0.008, 'attacker_skill': 0.6408, 'defender_skill': 0.52, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Jeanuël Belocian', 'market_value': 12900000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6027}, {'player': 'Alvaro Mantilla', 'market_value': 1200000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.4418} | totalShots: 2.2815 -> 2.4905 shotOffTarget: 1.231 -> 1.3438 onTargetScoringAttempt: 1.0505 -> 1.1467 bigChanceMissed: 0.6125 -> 0.6686 goals: 0.4302 -> 0.4696 expectedGoalsOnTarget: 0.4095 -> 0.447 expectedGoals: 0.4047 -> 0.4418 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.46 (squad xG sum 1.1085, xG scale 1.3171, xA scale 1.3171, team xA 0.96 = 0.66 x lambda) | scoreline_reset=true
team_lambda=1.46
squad_xg_sum=1.1085
squad_xa_sum=0.7277
team_expected_assists=0.9585
team_xa_to_xg_ratio=0.6565 | expected_goals: 0.4418 -> 0.5819 expected_assists: 0.0389 -> 0.0512 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 74.0) | match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.4412
goal_rate=0.4696
scorer_weight=0.6148 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0499
assist_rate=0.0258
provider_weight=0.0437 | - |
|
| Team totals | 1 | 1.46 | | 10 | | 6.8 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Marko Dmitrović | G | 4.4m | 13.1% | Market-value substitute prior |
| Quilindschy Hartman | D | 14.2m | 32.5% | Market-value substitute prior |
| Unai Núñez | D | 13.6m | 21.7% | Market-value substitute prior |
| Urko González | M | 22.4m | 31.5% | Market-value substitute prior |
| Gabriel Moscardo | M | 34.7m | 69.6% | Market-value substitute prior |
| Tyrhys Dolan | F | 25.7m | 34.2% | Market-value substitute prior |
Antagonist / tactical summary
Midfield is evenly contested — Matteo Prati vs Javier Hernández will be the pivotal duel. Total antagonist xG — Home: 0.83, Away: 1.02. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Midfield — possession 49.4% / 50.6%, dominance ratio 0.47, key duel: Matteo Prati vs Javier Hernández
Yassir Zabiri xG 0.41Iñigo Vicente xG 0.08Sergio Canales xG 0.10Roberto Fernández xG 0.44Bryan Zaragoza xG 0.13Javier Hernández xG 0.15
Summary
Antagonist matchup analysis for Racing Club vs Espanyol. Most likely scoreline: 1-1. Lambdas derived from 4 home and 7 away individual player duels. Head-to-head: Racing Club 5W-1D-4L vs Espanyol over 10 meetings.
Tactical parity between 4-2-3-1 and 5-4-1. Match outcome driven primarily by individual player quality. Midfield is evenly contested — Matteo Prati vs Javier Hernández will be the pivotal duel. Total antagonist xG — Home: 0.83, Away: 1.02. 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 Everton
Premier League · 20261024 · 4-2-3-1 vs 4-2-3-1
Predicted 1-0Winner: ArsenalWinning H 1-0 (10.4%)Winning A 0-1 (5.7%)Confidence 0.76λ home/away 1.85 / 1.02Most-likely P 10.4%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset TracingAntagonist + XGBoost match analysis for Arsenal vs Everton. 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.712, Away 1.134). Final calibrated Poisson lambdas: Home 1.854, Away 1.016 (most likely score 1-0).
Home Starters 11/11 XGBoost (11 FBref) Away Starters 11/11 XGBoost (10 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.71 / 1.13 Final λ (H/A) 1.85 / 1.02
FBref Team Priors: Arsenal (Gls/90: 2.0, GA/90: 2.0 → E[λ]: 2.069) vs Everton (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 | Everton |
|---|
| League position | 2.00 | 8.00 |
| Points per game | 2.01 | 1.40 |
| Attack index | 1.09 | 0.88 |
| Defense (concede) index | 0.84 | 0.86 |
| Form multiplier | 1.03 | 0.97 |
| Standing λ multiplier | 0.97 | 0.89 |
Lambda decomposition (how the goal rates were built)
| Stage | Arsenal λ | Everton λ |
|---|
| FBref Squad Prior E[λ] (weight 0.192) | 2.069 | 2.069 |
| Pre-mismatch | 1.785 | 1.085 |
| Pre-competitive-floor | 1.937 | 1.062 |
| Pre-calibration (Micro-duels) | 1.712 | 1.134 |
| Final λ | 1.854 | 1.016 |
competition calibration scale 1.0competition observed total goals 0.0quality gap applied Truemismatch score pressure applied Truecompetitive underdog floor applied Falsestage discount 1.0
Scoreline distribution & markets
| Top 5 scorelines | P |
|---|
| 1-1 | 10.7% |
| 1-0 | 10.4% |
| 2-1 | 9.9% |
| 2-0 | 9.7% |
| 3-1 | 6.1% |
| Home win | 56.9% |
| Draw | 22.7% |
| Away win | 20.4% |
| Over 2.5 | 54.7% |
| BTTS yes | 53.9% |
Pregame fair line — favorite Arsenal (56.9%), fair total 2.87, fair spread 0.84
Projected players vs season baseline
Proj = projected for this match · Season = this season's per-game average from match data · deviation badge compares projected xG to the player's season xG/game.
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 |
|---|
| Kai Havertz | F | 75 | 1 | 0.53 | 0.23 | 131% | 3 | 1.3 | 6.8 | 50.7 | 24 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0214, quality 0.848) | market_value_eur=58000000
quality_factor=0.8478
boost_factor=1.0214
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.8356
prior_reliability=0.1333
competition=Premier League | totalOffside: 0.9991 -> 1.0339 totalShots: 2.3967 -> 2.3685 wasFouled: 0.8931 -> 0.9071 totalCross: 0.7537 -> 0.7401 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Vitaliy Mykolenko, Jarrad Branthwaite', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.242, 'pressing_faced': 'HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 1.0622, 'skill_edge': 0.0203, 'height_edge': 0.022, 'attacker_skill': 0.8478, 'defender_skill': 0.8027, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Vitaliy Mykolenko', 'market_value': 26000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7498}, {'player': 'Jarrad Branthwaite', 'market_value': 46000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8555}], 'xg_override': 0.4071} | totalShots: 2.3961 -> 2.5452 shotOffTarget: 1.5301 -> 1.6253 onTargetScoringAttempt: 0.866 -> 0.9199 bigChanceMissed: 0.591 -> 0.6278 expectedGoals: 0.3833 -> 0.4071 expectedGoalsOnTarget: 0.3577 -> 0.3799 goals: 0.3443 -> 0.3657 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.85 (squad xG sum 1.4345, xG scale 1.2924, xA scale 1.2924, team xA 1.35 = 0.73 x lambda) | scoreline_reset=true
team_lambda=1.854
squad_xg_sum=1.4345
squad_xa_sum=1.0469
team_expected_assists=1.3531
team_xa_to_xg_ratio=0.7298 | expected_goals: 0.4071 -> 0.5261 expected_assists: 0.0477 -> 0.0616 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 81.0) | match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.4091
goal_rate=0.3657
scorer_weight=0.4784 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0597
assist_rate=0.0695
provider_weight=0.0753 | - |
|
| Noni Madueke | F | 71 | 0 | 0.16 | 0.04 | 263% | 2 | 0.8 | 6.9 | 41.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.0134, quality 0.817) | market_value_eur=48000000
quality_factor=0.8168
boost_factor=1.0134
reference_quality=0.505
history_matches=30
history_shrink=0.1429 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0019) | blend_weight=0.0019
history_matches=30
season_overlap_discount=1.0
per90_to_match_factor=0.7883
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': 'Vitaliy Mykolenko, Jarrad Branthwaite', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.184, 'pressing_faced': 'HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.977, 'skill_edge': 0.0064, 'height_edge': -0.022, 'attacker_skill': 0.8168, 'defender_skill': 0.8027, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Vitaliy Mykolenko', 'market_value': 26000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7498}, {'player': 'Jarrad Branthwaite', 'market_value': 46000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8555}], 'xg_override': 0.12} | totalShots: 1.9812 -> 1.9356 shotOffTarget: 1.4466 -> 1.4133 onTargetScoringAttempt: 0.5346 -> 0.5223 goals: 0.2156 -> 0.2106 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.85 (squad xG sum 1.4345, xG scale 1.2924, xA scale 1.2924, team xA 1.35 = 0.73 x lambda) | scoreline_reset=true
team_lambda=1.854
squad_xg_sum=1.4345
squad_xa_sum=1.0469
team_expected_assists=1.3531
team_xa_to_xg_ratio=0.7298 | expected_goals: 0.12 -> 0.1551 expected_assists: 0.1334 -> 0.1724 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 80.0) | match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1437
goal_rate=0.2106
scorer_weight=0.1939 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1584
assist_rate=0.0375
provider_weight=0.1379 | - |
|
| Martin Ødegaard | M | 81 | 0 | 0.26 | 0.10 | 173% | 2 | 0.6 | 7.3 | 52.9 | 24 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0160, quality 0.888) | market_value_eur=88000000
quality_factor=0.8879
boost_factor=1.016
reference_quality=0.505
history_matches=31
history_shrink=0.1389 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0096) | blend_weight=0.0096
history_matches=31
season_overlap_discount=1.0
per90_to_match_factor=0.9036
prior_reliability=0.1067
competition=Premier League | wonTackle: 0.4598 -> 0.4717 totalShots: 1.3413 -> 1.35 fouls: 0.556 -> 0.5506 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Ainsley Maitland-Niles', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.616, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.2001, 'skill_edge': 0.1361, 'height_edge': 0.0, 'attacker_skill': 0.8879, 'defender_skill': 0.5854, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Ainsley Maitland-Niles', 'market_value': 10900000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.5854}], 'xg_override': 0.2028} | aerialWon: 0.0593 -> 1.0 totalShots: 1.35 -> 1.6201 shotOffTarget: 0.815 -> 0.9781 onTargetScoringAttempt: 0.5265 -> 0.6319 expectedGoals: 0.169 -> 0.2028 goals: 0.1618 -> 0.1942 bigChanceMissed: 0.1431 -> 0.1717 expectedGoalsOnTarget: 0.1061 -> 0.1273 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.85 (squad xG sum 1.4345, xG scale 1.2924, xA scale 1.2924, team xA 1.35 = 0.73 x lambda) | scoreline_reset=true
team_lambda=1.854
squad_xg_sum=1.4345
squad_xa_sum=1.0469
team_expected_assists=1.3531
team_xa_to_xg_ratio=0.7298 | expected_goals: 0.2028 -> 0.2621 expected_assists: 0.2046 -> 0.2645 | 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.2306
goal_rate=0.1942
scorer_weight=0.2532 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.2324
assist_rate=0.1876
provider_weight=0.2468 | - |
|
| Eberechi Eze | M | 70 | 0 | 0.15 | 0.08 | 80% | 1 | 1.1 | 6.8 | 50.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 1.0123, quality 0.859) | market_value_eur=63000000
quality_factor=0.8589
boost_factor=1.0123
reference_quality=0.505
history_matches=38
history_shrink=0.1163 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0035) | blend_weight=0.0035
history_matches=38
season_overlap_discount=1.0
per90_to_match_factor=0.7766
prior_reliability=0.0467
competition=Premier League | wasFouled: 1.8715 -> 1.8766 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Merlin Röhl', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.471, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0751, 'skill_edge': 0.1031, 'height_edge': -0.052, 'attacker_skill': 0.876, 'defender_skill': 0.6469, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Merlin Röhl', 'market_value': 18400000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.6469}], 'xg_override': 0.1162} | aerialWon: 0.4691 -> 1.0 totalShots: 1.3238 -> 1.4232 shotOffTarget: 0.8916 -> 0.9586 onTargetScoringAttempt: 0.4312 -> 0.4636 expectedGoalsOnTarget: 0.2805 -> 0.3016 expectedGoals: 0.1081 -> 0.1162 goals: 0.1075 -> 0.1156 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.85 (squad xG sum 1.4345, xG scale 1.2924, xA scale 1.2924, team xA 1.35 = 0.73 x lambda) | scoreline_reset=true
team_lambda=1.854
squad_xg_sum=1.4345
squad_xa_sum=1.0469
team_expected_assists=1.3531
team_xa_to_xg_ratio=0.7298 | expected_goals: 0.1162 -> 0.1502 expected_assists: 0.0533 -> 0.0689 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 84.0) | match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1395
goal_rate=0.1156
scorer_weight=0.1497 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0666
assist_rate=0.0697
provider_weight=0.0798 | - |
|
| Myles Lewis-Skelly | D | 75 | 0 | 0.03 | 0.01 | 175% | 1 | 0.3 | 6.8 | 33.5 | 35 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0182, quality 0.869) | market_value_eur=69000000
quality_factor=0.8692
boost_factor=1.0182
reference_quality=0.505
history_matches=25
history_shrink=0.1667 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0130) | blend_weight=0.013
history_matches=25
season_overlap_discount=1.0
per90_to_match_factor=0.8307
prior_reliability=0.12
competition=Premier League | fouls: 1.5076 -> 1.494 wonTackle: 0.6257 -> 0.6176 totalShots: 0.5526 -> 0.5576 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Kiernan Dewsbury-Hall', '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.85 (squad xG sum 1.4345, xG scale 1.2924, xA scale 1.2924, team xA 1.35 = 0.73 x lambda) | scoreline_reset=true
team_lambda=1.854
squad_xg_sum=1.4345
squad_xa_sum=1.0469
team_expected_assists=1.3531
team_xa_to_xg_ratio=0.7298 | expected_goals: 0.0259 -> 0.0335 expected_assists: 0.1022 -> 0.1321 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 78.0) | match_squad_rank=11
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0329
goal_rate=0.0
scorer_weight=0.0268 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1237
assist_rate=0.0
provider_weight=0.1057 | - |
|
| Declan Rice | M | 86 | 0 | 0.09 | 0.04 | 106% | 1 | 0.6 | 7.3 | 60.2 | 31 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0122, quality 0.897) | market_value_eur=114000000
quality_factor=0.8967
boost_factor=1.0122
reference_quality=0.505
history_matches=43
history_shrink=0.1042 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0077) | blend_weight=0.0077
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=0.9607
prior_reliability=0.1133
competition=Premier League | totalCross: 3.6522 -> 3.6589 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Merlin Röhl', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.521, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.149, 'skill_edge': 0.1133, 'height_edge': -0.012, 'attacker_skill': 0.8988, 'defender_skill': 0.6469, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Merlin Röhl', 'market_value': 18400000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.6469}], 'xg_override': 0.0684} | totalShots: 0.7637 -> 0.8775 shotOffTarget: 0.565 -> 0.6492 aerialWon: 1.1627 -> 1.2 onTargetScoringAttempt: 0.1943 -> 0.2233 goals: 0.0856 -> 0.0984 expectedGoals: 0.0595 -> 0.0684 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.85 (squad xG sum 1.4345, xG scale 1.2924, xA scale 1.2924, team xA 1.35 = 0.73 x lambda) | scoreline_reset=true
team_lambda=1.854
squad_xg_sum=1.4345
squad_xa_sum=1.0469
team_expected_assists=1.3531
team_xa_to_xg_ratio=0.7298 | expected_goals: 0.0684 -> 0.0884 expected_assists: 0.1927 -> 0.2491 | 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.0846
goal_rate=0.0984
scorer_weight=0.1105 | - | integer_assist_projection | Team scoreline allocation: 1 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.2205
assist_rate=0.2106
provider_weight=0.2675 | - |
|
| Riccardo Calafiori | D | 81 | 0 | 0.20 | 0.09 | 131% | 1 | 0.8 | 6.8 | 45.7 | 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.0140, quality 0.859) | market_value_eur=63000000
quality_factor=0.8589
boost_factor=1.014
reference_quality=0.505
history_matches=33
history_shrink=0.1316 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0108) | blend_weight=0.0108
history_matches=33
season_overlap_discount=1.0
per90_to_match_factor=0.8983
prior_reliability=0.1267
competition=Premier League | goalAssist: 0.1298 -> 0.1386 wonTackle: 0.9445 -> 0.9394 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Thierno Barry', '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.85 (squad xG sum 1.4345, xG scale 1.2924, xA scale 1.2924, team xA 1.35 = 0.73 x lambda) | scoreline_reset=true
team_lambda=1.854
squad_xg_sum=1.4345
squad_xa_sum=1.0469
team_expected_assists=1.3531
team_xa_to_xg_ratio=0.7298 | expected_goals: 0.1551 -> 0.2005 expected_assists: 0.1133 -> 0.1464 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 82.0) | match_squad_rank=14
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1817
goal_rate=0.1307
scorer_weight=0.1766 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1362
assist_rate=0.1386
provider_weight=0.1691 | - |
|
| Gabriel Magalhães | D | 90 | 0 | 0.19 | 0.08 | 122% | 1 | 0.8 | 7.0 | 60.3 | 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.0125, quality 0.871) | market_value_eur=70000000
quality_factor=0.8707
boost_factor=1.0125
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.9997
prior_reliability=0.1333
competition=Premier League | wonTackle: 0.7934 -> 0.7856 fouls: 0.7862 -> 0.7932 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Thierno Barry', '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.85 (squad xG sum 1.4345, xG scale 1.2924, xA scale 1.2924, team xA 1.35 = 0.73 x lambda) | scoreline_reset=true
team_lambda=1.854
squad_xg_sum=1.4345
squad_xa_sum=1.0469
team_expected_assists=1.3531
team_xa_to_xg_ratio=0.7298 | expected_goals: 0.1448 -> 0.1871 expected_assists: 0.0395 -> 0.0511 | 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_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.1706
goal_rate=0.0067
scorer_weight=0.1497 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0498
assist_rate=0.0258
provider_weight=0.0433 | - |
|
| Ezri Konsa | D | 90 | 0 | 0.06 | 0.04 | 39% | 0 | 0.3 | 6.8 | 53.2 | 29 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0110, quality 0.834) | market_value_eur=53000000
quality_factor=0.834
boost_factor=1.011
reference_quality=0.505
history_matches=40
history_shrink=0.1111 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0005) | blend_weight=0.0005
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=0.9999
prior_reliability=0.0067
competition=Premier League | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Thierno Barry', '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.85 (squad xG sum 1.4345, xG scale 1.2924, xA scale 1.2924, team xA 1.35 = 0.73 x lambda) | scoreline_reset=true
team_lambda=1.854
squad_xg_sum=1.4345
squad_xa_sum=1.0469
team_expected_assists=1.3531
team_xa_to_xg_ratio=0.7298 | expected_goals: 0.0434 -> 0.0561 | 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.0546
goal_rate=0.0
scorer_weight=0.0449 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.012
assist_rate=0.0
provider_weight=0.0102 | - |
|
| Ben White | D | 73 | 0 | 0.03 | 0.01 | 204% | 0 | 0.1 | 6.8 | 36.0 | 25 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0148, quality 0.732) | market_value_eur=32000000
quality_factor=0.732
boost_factor=1.0148
reference_quality=0.505
history_matches=18
history_shrink=0.2174 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0188) | blend_weight=0.0188
history_matches=18
season_overlap_discount=1.0
per90_to_match_factor=0.8063
prior_reliability=0.1333
competition=Premier League | totalCross: 1.6929 -> 1.7066 wasFouled: 0.9031 -> 0.8937 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Jack Grealish', '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.85 (squad xG sum 1.4345, xG scale 1.2924, xA scale 1.2924, team xA 1.35 = 0.73 x lambda) | scoreline_reset=true
team_lambda=1.854
squad_xg_sum=1.4345
squad_xa_sum=1.0469
team_expected_assists=1.3531
team_xa_to_xg_ratio=0.7298 | expected_goals: 0.0246 -> 0.0318 expected_assists: 0.07 -> 0.0905 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 15 by projected rating, fifa_overall 86.0) | match_squad_rank=15
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.0313
goal_rate=0.0
scorer_weight=0.0254 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0865
assist_rate=0.2391
provider_weight=0.1131 | - |
|
| David Raya | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 7.0 | 57.9 | 30 | FBref Prior G_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost G_service raw output over 3 target models | - | - | market_value_boost | Market-value quality scaling (boost 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=1.0
prior_reliability=0.1333
competition=Premier League | saves: 2.9882 -> 2.9662 wasFouled: 0.8363 -> 0.8289 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Thierno Barry, Kiernan Dewsbury-Hall', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.134} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.85 (squad xG sum 1.4345, xG scale 1.2924, xA scale 1.2924, team xA 1.35 = 0.73 x lambda) | scoreline_reset=true
team_lambda=1.854
squad_xg_sum=1.4345
squad_xa_sum=1.0469
team_expected_assists=1.3531
team_xa_to_xg_ratio=0.7298 | shots_faced: 10.8 -> 9.7 expected_saves: 2.65 -> 2.38 high_pressure_saves: 0.91 -> 0.81 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 88.0) | match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 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.7964 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by 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.3507 | - |
|
| Team totals | 1 | 1.85 | | 13 | | 7.0 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Illan Meslier | G | 4.6m | 11.9% | Market-value substitute prior |
| William Saliba | D | 15.4m | 38.0% | Market-value substitute prior |
| Jurriën Timber | D | 15.3m | 37.7% | Market-value substitute prior |
| Martín Zubimendi | M | 18.9m | 72.8% | Market-value substitute prior |
| Bruno Guimarães | M | 21.7m | 72.8% | Market-value substitute prior |
| Bukayo Saka | F | 27.1m | 37.1% | Market-value substitute prior |
Everton — 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 |
|---|
| Thierno Barry | F | 84 | 0 | 0.36 | 0.31 | ok | 2 | 1.5 | 6.9 | 56.3 | 31 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0076, quality 0.758) | market_value_eur=36000000
quality_factor=0.7581
boost_factor=1.0076
reference_quality=0.505
history_matches=45
history_shrink=0.1 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0069) | blend_weight=0.0069
history_matches=45
season_overlap_discount=1.0
per90_to_match_factor=0.9382
prior_reliability=0.1067
competition=Premier League | fouls: 0.8802 -> 0.8741 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Gabriel Magalhães, Riccardo Calafiori', '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.9494, 'skill_edge': -0.0584, 'height_edge': 0.024, 'attacker_skill': 0.7581, 'defender_skill': 0.888, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Gabriel Magalhães', 'market_value': 70000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8907}, {'player': 'Riccardo Calafiori', 'market_value': 63000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8852}], 'xg_override': 0.3662} | totalShots: 2.4491 -> 2.3252 bigChanceMissed: 1.3705 -> 1.3012 shotOffTarget: 1.3038 -> 1.2378 onTargetScoringAttempt: 1.1453 -> 1.0873 expectedGoalsOnTarget: 0.4588 -> 0.4356 goals: 0.4559 -> 0.4328 expectedGoals: 0.3857 -> 0.3662 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.02 (squad xG sum 1.0471, xG scale 0.9703, xA scale 0.8122, team xA 0.81 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.016
squad_xg_sum=1.0471
squad_xa_sum=1.0007
team_expected_assists=0.8128
team_xa_to_xg_ratio=0.8 | expected_goals: 0.3662 -> 0.3553 expected_assists: 0.0306 -> 0.0249 | 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 skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.299
goal_rate=0.4328
scorer_weight=0.4121 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0246
assist_rate=0.0
provider_weight=0.0199 | - |
|
| Jack Grealish | F | 86 | 0 | 0.07 | 0.01 | 448% | 1 | 0.5 | 7.0 | 39.4 | 25 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0066, quality 0.641) | market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.0066
reference_quality=0.505
history_matches=26
history_shrink=0.1613 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0007) | blend_weight=0.0007
history_matches=26
season_overlap_discount=1.0
per90_to_match_factor=0.9558
prior_reliability=0.0067
competition=Premier League | fouls: 0.7406 -> 0.7468 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Gabriel Magalhães, Riccardo Calafiori', '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.7836, 'skill_edge': -0.1112, 'height_edge': -0.036, 'attacker_skill': 0.6408, 'defender_skill': 0.888, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Gabriel Magalhães', 'market_value': 70000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8907}, {'player': 'Riccardo Calafiori', 'market_value': 63000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8852}], 'xg_override': 0.0735} | totalShots: 1.1843 -> 0.928 shotOffTarget: 0.7994 -> 0.6264 onTargetScoringAttempt: 0.3849 -> 0.3016 bigChanceMissed: 0.1377 -> 0.1079 goals: 0.1151 -> 0.0902 expectedGoals: 0.0938 -> 0.0735 expectedGoalsOnTarget: 0.0644 -> 0.0505 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.02 (squad xG sum 1.0471, xG scale 0.9703, xA scale 0.8122, team xA 0.81 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.016
squad_xg_sum=1.0471
squad_xa_sum=1.0007
team_expected_assists=0.8128
team_xa_to_xg_ratio=0.8 | expected_assists: 0.1761 -> 0.143 | 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 skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0688
goal_rate=0.0902
scorer_weight=0.0809 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.1332
assist_rate=0.1648
provider_weight=0.1358 | - |
|
| Kiernan Dewsbury-Hall | M | 89 | 0 | 0.17 | 0.15 | ok | 2 | 1.5 | 7.2 | 58.9 | 28 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0103, quality 0.800) | market_value_eur=44000000
quality_factor=0.8002
boost_factor=1.0103
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.9879
prior_reliability=0.1333
competition=Premier League | totalCross: 3.601 -> 3.6095 wonTackle: 0.7884 -> 0.7954 wasFouled: 2.0119 -> 2.0066 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | 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 Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.438, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9388, 'skill_edge': -0.0417, 'height_edge': 0.0, 'attacker_skill': 0.8002, 'defender_skill': 0.8928, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Myles Lewis-Skelly', 'market_value': 69000000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.8928}], 'xg_override': 0.1743} | aerialWon: 0.3465 -> 1.0 totalShots: 2.1154 -> 1.9859 shotOffTarget: 1.3009 -> 1.2213 onTargetScoringAttempt: 0.8127 -> 0.763 bigChanceMissed: 0.2619 -> 0.2459 goals: 0.2377 -> 0.2232 expectedGoalsOnTarget: 0.2069 -> 0.1942 expectedGoals: 0.1857 -> 0.1743 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.02 (squad xG sum 1.0471, xG scale 0.9703, xA scale 0.8122, team xA 0.81 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.016
squad_xg_sum=1.0471
squad_xa_sum=1.0007
team_expected_assists=0.8128
team_xa_to_xg_ratio=0.8 | expected_goals: 0.1743 -> 0.1691 expected_assists: 0.1759 -> 0.1429 | 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.1556
goal_rate=0.2232
scorer_weight=0.206 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.1332
assist_rate=0.1308
provider_weight=0.1144 | - |
|
| Merlin Röhl | M | 84 | 0 | 0.05 | 0.01 | 354% | 1 | 0.2 | 6.8 | 31.1 | 32 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0066, quality 0.615) | market_value_eur=18400000
quality_factor=0.615
boost_factor=1.0066
reference_quality=0.505
history_matches=20
history_shrink=0.2 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0165) | blend_weight=0.0165
history_matches=20
season_overlap_discount=1.0
per90_to_match_factor=0.9317
prior_reliability=0.1267
competition=Premier League | totalCross: 1.4174 -> 1.4344 fouls: 1.4086 -> 1.3935 wonTackle: 1.0995 -> 1.1137 totalShots: 0.7914 -> 0.7784 wasFouled: 1.0024 -> 0.994 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Eberechi Eze', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.369, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9249, 'skill_edge': -0.1031, 'height_edge': 0.052, 'attacker_skill': 0.6469, 'defender_skill': 0.876, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Eberechi Eze', 'market_value': 63000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.876}], 'xg_override': 0.0494} | aerialWon: 1.1384 -> 1.3 totalShots: 0.7873 -> 0.7282 shotOffTarget: 0.5452 -> 0.5043 onTargetScoringAttempt: 0.2421 -> 0.2239 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.02 (squad xG sum 1.0471, xG scale 0.9703, xA scale 0.8122, team xA 0.81 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.016
squad_xg_sum=1.0471
squad_xa_sum=1.0007
team_expected_assists=0.8128
team_xa_to_xg_ratio=0.8 | expected_assists: 0.0586 -> 0.0476 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 74.0) | match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0468
goal_rate=0.0597
scorer_weight=0.0529 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0465
assist_rate=0.0654
provider_weight=0.0506 | - |
|
| Harrison Armstrong | M | 84 | 0 | 0.08 | 0.04 | 98% | 1 | 0.4 | 6.8 | 41.4 | 29 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0132, quality 0.725) | market_value_eur=31000000
quality_factor=0.7249
boost_factor=1.0132
reference_quality=0.505
history_matches=20
history_shrink=0.2 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0165) | blend_weight=0.0165
history_matches=20
season_overlap_discount=1.0
per90_to_match_factor=0.9288
prior_reliability=0.1267
competition=Premier League | interceptionWon: 0.4556 -> 0.4803 fouls: 1.1461 -> 1.1675 totalShots: 1.0055 -> 0.9889 wonTackle: 0.9462 -> 0.9548 goalAssist: 0.0878 -> 0.0944 onTargetScoringAttempt: 0.3776 -> 0.3714 | 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': 'Eberechi Eze, Declan Rice', 'matchup_zone': 'Attacking Mid vs Double Pivot — Tight Space Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.9119, 'skill_edge': -0.068, 'height_edge': 0.008, 'attacker_skill': 0.7364, 'defender_skill': 0.8874, 'attacker_role': 'CAM', 'attacker_mv_price_index': 0.95, 'defender_adjusted_parts': [{'player': 'Eberechi Eze', 'market_value': 63000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.876}, {'player': 'Declan Rice', 'market_value': 114000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8988}], 'xg_override': 0.0844} | aerialWon: 0.6285 -> 1.2 totalShots: 0.9993 -> 0.9113 shotOffTarget: 0.6279 -> 0.5726 onTargetScoringAttempt: 0.3714 -> 0.3387 bigChanceMissed: 0.1998 -> 0.1822 goals: 0.0944 -> 0.0861 expectedGoals: 0.0925 -> 0.0844 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.02 (squad xG sum 1.0471, xG scale 0.9703, xA scale 0.8122, team xA 0.81 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.016
squad_xg_sum=1.0471
squad_xa_sum=1.0007
team_expected_assists=0.8128
team_xa_to_xg_ratio=0.8 | expected_assists: 0.0655 -> 0.0532 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 73.0) | match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0786
goal_rate=0.0861
scorer_weight=0.0829 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0518
assist_rate=0.0944
provider_weight=0.0665 | - |
|
| James Garner | M | 87 | 0 | 0.06 | 0.03 | 98% | 1 | 0.6 | 7.2 | 60.4 | 31 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0099, quality 0.834) | market_value_eur=53000000
quality_factor=0.834
boost_factor=1.0099
reference_quality=0.505
history_matches=45
history_shrink=0.1 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0035) | blend_weight=0.0035
history_matches=45
season_overlap_discount=1.0
per90_to_match_factor=0.9673
prior_reliability=0.0533
competition=Premier League | wonTackle: 1.5012 -> 1.5128 fouls: 0.9578 -> 0.9629 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Eberechi Eze', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.428, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 1.0114, 'skill_edge': -0.0083, 'height_edge': 0.016, 'attacker_skill': 0.8576, 'defender_skill': 0.876, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Eberechi Eze', 'market_value': 63000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.876}], 'xg_override': 0.0588} | aerialWon: 0.3956 -> 1.1 totalShots: 0.8486 -> 0.8583 shotOffTarget: 0.6239 -> 0.631 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.02 (squad xG sum 1.0471, xG scale 0.9703, xA scale 0.8122, team xA 0.81 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.016
squad_xg_sum=1.0471
squad_xa_sum=1.0007
team_expected_assists=0.8128
team_xa_to_xg_ratio=0.8 | expected_assists: 0.1187 -> 0.0964 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 82.0) | match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0555
goal_rate=0.0547
scorer_weight=0.0549 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0919
assist_rate=0.1014
provider_weight=0.0865 | - |
|
| Vitaliy Mykolenko | D | 90 | 0 | 0.01 | 0.01 | ok | 0 | 0.2 | 6.7 | 51.7 | 30 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.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 | - | 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.9994
prior_reliability=0.1333
competition=Premier League | wonTackle: 1.3485 -> 1.3352 totalCross: 2.4151 -> 2.4061 interceptionWon: 1.0985 -> 1.0926 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Kai Havertz', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.02 (squad xG sum 1.0471, xG scale 0.9703, xA scale 0.8122, team xA 0.81 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.016
squad_xg_sum=1.0471
squad_xa_sum=1.0007
team_expected_assists=0.8128
team_xa_to_xg_ratio=0.8 | expected_assists: 0.0646 -> 0.0525 | 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.0065
goal_rate=0.0
scorer_weight=0.0057 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0511
assist_rate=0.0081
provider_weight=0.042 | - |
|
| Jarrad Branthwaite | D | 90 | 0 | 0.04 | 0.03 | 42% | 1 | 0.5 | 6.8 | 54.0 | 22 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0207, quality 0.809) | market_value_eur=46000000
quality_factor=0.8089
boost_factor=1.0207
reference_quality=0.505
history_matches=17
history_shrink=0.2273 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0197) | blend_weight=0.0197
history_matches=17
season_overlap_discount=1.0
per90_to_match_factor=0.9956
prior_reliability=0.1333
competition=Premier League | wasFouled: 0.8179 -> 0.8018 totalCross: 0.3679 -> 0.3607 interceptionWon: 1.1565 -> 1.1631 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Kai Havertz', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.02 (squad xG sum 1.0471, xG scale 0.9703, xA scale 0.8122, team xA 0.81 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.016
squad_xg_sum=1.0471
squad_xa_sum=1.0007
team_expected_assists=0.8128
team_xa_to_xg_ratio=0.8 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 79.0) | match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.039
goal_rate=0.0368
scorer_weight=0.038 | - | 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.0066 | - |
|
| James Tarkowski | D | 90 | 0 | 0.04 | 0.07 | 43% | 1 | 0.7 | 7.0 | 60.3 | 30 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9988, quality 0.465) | market_value_eur=5200000
quality_factor=0.4646
boost_factor=0.9988
reference_quality=0.505
history_matches=44
history_shrink=0.102 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0088) | blend_weight=0.0088
history_matches=44
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League | interceptionWon: 1.3154 -> 1.3303 wasFouled: 1.6147 -> 1.6225 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Kai Havertz', '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.02 (squad xG sum 1.0471, xG scale 0.9703, xA scale 0.8122, team xA 0.81 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.016
squad_xg_sum=1.0471
squad_xa_sum=1.0007
team_expected_assists=0.8128
team_xa_to_xg_ratio=0.8 | expected_assists: 0.0411 -> 0.0334 | 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 skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0363
goal_rate=0.1296
scorer_weight=0.0462 | - | 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.1676
provider_weight=0.0417 | - |
|
| Ainsley Maitland-Niles | D | 78 | 0 | 0.01 | 0.01 | 31% | 0 | 0.3 | 6.6 | 38.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.0042, quality 0.533) | market_value_eur=10900000
quality_factor=0.533
boost_factor=1.0042
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': 'Martin Ødegaard', '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.02 (squad xG sum 1.0471, xG scale 0.9703, xA scale 0.8122, team xA 0.81 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.016
squad_xg_sum=1.0471
squad_xa_sum=1.0007
team_expected_assists=0.8128
team_xa_to_xg_ratio=0.8 | expected_assists: 0.1829 -> 0.1484 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 16 by projected rating, fifa_overall 77.0) | match_squad_rank=16
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0051
goal_rate=0.0
scorer_weight=0.0046 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.1379
assist_rate=0.2678
provider_weight=0.1855 | - |
|
| Jordan Pickford | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 7.0 | 58.4 | 31 | FBref Prior G_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost G_service raw output over 3 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0019, quality 0.567) | market_value_eur=13900000
quality_factor=0.5671
boost_factor=1.0019
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 | wasFouled: 0.3273 -> 0.3375 saves: 2.9404 -> 2.9496 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Kai Havertz, Martin Ødegaard', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.7125} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.02 (squad xG sum 1.0471, xG scale 0.9703, xA scale 0.8122, team xA 0.81 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.016
squad_xg_sum=1.0471
squad_xa_sum=1.0007
team_expected_assists=0.8128
team_xa_to_xg_ratio=0.8 | shots_faced: 16.3 -> 17.6 expected_saves: 3.99 -> 4.31 high_pressure_saves: 1.37 -> 1.48 | 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 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.1461 | - | 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.8126 | - |
|
| Team totals | 0 | 1.02 | | 13 | | 6.9 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Mark Travers | G | 4.4m | 10.9% | Market-value substitute prior |
| Jake O'Brien | D | 14.2m | 32.7% | Market-value substitute prior |
| Nathan Patterson | D | 13.9m | 31.6% | Market-value substitute prior |
| Hayden Hackney | M | 26.4m | 52.5% | Market-value substitute prior |
| Carlos Alcaraz | M | 11.8m | 70.3% | Market-value substitute prior |
| Brennan Johnson | F | 21.8m | 74.3% | Market-value substitute prior |
Antagonist / tactical summary
Midfield is evenly contested — Declan Rice vs James Garner will be the pivotal duel. Total antagonist xG — Home: 0.91, Away: 0.81. 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.7% / 49.3%, dominance ratio 0.53, key duel: Declan Rice vs James Garner
Martin Ødegaard xG 0.20Kai Havertz xG 0.41Noni Madueke xG 0.12Kiernan Dewsbury-Hall xG 0.17Harrison Armstrong xG 0.08Thierno Barry xG 0.37
Summary
Antagonist matchup analysis for Arsenal vs Everton. Most likely scoreline: 1-0. Lambdas derived from 5 home and 6 away individual player duels. Head-to-head: Arsenal 7W-2D-1L vs Everton 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 — Declan Rice vs James Garner will be the pivotal duel. Total antagonist xG — Home: 0.91, Away: 0.81. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Coventry vs Fulham
Premier League · 20261024 · 4-2-3-1 vs 4-2-3-1
Predicted 1-1Winner: DrawWinning H 1-0 (9.8%)Winning A 0-1 (10.5%)Confidence 0.7λ home/away 1.20 / 1.30Most-likely P 12.9%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset TracingAntagonist + XGBoost match analysis for Coventry vs Fulham. Player statistics regressed using position-specific XGBoost models (G, D, M, F) with 2026-2027 FBref priors. Micro-duels resolved across 4-2-3-1 vs 4-2-3-1 (duel lambdas: Home 1.162, Away 1.342). Final calibrated Poisson lambdas: Home 1.201, Away 1.297 (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.16 / 1.34 Final λ (H/A) 1.20 / 1.30
Modeling Pipeline Stages (5 layers)
- 1. XGBoost player regressions for volume & event rates with market-value quality scaling
- 2. Multi-source prior blending (FBref 2026-2027 tables + Sofascore season history)
- 3. Antagonist formation duel matrix resolving 1v1 and zonal matchups
- 4. Team-level prior calibration (FBref possession and attack/defense efficiencies)
- 5. Bivariate Poisson matrix with Dixon-Coles low-score correction
Standing & form context
| Metric | Coventry | Fulham |
|---|
| League position | 17.00 | 18.00 |
| Points per game | 1.09 | 1.01 |
| Attack index | 0.90 | 0.84 |
| Defense (concede) index | 0.94 | 1.20 |
| Form multiplier | 1.00 | 0.99 |
| Standing λ multiplier | 0.94 | 1.00 |
Lambda decomposition (how the goal rates were built)
| Stage | Coventry λ | Fulham λ |
|---|
| Pre-competitive-floor | 1.201 | 1.297 |
| Pre-calibration (Micro-duels) | 1.162 | 1.342 |
| Final λ | 1.201 | 1.297 |
competition calibration scale 1.0competition observed total goals 0.0quality gap applied Truemismatch score pressure applied Falsecompetitive underdog floor applied Falsestage discount 1.0
Scoreline distribution & markets
| Top 5 scorelines | P |
|---|
| 1-1 | 12.9% |
| 0-1 | 10.5% |
| 1-0 | 9.8% |
| 0-0 | 8.3% |
| 1-2 | 8.3% |
| Home win | 34.1% |
| Draw | 27.2% |
| Away win | 38.7% |
| Over 2.5 | 45.6% |
| BTTS yes | 50.9% |
Pregame fair line — favorite Fulham (38.7%), fair total 2.50, fair spread -0.10
Projected players vs season baseline
Proj = projected for this match · Season = this season's per-game average from match data · deviation badge compares projected xG to the player's season xG/game.
Coventry — projected line vs season baseline (4-2-3-1)
| Player | Pos | Min | Proj G | Proj xG | Season xG/g | | Proj Sh | Season Sh/g | Proj Rtg | Season Rtg | Rec | Model / FBref Prior |
|---|
| Taiwo Awoniyi | F | 72 | 1 | 0.30 | 0.17 | 70% | 2 | 0.7 | 6.7 | 36.8 | 27 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9994, quality 0.494) | market_value_eur=7600000
quality_factor=0.4939
boost_factor=0.9994
reference_quality=0.505
history_matches=22
history_shrink=0.1852 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0096) | blend_weight=0.0096
history_matches=22
season_overlap_discount=1.0
per90_to_match_factor=0.8046
prior_reliability=0.08
competition=Premier League | totalOffside: 0.7141 -> 0.7201 onTargetScoringAttempt: 0.7081 -> 0.7138 totalShots: 2.0316 -> 2.0371 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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.18, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 0.8857, 'skill_edge': -0.0697, 'height_edge': -0.008, 'attacker_skill': 0.4939, '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.2662} | totalShots: 2.0373 -> 1.8044 shotOffTarget: 1.3235 -> 1.1722 onTargetScoringAttempt: 0.7138 -> 0.6322 expectedGoalsOnTarget: 0.3999 -> 0.3542 bigChanceMissed: 0.3785 -> 0.3352 expectedGoals: 0.3006 -> 0.2662 goals: 0.2711 -> 0.2401 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.20 (squad xG sum 1.0809, xG scale 1.1111, xA scale 1.1940, team xA 0.78 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.201
squad_xg_sum=1.0809
squad_xa_sum=0.6538
team_expected_assists=0.7807
team_xa_to_xg_ratio=0.65 | expected_goals: 0.2662 -> 0.2958 expected_assists: 0.0436 -> 0.0521 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 74.0) | match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.2561
goal_rate=0.2401
scorer_weight=0.2714 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0508
assist_rate=0.0
provider_weight=0.0417 | - |
|
| Ephron Mason-Clark | F | 65 | 0 | 0.20 | 0.03 | 633% | 1 | 0.2 | 6.7 | 26.9 | 19 | 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.0133, quality 0.603) | market_value_eur=17200000
quality_factor=0.6027
boost_factor=1.0133
reference_quality=0.505
history_matches=6
history_shrink=0.4545 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0118) | blend_weight=0.0118
history_matches=6
season_overlap_discount=1.0
per90_to_match_factor=0.7172
prior_reliability=0.04
competition=Premier League | totalCross: 1.9996 -> 2.0607 wasFouled: 0.6853 -> 0.7055 totalShots: 1.4335 -> 1.4166 fouls: 1.1834 -> 1.1977 onTargetScoringAttempt: 0.4607 -> 0.4553 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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.18, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 0.9283, 'skill_edge': -0.0208, 'height_edge': -0.028, 'attacker_skill': 0.6027, '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.1769} | totalShots: 1.4281 -> 1.3258 shotOffTarget: 0.9728 -> 0.9031 onTargetScoringAttempt: 0.4553 -> 0.4227 expectedGoals: 0.1906 -> 0.1769 goals: 0.1487 -> 0.138 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.20 (squad xG sum 1.0809, xG scale 1.1111, xA scale 1.1940, team xA 0.78 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.201
squad_xg_sum=1.0809
squad_xa_sum=0.6538
team_expected_assists=0.7807
team_xa_to_xg_ratio=0.65 | expected_goals: 0.1769 -> 0.1966 expected_assists: 0.0627 -> 0.0749 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 75.0) | match_squad_rank=11
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1785
goal_rate=0.138
scorer_weight=0.1629 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0722
assist_rate=0.0
provider_weight=0.0599 | - |
|
| Jack Rudoni | M | 79 | 0 | 0.21 | 0.17 | ok | 2 | 0.9 | 6.9 | 47.7 | 15 | XGBoost M_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0170, quality 0.641) | market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.017
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': 'David Affengruber', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.46, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.971, 'skill_edge': -0.0197, 'height_edge': 0.0, 'attacker_skill': 0.6408, '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.1918} | aerialWon: 1.1146 -> 1.2 totalShots: 1.751 -> 1.7002 shotOffTarget: 1.1036 -> 1.0716 onTargetScoringAttempt: 0.6473 -> 0.6285 expectedGoalsOnTarget: 0.4327 -> 0.4202 bigChanceMissed: 0.3665 -> 0.3559 goals: 0.2275 -> 0.2209 expectedGoals: 0.1975 -> 0.1918 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.20 (squad xG sum 1.0809, xG scale 1.1111, xA scale 1.1940, team xA 0.78 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.201
squad_xg_sum=1.0809
squad_xa_sum=0.6538
team_expected_assists=0.7807
team_xa_to_xg_ratio=0.65 | expected_goals: 0.1918 -> 0.2131 expected_assists: 0.1483 -> 0.177 | 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: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1919
goal_rate=0.2209
scorer_weight=0.2387 | - | integer_assist_projection | Team scoreline allocation: 1 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.1622
assist_rate=0.1214
provider_weight=0.153 | - |
|
| Brandon Thomas-Asante | F | 82 | 0 | 0.15 | 0.03 | 347% | 2 | 0.6 | 6.7 | 42.9 | 14 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0113, quality 0.595) | market_value_eur=16500000
quality_factor=0.5953
boost_factor=1.0113
reference_quality=0.505
history_matches=7
history_shrink=0.4167 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0199) | blend_weight=0.0199
history_matches=7
season_overlap_discount=1.0
per90_to_match_factor=0.9066
prior_reliability=0.0733
competition=Premier League | totalShots: 1.7295 -> 1.6952 totalCross: 0.694 -> 0.7129 interceptionWon: 2.6488 -> 2.6617 wasFouled: 3.1159 -> 3.1031 goalAssist: 0.5872 -> 0.5755 onTargetScoringAttempt: 0.4917 -> 0.4819 fouls: 0.3173 -> 0.311 totalOffside: 0.3173 -> 0.311 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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.18, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 0.9352, 'skill_edge': -0.0241, 'height_edge': -0.02, 'attacker_skill': 0.5953, '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.1336} | totalShots: 1.7197 -> 1.6083 shotOffTarget: 1.2378 -> 1.1576 onTargetScoringAttempt: 0.4819 -> 0.4507 goals: 0.1804 -> 0.1687 expectedGoals: 0.1429 -> 0.1336 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | assists: 1.0 -> 0 | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.20 (squad xG sum 1.0809, xG scale 1.1111, xA scale 1.1940, team xA 0.78 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.201
squad_xg_sum=1.0809
squad_xa_sum=0.6538
team_expected_assists=0.7807
team_xa_to_xg_ratio=0.65 | expected_goals: 0.1336 -> 0.1484 expected_assists: 0.031 -> 0.037 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 73.0) | match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1379
goal_rate=0.1687
scorer_weight=0.1768 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0363
assist_rate=0.5755
provider_weight=0.0462 | - |
|
| Matt Grimes | M | 87 | 0 | 0.03 | 0.01 | 203% | 0 | 0.3 | 6.8 | 39.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.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.0361) | blend_weight=0.0361
history_matches=7
season_overlap_discount=1.0
per90_to_match_factor=0.9718
prior_reliability=0.1333
competition=Premier League | totalCross: 2.3455 -> 2.4362 fouls: 0.9812 -> 0.9458 wonTackle: 0.7664 -> 0.7387 interceptionWon: 0.493 -> 0.4752 wasFouled: 0.5942 -> 0.6078 onTargetScoringAttempt: 0.1396 -> 0.1346 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Sander Berge', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.249, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 0.749, 'skill_edge': -0.1107, 'height_edge': -0.06, 'attacker_skill': 0.4759, 'defender_skill': 0.7219, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Sander Berge', 'market_value': 26000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.7219}], 'xg_override': 0.0257} | totalShots: 0.5749 -> 0.4306 shotOffTarget: 0.4386 -> 0.3285 aerialWon: 0.9206 -> 1.0 onTargetScoringAttempt: 0.1346 -> 0.1008 goals: 0.052 -> 0.0389 expectedGoals: 0.0343 -> 0.0257 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.20 (squad xG sum 1.0809, xG scale 1.1111, xA scale 1.1940, team xA 0.78 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.201
squad_xg_sum=1.0809
squad_xa_sum=0.6538
team_expected_assists=0.7807
team_xa_to_xg_ratio=0.65 | expected_assists: 0.0625 -> 0.0746 | 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.0282
goal_rate=0.0389
scorer_weight=0.0336 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0719
assist_rate=0.0636
provider_weight=0.0753 | - |
|
| Caleb Yirenkyi | M | 76 | 0 | 0.04 | 0.00 | 1233% | 1 | 0.1 | 6.7 | 37.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 1.0193, quality 0.660) | market_value_eur=23000000
quality_factor=0.6595
boost_factor=1.0193
reference_quality=0.505
history_matches=7
history_shrink=0.4167 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0271) | blend_weight=0.0271
history_matches=7
season_overlap_discount=1.0
per90_to_match_factor=0.8434
prior_reliability=0.1
competition=Premier League | interceptionWon: 1.0581 -> 1.0294 fouls: 2.2731 -> 2.2572 wonTackle: 0.4672 -> 0.4545 totalCross: 0.3674 -> 0.3727 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Sander Berge', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.356, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 0.9055, 'skill_edge': -0.0123, 'height_edge': -0.052, 'attacker_skill': 0.6946, 'defender_skill': 0.7219, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Sander Berge', 'market_value': 26000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.7219}], 'xg_override': 0.0344} | totalShots: 0.6114 -> 0.5536 shotOffTarget: 0.4683 -> 0.424 aerialWon: 1.082 -> 1.1 onTargetScoringAttempt: 0.14 -> 0.1268 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.20 (squad xG sum 1.0809, xG scale 1.1111, xA scale 1.1940, team xA 0.78 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.201
squad_xg_sum=1.0809
squad_xa_sum=0.6538
team_expected_assists=0.7807
team_xa_to_xg_ratio=0.65 | expected_assists: 0.0385 -> 0.046 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 73.0) | match_squad_rank=12
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0375
goal_rate=0.0386
scorer_weight=0.0401 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by 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.0532
provider_weight=0.0536 | - |
|
| Jay DaSilva | D | 90 | 0 | 0.08 | 0.05 | 40% | 0 | 0.3 | 6.6 | 45.3 | 15 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0045, quality 0.541) | market_value_eur=11600000
quality_factor=0.5411
boost_factor=1.0045
reference_quality=0.505
history_matches=7
history_shrink=0.4167 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0361) | blend_weight=0.0361
history_matches=7
season_overlap_discount=1.0
per90_to_match_factor=0.995
prior_reliability=0.1333
competition=Premier League | interceptionWon: 0.781 -> 0.7708 totalCross: 2.7522 -> 2.7426 onTargetScoringAttempt: 0.2587 -> 0.2673 fouls: 0.7021 -> 0.6947 goalAssist: 0.1885 -> 0.1817 goals: 0.1602 -> 0.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': 'Gonzalo García', 'matchup_zone': 'Shape fallback'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.20 (squad xG sum 1.0809, xG scale 1.1111, xA scale 1.1940, team xA 0.78 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.201
squad_xg_sum=1.0809
squad_xa_sum=0.6538
team_expected_assists=0.7807
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0692 -> 0.0769 expected_assists: 0.0826 -> 0.0986 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 16 by projected rating, fifa_overall 73.0) | match_squad_rank=16
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.074
goal_rate=0.1544
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.0939
assist_rate=0.1817
provider_weight=0.1232 | - |
|
| Ethan Pinnock | D | 88 | 0 | 0.02 | 0.00 | 303% | 0 | 0.1 | 6.7 | 15.1 | 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.9932, quality 0.437) | market_value_eur=2800000
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=true | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Gonzalo García', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.20 (squad xG sum 1.0809, xG scale 1.1111, xA scale 1.1940, team xA 0.78 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.201
squad_xg_sum=1.0809
squad_xa_sum=0.6538
team_expected_assists=0.7807
team_xa_to_xg_ratio=0.65 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 75.0) | match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.019
goal_rate=0.0
scorer_weight=0.0154 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0188
assist_rate=0.0
provider_weight=0.0152 | - |
|
| Bobby Thomas | D | 89 | 0 | 0.09 | 0.05 | 89% | 1 | 1.0 | 7.0 | 42.4 | 12 | 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.0170, quality 0.641) | market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.017
reference_quality=0.505
history_matches=7
history_shrink=0.4167 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0343) | blend_weight=0.0343
history_matches=7
season_overlap_discount=1.0
per90_to_match_factor=0.9899
prior_reliability=0.1267
competition=Premier League | interceptionWon: 1.194 -> 1.153 wasFouled: 0.9388 -> 0.9781 fouls: 0.7937 -> 0.8201 totalCross: 0.0997 -> 0.1142 totalShots: 0.8295 -> 0.8194 wonTackle: 0.6963 -> 0.6903 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Gonzalo García', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.20 (squad xG sum 1.0809, xG scale 1.1111, xA scale 1.1940, team xA 0.78 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.201
squad_xg_sum=1.0809
squad_xa_sum=0.6538
team_expected_assists=0.7807
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0793 -> 0.0881 expected_assists: 0.052 -> 0.0621 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 74.0) | match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0843
goal_rate=0.0
scorer_weight=0.0705 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0602
assist_rate=0.0
provider_weight=0.0497 | - |
|
| Milan van Ewijk | D | 90 | 0 | 0.00 | - | n/a | 0 | 0.0 | 6.7 | 38.6 | 14 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0211, quality 0.660) | market_value_eur=23000000
quality_factor=0.6595
boost_factor=1.0211
reference_quality=0.505
history_matches=6
history_shrink=0.4545 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0394) | blend_weight=0.0394
history_matches=6
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League | wonTackle: 1.3396 -> 1.3065 wasFouled: 0.8102 -> 0.7783 interceptionWon: 1.155 -> 1.1292 totalCross: 0.9911 -> 1.0111 totalShots: 0.3802 -> 0.3652 fouls: 0.7293 -> 0.74 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Alex Iwobi', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.20 (squad xG sum 1.0809, xG scale 1.1111, xA scale 1.1940, team xA 0.78 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.201
squad_xg_sum=1.0809
squad_xa_sum=0.6538
team_expected_assists=0.7807
team_xa_to_xg_ratio=0.65 | expected_assists: 0.0717 -> 0.0856 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 75.0) | match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.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.082
assist_rate=0.0
provider_weight=0.0685 | - |
|
| Carl Rushworth | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 6.6 | 37.2 | 12 | 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.0170, quality 0.641) | market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.017
reference_quality=0.505
history_matches=7
history_shrink=0.4167 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0361) | blend_weight=0.0361
history_matches=7
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League | saves: 3.1502 -> 3.0906 wasFouled: 0.1379 -> 0.1329 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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.342} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.20 (squad xG sum 1.0809, xG scale 1.1111, xA scale 1.1940, team xA 0.78 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.201
squad_xg_sum=1.0809
squad_xa_sum=0.6538
team_expected_assists=0.7807
team_xa_to_xg_ratio=0.65 | shots_faced: 12.7 -> 12.3 expected_saves: 3.1 -> 3.01 high_pressure_saves: 1.07 -> 1.04 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 17 by projected rating, fifa_overall 76.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.0
scorer_weight=0.0
squad_weight_total=1.2197 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by 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.7398 | - |
|
| Team totals | 1 | 1.20 | | 10 | | 6.8 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Daniel Bentley | G | 4.4m | 10.9% | Market-value substitute prior |
| Aurèle Amenda | D | 14.2m | 22.9% | Market-value substitute prior |
| Liam Kitching | D | 14.1m | 32.5% | Market-value substitute prior |
| Victor Torp | M | 23.9m | 70.3% | Market-value substitute prior |
| Josh Eccles | M | 22.3m | 51.3% | Market-value substitute prior |
| Sidiki Cherif | F | 26.1m | 59.5% | Market-value substitute prior |
Fulham — projected line vs season baseline (4-2-3-1)
| Player | Pos | Min | Proj G | Proj xG | Season xG/g | | Proj Sh | Season Sh/g | Proj Rtg | Season Rtg | Rec | Model / FBref Prior |
|---|
| Antonee Robinson | D | 86 | 0 | 0.06 | 0.04 | 67% | 1 | 0.3 | 6.7 | 49.4 | 30 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0074, quality 0.669) | market_value_eur=24000000
quality_factor=0.6685
boost_factor=1.0074
reference_quality=0.505
history_matches=28
history_shrink=0.1515 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0125) | blend_weight=0.0125
history_matches=28
season_overlap_discount=1.0
per90_to_match_factor=0.9607
prior_reliability=0.1267
competition=Premier League | wonTackle: 1.5398 -> 1.5521 fouls: 0.8352 -> 0.8248 interceptionWon: 1.0843 -> 1.0771 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Taiwo Awoniyi', '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.30 (squad xG sum 1.3718, xG scale 0.9454, xA scale 0.9454, team xA 0.89 = 0.69 x lambda) | scoreline_reset=true
team_lambda=1.297
squad_xg_sum=1.3718
squad_xa_sum=0.9435
team_expected_assists=0.8921
team_xa_to_xg_ratio=0.6878 | - | 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.0601
goal_rate=0.0491
scorer_weight=0.0532 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0547
assist_rate=0.0
provider_weight=0.045 | - |
|
| Calvin Bassey | D | 90 | 0 | 0.05 | 0.04 | ok | 1 | 0.4 | 7.1 | 52.5 | 28 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0073, quality 0.710) | market_value_eur=29000000
quality_factor=0.71
boost_factor=1.0073
reference_quality=0.505
history_matches=37
history_shrink=0.119 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0103) | blend_weight=0.0103
history_matches=37
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League | fouls: 1.2004 -> 1.1932 wonTackle: 1.0007 -> 0.9955 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Brandon Thomas-Asante', '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.30 (squad xG sum 1.3718, xG scale 0.9454, xA scale 0.9454, team xA 0.89 = 0.69 x lambda) | scoreline_reset=true
team_lambda=1.297
squad_xg_sum=1.3718
squad_xa_sum=0.9435
team_expected_assists=0.8921
team_xa_to_xg_ratio=0.6878 | - | 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.045
goal_rate=0.0066
scorer_weight=0.0368 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0164
assist_rate=0.0
provider_weight=0.0132 | - |
|
| David Affengruber | D | 89 | 0 | 0.04 | 0.03 | 48% | 1 | 0.5 | 7.0 | 55.9 | 33 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0033, quality 0.612) | market_value_eur=18100000
quality_factor=0.612
boost_factor=1.0033
reference_quality=0.505
history_matches=43
history_shrink=0.1042 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0135) | blend_weight=0.0135
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=0.988
prior_reliability=0.2
competition=La Liga | totalShots: 0.5543 -> 0.5691 fouls: 1.1488 -> 1.1377 wasFouled: 0.6829 -> 0.6915 interceptionWon: 1.1796 -> 1.1859 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Jack Rudoni', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.30 (squad xG sum 1.3718, xG scale 0.9454, xA scale 0.9454, team xA 0.89 = 0.69 x lambda) | scoreline_reset=true
team_lambda=1.297
squad_xg_sum=1.3718
squad_xa_sum=0.9435
team_expected_assists=0.8921
team_xa_to_xg_ratio=0.6878 | - | 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.0389
goal_rate=0.0198
scorer_weight=0.0318 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0319
assist_rate=0.0181
provider_weight=0.0262 | - |
|
| Timothy Castagne | D | 86 | 0 | 0.07 | 0.05 | 39% | 1 | 0.4 | 6.8 | 49.1 | 32 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9996, quality 0.494) | market_value_eur=7600000
quality_factor=0.4939
boost_factor=0.9996
reference_quality=0.505
history_matches=36
history_shrink=0.122 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0090) | blend_weight=0.009
history_matches=36
season_overlap_discount=1.0
per90_to_match_factor=0.9557
prior_reliability=0.1133
competition=Premier League | fouls: 1.2111 -> 1.2255 wasFouled: 0.7704 -> 0.7837 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Brandon Thomas-Asante', '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.30 (squad xG sum 1.3718, xG scale 0.9454, xA scale 0.9454, team xA 0.89 = 0.69 x lambda) | scoreline_reset=true
team_lambda=1.297
squad_xg_sum=1.3718
squad_xa_sum=0.9435
team_expected_assists=0.8921
team_xa_to_xg_ratio=0.6878 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 75.0) | match_squad_rank=11
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.07
goal_rate=0.0
scorer_weight=0.0581 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0785
assist_rate=0.0719
provider_weight=0.073 | - |
|
| Bernd Leno | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 7.0 | 57.8 | 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.9989, quality 0.468) | market_value_eur=5500000
quality_factor=0.4683
boost_factor=0.9989
reference_quality=0.505
history_matches=45
history_shrink=0.1 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0087) | blend_weight=0.0087
history_matches=45
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Taiwo Awoniyi, Jack Rudoni', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.1616} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.30 (squad xG sum 1.3718, xG scale 0.9454, xA scale 0.9454, team xA 0.89 = 0.69 x lambda) | scoreline_reset=true
team_lambda=1.297
squad_xg_sum=1.3718
squad_xa_sum=0.9435
team_expected_assists=0.8921
team_xa_to_xg_ratio=0.6878 | shots_faced: 11.0 -> 11.4 expected_saves: 2.69 -> 2.79 high_pressure_saves: 0.93 -> 0.96 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 79.0) | match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.3663 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by 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.758 | - |
|
| Sander Berge | M | 84 | 0 | 0.08 | 0.04 | 109% | 1 | 0.5 | 7.1 | 53.6 | 31 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.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.0078) | blend_weight=0.0078
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.9333
prior_reliability=0.1133
competition=Premier League | wonTackle: 0.8444 -> 0.8378 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Matt Grimes', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.591, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.251, 'skill_edge': 0.1107, 'height_edge': 0.06, 'attacker_skill': 0.7219, 'defender_skill': 0.4759, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Matt Grimes', 'market_value': 5200000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4759}], 'xg_override': 0.0852} | aerialWon: 0.9697 -> 1.4 totalShots: 0.8742 -> 1.0936 shotOffTarget: 0.5689 -> 0.7117 onTargetScoringAttempt: 0.3053 -> 0.3819 goals: 0.0775 -> 0.097 expectedGoalsOnTarget: 0.0736 -> 0.0921 expectedGoals: 0.0681 -> 0.0852 bigChanceMissed: 0.0637 -> 0.0797 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.30 (squad xG sum 1.3718, xG scale 0.9454, xA scale 0.9454, team xA 0.89 = 0.69 x lambda) | scoreline_reset=true
team_lambda=1.297
squad_xg_sum=1.3718
squad_xa_sum=0.9435
team_expected_assists=0.8921
team_xa_to_xg_ratio=0.6878 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 79.0) | match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0774
goal_rate=0.097
scorer_weight=0.0876 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.07
assist_rate=0.0879
provider_weight=0.079 | - |
|
| Shea Charles | M | 85 | 0 | 0.05 | 0.01 | 268% | 1 | 0.3 | 7.0 | 40.9 | 12 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0204, quality 0.669) | market_value_eur=24000000
quality_factor=0.6685
boost_factor=1.0204
reference_quality=0.505
history_matches=7
history_shrink=0.4167 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0090) | blend_weight=0.009
history_matches=7
season_overlap_discount=1.0
per90_to_match_factor=0.9404
prior_reliability=0.0333
competition=Premier League | totalShots: 0.5539 -> 0.5814 totalCross: 0.1988 -> 0.214 wonTackle: 0.8767 -> 0.8858 wasFouled: 0.782 -> 0.7749 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Matt Grimes', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.567, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.2156, 'skill_edge': 0.1027, 'height_edge': 0.044, 'attacker_skill': 0.704, 'defender_skill': 0.4759, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Matt Grimes', 'market_value': 5200000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4759}], 'xg_override': 0.0497} | aerialWon: 1.1519 -> 1.3 totalShots: 0.5814 -> 0.7067 shotOffTarget: 0.4257 -> 0.5175 onTargetScoringAttempt: 0.127 -> 0.1544 goals: 0.0429 -> 0.0521 expectedGoals: 0.0409 -> 0.0497 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.30 (squad xG sum 1.3718, xG scale 0.9454, xA scale 0.9454, team xA 0.89 = 0.69 x lambda) | scoreline_reset=true
team_lambda=1.297
squad_xg_sum=1.3718
squad_xa_sum=0.9435
team_expected_assists=0.8921
team_xa_to_xg_ratio=0.6878 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 73.0) | match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0459
goal_rate=0.0521
scorer_weight=0.0481 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0622
assist_rate=0.058
provider_weight=0.0588 | - |
|
| Oscar Bobb | F | 72 | 0 | 0.14 | 0.09 | 61% | 2 | 0.6 | 6.9 | 48.2 | 38 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0081, quality 0.694) | market_value_eur=27000000
quality_factor=0.6941
boost_factor=1.0081
reference_quality=0.505
history_matches=30
history_shrink=0.1429 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0093) | blend_weight=0.0093
history_matches=30
season_overlap_discount=1.0
per90_to_match_factor=0.8046
prior_reliability=0.1
competition=Premier League | totalShots: 1.4798 -> 1.4661 fouls: 0.217 -> 0.2249 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Ethan Pinnock, Bobby Thomas', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.194, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 0.991, 'skill_edge': 0.0539, 'height_edge': -0.06, 'attacker_skill': 0.6941, 'defender_skill': 0.5744, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Ethan Pinnock', 'market_value': 2800000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4465}, {'player': 'Bobby Thomas', 'market_value': 21000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7022}], 'xg_override': 0.1524} | totalShots: 1.4749 -> 1.4617 shotOffTarget: 0.9472 -> 0.9387 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.30 (squad xG sum 1.3718, xG scale 0.9454, xA scale 0.9454, team xA 0.89 = 0.69 x lambda) | scoreline_reset=true
team_lambda=1.297
squad_xg_sum=1.3718
squad_xa_sum=0.9435
team_expected_assists=0.8921
team_xa_to_xg_ratio=0.6878 | expected_goals: 0.1524 -> 0.1441 expected_assists: 0.1192 -> 0.1127 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 76.0) | match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1342
goal_rate=0.1927
scorer_weight=0.1728 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1066
assist_rate=0.01
provider_weight=0.0902 | - |
|
| Josh King | M | 77 | 0 | 0.18 | 0.11 | 75% | 2 | 0.9 | 7.0 | 49.8 | 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.0096, quality 0.786) | market_value_eur=41000000
quality_factor=0.7859
boost_factor=1.0096
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': 'Matt Grimes, Caleb Yirenkyi', 'matchup_zone': 'Attacking Mid vs Double Pivot — Tight Space Battle', 'duel_win_rate': 0.303, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.0926, 'skill_edge': 0.095, 'height_edge': -0.032, 'attacker_skill': 0.7964, 'defender_skill': 0.5852, 'attacker_role': 'CAM', 'attacker_mv_price_index': 0.95, 'defender_adjusted_parts': [{'player': 'Matt Grimes', 'market_value': 5200000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4759}, {'player': 'Caleb Yirenkyi', 'market_value': 23000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.6946}], 'xg_override': 0.1949} | aerialWon: 0.1325 -> 0.8 totalShots: 2.0206 -> 2.2077 shotOffTarget: 1.1587 -> 1.266 onTargetScoringAttempt: 0.8619 -> 0.9417 bigChanceMissed: 0.3849 -> 0.4205 expectedGoalsOnTarget: 0.2268 -> 0.2478 goals: 0.2167 -> 0.2368 expectedGoals: 0.1784 -> 0.1949 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.30 (squad xG sum 1.3718, xG scale 0.9454, xA scale 0.9454, team xA 0.89 = 0.69 x lambda) | scoreline_reset=true
team_lambda=1.297
squad_xg_sum=1.3718
squad_xa_sum=0.9435
team_expected_assists=0.8921
team_xa_to_xg_ratio=0.6878 | expected_goals: 0.1949 -> 0.1843 expected_assists: 0.141 -> 0.1333 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 78.0) | match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1683
goal_rate=0.2368
scorer_weight=0.2158 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1248
assist_rate=0.1028
provider_weight=0.1066 | - |
|
| Gonzalo García | F | 82 | 1 | 0.34 | 0.24 | 42% | 2 | 1.1 | 6.7 | 49.8 | 32 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0090, quality 0.758) | market_value_eur=36000000
quality_factor=0.7581
boost_factor=1.009
reference_quality=0.505
history_matches=37
history_shrink=0.119 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0103) | blend_weight=0.0103
history_matches=37
season_overlap_discount=1.0
per90_to_match_factor=0.9136
prior_reliability=0.1333
competition=Premier League | fouls: 1.0137 -> 1.0221 totalShots: 2.093 -> 2.0997 wasFouled: 0.3708 -> 0.3764 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Ethan Pinnock, Bobby Thomas', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.251, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.0745, 'skill_edge': 0.0827, 'height_edge': -0.032, 'attacker_skill': 0.7581, 'defender_skill': 0.5744, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Ethan Pinnock', 'market_value': 2800000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4465}, {'player': 'Bobby Thomas', 'market_value': 21000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7022}], 'xg_override': 0.3547} | totalShots: 2.0997 -> 2.2561 shotOffTarget: 1.1943 -> 1.2833 onTargetScoringAttempt: 0.8941 -> 0.9607 bigChanceMissed: 0.8251 -> 0.8866 expectedGoals: 0.3301 -> 0.3547 goals: 0.3038 -> 0.3264 expectedGoalsOnTarget: 0.1851 -> 0.1989 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.30 (squad xG sum 1.3718, xG scale 0.9454, xA scale 0.9454, team xA 0.89 = 0.69 x lambda) | scoreline_reset=true
team_lambda=1.297
squad_xg_sum=1.3718
squad_xa_sum=0.9435
team_expected_assists=0.8921
team_xa_to_xg_ratio=0.6878 | expected_goals: 0.3547 -> 0.3354 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 78.0) | match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.2849
goal_rate=0.3264
scorer_weight=0.312 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by 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.0
provider_weight=0.0548 | - |
|
| Alex Iwobi | M | 83 | 0 | 0.15 | 0.06 | 136% | 2 | 1.1 | 7.4 | 51.7 | 35 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0050, quality 0.641) | market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.005
reference_quality=0.505
history_matches=36
history_shrink=0.122 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0106) | blend_weight=0.0106
history_matches=36
season_overlap_discount=1.0
per90_to_match_factor=0.924
prior_reliability=0.1333
competition=Premier League | totalCross: 4.3923 -> 4.3703 totalShots: 2.0182 -> 2.0018 interceptionWon: 0.3538 -> 0.3647 onTargetScoringAttempt: 0.67 -> 0.6629 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Milan van Ewijk', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.468, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 0.9828, 'skill_edge': -0.0437, 'height_edge': 0.032, 'attacker_skill': 0.6408, 'defender_skill': 0.7379, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Milan van Ewijk', 'market_value': 23000000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.7379}], 'xg_override': 0.1571} | aerialWon: 0.0833 -> 1.1 totalShots: 2.0111 -> 1.9765 shotOffTarget: 1.3482 -> 1.325 onTargetScoringAttempt: 0.6629 -> 0.6515 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.30 (squad xG sum 1.3718, xG scale 0.9454, xA scale 0.9454, team xA 0.89 = 0.69 x lambda) | scoreline_reset=true
team_lambda=1.297
squad_xg_sum=1.3718
squad_xa_sum=0.9435
team_expected_assists=0.8921
team_xa_to_xg_ratio=0.6878 | expected_goals: 0.1571 -> 0.1485 expected_assists: 0.2215 -> 0.2094 | 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.138
goal_rate=0.211
scorer_weight=0.1856 | - | integer_assist_projection | Team scoreline allocation: 1 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.1889
assist_rate=0.1322
provider_weight=0.1675 | - |
|
| Team totals | 1 | 1.30 | | 16 | | 7.0 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Benjamin Lecomte | G | 4.4m | 10.9% | Market-value substitute prior |
| Joachim Andersen | D | 14.4m | 23.3% | Market-value substitute prior |
| Ryan Sessegnon | D | 18.0m | 61.8% | Market-value substitute prior |
| Hugo Larsson | M | 23.1m | 54.9% | Market-value substitute prior |
| Emile Smith Rowe | M | 18.4m | 70.6% | Market-value substitute prior |
| Kevin | F | 19.0m | 73.9% | Market-value substitute prior |
Antagonist / tactical summary
Midfield is evenly contested — Caleb Yirenkyi vs Josh King will be the pivotal duel. Total antagonist xG — Home: 0.83, Away: 0.99. 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.45, key duel: Caleb Yirenkyi vs Josh King
Jack Rudoni xG 0.19Brandon Thomas-Asante xG 0.13Taiwo Awoniyi xG 0.27Alex Iwobi xG 0.16Josh King xG 0.19Gonzalo García xG 0.35
Summary
Antagonist matchup analysis for Coventry vs Fulham. Most likely scoreline: 1-1. Lambdas derived from 6 home and 6 away individual player duels. Head-to-head: Coventry 2W-0D-0L vs Fulham over 2 meetings.
Tactical parity between 4-2-3-1 and 4-2-3-1. Match outcome driven primarily by individual player quality. Midfield is evenly contested — Caleb Yirenkyi vs Josh King will be the pivotal duel. Total antagonist xG — Home: 0.83, Away: 0.99. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Aston Villa vs Man City
Premier League · 20261024 · 4-2-3-1 vs 4-2-3-1
Predicted 0-2Winner: Man CityWinning H 2-1 (3.1%)Winning A 0-2 (10.3%)Confidence 0.8λ home/away 0.89 / 2.62Most-likely P 10.3%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset TracingAntagonist + XGBoost match analysis for Aston Villa vs Man City. 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.031, Away 2.271). Final calibrated Poisson lambdas: Home 0.890, Away 2.619 (most likely score 0-2).
Home Starters 11/11 XGBoost (9 FBref) Away Starters 11/11 XGBoost (10 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.03 / 2.27 Final λ (H/A) 0.89 / 2.62
Modeling Pipeline Stages (5 layers)
- 1. XGBoost player regressions for volume & event rates with market-value quality scaling
- 2. Multi-source prior blending (FBref 2026-2027 tables + Sofascore season history)
- 3. Antagonist formation duel matrix resolving 1v1 and zonal matchups
- 4. Team-level prior calibration (FBref possession and attack/defense efficiencies)
- 5. Bivariate Poisson matrix with Dixon-Coles low-score correction
Standing & form context
| Metric | Aston Villa | Man City |
|---|
| League position | 12.00 | 1.00 |
| Points per game | 1.24 | 2.24 |
| Attack index | 0.94 | 1.25 |
| Defense (concede) index | 0.84 | 1.09 |
| Form multiplier | 0.95 | 1.05 |
| Standing λ multiplier | 0.90 | 1.14 |
Lambda decomposition (how the goal rates were built)
| Stage | Aston Villa λ | Man City λ |
|---|
| Pre-mismatch | 0.993 | 2.516 |
| Pre-calibration (Micro-duels) | 1.031 | 2.271 |
| Final λ | 0.890 | 2.619 |
competition calibration scale 1.0competition observed total goals 0.0quality gap applied Truemismatch score pressure applied Truecompetitive underdog floor applied Falsestage discount 1.0
Scoreline distribution & markets
| Top 5 scorelines | P |
|---|
| 0-2 | 10.3% |
| 1-2 | 9.1% |
| 0-3 | 9.0% |
| 1-3 | 8.0% |
| 0-1 | 7.8% |
| Home win | 10.4% |
| Draw | 15.3% |
| Away win | 74.3% |
| Over 2.5 | 68.1% |
| BTTS yes | 54.7% |
Pregame fair line — favorite Man City (74.3%), fair total 3.51, fair spread -1.73
Projected players vs season baseline
Proj = projected for this match · Season = this season's per-game average from match data · deviation badge compares projected xG to the player's season xG/game.
Aston Villa — projected line vs season baseline (4-2-3-1)
| Player | Pos | Min | Proj G | Proj xG | Season xG/g | | Proj Sh | Season Sh/g | Proj Rtg | Season Rtg | Rec | Model / FBref Prior |
|---|
| Victor Lindelöf | D | 87 | 0 | 0.03 | 0.02 | 43% | 0 | 0.1 | 6.8 | 35.8 | 30 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9977, quality 0.460) | market_value_eur=4800000
quality_factor=0.4597
boost_factor=0.9977
reference_quality=0.505
history_matches=24
history_shrink=0.1724 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0149) | blend_weight=0.0149
history_matches=24
season_overlap_discount=1.0
per90_to_match_factor=0.966
prior_reliability=0.1333
competition=Premier League | interceptionWon: 0.7915 -> 0.7797 wonTackle: 0.5485 -> 0.5403 totalShots: 0.366 -> 0.3605 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Iliman Ndiaye', 'matchup_zone': 'Shape fallback'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 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.89 (squad xG sum 1.2961, xG scale 0.6867, xA scale 0.7646, team xA 0.58 = 0.65 x lambda) | scoreline_reset=true
team_lambda=0.89
squad_xg_sum=1.2961
squad_xa_sum=0.7566
team_expected_assists=0.5785
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0497 -> 0.0341 | 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.0335
goal_rate=0.0
scorer_weight=0.0273 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0127
assist_rate=0.0099
provider_weight=0.0115 | - |
|
| Matty Cash | D | 87 | 0 | 0.02 | 0.03 | ok | 0 | 0.6 | 6.7 | 55.3 | 28 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0040, quality 0.629) | market_value_eur=19800000
quality_factor=0.6291
boost_factor=1.004
reference_quality=0.505
history_matches=41
history_shrink=0.1087 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0090) | blend_weight=0.009
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=0.9653
prior_reliability=0.1267
competition=Premier League | totalCross: 2.4923 -> 2.47 wonTackle: 1.2279 -> 1.2396 wasFouled: 1.0426 -> 1.0515 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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 0.89 (squad xG sum 1.2961, xG scale 0.6867, xA scale 0.7646, team xA 0.58 = 0.65 x lambda) | scoreline_reset=true
team_lambda=0.89
squad_xg_sum=1.2961
squad_xa_sum=0.7566
team_expected_assists=0.5785
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0328 -> 0.0225 expected_assists: 0.0384 -> 0.0294 | 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.0222
goal_rate=0.0054
scorer_weight=0.018 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.029
assist_rate=0.0563
provider_weight=0.0354 | - |
|
| Zion Suzuki | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 7.0 | 34.6 | 12 | 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.0300, quality 0.725) | market_value_eur=31000000
quality_factor=0.7249
boost_factor=1.03
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=1.0
prior_reliability=0.0667
competition=Premier League | saves: 2.9816 -> 2.9425 wasFouled: 0.7407 -> 0.7261 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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, Phil Foden', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 2.271} | - | 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.89 (squad xG sum 1.2961, xG scale 0.6867, xA scale 0.7646, team xA 0.58 = 0.65 x lambda) | scoreline_reset=true
team_lambda=0.89
squad_xg_sum=1.2961
squad_xa_sum=0.7566
team_expected_assists=0.5785
team_xa_to_xg_ratio=0.65 | shots_faced: 21.6 -> 24.9 expected_saves: 5.29 -> 6.1 high_pressure_saves: 1.82 -> 2.1 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 76.0) | match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation 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.9371 | - | 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.5267 | - |
|
| Tyrone Mings | D | 89 | 0 | 0.04 | 0.05 | ok | 1 | 0.4 | 6.8 | 39.3 | 27 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9965, quality 0.440) | market_value_eur=3200000
quality_factor=0.4399
boost_factor=0.9965
reference_quality=0.505
history_matches=23
history_shrink=0.1786 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0015) | blend_weight=0.0015
history_matches=23
season_overlap_discount=1.0
per90_to_match_factor=0.9889
prior_reliability=0.0133
competition=Premier League | wonTackle: 0.5724 -> 0.5791 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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 0.89 (squad xG sum 1.2961, xG scale 0.6867, xA scale 0.7646, team xA 0.58 = 0.65 x lambda) | scoreline_reset=true
team_lambda=0.89
squad_xg_sum=1.2961
squad_xa_sum=0.7566
team_expected_assists=0.5785
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0565 -> 0.0388 | 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 skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0381
goal_rate=0.0
scorer_weight=0.031 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0128
assist_rate=0.0
provider_weight=0.0103 | - |
|
| Ian Maatsen | D | 83 | 0 | 0.04 | 0.04 | ok | 1 | 0.6 | 6.7 | 48.9 | 28 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0090, quality 0.739) | market_value_eur=33000000
quality_factor=0.7389
boost_factor=1.009
reference_quality=0.505
history_matches=34
history_shrink=0.1282 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0106) | blend_weight=0.0106
history_matches=34
season_overlap_discount=1.0
per90_to_match_factor=0.9273
prior_reliability=0.1267
competition=Premier League | totalCross: 2.0573 -> 2.0407 fouls: 0.9954 -> 1.0107 wonTackle: 1.3705 -> 1.3612 totalShots: 0.6853 -> 0.6935 interceptionWon: 1.227 -> 1.2347 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Phil Foden', '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.89 (squad xG sum 1.2961, xG scale 0.6867, xA scale 0.7646, team xA 0.58 = 0.65 x lambda) | scoreline_reset=true
team_lambda=0.89
squad_xg_sum=1.2961
squad_xa_sum=0.7566
team_expected_assists=0.5785
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0536 -> 0.0368 expected_assists: 0.1208 -> 0.0924 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 15 by projected rating, fifa_overall 79.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.0361
goal_rate=0.0
scorer_weight=0.0294 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0883
assist_rate=0.0496
provider_weight=0.0739 | - |
|
| Boubacar Kamara | M | 88 | 0 | 0.03 | 0.01 | 171% | 1 | 0.2 | 7.0 | 45.4 | 14 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0158, quality 0.821) | market_value_eur=49000000
quality_factor=0.8206
boost_factor=1.0158
reference_quality=0.505
history_matches=25
history_shrink=0.1667 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0144) | blend_weight=0.0144
history_matches=25
season_overlap_discount=1.0
per90_to_match_factor=0.9738
prior_reliability=0.1333
competition=Premier League | wasFouled: 2.3863 -> 2.3589 fouls: 1.6548 -> 1.6661 totalShots: 0.6447 -> 0.6354 wonTackle: 1.4994 -> 1.4918 interceptionWon: 0.8465 -> 0.8413 totalCross: 0.1376 -> 0.1426 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Ayyoub Bouaddi', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.394, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9611, 'skill_edge': -0.0225, 'height_edge': -0.004, 'attacker_skill': 0.847, 'defender_skill': 0.8969, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Ayyoub Bouaddi', 'market_value': 98000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8969}], 'xg_override': 0.0447} | aerialWon: 1.5099 -> 1.1 totalShots: 0.6421 -> 0.6171 shotOffTarget: 0.4673 -> 0.4491 onTargetScoringAttempt: 0.1748 -> 0.168 | 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.89 (squad xG sum 1.2961, xG scale 0.6867, xA scale 0.7646, team xA 0.58 = 0.65 x lambda) | scoreline_reset=true
team_lambda=0.89
squad_xg_sum=1.2961
squad_xa_sum=0.7566
team_expected_assists=0.5785
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0447 -> 0.0307 expected_assists: 0.0454 -> 0.0347 | 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 skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0302
goal_rate=0.0437
scorer_weight=0.0304 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0341
assist_rate=0.0641
provider_weight=0.0415 | - |
|
| João Gomes | M | 82 | 0 | 0.02 | 0.02 | ok | 0 | 0.4 | 6.8 | 53.0 | 27 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.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.0020) | blend_weight=0.002
history_matches=39
season_overlap_discount=1.0
per90_to_match_factor=0.9066
prior_reliability=0.0267
competition=Premier League | wonTackle: 1.9402 -> 1.9453 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Ayyoub Bouaddi', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.337, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.8781, 'skill_edge': -0.0469, 'height_edge': -0.036, 'attacker_skill': 0.7926, 'defender_skill': 0.8969, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Ayyoub Bouaddi', 'market_value': 98000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8969}], 'xg_override': 0.0324} | aerialWon: 0.6518 -> 0.9 totalShots: 0.5675 -> 0.4984 shotOffTarget: 0.3859 -> 0.3389 onTargetScoringAttempt: 0.1816 -> 0.1595 expectedGoalsOnTarget: 0.0479 -> 0.0421 goals: 0.0452 -> 0.0397 | 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.89 (squad xG sum 1.2961, xG scale 0.6867, xA scale 0.7646, team xA 0.58 = 0.65 x lambda) | scoreline_reset=true
team_lambda=0.89
squad_xg_sum=1.2961
squad_xa_sum=0.7566
team_expected_assists=0.5785
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0324 -> 0.0222 expected_assists: 0.0585 -> 0.0447 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 78.0) | match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.022
goal_rate=0.0397
scorer_weight=0.0242 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0437
assist_rate=0.0794
provider_weight=0.0533 | - |
|
| Nicolas Jackson | F | 80 | 0 | 0.26 | 0.15 | 77% | 3 | 1.5 | 7.1 | 38.9 | 11 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0403, quality 0.800) | market_value_eur=44000000
quality_factor=0.8002
boost_factor=1.0403
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.8917
prior_reliability=0.0533
competition=Premier League | totalShots: 2.7605 -> 2.717 onTargetScoringAttempt: 1.1641 -> 1.1458 totalCross: 0.423 -> 0.4339 wasFouled: 0.5247 -> 0.5164 totalOffside: 0.4928 -> 0.485 goals: 0.4875 -> 0.4798 fouls: 0.3349 -> 0.3296 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Joško Gvardiol, Rúben Dias', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.9397, 'skill_edge': -0.037, 'height_edge': -0.004, 'attacker_skill': 0.8002, 'defender_skill': 0.8826, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Joško Gvardiol', 'market_value': 69000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.89}, {'player': 'Rúben Dias', 'market_value': 55000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8751}], 'xg_override': 0.3779} | totalShots: 2.7421 -> 2.5768 shotOffTarget: 1.5963 -> 1.5 onTargetScoringAttempt: 1.1458 -> 1.0767 goals: 0.4798 -> 0.4509 bigChanceMissed: 0.4315 -> 0.4055 expectedGoals: 0.4021 -> 0.3779 expectedGoalsOnTarget: 0.3297 -> 0.3098 | 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.89 (squad xG sum 1.2961, xG scale 0.6867, xA scale 0.7646, team xA 0.58 = 0.65 x lambda) | scoreline_reset=true
team_lambda=0.89
squad_xg_sum=1.2961
squad_xa_sum=0.7566
team_expected_assists=0.5785
team_xa_to_xg_ratio=0.65 | expected_goals: 0.3779 -> 0.2597 expected_assists: 0.1112 -> 0.085 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 79.0) | match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.2287
goal_rate=0.4509
scorer_weight=0.304 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0815
assist_rate=0.0
provider_weight=0.068 | - |
|
| Ibrahim Mbaye | F | 80 | 0 | 0.11 | 0.03 | 226% | 2 | 0.5 | 6.9 | 27.3 | 10 | XGBoost F_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0342, quality 0.710) | market_value_eur=29000000
quality_factor=0.71
boost_factor=1.0342
reference_quality=0.505
history_matches=4
history_shrink=0.5556 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Joško Gvardiol, Rúben Dias', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.8153, 'skill_edge': -0.0777, 'height_edge': -0.048, 'attacker_skill': 0.71, 'defender_skill': 0.8826, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Joško Gvardiol', 'market_value': 69000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.89}, {'player': 'Rúben Dias', 'market_value': 55000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8751}], 'xg_override': 0.1624} | totalShots: 1.705 -> 1.3901 onTargetScoringAttempt: 0.9265 -> 0.7554 shotOffTarget: 0.7784 -> 0.6346 bigChanceMissed: 0.3245 -> 0.2646 goals: 0.2362 -> 0.1926 expectedGoals: 0.1992 -> 0.1624 expectedGoalsOnTarget: 0.0852 -> 0.0695 | 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.89 (squad xG sum 1.2961, xG scale 0.6867, xA scale 0.7646, team xA 0.58 = 0.65 x lambda) | scoreline_reset=true
team_lambda=0.89
squad_xg_sum=1.2961
squad_xa_sum=0.7566
team_expected_assists=0.5785
team_xa_to_xg_ratio=0.65 | expected_goals: 0.1624 -> 0.1115 expected_assists: 0.0807 -> 0.0617 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 76.0) | match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.1055
goal_rate=0.1926
scorer_weight=0.1274 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0598
assist_rate=0.0
provider_weight=0.0494 | - |
|
| Emiliano Buendía | F | 76 | 0 | 0.10 | 0.11 | ok | 1 | 1.3 | 6.9 | 49.8 | 42 | XGBoost F_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0022, quality 0.575) | market_value_eur=14600000
quality_factor=0.5748
boost_factor=1.0022
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': 'Joško Gvardiol, Rúben Dias', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.7082, 'skill_edge': -0.1385, 'height_edge': -0.06, 'attacker_skill': 0.5748, 'defender_skill': 0.8826, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Joško Gvardiol', 'market_value': 69000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.89}, {'player': 'Rúben Dias', 'market_value': 55000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8751}], 'xg_override': 0.1423} | totalShots: 1.8899 -> 1.3385 shotOffTarget: 1.2554 -> 0.8891 onTargetScoringAttempt: 0.6345 -> 0.4494 bigChanceMissed: 0.2251 -> 0.1594 goals: 0.2081 -> 0.1474 expectedGoals: 0.2009 -> 0.1423 expectedGoalsOnTarget: 0.0753 -> 0.0533 | 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.89 (squad xG sum 1.2961, xG scale 0.6867, xA scale 0.7646, team xA 0.58 = 0.65 x lambda) | scoreline_reset=true
team_lambda=0.89
squad_xg_sum=1.2961
squad_xa_sum=0.7566
team_expected_assists=0.5785
team_xa_to_xg_ratio=0.65 | expected_goals: 0.1423 -> 0.0977 expected_assists: 0.1032 -> 0.0789 | 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.0931
goal_rate=0.1474
scorer_weight=0.1003 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0759
assist_rate=0.0026
provider_weight=0.0631 | - |
|
| Alysson | F | 68 | 0 | 0.10 | 0.01 | 1549% | 1 | 0.1 | 6.7 | 31.5 | 19 | 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.0093, quality 0.592) | market_value_eur=16200000
quality_factor=0.5921
boost_factor=1.0093
reference_quality=0.505
history_matches=9
history_shrink=0.3571 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0046) | blend_weight=0.0046
history_matches=9
season_overlap_discount=1.0
per90_to_match_factor=0.7592
prior_reliability=0.02
competition=Premier League | wonTackle: 0.5844 -> 0.6052 totalShots: 1.3581 -> 1.3518 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Joško Gvardiol, Rúben Dias', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.7902, 'skill_edge': -0.1307, 'height_edge': -0.012, 'attacker_skill': 0.5921, 'defender_skill': 0.8826, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Joško Gvardiol', 'market_value': 69000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.89}, {'player': 'Rúben Dias', 'market_value': 55000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8751}], 'xg_override': 0.1388} | totalShots: 1.356 -> 1.0715 shotOffTarget: 0.9052 -> 0.7153 onTargetScoringAttempt: 0.4508 -> 0.3562 expectedGoals: 0.1757 -> 0.1388 goals: 0.1395 -> 0.1102 expectedGoalsOnTarget: 0.0285 -> 0.0225 | 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.89 (squad xG sum 1.2961, xG scale 0.6867, xA scale 0.7646, team xA 0.58 = 0.65 x lambda) | scoreline_reset=true
team_lambda=0.89
squad_xg_sum=1.2961
squad_xa_sum=0.7566
team_expected_assists=0.5785
team_xa_to_xg_ratio=0.65 | expected_goals: 0.1388 -> 0.0953 expected_assists: 0.0591 -> 0.0452 | 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.0909
goal_rate=0.1102
scorer_weight=0.0809 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0442
assist_rate=0.0
provider_weight=0.0362 | - |
|
| Team totals | 0 | 0.89 | | 14 | | 6.9 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Marco Bizot | G | 4.4m | 13.1% | Market-value substitute prior |
| Matteo Ruggeri | D | 11.5m | 62.3% | Market-value substitute prior |
| Taylor Harwood-Bellis | D | 14.6m | 34.5% | Market-value substitute prior |
| Johan Manzambi | M | 23.7m | 57.7% | Market-value substitute prior |
| Amadou Onana | M | 23.4m | 56.1% | Market-value substitute prior |
| Alejandro Garnacho | F | 16.8m | 73.9% | 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 |
|---|
| Erling Haaland | F | 88 | 2 | 0.99 | 0.50 | 98% | 4 | 2.8 | 7.7 | 57.6 | 30 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0126, quality 0.900) | market_value_eur=240000000
quality_factor=0.9
boost_factor=1.0126
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.9746
prior_reliability=0.1333
competition=Premier League | totalShots: 3.1105 -> 3.1267 onTargetScoringAttempt: 1.3899 -> 1.3995 fouls: 0.9053 -> 0.897 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Matty Cash, Tyrone Mings', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.368, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.2469, 'skill_edge': 0.148, 'height_edge': 0.02, 'attacker_skill': 0.9, 'defender_skill': 0.5712, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Matty Cash', 'market_value': 19800000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6892}, {'player': 'Tyrone Mings', 'market_value': 3200000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4531}], 'xg_override': 0.6708} | totalShots: 3.1267 -> 3.8987 shotOffTarget: 1.7206 -> 2.1454 onTargetScoringAttempt: 1.3995 -> 1.745 goals: 0.8726 -> 1.088 expectedGoalsOnTarget: 0.8287 -> 1.0333 bigChanceMissed: 0.7667 -> 0.956 expectedGoals: 0.538 -> 0.6708 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | goals: 1.0 -> 0 | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.62 (squad xG sum 1.7834, xG scale 1.4686, xA scale 1.4686, team xA 1.82 = 0.69 x lambda) | scoreline_reset=true
team_lambda=2.619
squad_xg_sum=1.7834
squad_xa_sum=1.2382
team_expected_assists=1.8184
team_xa_to_xg_ratio=0.6943 | expected_goals: 0.6708 -> 0.9851 expected_assists: 0.0667 -> 0.098 | 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.6266
goal_rate=1.088
scorer_weight=1.2314 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0934
assist_rate=0.0792
provider_weight=0.1085 | - |
|
| Jérémy Doku | F | 82 | 0 | 0.29 | 0.06 | 399% | 3 | 1.0 | 7.4 | 46.3 | 29 | 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.0144, quality 0.871) | market_value_eur=70000000
quality_factor=0.8707
boost_factor=1.0144
reference_quality=0.505
history_matches=33
history_shrink=0.1316 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Matty Cash, Tyrone Mings', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.275, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.1099, 'skill_edge': 0.1348, 'height_edge': -0.06, 'attacker_skill': 0.8707, 'defender_skill': 0.5712, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Matty Cash', 'market_value': 19800000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6892}, {'player': 'Tyrone Mings', 'market_value': 3200000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4531}], 'xg_override': 0.1981} | totalShots: 2.5036 -> 2.7787 shotOffTarget: 1.5456 -> 1.7155 onTargetScoringAttempt: 0.9579 -> 1.0632 expectedGoalsOnTarget: 0.3733 -> 0.4143 goals: 0.3209 -> 0.3562 expectedGoals: 0.1785 -> 0.1981 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.62 (squad xG sum 1.7834, xG scale 1.4686, xA scale 1.4686, team xA 1.82 = 0.69 x lambda) | scoreline_reset=true
team_lambda=2.619
squad_xg_sum=1.7834
squad_xa_sum=1.2382
team_expected_assists=1.8184
team_xa_to_xg_ratio=0.6943 | expected_goals: 0.1981 -> 0.2909 expected_assists: 0.2283 -> 0.3351 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 84.0) | match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.2524
goal_rate=0.3562
scorer_weight=0.3636 | - | integer_assist_projection | Team scoreline allocation: 1 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.2847
assist_rate=0.3009
provider_weight=0.4189 | - |
|
| Phil Foden | M | 74 | 0 | 0.31 | 0.13 | 137% | 2 | 0.8 | 7.0 | 49.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.0123, quality 0.857) | market_value_eur=62000000
quality_factor=0.8569
boost_factor=1.0123
reference_quality=0.505
history_matches=38
history_shrink=0.1163 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0096) | blend_weight=0.0096
history_matches=38
season_overlap_discount=1.0
per90_to_match_factor=0.8271
prior_reliability=0.1267
competition=Premier League | totalCross: 3.7732 -> 3.7871 fouls: 0.5573 -> 0.5645 onTargetScoringAttempt: 0.6966 -> 0.6899 wasFouled: 1.048 -> 1.0546 goalAssist: 0.1941 -> 0.2006 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Ian Maatsen', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.472, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9875, 'skill_edge': 0.0195, 'height_edge': -0.028, 'attacker_skill': 0.8569, 'defender_skill': 0.8135, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Ian Maatsen', 'market_value': 33000000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.8135}], 'xg_override': 0.2078} | aerialWon: 0.5135 -> 0.8 totalShots: 1.7276 -> 1.706 shotOffTarget: 1.0267 -> 1.0139 onTargetScoringAttempt: 0.6899 -> 0.6813 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.62 (squad xG sum 1.7834, xG scale 1.4686, xA scale 1.4686, team xA 1.82 = 0.69 x lambda) | scoreline_reset=true
team_lambda=2.619
squad_xg_sum=1.7834
squad_xa_sum=1.2382
team_expected_assists=1.8184
team_xa_to_xg_ratio=0.6943 | expected_goals: 0.2078 -> 0.3052 expected_assists: 0.1972 -> 0.2896 | 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: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.263
goal_rate=0.2236
scorer_weight=0.3239 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.2514
assist_rate=0.2006
provider_weight=0.2936 | - |
|
| Ayyoub Bouaddi | M | 87 | 0 | 0.06 | 0.00 | 2862% | 1 | 0.1 | 7.0 | 25.1 | 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.0646, quality 0.893) | market_value_eur=98000000
quality_factor=0.8926
boost_factor=1.0646
reference_quality=0.505
history_matches=4
history_shrink=0.5556 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0024) | blend_weight=0.0024
history_matches=4
season_overlap_discount=1.0
per90_to_match_factor=0.9703
prior_reliability=0.0067
competition=Premier League | interceptionWon: 0.5392 -> 0.5614 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Boubacar Kamara', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.446, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 1.0389, 'skill_edge': 0.0225, 'height_edge': 0.004, 'attacker_skill': 0.8969, 'defender_skill': 0.847, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Boubacar Kamara', 'market_value': 49000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.847}], 'xg_override': 0.0429} | aerialWon: 0.3341 -> 1.2 totalShots: 0.6167 -> 0.6407 shotOffTarget: 0.4703 -> 0.4886 onTargetScoringAttempt: 0.1464 -> 0.1521 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.62 (squad xG sum 1.7834, xG scale 1.4686, xA scale 1.4686, team xA 1.82 = 0.69 x lambda) | scoreline_reset=true
team_lambda=2.619
squad_xg_sum=1.7834
squad_xa_sum=1.2382
team_expected_assists=1.8184
team_xa_to_xg_ratio=0.6943 | expected_goals: 0.0429 -> 0.063 expected_assists: 0.0554 -> 0.0814 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 80.0) | match_squad_rank=12
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0611
goal_rate=0.0691
scorer_weight=0.0788 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0782
assist_rate=0.0545
provider_weight=0.0807 | - |
|
| Enzo Fernández | M | 86 | 0 | 0.20 | 0.18 | ok | 2 | 1.5 | 7.2 | 59.6 | 29 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0125, quality 0.897) | market_value_eur=116000000
quality_factor=0.897
boost_factor=1.0125
reference_quality=0.505
history_matches=42
history_shrink=0.1064 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0014) | blend_weight=0.0014
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.9531
prior_reliability=0.02
competition=Premier League | totalCross: 3.76 -> 3.7548 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Boubacar Kamara', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.415, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9932, 'skill_edge': 0.0234, 'height_edge': -0.028, 'attacker_skill': 0.8989, 'defender_skill': 0.847, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Boubacar Kamara', 'market_value': 49000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.847}], 'xg_override': 0.1341} | aerialWon: 0.9077 -> 1.0 totalShots: 1.5575 -> 1.5469 shotOffTarget: 0.9709 -> 0.9643 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.62 (squad xG sum 1.7834, xG scale 1.4686, xA scale 1.4686, team xA 1.82 = 0.69 x lambda) | scoreline_reset=true
team_lambda=2.619
squad_xg_sum=1.7834
squad_xa_sum=1.2382
team_expected_assists=1.8184
team_xa_to_xg_ratio=0.6943 | expected_goals: 0.1341 -> 0.1969 expected_assists: 0.192 -> 0.282 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 86.0) | match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.1787
goal_rate=0.1869
scorer_weight=0.2461 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.2457
assist_rate=0.1246
provider_weight=0.2256 | - |
|
| Joško Gvardiol | D | 84 | 0 | 0.10 | 0.07 | 34% | 1 | 0.5 | 6.8 | 46.0 | 17 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0182, quality 0.869) | market_value_eur=69000000
quality_factor=0.8692
boost_factor=1.0182
reference_quality=0.505
history_matches=25
history_shrink=0.1667 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0130) | blend_weight=0.013
history_matches=25
season_overlap_discount=1.0
per90_to_match_factor=0.9321
prior_reliability=0.12
competition=Premier League | wasFouled: 0.8217 -> 0.811 totalCross: 0.3339 -> 0.343 wonTackle: 0.9509 -> 0.9453 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Nicolas Jackson', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.62 (squad xG sum 1.7834, xG scale 1.4686, xA scale 1.4686, team xA 1.82 = 0.69 x lambda) | scoreline_reset=true
team_lambda=2.619
squad_xg_sum=1.7834
squad_xa_sum=1.2382
team_expected_assists=1.8184
team_xa_to_xg_ratio=0.6943 | expected_goals: 0.065 -> 0.0955 expected_assists: 0.1279 -> 0.1878 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 85.0) | match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
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.0911
goal_rate=0.141
scorer_weight=0.1194 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1712
assist_rate=0.3181
provider_weight=0.2347 | - |
|
| Marc Guéhi | D | 90 | 0 | 0.13 | 0.14 | ok | 1 | 0.8 | 7.2 | 62.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 1.0117, quality 0.872) | market_value_eur=71000000
quality_factor=0.8721
boost_factor=1.0117
reference_quality=0.505
history_matches=42
history_shrink=0.1064 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0092) | blend_weight=0.0092
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League | wonTackle: 0.63 -> 0.6426 interceptionWon: 0.8325 -> 0.8387 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Alysson', 'matchup_zone': 'Shape fallback'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.62 (squad xG sum 1.7834, xG scale 1.4686, xA scale 1.4686, team xA 1.82 = 0.69 x lambda) | scoreline_reset=true
team_lambda=2.619
squad_xg_sum=1.7834
squad_xa_sum=1.2382
team_expected_assists=1.8184
team_xa_to_xg_ratio=0.6943 | expected_goals: 0.09 -> 0.1322 expected_assists: 0.0587 -> 0.0862 | 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
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.1238
goal_rate=0.0818
scorer_weight=0.1245 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0826
assist_rate=0.1401
provider_weight=0.1077 | - |
|
| Rúben Dias | D | 89 | 0 | 0.10 | 0.03 | 266% | 1 | 0.3 | 7.1 | 44.4 | 24 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0132, quality 0.840) | market_value_eur=55000000
quality_factor=0.8399
boost_factor=1.0132
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.984
prior_reliability=0.1333
competition=Premier League | fouls: 1.4058 -> 1.3898 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Nicolas Jackson', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.62 (squad xG sum 1.7834, xG scale 1.4686, xA scale 1.4686, team xA 1.82 = 0.69 x lambda) | scoreline_reset=true
team_lambda=2.619
squad_xg_sum=1.7834
squad_xa_sum=1.2382
team_expected_assists=1.8184
team_xa_to_xg_ratio=0.6943 | expected_goals: 0.0683 -> 0.1003 expected_assists: 0.0747 -> 0.1097 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 87.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.0954
goal_rate=0.0157
scorer_weight=0.0802 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1039
assist_rate=0.0
provider_weight=0.0878 | - |
|
| Abdukodir Khusanov | D | 88 | 0 | 0.04 | 0.02 | 89% | 0 | 0.2 | 7.0 | 46.1 | 30 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0154, quality 0.813) | market_value_eur=47000000
quality_factor=0.8129
boost_factor=1.0154
reference_quality=0.505
history_matches=25
history_shrink=0.1667 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0144) | blend_weight=0.0144
history_matches=25
season_overlap_discount=1.0
per90_to_match_factor=0.9829
prior_reliability=0.1333
competition=Premier League | wonTackle: 0.9081 -> 0.9305 fouls: 0.8307 -> 0.8187 totalCross: 0.4608 -> 0.4683 totalShots: 0.4756 -> 0.4687 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Emiliano Buendía', 'matchup_zone': 'Shape fallback'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.62 (squad xG sum 1.7834, xG scale 1.4686, xA scale 1.4686, team xA 1.82 = 0.69 x lambda) | scoreline_reset=true
team_lambda=2.619
squad_xg_sum=1.7834
squad_xa_sum=1.2382
team_expected_assists=1.8184
team_xa_to_xg_ratio=0.6943 | expected_goals: 0.0291 -> 0.0427 expected_assists: 0.0437 -> 0.0642 | 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=0
goal_probability=0.0418
goal_rate=0.0
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.0622
assist_rate=0.0
provider_weight=0.0514 | - |
|
| Gianluigi Donnarumma | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 7.0 | 60.0 | 31 | FBref Prior G_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost G_service raw output over 3 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0099, quality 0.809) | market_value_eur=46000000
quality_factor=0.8089
boost_factor=1.0099
reference_quality=0.505
history_matches=41
history_shrink=0.1087 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0094) | blend_weight=0.0094
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League | saves: 2.8948 -> 2.8864 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Nicolas Jackson, Ibrahim Mbaye', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.031} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.62 (squad xG sum 1.7834, xG scale 1.4686, xA scale 1.4686, team xA 1.82 = 0.69 x lambda) | scoreline_reset=true
team_lambda=2.619
squad_xg_sum=1.7834
squad_xa_sum=1.2382
team_expected_assists=1.8184
team_xa_to_xg_ratio=0.6943 | shots_faced: 9.8 -> 8.5 expected_saves: 2.4 -> 2.08 high_pressure_saves: 0.82 -> 0.71 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 89.0) | match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=3.0662 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by 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.923 | - |
|
| Iliman Ndiaye | F | 83 | 0 | 0.30 | 0.13 | 127% | 2 | 1.1 | 7.0 | 48.8 | 39 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.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.0098) | blend_weight=0.0098
history_matches=39
season_overlap_discount=1.0
per90_to_match_factor=0.9269
prior_reliability=0.1333
competition=Premier League | totalCross: 2.3712 -> 2.357 wasFouled: 1.367 -> 1.3581 wonTackle: 1.1595 -> 1.1526 onTargetScoringAttempt: 0.7401 -> 0.7465 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=true | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Matty Cash, Tyrone Mings', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.289, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.1315, 'skill_edge': 0.1295, 'height_edge': -0.04, 'attacker_skill': 0.8589, 'defender_skill': 0.5712, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Matty Cash', 'market_value': 19800000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6892}, {'player': 'Tyrone Mings', 'market_value': 3200000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4531}], 'xg_override': 0.2073} | totalShots: 1.7678 -> 2.0003 shotOffTarget: 1.0213 -> 1.1556 onTargetScoringAttempt: 0.7465 -> 0.8447 bigChanceMissed: 0.2446 -> 0.2768 goals: 0.2101 -> 0.2377 expectedGoals: 0.1832 -> 0.2073 expectedGoalsOnTarget: 0.1372 -> 0.1552 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.62 (squad xG sum 1.7834, xG scale 1.4686, xA scale 1.4686, team xA 1.82 = 0.69 x lambda) | scoreline_reset=true
team_lambda=2.619
squad_xg_sum=1.7834
squad_xa_sum=1.2382
team_expected_assists=1.8184
team_xa_to_xg_ratio=0.6943 | expected_goals: 0.2073 -> 0.3044 expected_assists: 0.131 -> 0.1924 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 82.0) | match_squad_rank=11
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.2624
goal_rate=0.2377
scorer_weight=0.3404 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.175
assist_rate=0.2394
provider_weight=0.2405 | - |
|
| Team totals | 2 | 2.62 | | 19 | | 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.5% | Market-value substitute prior |
| Nico O'Reilly | D | 15.3m | 25.3% | Market-value substitute prior |
| Matheus Nunes | D | 25.5m | 63.3% | Market-value substitute prior |
| Rayan Cherki | M | 26.1m | 53.7% | Market-value substitute prior |
| Elliot Anderson | M | 23.8m | 34.4% | Market-value substitute prior |
| Antoine Semenyo | F | 27.1m | 37.0% | Market-value substitute prior |
Antagonist / tactical summary
Midfield is evenly contested — Boubacar Kamara vs Enzo Fernández will be the pivotal duel. Total antagonist xG — Home: 0.90, Away: 1.46. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Midfield — possession 49.5% / 50.5%, dominance ratio 0.46, key duel: Boubacar Kamara vs Enzo Fernández
Nicolas Jackson xG 0.38Ibrahim Mbaye xG 0.16Emiliano Buendía xG 0.14Phil Foden xG 0.21Erling Haaland xG 0.67Jérémy Doku xG 0.20
Summary
Antagonist matchup analysis for Aston Villa vs Man City. Most likely scoreline: 0-2. Lambdas derived from 6 home and 6 away individual player duels. Head-to-head: Aston Villa 4W-1D-5L vs Man City 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 — Boubacar Kamara vs Enzo Fernández will be the pivotal duel. Total antagonist xG — Home: 0.90, Away: 1.46. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Chelsea vs Tottenham
Premier League · 20261024 · 3-4-2-1 vs 4-2-3-1
Predicted 1-0Winner: ChelseaWinning H 1-0 (10.5%)Winning A 0-1 (6.1%)Confidence 0.75λ home/away 1.79 / 1.04Most-likely P 10.5%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset TracingAntagonist + XGBoost match analysis for Chelsea 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.727, Away 1.081). Final calibrated Poisson lambdas: Home 1.789, Away 1.042 (most likely score 1-0).
Home Starters 11/11 XGBoost (8 FBref) Away Starters 11/11 XGBoost (10 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.73 / 1.08 Final λ (H/A) 1.79 / 1.04
Modeling Pipeline Stages (5 layers)
- 1. XGBoost player regressions for volume & event rates with market-value quality scaling
- 2. Multi-source prior blending (FBref 2026-2027 tables + Sofascore season history)
- 3. Antagonist formation duel matrix resolving 1v1 and zonal matchups
- 4. Team-level prior calibration (FBref possession and attack/defense efficiencies)
- 5. Bivariate Poisson matrix with Dixon-Coles low-score correction
Standing & form context
| Metric | Chelsea | Tottenham |
|---|
| League position | 4.00 | 16.00 |
| Points per game | 1.63 | 1.09 |
| Attack index | 1.32 | 0.81 |
| Defense (concede) index | 0.94 | 1.17 |
| Form multiplier | 1.03 | 0.97 |
| Standing λ multiplier | 1.10 | 0.97 |
Lambda decomposition (how the goal rates were built)
| Stage | Chelsea λ | Tottenham λ |
|---|
| Pre-competitive-floor | 1.789 | 1.042 |
| Pre-calibration (Micro-duels) | 1.727 | 1.081 |
| Final λ | 1.789 | 1.042 |
competition calibration scale 1.0competition observed total goals 0.0quality gap applied Truemismatch score pressure applied Falsecompetitive underdog floor applied Falsestage discount 1.0
Scoreline distribution & markets
| Top 5 scorelines | P |
|---|
| 1-1 | 11.1% |
| 1-0 | 10.5% |
| 2-1 | 9.8% |
| 2-0 | 9.4% |
| 0-1 | 6.1% |
| Home win | 54.8% |
| Draw | 23.3% |
| Away win | 21.9% |
| Over 2.5 | 53.8% |
| BTTS yes | 54.0% |
Pregame fair line — favorite Chelsea (54.8%), fair total 2.83, fair spread 0.75
Projected players vs season baseline
Proj = projected for this match · Season = this season's per-game average from match data · deviation badge compares projected xG to the player's season xG/game.
Chelsea — projected line vs season baseline (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 |
|---|
| João Pedro | F | 85 | 1 | 0.54 | 0.43 | ok | 3 | 2.1 | 7.0 | 60.0 | 27 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0126, quality 0.890) | market_value_eur=92000000
quality_factor=0.89
boost_factor=1.0126
reference_quality=0.505
history_matches=41
history_shrink=0.1087 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0094) | blend_weight=0.0094
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=0.9492
prior_reliability=0.1333
competition=Premier League | totalShots: 2.625 -> 2.6405 goalAssist: 0.2805 -> 0.2868 totalCross: 0.5376 -> 0.5325 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Conor Gallagher, Micky van de Ven', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle', 'duel_win_rate': 0.299, 'pressing_faced': 'HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 1.0427, 'skill_edge': 0.0351, 'height_edge': -0.006, 'attacker_skill': 0.89, 'defender_skill': 0.8121, 'attacker_role': 'SS', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Conor Gallagher', 'market_value': 31000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.761}, {'player': 'Micky van de Ven', 'market_value': 49000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8633}], 'xg_override': 0.4265} | totalShots: 2.6405 -> 2.7532 shotOffTarget: 1.6171 -> 1.6862 onTargetScoringAttempt: 1.0117 -> 1.0549 expectedGoalsOnTarget: 0.5532 -> 0.5768 goals: 0.4442 -> 0.4632 bigChanceMissed: 0.4122 -> 0.4298 expectedGoals: 0.409 -> 0.4265 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.79 (squad xG sum 1.4165, xG scale 1.2629, xA scale 1.3652, team xA 1.16 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.789
squad_xg_sum=1.4165
squad_xa_sum=0.8518
team_expected_assists=1.1628
team_xa_to_xg_ratio=0.65 | expected_goals: 0.4265 -> 0.5385 expected_assists: 0.0664 -> 0.0906 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 83.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.4164
goal_rate=0.4632
scorer_weight=0.58 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0866
assist_rate=0.2868
provider_weight=0.1133 | - |
|
| Cole Palmer | M | 88 | 0 | 0.30 | 0.31 | ok | 3 | 2.4 | 7.0 | 61.6 | 34 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0153, quality 0.894) | market_value_eur=101000000
quality_factor=0.8936
boost_factor=1.0153
reference_quality=0.505
history_matches=33
history_shrink=0.1316 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0108) | blend_weight=0.0108
history_matches=33
season_overlap_discount=1.0
per90_to_match_factor=0.9809
prior_reliability=0.1267
competition=Premier League | totalShots: 2.689 -> 2.7099 goals: 0.2541 -> 0.2625 onTargetScoringAttempt: 0.8536 -> 0.861 fouls: 0.9969 -> 0.9917 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Antonín Kinský', 'matchup_zone': 'Left Wingback vs Right Back — Overlapping Run', 'duel_win_rate': 0.468, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 1.0707, 'skill_edge': 0.0681, 'height_edge': -0.02, 'attacker_skill': 0.8993, 'defender_skill': 0.7479, 'attacker_role': 'LWB', 'attacker_mv_price_index': 0.7, 'defender_adjusted_parts': [{'player': 'Antonín Kinský', 'market_value': 18900000, 'role': 'GK', 'price_index': 0.55, 'adjusted_quality': 0.7479}], 'xg_override': 0.2365} | aerialWon: 0.068 -> 1.2 totalShots: 2.7099 -> 2.9015 shotOffTarget: 1.8354 -> 1.9652 onTargetScoringAttempt: 0.861 -> 0.9219 goals: 0.2625 -> 0.2811 expectedGoals: 0.2209 -> 0.2365 bigChanceMissed: 0.1756 -> 0.188 expectedGoalsOnTarget: 0.1586 -> 0.1698 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.79 (squad xG sum 1.4165, xG scale 1.2629, xA scale 1.3652, team xA 1.16 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.789
squad_xg_sum=1.4165
squad_xa_sum=0.8518
team_expected_assists=1.1628
team_xa_to_xg_ratio=0.65 | expected_goals: 0.2365 -> 0.2987 expected_assists: 0.1539 -> 0.2101 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 85.0) | match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.2582
goal_rate=0.2811
scorer_weight=0.3452 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1895
assist_rate=0.1962
provider_weight=0.2537 | - |
|
| Jorrel Hato | D | 75 | 0 | 0.00 | 0.01 | 72% | 0 | 0.2 | 6.7 | 50.6 | 34 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.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.0115) | blend_weight=0.0115
history_matches=27
season_overlap_discount=1.0
per90_to_match_factor=0.8383
prior_reliability=0.1133
competition=Premier League | wasFouled: 0.2239 -> 0.2327 wonTackle: 1.038 -> 1.0317 interceptionWon: 0.9281 -> 0.9231 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Omar Marmoush', 'matchup_zone': '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.79 (squad xG sum 1.4165, xG scale 1.2629, xA scale 1.3652, team xA 1.16 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.789
squad_xg_sum=1.4165
squad_xa_sum=0.8518
team_expected_assists=1.1628
team_xa_to_xg_ratio=0.65 | expected_assists: 0.0388 -> 0.053 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 78.0) | match_squad_rank=14
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0028
goal_rate=0.0
scorer_weight=0.0027 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0516
assist_rate=0.2203
provider_weight=0.0663 | - |
|
| Moisés Caicedo | M | 85 | 0 | 0.05 | 0.03 | 53% | 1 | 0.7 | 7.0 | 57.0 | 26 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0143, quality 0.895) | market_value_eur=104000000
quality_factor=0.8945
boost_factor=1.0143
reference_quality=0.505
history_matches=36
history_shrink=0.122 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0011) | blend_weight=0.0011
history_matches=36
season_overlap_discount=1.0
per90_to_match_factor=0.9456
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': 'Conor Gallagher', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.495, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 1.0664, 'skill_edge': 0.0612, 'height_edge': -0.016, 'attacker_skill': 0.8969, 'defender_skill': 0.761, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Conor Gallagher', 'market_value': 31000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.761}], 'xg_override': 0.0387} | aerialWon: 0.4665 -> 1.0 totalShots: 0.6983 -> 0.7447 shotOffTarget: 0.553 -> 0.5897 onTargetScoringAttempt: 0.1453 -> 0.1549 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.79 (squad xG sum 1.4165, xG scale 1.2629, xA scale 1.3652, team xA 1.16 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.789
squad_xg_sum=1.4165
squad_xa_sum=0.8518
team_expected_assists=1.1628
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0387 -> 0.0489 expected_assists: 0.044 -> 0.0601 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 86.0) | match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0477
goal_rate=0.0451
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.0583
assist_rate=0.0502
provider_weight=0.0641 | - |
|
| Jordan Henderson | M | 82 | 0 | 0.10 | 0.02 | 493% | 1 | 0.2 | 7.1 | 53.8 | 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 0.9975, quality 0.437) | market_value_eur=1300000
quality_factor=0.4374
boost_factor=0.9975
reference_quality=0.505
history_matches=35
history_shrink=0.125 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Andy Robertson', 'matchup_zone': 'Right Wingback vs Left Back — Overlapping Run', 'duel_win_rate': 0.378, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9676, 'skill_edge': -0.042, 'height_edge': 0.02, 'attacker_skill': 0.4374, 'defender_skill': 0.5308, 'attacker_role': 'RWB', 'attacker_mv_price_index': 0.7, 'defender_adjusted_parts': [{'player': 'Andy Robertson', 'market_value': 7500000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.5308}], 'xg_override': 0.0762} | aerialWon: 0.8207 -> 1.1 totalShots: 0.9355 -> 0.9052 shotOffTarget: 0.6102 -> 0.5904 onTargetScoringAttempt: 0.3253 -> 0.3148 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.79 (squad xG sum 1.4165, xG scale 1.2629, xA scale 1.3652, team xA 1.16 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.789
squad_xg_sum=1.4165
squad_xa_sum=0.8518
team_expected_assists=1.1628
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0762 -> 0.0962 expected_assists: 0.1326 -> 0.181 | 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.0917
goal_rate=0.0951
scorer_weight=0.1106 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1656
assist_rate=0.1275
provider_weight=0.176 | - |
|
| Pedro Neto | F | 83 | 0 | 0.17 | 0.09 | 84% | 2 | 1.0 | 6.9 | 48.6 | 38 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0112, quality 0.848) | market_value_eur=58000000
quality_factor=0.8478
boost_factor=1.0112
reference_quality=0.505
history_matches=41
history_shrink=0.1087 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0042) | blend_weight=0.0042
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=0.923
prior_reliability=0.06
competition=Premier League | onTargetScoringAttempt: 0.6583 -> 0.6641 totalShots: 1.7967 -> 1.802 totalCross: 4.3056 -> 4.3004 | 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': 'Conor Gallagher, Micky van de Ven', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle', 'duel_win_rate': 0.226, 'pressing_faced': 'HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.9354, 'skill_edge': 0.0161, 'height_edge': -0.06, 'attacker_skill': 0.8478, 'defender_skill': 0.8121, 'attacker_role': 'SS', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Conor Gallagher', 'market_value': 31000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.761}, {'player': 'Micky van de Ven', 'market_value': 49000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8633}], 'xg_override': 0.1375} | totalShots: 1.8025 -> 1.6861 shotOffTarget: 1.1384 -> 1.0649 onTargetScoringAttempt: 0.6641 -> 0.6212 expectedGoalsOnTarget: 0.3536 -> 0.3308 bigChanceMissed: 0.2309 -> 0.216 goals: 0.2192 -> 0.205 expectedGoals: 0.147 -> 0.1375 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.79 (squad xG sum 1.4165, xG scale 1.2629, xA scale 1.3652, team xA 1.16 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.789
squad_xg_sum=1.4165
squad_xa_sum=0.8518
team_expected_assists=1.1628
team_xa_to_xg_ratio=0.65 | expected_goals: 0.1375 -> 0.1737 expected_assists: 0.1685 -> 0.2299 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 81.0) | match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1595
goal_rate=0.205
scorer_weight=0.2171 | - | integer_assist_projection | Team scoreline allocation: 1 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.2054
assist_rate=0.2612
provider_weight=0.2874 | - |
|
| Levi Colwill | D | 88 | 0 | 0.00 | 0.00 | 72% | 0 | 0.1 | 6.8 | 40.1 | 15 | 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.0359, quality 0.840) | market_value_eur=55000000
quality_factor=0.8399
boost_factor=1.0359
reference_quality=0.505
history_matches=9
history_shrink=0.3571 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0279) | blend_weight=0.0279
history_matches=9
season_overlap_discount=1.0
per90_to_match_factor=0.9828
prior_reliability=0.12
competition=Premier League | wonTackle: 0.6005 -> 0.6294 wasFouled: 0.2437 -> 0.2521 totalShots: 0.3709 -> 0.3759 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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.79 (squad xG sum 1.4165, xG scale 1.2629, xA scale 1.3652, team xA 1.16 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.789
squad_xg_sum=1.4165
squad_xa_sum=0.8518
team_expected_assists=1.1628
team_xa_to_xg_ratio=0.65 | expected_assists: 0.0162 -> 0.0221 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 80.0) | match_squad_rank=11
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0015
goal_rate=0.0
scorer_weight=0.0015 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0219
assist_rate=0.0
provider_weight=0.0177 | - |
|
| Maxence Lacroix | D | 88 | 0 | 0.10 | 0.07 | 47% | 1 | 0.7 | 6.8 | 54.8 | 30 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0114, quality 0.861) | market_value_eur=64000000
quality_factor=0.8608
boost_factor=1.0114
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.977
prior_reliability=0.1333
competition=Premier League | wonTackle: 0.732 -> 0.7433 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Omar Marmoush', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.79 (squad xG sum 1.4165, xG scale 1.2629, xA scale 1.3652, team xA 1.16 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.789
squad_xg_sum=1.4165
squad_xa_sum=0.8518
team_expected_assists=1.1628
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0807 -> 0.1019 expected_assists: 0.0238 -> 0.0325 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 82.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.0969
goal_rate=0.0163
scorer_weight=0.0815 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.032
assist_rate=0.073
provider_weight=0.0406 | - |
|
| Josh Acheampong | D | 83 | 0 | 0.03 | 0.00 | 3859% | 0 | 0.0 | 6.6 | 35.8 | 29 | XGBoost D_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0110, quality 0.710) | market_value_eur=29000000
quality_factor=0.71
boost_factor=1.011
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': 'Dominic Solanke', '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.79 (squad xG sum 1.4165, xG scale 1.2629, xA scale 1.3652, team xA 1.16 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.789
squad_xg_sum=1.4165
squad_xa_sum=0.8518
team_expected_assists=1.1628
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0237 -> 0.0299 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 16 by projected rating, fifa_overall 75.0) | match_squad_rank=16
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0295
goal_rate=0.0422
scorer_weight=0.0374 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0145
assist_rate=0.0
provider_weight=0.012 | - |
|
| Mike Penders | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 7.0 | 6.0 | 12 | FBref Prior G_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost G_service raw output over 3 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0409, quality 0.669) | market_value_eur=24000000
quality_factor=0.6685
boost_factor=1.0409
reference_quality=0.505
history_matches=1
history_shrink=0.8333 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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 Solanke, Omar Marmoush', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.081} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.79 (squad xG sum 1.4165, xG scale 1.2629, xA scale 1.3652, team xA 1.16 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.789
squad_xg_sum=1.4165
squad_xa_sum=0.8518
team_expected_assists=1.1628
team_xa_to_xg_ratio=0.65 | shots_faced: 10.3 -> 9.9 expected_saves: 2.52 -> 2.42 high_pressure_saves: 0.86 -> 0.83 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 78.0) | match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=2.007 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by 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.2634 | - |
|
| Morgan Rogers | M | 88 | 0 | 0.32 | 0.22 | 48% | 3 | 2.4 | 7.1 | 61.1 | 35 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0120, quality 0.897) | market_value_eur=115000000
quality_factor=0.8968
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.0084) | blend_weight=0.0084
history_matches=44
season_overlap_discount=1.0
per90_to_match_factor=0.9771
prior_reliability=0.1267
competition=Premier League | totalShots: 2.2805 -> 2.2873 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Conor Gallagher', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.532, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 1.1202, 'skill_edge': 0.0618, 'height_edge': 0.02, 'attacker_skill': 0.8983, 'defender_skill': 0.761, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Conor Gallagher', 'market_value': 31000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.761}], 'xg_override': 0.2531} | totalShots: 2.2873 -> 2.5622 shotOffTarget: 1.4027 -> 1.5713 onTargetScoringAttempt: 0.8747 -> 0.9798 aerialWon: 1.2666 -> 1.2 bigChanceMissed: 0.2915 -> 0.3265 goals: 0.2848 -> 0.319 expectedGoalsOnTarget: 0.2296 -> 0.2572 expectedGoals: 0.2259 -> 0.2531 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.79 (squad xG sum 1.4165, xG scale 1.2629, xA scale 1.3652, team xA 1.16 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.789
squad_xg_sum=1.4165
squad_xa_sum=0.8518
team_expected_assists=1.1628
team_xa_to_xg_ratio=0.65 | expected_goals: 0.2531 -> 0.3197 expected_assists: 0.1404 -> 0.1917 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 84.0) | match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.2736
goal_rate=0.319
scorer_weight=0.3892 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1744
assist_rate=0.1101
provider_weight=0.1612 | - |
|
| Team totals | 1 | 1.79 | | 16 | | 6.9 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Robert Sánchez | G | 5.2m | 14.7% | Market-value substitute prior |
| Reece James | D | 19.5m | 44.4% | Market-value substitute prior |
| Trevoh Chalobah | D | 15.0m | 36.3% | Market-value substitute prior |
| Marco Palestra | M | 23.5m | 56.6% | Market-value substitute prior |
| Valentín Barco | M | 15.5m | 72.1% | Market-value substitute prior |
| Estêvão | F | 27.1m | 63.9% | Market-value substitute prior |
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 |
|---|
| Dominic Solanke | F | 79 | 0 | 0.23 | 0.14 | 62% | 2 | 1.1 | 6.7 | 50.1 | 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.0105, quality 0.694) | market_value_eur=27000000
quality_factor=0.6941
boost_factor=1.0105
reference_quality=0.505
history_matches=22
history_shrink=0.1852 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0032) | blend_weight=0.0032
history_matches=22
season_overlap_discount=1.0
per90_to_match_factor=0.8818
prior_reliability=0.0267
competition=Premier League | wasFouled: 0.6913 -> 0.7032 totalShots: 2.1078 -> 2.1141 totalOffside: 0.4989 -> 0.5044 fouls: 1.6689 -> 1.6635 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Levi Colwill, Maxence Lacroix', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.8561, 'skill_edge': -0.0839, 'height_edge': -0.014, 'attacker_skill': 0.6941, 'defender_skill': 0.8806, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Levi Colwill', 'market_value': 55000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8751}, {'player': 'Maxence Lacroix', 'market_value': 64000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8862}], 'xg_override': 0.2792} | totalShots: 2.1141 -> 1.8099 shotOffTarget: 1.3919 -> 1.1916 onTargetScoringAttempt: 0.7201 -> 0.6165 bigChanceMissed: 0.5207 -> 0.4458 goals: 0.3387 -> 0.29 expectedGoals: 0.3261 -> 0.2792 expectedGoalsOnTarget: 0.2953 -> 0.2528 | 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.04 (squad xG sum 1.2837, xG scale 0.8117, xA scale 0.8117, team xA 0.75 = 0.72 x lambda) | scoreline_reset=true
team_lambda=1.042
squad_xg_sum=1.2837
squad_xa_sum=0.9299
team_expected_assists=0.7549
team_xa_to_xg_ratio=0.7244 | expected_goals: 0.2792 -> 0.2266 expected_assists: 0.0564 -> 0.0458 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 15 by projected rating, fifa_overall 79.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.2028
goal_rate=0.29
scorer_weight=0.234 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0448
assist_rate=0.1656
provider_weight=0.0573 | - |
|
| Omar Marmoush | F | 79 | 0 | 0.14 | 0.06 | 113% | 2 | 1.0 | 6.8 | 39.2 | 31 | XGBoost F_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0157, quality 0.840) | market_value_eur=55000000
quality_factor=0.8399
boost_factor=1.0157
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': 'Levi Colwill, Maxence Lacroix', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.9349, 'skill_edge': -0.0183, 'height_edge': -0.026, 'attacker_skill': 0.8399, 'defender_skill': 0.8806, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Levi Colwill', 'market_value': 55000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8751}, {'player': 'Maxence Lacroix', 'market_value': 64000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8862}], 'xg_override': 0.1674} | totalShots: 1.8941 -> 1.7708 shotOffTarget: 1.3029 -> 1.2181 onTargetScoringAttempt: 0.5911 -> 0.5526 bigChanceMissed: 0.2281 -> 0.2133 goals: 0.209 -> 0.1954 expectedGoals: 0.1791 -> 0.1674 expectedGoalsOnTarget: 0.1082 -> 0.1012 | 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.04 (squad xG sum 1.2837, xG scale 0.8117, xA scale 0.8117, team xA 0.75 = 0.72 x lambda) | scoreline_reset=true
team_lambda=1.042
squad_xg_sum=1.2837
squad_xa_sum=0.9299
team_expected_assists=0.7549
team_xa_to_xg_ratio=0.7244 | expected_goals: 0.1674 -> 0.1359 expected_assists: 0.0534 -> 0.0433 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 82.0) | match_squad_rank=14
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.1271
goal_rate=0.1954
scorer_weight=0.1534 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0424
assist_rate=0.1416
provider_weight=0.0541 | - |
|
| Conor Gallagher | M | 78 | 0 | 0.08 | 0.07 | ok | 1 | 0.5 | 6.8 | 49.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.0073, quality 0.725) | market_value_eur=31000000
quality_factor=0.7249
boost_factor=1.0073
reference_quality=0.505
history_matches=40
history_shrink=0.1111 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0024) | blend_weight=0.0024
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=0.862
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': 'João Pedro, Pedro Neto, Morgan Rogers', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 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.04 (squad xG sum 1.2837, xG scale 0.8117, xA scale 0.8117, team xA 0.75 = 0.72 x lambda) | scoreline_reset=true
team_lambda=1.042
squad_xg_sum=1.2837
squad_xa_sum=0.9299
team_expected_assists=0.7549
team_xa_to_xg_ratio=0.7244 | expected_goals: 0.0977 -> 0.0793 expected_assists: 0.0617 -> 0.0501 | 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.0762
goal_rate=0.0879
scorer_weight=0.074 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0489
assist_rate=0.0725
provider_weight=0.0549 | - |
|
| Mohammed Kudus | F | 74 | 0 | 0.09 | 0.04 | 114% | 1 | 0.6 | 7.0 | 36.9 | 24 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0158, quality 0.821) | market_value_eur=49000000
quality_factor=0.8206
boost_factor=1.0158
reference_quality=0.505
history_matches=25
history_shrink=0.1667 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0022) | blend_weight=0.0022
history_matches=25
season_overlap_discount=1.0
per90_to_match_factor=0.8269
prior_reliability=0.02
competition=Premier League | totalCross: 4.5542 -> 4.5742 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Levi Colwill, Maxence Lacroix', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.8809, 'skill_edge': -0.027, 'height_edge': -0.054, 'attacker_skill': 0.8206, 'defender_skill': 0.8806, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Levi Colwill', 'market_value': 55000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8751}, {'player': 'Maxence Lacroix', 'market_value': 64000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8862}], 'xg_override': 0.1143} | totalShots: 1.3921 -> 1.2263 shotOffTarget: 0.9448 -> 0.8323 onTargetScoringAttempt: 0.4423 -> 0.3896 goals: 0.1616 -> 0.1424 expectedGoals: 0.1298 -> 0.1143 expectedGoalsOnTarget: 0.0792 -> 0.0698 bigChanceMissed: 0.0505 -> 0.0445 | 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.04 (squad xG sum 1.2837, xG scale 0.8117, xA scale 0.8117, team xA 0.75 = 0.72 x lambda) | scoreline_reset=true
team_lambda=1.042
squad_xg_sum=1.2837
squad_xa_sum=0.9299
team_expected_assists=0.7549
team_xa_to_xg_ratio=0.7244 | expected_goals: 0.1143 -> 0.0928 expected_assists: 0.106 -> 0.086 | 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.0886
goal_rate=0.1424
scorer_weight=0.1087 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0824
assist_rate=0.2401
provider_weight=0.1075 | - |
|
| Mateus Fernandes | M | 80 | 0 | 0.06 | 0.04 | 50% | 1 | 0.8 | 6.9 | 57.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 1.0113, quality 0.868) | market_value_eur=68000000
quality_factor=0.8677
boost_factor=1.0113
reference_quality=0.505
history_matches=43
history_shrink=0.1042 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0068) | blend_weight=0.0068
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=0.8858
prior_reliability=0.1
competition=Premier League | totalCross: 1.7467 -> 1.7629 wasFouled: 0.9347 -> 0.9284 interceptionWon: 0.8562 -> 0.8504 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Levi Colwill', 'matchup_zone': 'LW vs CB', 'duel_win_rate': 0.381, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9422, 'skill_edge': -0.0033, 'height_edge': -0.036, 'attacker_skill': 0.8677, 'defender_skill': 0.8751, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Levi Colwill', 'market_value': 55000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8751}], 'xg_override': 0.0758} | aerialWon: 0.4716 -> 1.0 totalShots: 1.0658 -> 1.0042 shotOffTarget: 0.7674 -> 0.723 onTargetScoringAttempt: 0.2984 -> 0.2812 | 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.04 (squad xG sum 1.2837, xG scale 0.8117, xA scale 0.8117, team xA 0.75 = 0.72 x lambda) | scoreline_reset=true
team_lambda=1.042
squad_xg_sum=1.2837
squad_xa_sum=0.9299
team_expected_assists=0.7549
team_xa_to_xg_ratio=0.7244 | expected_goals: 0.0758 -> 0.0615 expected_assists: 0.0893 -> 0.0725 | 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.0596
goal_rate=0.0792
scorer_weight=0.0632 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0699
assist_rate=0.0868
provider_weight=0.0712 | - |
|
| Sandro Tonali | M | 86 | 0 | 0.06 | 0.05 | ok | 1 | 1.2 | 7.3 | 55.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.0121, quality 0.884) | market_value_eur=83000000
quality_factor=0.8845
boost_factor=1.0121
reference_quality=0.505
history_matches=42
history_shrink=0.1064 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0083) | blend_weight=0.0083
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.9503
prior_reliability=0.12
competition=Premier League | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Morgan Rogers', 'matchup_zone': 'CAM vs CM', 'duel_win_rate': 0.391, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9576, 'skill_edge': -0.0049, 'height_edge': -0.024, 'attacker_skill': 0.8875, 'defender_skill': 0.8983, 'attacker_role': 'CAM', 'attacker_mv_price_index': 0.95, 'defender_adjusted_parts': [{'player': 'Morgan Rogers', 'market_value': 115000000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.8983}], 'xg_override': 0.0678} | aerialWon: 0.5761 -> 1.1 totalShots: 1.1732 -> 1.1235 shotOffTarget: 0.8356 -> 0.8002 onTargetScoringAttempt: 0.3359 -> 0.3217 | 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.04 (squad xG sum 1.2837, xG scale 0.8117, xA scale 0.8117, team xA 0.75 = 0.72 x lambda) | scoreline_reset=true
team_lambda=1.042
squad_xg_sum=1.2837
squad_xa_sum=0.9299
team_expected_assists=0.7549
team_xa_to_xg_ratio=0.7244 | expected_goals: 0.0678 -> 0.055 expected_assists: 0.1583 -> 0.1285 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 85.0) | match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0535
goal_rate=0.0851
scorer_weight=0.0631 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.1206
assist_rate=0.1196
provider_weight=0.1046 | - |
|
| Andy Robertson | D | 82 | 0 | 0.04 | 0.03 | 39% | 1 | 0.3 | 6.8 | 39.9 | 32 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9995, quality 0.493) | market_value_eur=7500000
quality_factor=0.4927
boost_factor=0.9995
reference_quality=0.505
history_matches=30
history_shrink=0.1429 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0105) | blend_weight=0.0105
history_matches=30
season_overlap_discount=1.0
per90_to_match_factor=0.906
prior_reliability=0.1133
competition=Premier League | wasFouled: 0.2132 -> 0.2222 totalCross: 4.9744 -> 4.9669 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Jordan Henderson', 'matchup_zone': 'Right Wingback vs Left Back — Overlapping Run'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.04 (squad xG sum 1.2837, xG scale 0.8117, xA scale 0.8117, team xA 0.75 = 0.72 x lambda) | scoreline_reset=true
team_lambda=1.042
squad_xg_sum=1.2837
squad_xa_sum=0.9299
team_expected_assists=0.7549
team_xa_to_xg_ratio=0.7244 | expected_goals: 0.0549 -> 0.0446 expected_assists: 0.0879 -> 0.0714 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 85.0) | match_squad_rank=11
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_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.0436
goal_rate=0.0598
scorer_weight=0.0467 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0689
assist_rate=0.2965
provider_weight=0.0893 | - |
|
| Micky van de Ven | D | 88 | 0 | 0.06 | 0.05 | ok | 1 | 0.3 | 6.9 | 53.9 | 30 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0103, quality 0.821) | market_value_eur=49000000
quality_factor=0.8206
boost_factor=1.0103
reference_quality=0.505
history_matches=41
history_shrink=0.1087 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0047) | blend_weight=0.0047
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=0.9798
prior_reliability=0.0667
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': 'João Pedro', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 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.04 (squad xG sum 1.2837, xG scale 0.8117, xA scale 0.8117, team xA 0.75 = 0.72 x lambda) | scoreline_reset=true
team_lambda=1.042
squad_xg_sum=1.2837
squad_xa_sum=0.9299
team_expected_assists=0.7549
team_xa_to_xg_ratio=0.7244 | expected_goals: 0.078 -> 0.0633 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 81.0) | match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0613
goal_rate=0.0131
scorer_weight=0.0506 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0084
assist_rate=0.005
provider_weight=0.0077 | - |
|
| Jan Paul van Hecke | D | 90 | 0 | 0.09 | 0.07 | 31% | 1 | 0.5 | 7.2 | 58.3 | 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.0112, quality 0.863) | market_value_eur=65000000
quality_factor=0.8627
boost_factor=1.0112
reference_quality=0.505
history_matches=43
history_shrink=0.1042 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0090) | blend_weight=0.009
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=0.9979
prior_reliability=0.1333
competition=Premier League | interceptionWon: 1.2641 -> 1.2572 totalCross: 0.6474 -> 0.6416 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'João Pedro', 'matchup_zone': '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.04 (squad xG sum 1.2837, xG scale 0.8117, xA scale 0.8117, team xA 0.75 = 0.72 x lambda) | scoreline_reset=true
team_lambda=1.042
squad_xg_sum=1.2837
squad_xa_sum=0.9299
team_expected_assists=0.7549
team_xa_to_xg_ratio=0.7244 | expected_goals: 0.1148 -> 0.0932 expected_assists: 0.0723 -> 0.0587 | 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.089
goal_rate=0.1361
scorer_weight=0.1052 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.057
assist_rate=0.0272
provider_weight=0.047 | - |
|
| Archie Gray | M | 83 | 0 | 0.04 | 0.04 | ok | 1 | 0.4 | 6.8 | 46.2 | 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.0103, quality 0.746) | market_value_eur=34000000
quality_factor=0.7455
boost_factor=1.0103
reference_quality=0.505
history_matches=30
history_shrink=0.1429 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0105) | blend_weight=0.0105
history_matches=30
season_overlap_discount=1.0
per90_to_match_factor=0.9261
prior_reliability=0.1133
competition=Premier League | wasFouled: 0.9752 -> 0.9879 totalShots: 0.7225 -> 0.7149 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Cole Palmer', 'matchup_zone': '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.04 (squad xG sum 1.2837, xG scale 0.8117, xA scale 0.8117, team xA 0.75 = 0.72 x lambda) | scoreline_reset=true
team_lambda=1.042
squad_xg_sum=1.2837
squad_xa_sum=0.9299
team_expected_assists=0.7549
team_xa_to_xg_ratio=0.7244 | expected_goals: 0.0545 -> 0.0442 expected_assists: 0.0599 -> 0.0486 | 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.0432
goal_rate=0.052
scorer_weight=0.0431 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0474
assist_rate=0.0829
provider_weight=0.0588 | - |
|
| Antonín Kinský | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 7.0 | 29.2 | 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.0091, quality 0.620) | market_value_eur=18900000
quality_factor=0.6201
boost_factor=1.0091
reference_quality=0.505
history_matches=14
history_shrink=0.2632 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0228) | blend_weight=0.0228
history_matches=14
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League | wasFouled: 0.2807 -> 0.2743 saves: 2.7473 -> 2.7417 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'João Pedro, Morgan Rogers', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.7268} | - | 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.04 (squad xG sum 1.2837, xG scale 0.8117, xA scale 0.8117, team xA 0.75 = 0.72 x lambda) | scoreline_reset=true
team_lambda=1.042
squad_xg_sum=1.2837
squad_xa_sum=0.9299
team_expected_assists=0.7549
team_xa_to_xg_ratio=0.7244 | shots_faced: 16.4 -> 17.0 expected_saves: 4.01 -> 4.16 high_pressure_saves: 1.38 -> 1.43 | 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 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.0921 | - | 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.7886 | - |
|
| Team totals | 0 | 1.04 | | 15 | | 6.9 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Guglielmo Vicario | G | 5.0m | 13.9% | Market-value substitute prior |
| Pedro Porro | D | 15.0m | 24.6% | Market-value substitute prior |
| Destiny Udogie | D | 14.3m | 62.3% | Market-value substitute prior |
| Xavi Simons | M | 23.4m | 56.3% | Market-value substitute prior |
| Lucas Bergvall | M | 23.4m | 33.5% | Market-value substitute prior |
| Sávio | F | 26.9m | 63.0% | Market-value substitute prior |
Antagonist / tactical summary
Midfield is evenly contested — Morgan Rogers vs Sandro Tonali will be the pivotal duel. Total antagonist xG — Home: 1.17, Away: 0.70. Home danger zone: Shadow Striker vs CDM + CB — Zone 14 Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Midfield — possession 49.9% / 50.1%, dominance ratio 0.49, key duel: Morgan Rogers vs Sandro Tonali
João Pedro xG 0.43Pedro Neto xG 0.14Cole Palmer xG 0.24Mateus Fernandes xG 0.08Sandro Tonali xG 0.07Omar Marmoush xG 0.17
Summary
Antagonist matchup analysis for Chelsea vs Tottenham. Most likely scoreline: 1-0. Lambdas derived from 6 home and 5 away individual player duels. Head-to-head: Chelsea 7W-1D-2L 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 — Morgan Rogers vs Sandro Tonali will be the pivotal duel. Total antagonist xG — Home: 1.17, Away: 0.70. Home danger zone: Shadow Striker vs CDM + CB — Zone 14 Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Valencia vs Villarreal
LaLiga · 20261024 · 4-2-3-1 vs 4-4-2
Predicted 0-1Winner: VillarrealWinning H 1-0 (8.5%)Winning A 0-1 (13.7%)Confidence 0.74λ home/away 0.90 / 1.45Most-likely P 13.7%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset TracingAntagonist + XGBoost match analysis for Valencia vs Villarreal. 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-4-2 (duel lambdas: Home 0.919, Away 1.421). Final calibrated Poisson lambdas: Home 0.899, Away 1.451 (most likely score 0-1).
Home Starters 11/11 XGBoost (9 FBref) Away Starters 11/11 XGBoost (8 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 0.92 / 1.42 Final λ (H/A) 0.90 / 1.45
FBref Team Priors: Valencia (Gls/90: 0.3333333333333333, GA/90: 0.33 → E[λ]: 0.328) vs Villarreal (Gls/90: 1.3333333333333333, GA/90: 1.33 → E[λ]: 0.326) | 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 | Villarreal |
|---|
| League position | 19.00 | 12.00 |
| Points per game | 0.94 | 1.14 |
| Attack index | 0.80 | 0.93 |
| Defense (concede) index | 0.93 | 1.09 |
| Form multiplier | 0.99 | 1.01 |
| Standing λ multiplier | 0.89 | 1.01 |
Lambda decomposition (how the goal rates were built)
| Stage | Valencia λ | Villarreal λ |
|---|
| FBref Squad Prior E[λ] (weight 0.228) | 0.328 | 0.326 |
| Pre-competitive-floor | 0.899 | 1.451 |
| Pre-calibration (Micro-duels) | 0.919 | 1.421 |
| Final λ | 0.899 | 1.451 |
competition calibration scale 1.0competition observed total goals 0.0quality gap applied Truemismatch score pressure applied Falsecompetitive underdog floor applied Falsestage discount 1.0
Scoreline distribution & markets
| Top 5 scorelines | P |
|---|
| 0-1 | 13.7% |
| 1-1 | 12.5% |
| 0-2 | 10.0% |
| 0-0 | 9.6% |
| 1-2 | 9.0% |
| Home win | 23.2% |
| Draw | 26.9% |
| Away win | 49.9% |
| Over 2.5 | 41.7% |
| BTTS yes | 45.5% |
Pregame fair line — favorite Villarreal (49.9%), fair total 2.35, fair spread -0.55
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-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 |
|---|
| Stole Dimitrievski | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 6.9 | 65.3 | 31 | FBref Prior G_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost G_service raw output over 3 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9970, quality 0.437) | market_value_eur=2100000
quality_factor=0.4374
boost_factor=0.997
reference_quality=0.505
history_matches=29
history_shrink=0.1471 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0191) | blend_weight=0.0191
history_matches=29
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.2
competition=La Liga | saves: 2.9671 -> 2.9614 wasFouled: 0.2806 -> 0.2752 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Alberto Moleiro, Ayoze Pérez', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.4207} | - | 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.90 (squad xG sum 0.8835, xG scale 1.0175, xA scale 1.0175, team xA 0.62 = 0.69 x lambda) | scoreline_reset=true
team_lambda=0.899
squad_xg_sum=0.8835
squad_xa_sum=0.6086
team_expected_assists=0.6192
team_xa_to_xg_ratio=0.6888 | shots_faced: 13.5 -> 13.8 expected_saves: 3.3 -> 3.38 high_pressure_saves: 1.14 -> 1.16 | 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=0.9718 | - | 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.6412 | - |
|
| Arnaut Danjuma | F | 82 | 0 | 0.13 | 0.08 | 65% | 1 | 1.0 | 6.9 | 54.1 | 33 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9977, quality 0.437) | market_value_eur=2800000
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.0094) | blend_weight=0.0094
history_matches=39
season_overlap_discount=1.0
per90_to_match_factor=0.9113
prior_reliability=0.1267
competition=La Liga | totalShots: 1.5886 -> 1.6059 wasFouled: 0.8962 -> 0.9058 fouls: 0.6665 -> 0.6737 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Renato Veiga, Alexander Freeman', '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.7654, 'skill_edge': -0.1156, 'height_edge': -0.044, 'attacker_skill': 0.4374, 'defender_skill': 0.6943, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Renato Veiga', 'market_value': 29000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7736}, {'player': 'Alexander Freeman', 'market_value': 13800000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.615}], 'xg_override': 0.1315} | totalShots: 1.6059 -> 1.2292 shotOffTarget: 0.9765 -> 0.7474 onTargetScoringAttempt: 0.6155 -> 0.4711 bigChanceMissed: 0.4954 -> 0.3792 goals: 0.1894 -> 0.145 expectedGoals: 0.1718 -> 0.1315 expectedGoalsOnTarget: 0.0936 -> 0.0716 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.90 (squad xG sum 0.8835, xG scale 1.0175, xA scale 1.0175, team xA 0.62 = 0.69 x lambda) | scoreline_reset=true
team_lambda=0.899
squad_xg_sum=0.8835
squad_xa_sum=0.6086
team_expected_assists=0.6192
team_xa_to_xg_ratio=0.6888 | - | 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.1252
goal_rate=0.145
scorer_weight=0.1438 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0922
assist_rate=0.0377
provider_weight=0.0774 | - |
|
| Luis Rioja | F | 78 | 0 | 0.11 | 0.05 | 129% | 1 | 0.8 | 6.7 | 59.1 | 31 | XGBoost F_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9978, quality 0.437) | market_value_eur=1900000
quality_factor=0.4374
boost_factor=0.9978
reference_quality=0.505
history_matches=42
history_shrink=0.1064 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Renato Veiga, Alexander Freeman', '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.7419, 'skill_edge': -0.1156, 'height_edge': -0.06, 'attacker_skill': 0.4374, 'defender_skill': 0.6943, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Renato Veiga', 'market_value': 29000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7736}, {'player': 'Alexander Freeman', 'market_value': 13800000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.615}], 'xg_override': 0.1126} | totalShots: 1.2095 -> 0.8973 shotOffTarget: 0.8046 -> 0.5969 onTargetScoringAttempt: 0.4049 -> 0.3004 goals: 0.1563 -> 0.116 expectedGoals: 0.1518 -> 0.1126 bigChanceMissed: 0.1 -> 0.0742 expectedGoalsOnTarget: 0.088 -> 0.0653 | 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.90 (squad xG sum 0.8835, xG scale 1.0175, xA scale 1.0175, team xA 0.62 = 0.69 x lambda) | scoreline_reset=true
team_lambda=0.899
squad_xg_sum=0.8835
squad_xa_sum=0.6086
team_expected_assists=0.6192
team_xa_to_xg_ratio=0.6888 | - | 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 skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.1083
goal_rate=0.116
scorer_weight=0.117 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0763
assist_rate=0.137
provider_weight=0.0993 | - |
|
| Javier Guerra | M | 83 | 0 | 0.19 | 0.11 | 67% | 3 | 1.2 | 6.9 | 60.3 | 34 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0054, quality 0.686) | market_value_eur=26000000
quality_factor=0.6858
boost_factor=1.0054
reference_quality=0.505
history_matches=45
history_shrink=0.1 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0117) | blend_weight=0.0117
history_matches=45
season_overlap_discount=1.0
per90_to_match_factor=0.9211
prior_reliability=0.18
competition=La Liga | totalShots: 2.1287 -> 2.116 fouls: 0.7672 -> 0.7582 onTargetScoringAttempt: 0.6818 -> 0.6738 | 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': 'Sergi Cardona', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.546, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0965, 'skill_edge': 0.0616, 'height_edge': 0.004, 'attacker_skill': 0.6858, 'defender_skill': 0.5489, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Sergi Cardona', 'market_value': 8600000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.5489}], 'xg_override': 0.1839} | aerialWon: 0.7275 -> 1.2 totalShots: 2.1207 -> 2.3253 shotOffTarget: 1.4469 -> 1.5865 onTargetScoringAttempt: 0.6738 -> 0.7388 bigChanceMissed: 0.3274 -> 0.359 goals: 0.2202 -> 0.2414 expectedGoals: 0.1677 -> 0.1839 expectedGoalsOnTarget: 0.1444 -> 0.1583 | 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.90 (squad xG sum 0.8835, xG scale 1.0175, xA scale 1.0175, team xA 0.62 = 0.69 x lambda) | scoreline_reset=true
team_lambda=0.899
squad_xg_sum=0.8835
squad_xa_sum=0.6086
team_expected_assists=0.6192
team_xa_to_xg_ratio=0.6888 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 82.0) | match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.1706
goal_rate=0.2414
scorer_weight=0.2331 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.1125
assist_rate=0.1179
provider_weight=0.1197 | - |
|
| Dani Raba | F | 62 | 0 | 0.15 | 0.04 | 297% | 2 | 0.3 | 6.8 | 12.8 | 32 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9952, quality 0.437) | market_value_eur=1000000
quality_factor=0.4374
boost_factor=0.9952
reference_quality=0.505
history_matches=16
history_shrink=0.2381 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0010) | blend_weight=0.001
history_matches=16
season_overlap_discount=1.0
per90_to_match_factor=0.6841
prior_reliability=0.0067
competition=La Liga | totalCross: 0.7902 -> 0.7965 totalShots: 1.5953 -> 1.6007 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Renato Veiga, Alexander Freeman', '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.8007, 'skill_edge': -0.1156, 'height_edge': -0.02, 'attacker_skill': 0.4374, 'defender_skill': 0.6943, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Renato Veiga', 'market_value': 29000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7736}, {'player': 'Alexander Freeman', 'market_value': 13800000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.615}], 'xg_override': 0.1496} | totalShots: 1.6007 -> 1.2817 shotOffTarget: 0.9174 -> 0.7346 onTargetScoringAttempt: 0.6772 -> 0.5422 bigChanceMissed: 0.2281 -> 0.1826 expectedGoalsOnTarget: 0.2092 -> 0.1675 goals: 0.1963 -> 0.1572 expectedGoals: 0.1868 -> 0.1496 | 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.90 (squad xG sum 0.8835, xG scale 1.0175, xA scale 1.0175, team xA 0.62 = 0.69 x lambda) | scoreline_reset=true
team_lambda=0.899
squad_xg_sum=0.8835
squad_xa_sum=0.6086
team_expected_assists=0.6192
team_xa_to_xg_ratio=0.6888 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 74.0) | match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.1412
goal_rate=0.1572
scorer_weight=0.158 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0603
assist_rate=0.14
provider_weight=0.0777 | - |
|
| Guido Rodríguez | M | 85 | 0 | 0.04 | 0.04 | ok | 1 | 0.6 | 7.0 | 61.3 | 27 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9973, quality 0.445) | market_value_eur=3600000
quality_factor=0.4449
boost_factor=0.9973
reference_quality=0.505
history_matches=28
history_shrink=0.1515 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0131) | blend_weight=0.0131
history_matches=28
season_overlap_discount=1.0
per90_to_match_factor=0.9426
prior_reliability=0.1333
competition=La Liga | interceptionWon: 1.4688 -> 1.4805 wonTackle: 1.8352 -> 1.8297 fouls: 1.463 -> 1.4685 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Pape Gueye', 'matchup_zone': 'Holding Mid vs Central Mid — Midfield Anchor Duel', 'duel_win_rate': 0.237, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.7604, 'skill_edge': -0.155, 'height_edge': -0.008, 'attacker_skill': 0.4527, 'defender_skill': 0.7972, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Pape Gueye', 'market_value': 39000000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.7972}], 'xg_override': 0.0345} | totalShots: 0.659 -> 0.5011 shotOffTarget: 0.4627 -> 0.3518 aerialWon: 1.1207 -> 1.2 onTargetScoringAttempt: 0.1963 -> 0.1493 goals: 0.0636 -> 0.0484 expectedGoals: 0.0454 -> 0.0345 expectedGoalsOnTarget: 0.0384 -> 0.0292 | 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.90 (squad xG sum 0.8835, xG scale 1.0175, xA scale 1.0175, team xA 0.62 = 0.69 x lambda) | scoreline_reset=true
team_lambda=0.899
squad_xg_sum=0.8835
squad_xa_sum=0.6086
team_expected_assists=0.6192
team_xa_to_xg_ratio=0.6888 | - | 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.0345
goal_rate=0.0484
scorer_weight=0.0409 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0327
assist_rate=0.054
provider_weight=0.0415 | - |
|
| Pepelu | M | 84 | 0 | 0.02 | 0.08 | 70% | 0 | 0.4 | 6.9 | 54.5 | 39 | 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=40
history_shrink=0.1111 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Pape Gueye', 'matchup_zone': 'Holding Mid vs Central Mid — Midfield Anchor Duel', 'duel_win_rate': 0.261, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.7954, 'skill_edge': -0.1312, 'height_edge': -0.008, 'attacker_skill': 0.5057, 'defender_skill': 0.7972, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Pape Gueye', 'market_value': 39000000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.7972}], 'xg_override': 0.0235} | aerialWon: 0.4131 -> 1.2 totalShots: 0.5179 -> 0.412 shotOffTarget: 0.4039 -> 0.3213 onTargetScoringAttempt: 0.114 -> 0.0907 goals: 0.0418 -> 0.0332 expectedGoals: 0.0295 -> 0.0235 | 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.90 (squad xG sum 0.8835, xG scale 1.0175, xA scale 1.0175, team xA 0.62 = 0.69 x lambda) | scoreline_reset=true
team_lambda=0.899
squad_xg_sum=0.8835
squad_xa_sum=0.6086
team_expected_assists=0.6192
team_xa_to_xg_ratio=0.6888 | - | 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.0236
goal_rate=0.0332
scorer_weight=0.0271 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0324
assist_rate=0.0456
provider_weight=0.0382 | - |
|
| José Luis Gayà | D | 82 | 0 | 0.05 | 0.03 | 63% | 1 | 0.4 | 6.8 | 56.6 | 29 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9982, quality 0.454) | market_value_eur=4300000
quality_factor=0.4535
boost_factor=0.9982
reference_quality=0.505
history_matches=39
history_shrink=0.1136 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0039) | blend_weight=0.0039
history_matches=39
season_overlap_discount=1.0
per90_to_match_factor=0.9138
prior_reliability=0.0533
competition=La Liga | wasFouled: 0.6159 -> 0.6225 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Ayoze Pérez', '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.90 (squad xG sum 0.8835, xG scale 1.0175, xA scale 1.0175, team xA 0.62 = 0.69 x lambda) | scoreline_reset=true
team_lambda=0.899
squad_xg_sum=0.8835
squad_xa_sum=0.6086
team_expected_assists=0.6192
team_xa_to_xg_ratio=0.6888 | - | 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 skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0465
goal_rate=0.0063
scorer_weight=0.0381 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0622
assist_rate=0.0368
provider_weight=0.0514 | - |
|
| Justin De Haas | D | 81 | 0 | 0.00 | 0.00 | 60% | 0 | 0.1 | 6.8 | 42.8 | 8 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9985, quality 0.495) | market_value_eur=7700000
quality_factor=0.4951
boost_factor=0.9985
reference_quality=0.505
history_matches=5
history_shrink=0.5 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0108) | blend_weight=0.0108
history_matches=5
season_overlap_discount=1.0
per90_to_match_factor=0.905
prior_reliability=0.0333
competition=La Liga | fouls: 0.5004 -> 0.5146 interceptionWon: 1.0433 -> 1.032 wonTackle: 0.6238 -> 0.617 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Ayoze Pérez', '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.90 (squad xG sum 0.8835, xG scale 1.0175, xA scale 1.0175, team xA 0.62 = 0.69 x lambda) | scoreline_reset=true
team_lambda=0.899
squad_xg_sum=0.8835
squad_xa_sum=0.6086
team_expected_assists=0.6192
team_xa_to_xg_ratio=0.6888 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 76.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.0035
goal_rate=0.0
scorer_weight=0.0033 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0126
assist_rate=0.2264
provider_weight=0.0159 | - |
|
| César Tárrega | D | 81 | 0 | 0.03 | 0.02 | 49% | 1 | 0.3 | 6.8 | 50.7 | 29 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0003, quality 0.514) | market_value_eur=9300000
quality_factor=0.5142
boost_factor=1.0003
reference_quality=0.505
history_matches=38
history_shrink=0.1163 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0151) | blend_weight=0.0151
history_matches=38
season_overlap_discount=1.0
per90_to_match_factor=0.9043
prior_reliability=0.2
competition=La Liga | interceptionWon: 1.1654 -> 1.1523 wonTackle: 0.8148 -> 0.8253 totalShots: 0.508 -> 0.514 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Ayoze Pérez', '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.90 (squad xG sum 0.8835, xG scale 1.0175, xA scale 1.0175, team xA 0.62 = 0.69 x lambda) | scoreline_reset=true
team_lambda=0.899
squad_xg_sum=0.8835
squad_xa_sum=0.6086
team_expected_assists=0.6192
team_xa_to_xg_ratio=0.6888 | - | 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.0282
goal_rate=0.0
scorer_weight=0.0229 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0062
assist_rate=0.0
provider_weight=0.0055 | - |
|
| Pablo Maffeo | D | 83 | 0 | 0.02 | 0.01 | 55% | 1 | 0.3 | 6.8 | 61.2 | 29 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9977, quality 0.437) | market_value_eur=2400000
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.0039) | blend_weight=0.0039
history_matches=39
season_overlap_discount=1.0
per90_to_match_factor=0.9249
prior_reliability=0.0533
competition=La Liga | totalCross: 2.8595 -> 2.871 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Santi Comesaña', '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 0.90 (squad xG sum 0.8835, xG scale 1.0175, xA scale 1.0175, team xA 0.62 = 0.69 x lambda) | scoreline_reset=true
team_lambda=0.899
squad_xg_sum=0.8835
squad_xa_sum=0.6086
team_expected_assists=0.6192
team_xa_to_xg_ratio=0.6888 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 82.0) | match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_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.02
goal_rate=0.0012
scorer_weight=0.0162 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0625
assist_rate=0.0744
provider_weight=0.0708 | - |
|
| Team totals | 0 | 0.90 | | 14 | | 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 |
| José Copete | D | 13.7m | 30.2% | Market-value substitute prior |
| Harvey Elliott | M | 22.8m | 53.5% | Market-value substitute prior |
| Filip Ugrinić | M | 29.8m | 43.8% | Market-value substitute prior |
| Hugo Duro | F | 22.6m | 59.9% | Market-value substitute prior |
Villarreal — projected line vs season baseline (4-4-2)
| Player | Pos | Min | Proj G | Proj xG | Season xG/g | | Proj Sh | Season Sh/g | Proj Rtg | Season Rtg | Rec | Model / FBref Prior |
|---|
| Gerard Moreno | F | 77 | 0 | 0.24 | 0.23 | ok | 2 | 1.3 | 7.0 | 57.3 | 28 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9971, quality 0.437) | market_value_eur=2400000
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.0093) | blend_weight=0.0093
history_matches=30
season_overlap_discount=1.0
per90_to_match_factor=0.852
prior_reliability=0.1
competition=La Liga | fouls: 0.6411 -> 0.651 wasFouled: 0.7311 -> 0.7243 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Justin De Haas, César Tárrega', '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.86, 'skill_edge': -0.0452, 'height_edge': -0.05, 'attacker_skill': 0.4374, 'defender_skill': 0.5379, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Justin De Haas', 'market_value': 7700000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5256}, {'player': 'César Tárrega', 'market_value': 9300000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5502}], 'xg_override': 0.2345} | totalShots: 2.0033 -> 1.7228 shotOffTarget: 1.2136 -> 1.0437 onTargetScoringAttempt: 0.7897 -> 0.6791 expectedGoalsOnTarget: 0.4008 -> 0.3447 goals: 0.2888 -> 0.2484 expectedGoals: 0.2727 -> 0.2345 bigChanceMissed: 0.2678 -> 0.2303 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.45 (squad xG sum 1.4221, xG scale 1.0203, xA scale 1.0203, team xA 1.08 = 0.75 x lambda) | scoreline_reset=true
team_lambda=1.451
squad_xg_sum=1.4221
squad_xa_sum=1.0618
team_expected_assists=1.0833
team_xa_to_xg_ratio=0.7466 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 81.0) | match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.2128
goal_rate=0.2484
scorer_weight=0.251 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1032
assist_rate=0.0
provider_weight=0.0871 | - |
|
| Ayoze Pérez | F | 73 | 0 | 0.30 | 0.26 | ok | 2 | 1.2 | 6.9 | 57.9 | 29 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9985, quality 0.467) | market_value_eur=5400000
quality_factor=0.4671
boost_factor=0.9985
reference_quality=0.505
history_matches=34
history_shrink=0.1282 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0089) | blend_weight=0.0089
history_matches=34
season_overlap_discount=1.0
per90_to_match_factor=0.8112
prior_reliability=0.1067
competition=La Liga | wasFouled: 1.4436 -> 1.4533 totalShots: 2.2772 -> 2.284 onTargetScoringAttempt: 0.8713 -> 0.877 totalOffside: 0.5744 -> 0.5693 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Justin De Haas, César Tárrega', '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.8797, 'skill_edge': -0.0319, 'height_edge': -0.05, 'attacker_skill': 0.4671, 'defender_skill': 0.5379, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Justin De Haas', 'market_value': 7700000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5256}, {'player': 'César Tárrega', 'market_value': 9300000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5502}], 'xg_override': 0.2934} | totalShots: 2.284 -> 2.0092 shotOffTarget: 1.4059 -> 1.2368 onTargetScoringAttempt: 0.877 -> 0.7715 bigChanceMissed: 0.8574 -> 0.7543 goals: 0.3619 -> 0.3184 expectedGoals: 0.3335 -> 0.2934 expectedGoalsOnTarget: 0.2642 -> 0.2324 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.45 (squad xG sum 1.4221, xG scale 1.0203, xA scale 1.0203, team xA 1.08 = 0.75 x lambda) | scoreline_reset=true
team_lambda=1.451
squad_xg_sum=1.4221
squad_xa_sum=1.0618
team_expected_assists=1.0833
team_xa_to_xg_ratio=0.7466 | expected_goals: 0.2934 -> 0.2994 | 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_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.2587
goal_rate=0.3184
scorer_weight=0.3212 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0642
assist_rate=0.2563
provider_weight=0.083 | - |
|
| Alberto Moleiro | F | 80 | 1 | 0.39 | 0.16 | 150% | 3 | 1.1 | 7.2 | 61.1 | 41 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0098, quality 0.837) | market_value_eur=54000000
quality_factor=0.837
boost_factor=1.0098
reference_quality=0.505
history_matches=46
history_shrink=0.098 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0068) | blend_weight=0.0068
history_matches=46
season_overlap_discount=1.0
per90_to_match_factor=0.8926
prior_reliability=0.1067
competition=La Liga | totalShots: 2.8155 -> 2.7964 onTargetScoringAttempt: 1.266 -> 1.2574 wonTackle: 0.6333 -> 0.6404 totalCross: 3.5658 -> 3.5605 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Justin De Haas, César Tárrega', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.275, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.1097, 'skill_edge': 0.1346, 'height_edge': -0.06, 'attacker_skill': 0.837, 'defender_skill': 0.5379, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Justin De Haas', 'market_value': 7700000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5256}, {'player': 'César Tárrega', 'market_value': 9300000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5502}], 'xg_override': 0.386} | totalShots: 2.8069 -> 3.1148 shotOffTarget: 1.5495 -> 1.7195 onTargetScoringAttempt: 1.2574 -> 1.3953 bigChanceMissed: 0.5903 -> 0.6551 expectedGoalsOnTarget: 0.3718 -> 0.4126 expectedGoals: 0.3478 -> 0.386 goals: 0.3142 -> 0.3487 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.45 (squad xG sum 1.4221, xG scale 1.0203, xA scale 1.0203, team xA 1.08 = 0.75 x lambda) | scoreline_reset=true
team_lambda=1.451
squad_xg_sum=1.4221
squad_xa_sum=1.0618
team_expected_assists=1.0833
team_xa_to_xg_ratio=0.7466 | expected_goals: 0.386 -> 0.3937 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 79.0) | match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.3254
goal_rate=0.3487
scorer_weight=0.36 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1972
assist_rate=0.3282
provider_weight=0.2746 | - |
|
| Pape Gueye | M | 79 | 0 | 0.15 | 0.15 | ok | 2 | 1.2 | 7.1 | 62.2 | 30 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0092, quality 0.775) | market_value_eur=39000000
quality_factor=0.7754
boost_factor=1.0092
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.8826
prior_reliability=0.2
competition=La Liga | totalShots: 1.3332 -> 1.3265 totalCross: 0.6713 -> 0.6657 fouls: 0.8141 -> 0.8195 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Guido Rodríguez', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.613, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.2396, 'skill_edge': 0.155, 'height_edge': 0.008, 'attacker_skill': 0.7972, 'defender_skill': 0.4527, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Guido Rodríguez', 'market_value': 3600000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4527}], 'xg_override': 0.1442} | aerialWon: 0.394 -> 1.2 totalShots: 1.3299 -> 1.6485 shotOffTarget: 0.8198 -> 1.0162 onTargetScoringAttempt: 0.5101 -> 0.6323 goals: 0.1426 -> 0.1768 expectedGoals: 0.1163 -> 0.1442 expectedGoalsOnTarget: 0.0843 -> 0.1045 bigChanceMissed: 0.0558 -> 0.0692 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.45 (squad xG sum 1.4221, xG scale 1.0203, xA scale 1.0203, team xA 1.08 = 0.75 x lambda) | scoreline_reset=true
team_lambda=1.451
squad_xg_sum=1.4221
squad_xa_sum=1.0618
team_expected_assists=1.0833
team_xa_to_xg_ratio=0.7466 | - | 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.1368
goal_rate=0.1768
scorer_weight=0.1718 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1015
assist_rate=0.083
provider_weight=0.0919 | - |
|
| Santi Comesaña | M | 70 | 0 | 0.06 | 0.08 | ok | 1 | 0.4 | 6.9 | 62.8 | 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.0000, quality 0.503) | market_value_eur=8400000
quality_factor=0.5035
boost_factor=1.0
reference_quality=0.505
history_matches=42
history_shrink=0.1064 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0101) | blend_weight=0.0101
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.779
prior_reliability=0.1467
competition=La Liga | totalShots: 0.6483 -> 0.6417 fouls: 1.4729 -> 1.4795 wonTackle: 0.7787 -> 0.7852 wasFouled: 0.8838 -> 0.8784 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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 Maffeo', 'matchup_zone': 'Left Mid vs Right Back — Wide Channel', 'duel_win_rate': 0.548, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.1298, 'skill_edge': 0.0323, 'height_edge': 0.056, 'attacker_skill': 0.5146, 'defender_skill': 0.4428, 'attacker_role': 'LM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Pablo Maffeo', 'market_value': 2400000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.4428}], 'xg_override': 0.0633} | aerialWon: 0.2212 -> 1.2 totalShots: 0.6464 -> 0.7303 shotOffTarget: 0.4687 -> 0.5295 onTargetScoringAttempt: 0.1777 -> 0.2008 bigChanceMissed: 0.1353 -> 0.1529 expectedGoalsOnTarget: 0.0872 -> 0.0985 goals: 0.0607 -> 0.0686 expectedGoals: 0.056 -> 0.0633 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.45 (squad xG sum 1.4221, xG scale 1.0203, xA scale 1.0203, team xA 1.08 = 0.75 x lambda) | scoreline_reset=true
team_lambda=1.451
squad_xg_sum=1.4221
squad_xa_sum=1.0618
team_expected_assists=1.0833
team_xa_to_xg_ratio=0.7466 | - | 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.0626
goal_rate=0.0686
scorer_weight=0.0676 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0733
assist_rate=0.0749
provider_weight=0.0763 | - |
|
| Ilias Akhomach | F | 73 | 0 | 0.11 | 0.06 | 78% | 2 | 1.0 | 7.0 | 51.5 | 28 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0014, quality 0.535) | market_value_eur=11100000
quality_factor=0.5353
boost_factor=1.0014
reference_quality=0.505
history_matches=28
history_shrink=0.1515 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0033) | blend_weight=0.0033
history_matches=28
season_overlap_discount=1.0
per90_to_match_factor=0.8103
prior_reliability=0.0333
competition=La Liga | totalCross: 2.5731 -> 2.6072 totalShots: 1.6345 -> 1.6291 wasFouled: 1.7183 -> 1.7233 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Justin De Haas, César Tárrega', '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.9101, 'skill_edge': -0.0012, 'height_edge': -0.06, 'attacker_skill': 0.5353, 'defender_skill': 0.5379, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Justin De Haas', 'market_value': 7700000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5256}, {'player': 'César Tárrega', 'market_value': 9300000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5502}], 'xg_override': 0.107} | totalShots: 1.6326 -> 1.4858 shotOffTarget: 1.0423 -> 0.9486 onTargetScoringAttempt: 0.5903 -> 0.5372 goals: 0.187 -> 0.1702 expectedGoals: 0.1176 -> 0.107 bigChanceMissed: 0.0639 -> 0.0582 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.45 (squad xG sum 1.4221, xG scale 1.0203, xA scale 1.0203, team xA 1.08 = 0.75 x lambda) | scoreline_reset=true
team_lambda=1.451
squad_xg_sum=1.4221
squad_xa_sum=1.0618
team_expected_assists=1.0833
team_xa_to_xg_ratio=0.7466 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 75.0) | match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1034
goal_rate=0.1702
scorer_weight=0.1365 | - | integer_assist_projection | Team scoreline allocation: 1 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.134
assist_rate=0.2277
provider_weight=0.1799 | - |
|
| Sergi Cardona | D | 86 | 0 | 0.03 | 0.01 | 104% | 1 | 0.4 | 6.7 | 46.9 | 33 | FBref Prior D_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0000, quality 0.506) | market_value_eur=8600000
quality_factor=0.5059
boost_factor=1.0
reference_quality=0.505
history_matches=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': 'Javier Guerra', '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 1.4221, xG scale 1.0203, xA scale 1.0203, team xA 1.08 = 0.75 x lambda) | scoreline_reset=true
team_lambda=1.451
squad_xg_sum=1.4221
squad_xa_sum=1.0618
team_expected_assists=1.0833
team_xa_to_xg_ratio=0.7466 | - | 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=0
goal_probability=0.0252
goal_rate=0.0491
scorer_weight=0.0319 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1191
assist_rate=0.0095
provider_weight=0.1014 | - |
|
| Renato Veiga | D | 90 | 0 | 0.02 | 0.01 | 95% | 1 | 0.2 | 7.0 | 57.5 | 31 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0068, quality 0.710) | market_value_eur=29000000
quality_factor=0.71
boost_factor=1.0068
reference_quality=0.505
history_matches=40
history_shrink=0.1111 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0144) | blend_weight=0.0144
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=0.9983
prior_reliability=0.2
competition=La Liga | wonTackle: 0.5842 -> 0.5758 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Dani Raba', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.45 (squad xG sum 1.4221, xG scale 1.0203, xA scale 1.0203, team xA 1.08 = 0.75 x lambda) | scoreline_reset=true
team_lambda=1.451
squad_xg_sum=1.4221
squad_xa_sum=1.0618
team_expected_assists=1.0833
team_xa_to_xg_ratio=0.7466 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 78.0) | match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0188
goal_rate=0.0
scorer_weight=0.0152 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0873
assist_rate=0.0917
provider_weight=0.0927 | - |
|
| Juan Foyth | D | 80 | 0 | 0.04 | 0.02 | 64% | 1 | 0.3 | 7.0 | 54.2 | 13 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0001, quality 0.506) | market_value_eur=8600000
quality_factor=0.5059
boost_factor=1.0001
reference_quality=0.505
history_matches=18
history_shrink=0.2174 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0283) | blend_weight=0.0283
history_matches=18
season_overlap_discount=1.0
per90_to_match_factor=0.8936
prior_reliability=0.2
competition=La Liga | interceptionWon: 1.1638 -> 1.1898 totalShots: 0.4912 -> 0.5109 wonTackle: 0.954 -> 0.9691 fouls: 0.7488 -> 0.7361 wasFouled: 0.2827 -> 0.2915 onTargetScoringAttempt: 0.1157 -> 0.1208 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Dani Raba', 'matchup_zone': 'Shape fallback'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.45 (squad xG sum 1.4221, xG scale 1.0203, xA scale 1.0203, team xA 1.08 = 0.75 x lambda) | scoreline_reset=true
team_lambda=1.451
squad_xg_sum=1.4221
squad_xa_sum=1.0618
team_expected_assists=1.0833
team_xa_to_xg_ratio=0.7466 | - | 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.0397
goal_rate=0.0
scorer_weight=0.0324 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.043
assist_rate=0.0
provider_weight=0.0352 | - |
|
| Péter Gulácsi | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 7.1 | 33.8 | 11 | FBref Prior G_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost G_service raw output over 3 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9899, quality 0.437) | market_value_eur=970000
quality_factor=0.4374
boost_factor=0.9899
reference_quality=0.505
history_matches=5
history_shrink=0.5 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Javier Guerra, Dani Raba', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 0.919} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.45 (squad xG sum 1.4221, xG scale 1.0203, xA scale 1.0203, team xA 1.08 = 0.75 x lambda) | scoreline_reset=true
team_lambda=1.451
squad_xg_sum=1.4221
squad_xa_sum=1.0618
team_expected_assists=1.0833
team_xa_to_xg_ratio=0.7466 | shots_faced: 8.7 -> 8.5 expected_saves: 2.13 -> 2.08 high_pressure_saves: 0.74 -> 0.72 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 82.0) | match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.5114 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by 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.1097 | - |
|
| Alexander Freeman | D | 90 | 0 | 0.02 | 0.01 | 241% | 0 | 0.1 | 6.9 | 38.4 | 29 | XGBoost D_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0042, quality 0.566) | market_value_eur=13800000
quality_factor=0.566
boost_factor=1.0042
reference_quality=0.505
history_matches=17
history_shrink=0.2273 | - | 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 Raba', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.45 (squad xG sum 1.4221, xG scale 1.0203, xA scale 1.0203, team xA 1.08 = 0.75 x lambda) | scoreline_reset=true
team_lambda=1.451
squad_xg_sum=1.4221
squad_xa_sum=1.0618
team_expected_assists=1.0833
team_xa_to_xg_ratio=0.7466 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 81.0) | match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0225
goal_rate=0.0
scorer_weight=0.0182 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0482
assist_rate=0.0
provider_weight=0.0395 | - |
|
| Team totals | 1 | 1.45 | | 16 | | 7.0 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Luiz Júnior | G | 4.8m | 12.9% | Market-value substitute prior |
| Carlos Romero | D | 14.5m | 23.6% | Market-value substitute prior |
| Santiago Mouriño | D | 14.3m | 23.2% | Market-value substitute prior |
| Carlos Maciá | M | 23.3m | 70.3% | Market-value substitute prior |
| Nathan-Dylan Saliba | M | 22.5m | 52.2% | Market-value substitute prior |
| Georges Mikautadze | F | 26.7m | 36.3% | Market-value substitute prior |
Antagonist / tactical summary
Midfield is evenly contested — Javier Guerra vs Pape Gueye will be the pivotal duel. Total antagonist xG — Home: 0.64, Away: 1.23. Home danger zone: Left Wing vs Right Back — Flank Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Midfield — possession 49.2% / 50.8%, dominance ratio 0.47, key duel: Javier Guerra vs Pape Gueye
Javier Guerra xG 0.18Dani Raba xG 0.15Arnaut Danjuma xG 0.13Ayoze Pérez xG 0.29Alberto Moleiro xG 0.39Gerard Moreno xG 0.23
Summary
Antagonist matchup analysis for Valencia vs Villarreal. Most likely scoreline: 0-1. Lambdas derived from 6 home and 6 away individual player duels. Head-to-head: Valencia 2W-3D-5L vs Villarreal over 10 meetings.
4-2-3-1 creates structural superiority against 4-4-2. Home team should exploit wider spaces and numerical advantages in transition. Midfield is evenly contested — Javier Guerra vs Pape Gueye will be the pivotal duel. Total antagonist xG — Home: 0.64, Away: 1.23. Home danger zone: Left Wing vs Right Back — Flank Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Generated 2026-10-24 13:38:10 UTC · Soccer prediction reporting