Soccer predictions: actual data vs predicted data
Slate 20261018 · 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
Celta vs Alavés
LaLiga · 20261018 · 3-4-3 vs 5-3-2
Predicted 0-0Winner: DrawWinning H 1-0 (15.4%)Winning A 0-1 (15.2%)Confidence 0.69λ home/away 0.86 / 0.85Most-likely P 18.3%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset TracingAntagonist + XGBoost match analysis for Celta vs Alavés. Player statistics regressed using position-specific XGBoost models (G, D, M, F) with 2026-2027 FBref priors. Micro-duels resolved across 3-4-3 vs 5-3-2 (duel lambdas: Home 0.835, Away 0.874). Final calibrated Poisson lambdas: Home 0.859, Away 0.849 (most likely score 0-0).
Home Starters 11/11 XGBoost (9 FBref) Away Starters 11/11 XGBoost (9 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 0.83 / 0.87 Final λ (H/A) 0.86 / 0.85
FBref Team Priors: Celta Vigo (Gls/90: 0.25, GA/90: 0.25 → E[λ]: 0.309) vs Deportivo Alavés (Gls/90: 1.6666666666666667, GA/90: 1.67 → E[λ]: 0.309) | Blend Weight: 0.228
Modeling Pipeline Stages (5 layers)
- 1. XGBoost player regressions for volume & event rates with market-value quality scaling
- 2. Multi-source prior blending (FBref 2026-2027 tables + Sofascore season history)
- 3. Antagonist formation duel matrix resolving 1v1 and zonal matchups
- 4. Team-level prior calibration (FBref possession and attack/defense efficiencies)
- 5. Bivariate Poisson matrix with Dixon-Coles low-score correction
Standing & form context
| Metric | Celta | Alavés |
|---|
| League position | 9.00 | 7.00 |
| Points per game | 1.16 | 1.37 |
| Attack index | 0.86 | 0.99 |
| Defense (concede) index | 0.86 | 0.79 |
| Form multiplier | 0.99 | 1.01 |
| Standing λ multiplier | 0.88 | 0.91 |
Lambda decomposition (how the goal rates were built)
| Stage | Celta λ | Alavés λ |
|---|
| FBref Squad Prior E[λ] (weight 0.228) | 0.309 | 0.309 |
| Pre-competitive-floor | 0.859 | 0.849 |
| Pre-calibration (Micro-duels) | 0.835 | 0.874 |
| Final λ | 0.859 | 0.849 |
competition calibration scale 1.0competition observed total goals 0.0quality gap applied Falsemismatch score pressure applied Falsecompetitive underdog floor applied Falsestage discount 1.0
Scoreline distribution & markets
| Top 5 scorelines | P |
|---|
| 0-0 | 18.3% |
| 1-0 | 15.4% |
| 0-1 | 15.2% |
| 1-1 | 13.4% |
| 2-0 | 6.7% |
| Home win | 33.1% |
| Draw | 34.3% |
| Away win | 32.6% |
| Over 2.5 | 24.5% |
| BTTS yes | 33.1% |
Pregame fair line — favorite Celta (33.1%), fair total 1.71, fair spread 0.01
Projected players vs season baseline
Proj = projected for this match · Season = this season's per-game average from match data · deviation badge compares projected xG to the player's season xG/game.
Celta — projected line vs season baseline (3-4-3)
| Player | Pos | Min | Proj G | Proj xG | Season xG/g | | Proj Sh | Season Sh/g | Proj Rtg | Season Rtg | Rec | Model / FBref Prior |
|---|
| Hugo Álvarez | F | 73 | 0 | 0.15 | 0.08 | 85% | 1 | 0.4 | 6.8 | 53.7 | 38 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9997, quality 0.496) | market_value_eur=7800000
quality_factor=0.4963
boost_factor=0.9997
reference_quality=0.505
history_matches=34
history_shrink=0.1282 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0072) | blend_weight=0.0072
history_matches=34
season_overlap_discount=1.0
per90_to_match_factor=0.8062
prior_reliability=0.0867
competition=La Liga | totalCross: 0.9998 -> 1.0195 totalShots: 1.2189 -> 1.2101 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Ville Koski', 'matchup_zone': 'Shadow Striker vs Centre Back — Half-Space Threat', 'duel_win_rate': 0.425, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9637, 'skill_edge': 0.0113, 'height_edge': -0.036, 'attacker_skill': 0.4963, 'defender_skill': 0.4712, 'attacker_role': 'SS', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Ville Koski', 'market_value': 4300000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4712}], 'xg_override': 0.1324} | totalShots: 1.2158 -> 1.1717 shotOffTarget: 0.7951 -> 0.7662 onTargetScoringAttempt: 0.4207 -> 0.4054 goals: 0.1562 -> 0.1505 bigChanceMissed: 0.1437 -> 0.1385 expectedGoals: 0.1374 -> 0.1324 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.86 (squad xG sum 0.7665, xG scale 1.1206, xA scale 1.1206, team xA 0.64 = 0.75 x lambda) | scoreline_reset=true
team_lambda=0.859
squad_xg_sum=0.7665
squad_xa_sum=0.5741
team_expected_assists=0.6433
team_xa_to_xg_ratio=0.7489 | expected_goals: 0.1324 -> 0.1484 expected_assists: 0.0764 -> 0.0856 | 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.1379
goal_rate=0.1505
scorer_weight=0.1631 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.082
assist_rate=0.3603
provider_weight=0.107 | - |
|
| Iago Aspas | F | 67 | 0 | 0.16 | 0.08 | 105% | 2 | 0.7 | 6.8 | 54.1 | 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.9976, quality 0.437) | market_value_eur=1500000
quality_factor=0.4374
boost_factor=0.9976
reference_quality=0.505
history_matches=38
history_shrink=0.1163 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0086) | blend_weight=0.0086
history_matches=38
season_overlap_discount=1.0
per90_to_match_factor=0.7443
prior_reliability=0.1133
competition=La Liga | totalCross: 0.7874 -> 0.7807 wasFouled: 1.0956 -> 1.09 | 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': 'Ville Koski, Nahuel Tenaglia', '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.9395, 'skill_edge': -0.0111, 'height_edge': -0.03, 'attacker_skill': 0.4374, 'defender_skill': 0.4622, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Ville Koski', 'market_value': 4300000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4712}, {'player': 'Nahuel Tenaglia', 'market_value': 3200000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4531}], 'xg_override': 0.145} | totalShots: 1.4304 -> 1.3439 shotOffTarget: 0.8924 -> 0.8384 onTargetScoringAttempt: 0.538 -> 0.5055 expectedGoalsOnTarget: 0.2097 -> 0.197 goals: 0.1785 -> 0.1677 expectedGoals: 0.1543 -> 0.145 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.86 (squad xG sum 0.7665, xG scale 1.1206, xA scale 1.1206, team xA 0.64 = 0.75 x lambda) | scoreline_reset=true
team_lambda=0.859
squad_xg_sum=0.7665
squad_xa_sum=0.5741
team_expected_assists=0.6433
team_xa_to_xg_ratio=0.7489 | expected_goals: 0.145 -> 0.1625 expected_assists: 0.0797 -> 0.0893 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 81.0) | match_squad_rank=11
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.15
goal_rate=0.1677
scorer_weight=0.1814 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0854
assist_rate=0.0
provider_weight=0.0714 | - |
|
| Ferrán Jutglà | F | 73 | 0 | 0.21 | 0.17 | ok | 2 | 1.2 | 6.7 | 59.4 | 28 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0009, quality 0.531) | market_value_eur=10700000
quality_factor=0.5306
boost_factor=1.0009
reference_quality=0.505
history_matches=38
history_shrink=0.1163 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0131) | blend_weight=0.0131
history_matches=38
season_overlap_discount=1.0
per90_to_match_factor=0.8092
prior_reliability=0.1733
competition=La Liga | totalShots: 1.568 -> 1.5516 wasFouled: 1.5501 -> 1.5583 onTargetScoringAttempt: 0.6078 -> 0.5998 totalOffside: 0.5433 -> 0.5362 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Ville Koski', 'matchup_zone': 'Shadow Striker vs Centre Back — Half-Space Threat', 'duel_win_rate': 0.437, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9805, 'skill_edge': 0.0268, 'height_edge': -0.04, 'attacker_skill': 0.5306, 'defender_skill': 0.4712, 'attacker_role': 'SS', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Ville Koski', 'market_value': 4300000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4712}], 'xg_override': 0.1884} | totalShots: 1.56 -> 1.5296 shotOffTarget: 0.9602 -> 0.9415 onTargetScoringAttempt: 0.5998 -> 0.5881 expectedGoalsOnTarget: 0.2996 -> 0.2938 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.86 (squad xG sum 0.7665, xG scale 1.1206, xA scale 1.1206, team xA 0.64 = 0.75 x lambda) | scoreline_reset=true
team_lambda=0.859
squad_xg_sum=0.7665
squad_xa_sum=0.5741
team_expected_assists=0.6433
team_xa_to_xg_ratio=0.7489 | expected_goals: 0.1884 -> 0.2113 expected_assists: 0.0537 -> 0.0602 | 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 skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.1905
goal_rate=0.2025
scorer_weight=0.2238 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0584
assist_rate=0.0728
provider_weight=0.0713 | - |
|
| Javi Galán | D | 77 | 0 | 0.01 | 0.01 | ok | 0 | 0.2 | 6.8 | 60.4 | 34 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9973, quality 0.437) | market_value_eur=1700000
quality_factor=0.4374
boost_factor=0.9973
reference_quality=0.505
history_matches=32
history_shrink=0.1351 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0088) | blend_weight=0.0088
history_matches=32
season_overlap_discount=1.0
per90_to_match_factor=0.8568
prior_reliability=0.1
competition=La Liga | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=true | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Toni Martínez', 'matchup_zone': 'Shape fallback'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.86 (squad xG sum 0.7665, xG scale 1.1206, xA scale 1.1206, team xA 0.64 = 0.75 x lambda) | scoreline_reset=true
team_lambda=0.859
squad_xg_sum=0.7665
squad_xa_sum=0.5741
team_expected_assists=0.6433
team_xa_to_xg_ratio=0.7489 | expected_assists: 0.0682 -> 0.0764 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 77.0) | match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0056
goal_rate=0.0
scorer_weight=0.0051 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0736
assist_rate=0.0058
provider_weight=0.0611 | - |
|
| Hugo Burcio | M | 86 | 0 | 0.10 | 0.03 | 272% | 1 | 0.2 | 6.7 | 22.1 | 12 | XGBoost M_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9887, quality 0.437) | market_value_eur=1900000
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': 'Ville Koski', 'matchup_zone': 'LWB vs CB', 'duel_win_rate': 0.413, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9894, 'skill_edge': -0.0152, 'height_edge': 0.008, 'attacker_skill': 0.4374, 'defender_skill': 0.4712, 'attacker_role': 'LWB', 'attacker_mv_price_index': 0.7, 'defender_adjusted_parts': [{'player': 'Ville Koski', 'market_value': 4300000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4712}], 'xg_override': 0.0849} | aerialWon: 0.2241 -> 1.2 totalShots: 1.0343 -> 1.0233 shotOffTarget: 0.7258 -> 0.7181 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.86 (squad xG sum 0.7665, xG scale 1.1206, xA scale 1.1206, team xA 0.64 = 0.75 x lambda) | scoreline_reset=true
team_lambda=0.859
squad_xg_sum=0.7665
squad_xa_sum=0.5741
team_expected_assists=0.6433
team_xa_to_xg_ratio=0.7489 | expected_goals: 0.0849 -> 0.0951 expected_assists: 0.0443 -> 0.0496 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 15 by projected rating, fifa_overall 67.0) | match_squad_rank=15
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0907
goal_rate=0.1465
scorer_weight=0.1189 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0484
assist_rate=0.0393
provider_weight=0.047 | - |
|
| Aleix Febas | M | 85 | 0 | 0.08 | 0.04 | 114% | 1 | 0.5 | 6.9 | 59.7 | 26 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9986, quality 0.465) | market_value_eur=5200000
quality_factor=0.4646
boost_factor=0.9986
reference_quality=0.505
history_matches=39
history_shrink=0.1136 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0089) | blend_weight=0.0089
history_matches=39
season_overlap_discount=1.0
per90_to_match_factor=0.9408
prior_reliability=0.12
competition=La Liga | fouls: 1.5694 -> 1.5787 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Pablo Ibáñez', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.411, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9431, 'skill_edge': 0.0053, 'height_edge': -0.044, 'attacker_skill': 0.4717, 'defender_skill': 0.46, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Pablo Ibáñez', 'market_value': 4099999, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.46}], 'xg_override': 0.0692} | aerialWon: 0.109 -> 0.8 totalShots: 0.811 -> 0.7649 shotOffTarget: 0.4816 -> 0.4542 onTargetScoringAttempt: 0.3294 -> 0.3107 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.86 (squad xG sum 0.7665, xG scale 1.1206, xA scale 1.1206, team xA 0.64 = 0.75 x lambda) | scoreline_reset=true
team_lambda=0.859
squad_xg_sum=0.7665
squad_xa_sum=0.5741
team_expected_assists=0.6433
team_xa_to_xg_ratio=0.7489 | expected_goals: 0.0692 -> 0.0775 expected_assists: 0.0842 -> 0.0944 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 79.0) | match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0746
goal_rate=0.068
scorer_weight=0.0767 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0901
assist_rate=0.0689
provider_weight=0.0836 | - |
|
| Álvaro Núñez | D | 81 | 0 | 0.02 | 0.01 | 160% | 1 | 0.3 | 6.8 | 34.3 | 26 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9975, quality 0.449) | market_value_eur=3900000
quality_factor=0.4486
boost_factor=0.9975
reference_quality=0.505
history_matches=29
history_shrink=0.1471 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0121) | blend_weight=0.0121
history_matches=29
season_overlap_discount=1.0
per90_to_match_factor=0.9022
prior_reliability=0.1267
competition=La Liga | interceptionWon: 0.7721 -> 0.78 totalCross: 1.49 -> 1.4835 wonTackle: 0.9129 -> 0.9076 | 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': 'Lucas Boyé', 'matchup_zone': 'Shape fallback'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.86 (squad xG sum 0.7665, xG scale 1.1206, xA scale 1.1206, team xA 0.64 = 0.75 x lambda) | scoreline_reset=true
team_lambda=0.859
squad_xg_sum=0.7665
squad_xa_sum=0.5741
team_expected_assists=0.6433
team_xa_to_xg_ratio=0.7489 | expected_assists: 0.0588 -> 0.0659 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 76.0) | match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0156
goal_rate=0.0
scorer_weight=0.0126 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0638
assist_rate=0.0204
provider_weight=0.0527 | - |
|
| Yoel Lago | D | 89 | 0 | 0.02 | 0.00 | 236% | 0 | 0.1 | 6.8 | 42.1 | 26 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9989, quality 0.487) | market_value_eur=7000000
quality_factor=0.4866
boost_factor=0.9989
reference_quality=0.505
history_matches=20
history_shrink=0.2 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0303) | blend_weight=0.0303
history_matches=20
season_overlap_discount=1.0
per90_to_match_factor=0.9912
prior_reliability=0.2333
competition=La Liga | fouls: 2.1519 -> 2.1382 totalShots: 0.3629 -> 0.3519 totalCross: 0.0 -> 0.0086 interceptionWon: 1.1822 -> 1.1893 wonTackle: 0.7893 -> 0.7825 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Jonny Otto', 'matchup_zone': 'LWB vs CB'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.86 (squad xG sum 0.7665, xG scale 1.1206, xA scale 1.1206, team xA 0.64 = 0.75 x lambda) | scoreline_reset=true
team_lambda=0.859
squad_xg_sum=0.7665
squad_xa_sum=0.5741
team_expected_assists=0.6433
team_xa_to_xg_ratio=0.7489 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 71.0) | match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0151
goal_rate=0.0
scorer_weight=0.0122 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0129
assist_rate=0.0
provider_weight=0.0106 | - |
|
| Sebastián Cáceres | D | 90 | 0 | 0.01 | 0.00 | 206% | 1 | 0.2 | 6.8 | 23.8 | 6 | 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.9884, quality 0.451) | market_value_eur=4099999
quality_factor=0.4511
boost_factor=0.9884
reference_quality=0.505
history_matches=2
history_shrink=0.7143 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Lucas Boyé', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.86 (squad xG sum 0.7665, xG scale 1.1206, xA scale 1.1206, team xA 0.64 = 0.75 x lambda) | scoreline_reset=true
team_lambda=0.859
squad_xg_sum=0.7665
squad_xa_sum=0.5741
team_expected_assists=0.6433
team_xa_to_xg_ratio=0.7489 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 75.0) | match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0133
goal_rate=0.0
scorer_weight=0.0108 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0129
assist_rate=0.0
provider_weight=0.0106 | - |
|
| Ionuț Radu | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 6.9 | 65.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.0004, quality 0.519) | market_value_eur=9700000
quality_factor=0.5189
boost_factor=1.0004
reference_quality=0.505
history_matches=46
history_shrink=0.098 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0170) | blend_weight=0.017
history_matches=46
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.2667
competition=La Liga | saves: 2.882 -> 2.8925 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Toni Martínez, Lucas Boyé', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 0.8739} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.86 (squad xG sum 0.7665, xG scale 1.1206, xA scale 1.1206, team xA 0.64 = 0.75 x lambda) | scoreline_reset=true
team_lambda=0.859
squad_xg_sum=0.7665
squad_xa_sum=0.5741
team_expected_assists=0.6433
team_xa_to_xg_ratio=0.7489 | shots_faced: 8.3 -> 8.1 expected_saves: 2.03 -> 1.99 high_pressure_saves: 0.7 -> 0.68 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 78.0) | match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=0.9142 | - | 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.6035 | - |
|
| Marcos Alonso | D | 87 | 0 | 0.04 | 0.08 | 45% | 1 | 0.7 | 7.1 | 62.2 | 27 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9976, quality 0.437) | market_value_eur=1300000
quality_factor=0.4374
boost_factor=0.9976
reference_quality=0.505
history_matches=38
history_shrink=0.1163 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0131) | blend_weight=0.0131
history_matches=38
season_overlap_discount=1.0
per90_to_match_factor=0.963
prior_reliability=0.1733
competition=La Liga | interceptionWon: 1.1502 -> 1.1739 wonTackle: 0.9483 -> 0.9553 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Abderrahman Rebbach', 'matchup_zone': 'Shape fallback'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.86 (squad xG sum 0.7665, xG scale 1.1206, xA scale 1.1206, team xA 0.64 = 0.75 x lambda) | scoreline_reset=true
team_lambda=0.859
squad_xg_sum=0.7665
squad_xa_sum=0.5741
team_expected_assists=0.6433
team_xa_to_xg_ratio=0.7489 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 79.0) | match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0407
goal_rate=0.0061
scorer_weight=0.0332 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0453
assist_rate=0.0
provider_weight=0.0371 | - |
|
| Team totals | 0 | 0.86 | | 11 | | 6.8 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Altay Bayındır | G | 4.5m | 11.3% | Market-value substitute prior |
| Javi Rodríguez | D | 10.3m | 32.7% | Market-value substitute prior |
| Abdoulaye Faye | D | 13.6m | 21.8% | Market-value substitute prior |
| Fer López | M | 22.6m | 52.9% | Market-value substitute prior |
| Miguel Román | M | 34.9m | 41.4% | Market-value substitute prior |
| Williot Swedberg | F | 30.4m | 44.5% | Market-value substitute prior |
Alavés — projected line vs season baseline (5-3-2)
| Player | Pos | Min | Proj G | Proj xG | Season xG/g | | Proj Sh | Season Sh/g | Proj Rtg | Season Rtg | Rec | Model / FBref Prior |
|---|
| Ville Koski | D | 89 | 0 | 0.09 | 0.04 | 120% | 0 | 0.1 | 6.7 | 37.1 | 22 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9957, quality 0.454) | market_value_eur=4300000
quality_factor=0.4535
boost_factor=0.9957
reference_quality=0.505
history_matches=13
history_shrink=0.2778 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0349) | blend_weight=0.0349
history_matches=13
season_overlap_discount=1.0
per90_to_match_factor=0.9923
prior_reliability=0.1933
competition=La Liga | fouls: 1.3379 -> 1.2912 totalShots: 0.3872 -> 0.3737 onTargetScoringAttempt: 0.3521 -> 0.3398 wonTackle: 0.6428 -> 0.6323 goals: 0.1652 -> 0.1594 wasFouled: 0.1581 -> 0.1526 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Hugo Burcio', 'matchup_zone': 'LWB vs CB'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.85 (squad xG sum 1.1554, xG scale 0.7348, xA scale 1.0488, team xA 0.55 = 0.65 x lambda) | scoreline_reset=true
team_lambda=0.849
squad_xg_sum=1.1554
squad_xa_sum=0.5262
team_expected_assists=0.5518
team_xa_to_xg_ratio=0.65 | expected_goals: 0.1267 -> 0.0931 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 68.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.0889
goal_rate=0.1594
scorer_weight=0.1103 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0159
assist_rate=0.0
provider_weight=0.0128 | - |
|
| Jonny Otto | D | 88 | 0 | 0.01 | 0.01 | ok | 0 | 0.2 | 6.8 | 53.6 | 30 | XGBoost D_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9978, quality 0.437) | market_value_eur=2100000
quality_factor=0.4374
boost_factor=0.9978
reference_quality=0.505
history_matches=41
history_shrink=0.1087 | - | 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': 'Yoel Lago', 'matchup_zone': 'LWB vs CB'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.85 (squad xG sum 1.1554, xG scale 0.7348, xA scale 1.0488, team xA 0.55 = 0.65 x lambda) | scoreline_reset=true
team_lambda=0.849
squad_xg_sum=1.1554
squad_xa_sum=0.5262
team_expected_assists=0.5518
team_xa_to_xg_ratio=0.65 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 84.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.0107
goal_rate=0.0
scorer_weight=0.0086 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0299
assist_rate=0.0
provider_weight=0.0243 | - |
|
| Nahuel Tenaglia | D | 86 | 0 | 0.03 | 0.04 | 36% | 1 | 0.6 | 6.8 | 61.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 0.9980, quality 0.440) | market_value_eur=3200000
quality_factor=0.4399
boost_factor=0.998
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.9558
prior_reliability=0.2
competition=La Liga | totalShots: 0.6318 -> 0.6403 fouls: 0.7834 -> 0.7899 interceptionWon: 1.1823 -> 1.1877 wasFouled: 1.3585 -> 1.3532 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Iago Aspas', '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.85 (squad xG sum 1.1554, xG scale 0.7348, xA scale 1.0488, team xA 0.55 = 0.65 x lambda) | scoreline_reset=true
team_lambda=0.849
squad_xg_sum=1.1554
squad_xa_sum=0.5262
team_expected_assists=0.5518
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0354 -> 0.026 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 77.0) | match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0257
goal_rate=0.0829
scorer_weight=0.0325 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0351
assist_rate=0.0
provider_weight=0.0286 | - |
|
| Antonio Sivera | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 7.0 | 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.9990, quality 0.470) | market_value_eur=5600000
quality_factor=0.4695
boost_factor=0.999
reference_quality=0.505
history_matches=46
history_shrink=0.098 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0127) | blend_weight=0.0127
history_matches=46
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.2
competition=La Liga | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Ferrán Jutglà, Iago Aspas', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 0.8347} | - | 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.85 (squad xG sum 1.1554, xG scale 0.7348, xA scale 1.0488, team xA 0.55 = 0.65 x lambda) | scoreline_reset=true
team_lambda=0.849
squad_xg_sum=1.1554
squad_xa_sum=0.5262
team_expected_assists=0.5518
team_xa_to_xg_ratio=0.65 | shots_faced: 7.9 -> 8.2 expected_saves: 1.93 -> 2.01 high_pressure_saves: 0.67 -> 0.69 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 85.0) | match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation 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.9123 | - | 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.5324 | - |
|
| Nicolás Valentini | D | 86 | 0 | 0.00 | 0.00 | 100% | 0 | 0.1 | 6.7 | 38.4 | 9 | FBref Prior D_service |
Step-by-step (10 steps)| 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.0022) | blend_weight=0.0022
history_matches=5
season_overlap_discount=1.0
per90_to_match_factor=0.9508
prior_reliability=0.0067
competition=La Liga | fouls: 0.3849 -> 0.4048 totalShots: 0.3776 -> 0.3937 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Ferrán Jutglà', 'matchup_zone': 'Shape fallback'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 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.85 (squad xG sum 1.1554, xG scale 0.7348, xA scale 1.0488, team xA 0.55 = 0.65 x lambda) | scoreline_reset=true
team_lambda=0.849
squad_xg_sum=1.1554
squad_xa_sum=0.5262
team_expected_assists=0.5518
team_xa_to_xg_ratio=0.65 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 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.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.023
assist_rate=0.0
provider_weight=0.0186 | - |
|
| Abderrahman Rebbach | F | 80 | 0 | 0.05 | 0.04 | 38% | 1 | 0.6 | 6.8 | 51.0 | 41 | XGBoost F_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9976, quality 0.437) | market_value_eur=2400000
quality_factor=0.4374
boost_factor=0.9976
reference_quality=0.505
history_matches=38
history_shrink=0.1163 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=true | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Yoel Lago, Sebastián Cáceres', '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.9174, 'skill_edge': -0.0242, 'height_edge': -0.032, 'attacker_skill': 0.4374, 'defender_skill': 0.4913, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Yoel Lago', 'market_value': 7000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5146}, {'player': 'Sebastián Cáceres', 'market_value': 4099999, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4679}], 'xg_override': 0.0745} | totalShots: 0.9894 -> 0.9077 shotOffTarget: 0.6806 -> 0.6244 onTargetScoringAttempt: 0.3088 -> 0.2833 goals: 0.0927 -> 0.085 expectedGoals: 0.0812 -> 0.0745 | 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.85 (squad xG sum 1.1554, xG scale 0.7348, xA scale 1.0488, team xA 0.55 = 0.65 x lambda) | scoreline_reset=true
team_lambda=0.849
squad_xg_sum=1.1554
squad_xa_sum=0.5262
team_expected_assists=0.5518
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0745 -> 0.0547 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 78.0) | match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0532
goal_rate=0.085
scorer_weight=0.0593 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0485
assist_rate=0.0758
provider_weight=0.0621 | - |
|
| Antonio Blanco | M | 83 | 0 | 0.04 | 0.04 | ok | 1 | 1.1 | 6.8 | 64.0 | 31 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0004, quality 0.519) | market_value_eur=9700000
quality_factor=0.5189
boost_factor=1.0004
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.9168
prior_reliability=0.2
competition=La Liga | fouls: 1.5327 -> 1.5489 interceptionWon: 1.4305 -> 1.444 totalCross: 0.9861 -> 0.9933 totalShots: 0.792 -> 0.7978 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Aleix Febas', 'matchup_zone': 'Central Mid vs Central Mid — Box-to-Box Midfield Contest', 'duel_win_rate': 0.479, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0866, 'skill_edge': 0.0269, 'height_edge': 0.032, 'attacker_skill': 0.5316, 'defender_skill': 0.4717, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Aleix Febas', 'market_value': 5200000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.4717}], 'xg_override': 0.0591} | aerialWon: 0.281 -> 0.9 totalShots: 0.7978 -> 0.8669 shotOffTarget: 0.5805 -> 0.6308 onTargetScoringAttempt: 0.2086 -> 0.2267 | 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.85 (squad xG sum 1.1554, xG scale 0.7348, xA scale 1.0488, team xA 0.55 = 0.65 x lambda) | scoreline_reset=true
team_lambda=0.849
squad_xg_sum=1.1554
squad_xa_sum=0.5262
team_expected_assists=0.5518
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0591 -> 0.0434 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 78.0) | match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0425
goal_rate=0.0606
scorer_weight=0.044 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0533
assist_rate=0.0758
provider_weight=0.0674 | - |
|
| Denis Suárez | M | 72 | 0 | 0.07 | 0.03 | 117% | 1 | 0.3 | 6.9 | 54.6 | 27 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9976, quality 0.437) | market_value_eur=1100000
quality_factor=0.4374
boost_factor=0.9976
reference_quality=0.505
history_matches=37
history_shrink=0.119 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0062) | blend_weight=0.0062
history_matches=37
season_overlap_discount=1.0
per90_to_match_factor=0.7968
prior_reliability=0.08
competition=La Liga | totalCross: 3.7138 -> 3.7484 fouls: 0.6893 -> 0.6974 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Aleix Febas', 'matchup_zone': 'Central Mid vs Central Mid — Box-to-Box Midfield Contest', 'duel_win_rate': 0.437, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0244, 'skill_edge': -0.0154, 'height_edge': 0.032, 'attacker_skill': 0.4374, 'defender_skill': 0.4717, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Aleix Febas', 'market_value': 5200000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.4717}], 'xg_override': 0.0886} | aerialWon: 0.1102 -> 0.9 totalShots: 0.9436 -> 0.9666 shotOffTarget: 0.6312 -> 0.6466 onTargetScoringAttempt: 0.3124 -> 0.32 | 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.85 (squad xG sum 1.1554, xG scale 0.7348, xA scale 1.0488, team xA 0.55 = 0.65 x lambda) | scoreline_reset=true
team_lambda=0.849
squad_xg_sum=1.1554
squad_xa_sum=0.5262
team_expected_assists=0.5518
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0886 -> 0.0651 expected_assists: 0.1605 -> 0.1683 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 74.0) | match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.063
goal_rate=0.0994
scorer_weight=0.0702 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.1549
assist_rate=0.1369
provider_weight=0.1494 | - |
|
| Lucas Boyé | F | 76 | 0 | 0.21 | 0.34 | 39% | 2 | 2.0 | 6.7 | 61.4 | 26 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9986, quality 0.466) | market_value_eur=5300000
quality_factor=0.4659
boost_factor=0.9986
reference_quality=0.505
history_matches=36
history_shrink=0.122 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0085) | blend_weight=0.0085
history_matches=36
season_overlap_discount=1.0
per90_to_match_factor=0.8422
prior_reliability=0.1067
competition=La Liga | wonTackle: 1.1926 -> 1.2048 wasFouled: 1.8194 -> 1.8129 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Yoel Lago, Sebastián Cáceres', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.185, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 0.9773, 'skill_edge': -0.0114, 'height_edge': -0.004, 'attacker_skill': 0.4659, 'defender_skill': 0.4913, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Yoel Lago', 'market_value': 7000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5146}, {'player': 'Sebastián Cáceres', 'market_value': 4099999, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4679}], 'xg_override': 0.2833} | totalShots: 2.1417 -> 2.0931 shotOffTarget: 1.4168 -> 1.3846 onTargetScoringAttempt: 0.7234 -> 0.707 expectedGoalsOnTarget: 0.3956 -> 0.3866 expectedGoals: 0.2899 -> 0.2833 goals: 0.2834 -> 0.277 | 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.85 (squad xG sum 1.1554, xG scale 0.7348, xA scale 1.0488, team xA 0.55 = 0.65 x lambda) | scoreline_reset=true
team_lambda=0.849
squad_xg_sum=1.1554
squad_xa_sum=0.5262
team_expected_assists=0.5518
team_xa_to_xg_ratio=0.65 | expected_goals: 0.2833 -> 0.2082 | 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.188
goal_rate=0.277
scorer_weight=0.2043 | - | 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.008
provider_weight=0.0358 | - |
|
| Toni Martínez | F | 77 | 0 | 0.24 | 0.34 | ok | 2 | 2.6 | 6.8 | 66.0 | 30 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9995, quality 0.490) | market_value_eur=7300000
quality_factor=0.4903
boost_factor=0.9995
reference_quality=0.505
history_matches=44
history_shrink=0.102 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0115) | blend_weight=0.0115
history_matches=44
season_overlap_discount=1.0
per90_to_match_factor=0.8537
prior_reliability=0.1733
competition=La Liga | onTargetScoringAttempt: 0.8653 -> 0.8554 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Yoel Lago, Sebastián Cáceres', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.184, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 0.9758, 'skill_edge': -0.0005, 'height_edge': -0.016, 'attacker_skill': 0.4903, 'defender_skill': 0.4913, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Yoel Lago', 'market_value': 7000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5146}, {'player': 'Sebastián Cáceres', 'market_value': 4099999, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4679}], 'xg_override': 0.33} | totalShots: 2.329 -> 2.2726 shotOffTarget: 1.464 -> 1.4286 onTargetScoringAttempt: 0.8554 -> 0.8347 goals: 0.3896 -> 0.3802 bigChanceMissed: 0.3881 -> 0.3787 expectedGoals: 0.3382 -> 0.33 expectedGoalsOnTarget: 0.2673 -> 0.2608 | 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.85 (squad xG sum 1.1554, xG scale 0.7348, xA scale 1.0488, team xA 0.55 = 0.65 x lambda) | scoreline_reset=true
team_lambda=0.849
squad_xg_sum=1.1554
squad_xa_sum=0.5262
team_expected_assists=0.5518
team_xa_to_xg_ratio=0.65 | expected_goals: 0.33 -> 0.2426 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 78.0) | match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.2154
goal_rate=0.3802
scorer_weight=0.2746 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0342
assist_rate=0.0209
provider_weight=0.0297 | - |
|
| Pablo Ibáñez | M | 80 | 0 | 0.05 | 0.08 | 36% | 1 | 1.2 | 6.8 | 63.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 0.9984, quality 0.451) | market_value_eur=4099999
quality_factor=0.4511
boost_factor=0.9984
reference_quality=0.505
history_matches=45
history_shrink=0.1 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0130) | blend_weight=0.013
history_matches=45
season_overlap_discount=1.0
per90_to_match_factor=0.8892
prior_reliability=0.2
competition=La Liga | fouls: 1.7146 -> 1.7077 totalShots: 0.9808 -> 0.9874 interceptionWon: 1.0629 -> 1.0683 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Aleix Febas', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.85 (squad xG sum 1.1554, xG scale 0.7348, xA scale 1.0488, team xA 0.55 = 0.65 x lambda) | scoreline_reset=true
team_lambda=0.849
squad_xg_sum=1.1554
squad_xa_sum=0.5262
team_expected_assists=0.5518
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0736 -> 0.0541 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 73.0) | match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0527
goal_rate=0.0611
scorer_weight=0.0486 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.046
assist_rate=0.0775
provider_weight=0.0589 | - |
|
| Team totals | 0 | 0.85 | | 10 | | 6.8 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Grégoire Swiderski | G | 4.4m | 10.9% | Market-value substitute prior |
| Youssef Enriquez | D | 13.7m | 30.4% | Market-value substitute prior |
| Victor Parada | D | 13.6m | 30.1% | Market-value substitute prior |
| Ángel Pérez | M | 22.1m | 30.9% | Market-value substitute prior |
| Carles Aleñá | M | 13.2m | 69.2% | Market-value substitute prior |
| Miguel Rodríguez | F | 25.4m | 56.2% | Market-value substitute prior |
Antagonist / tactical summary
Midfield is evenly contested — Aleix Febas vs Antonio Blanco will be the pivotal duel. Total antagonist xG — Home: 0.62, Away: 0.85. Home danger zone: Shadow Striker vs Centre Back — Half-Space Threat. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Midfield — possession 49.3% / 50.7%, dominance ratio 0.48, key duel: Aleix Febas vs Antonio Blanco
Hugo Burcio xG 0.08Aleix Febas xG 0.07Hugo Álvarez xG 0.13Jonny Otto xG 0.01Antonio Blanco xG 0.06Denis Suárez xG 0.09
Summary
Antagonist matchup analysis for Celta vs Alavés. Most likely scoreline: 0-0. Lambdas derived from 5 home and 6 away individual player duels. Head-to-head: Celta 6W-2D-2L vs Alavés over 10 meetings.
Tactical parity between 3-4-3 and 5-3-2. Match outcome driven primarily by individual player quality. Midfield is evenly contested — Aleix Febas vs Antonio Blanco will be the pivotal duel. Total antagonist xG — Home: 0.62, Away: 0.85. Home danger zone: Shadow Striker vs Centre Back — Half-Space Threat. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Forest vs Arsenal
Premier League · 20261018 · 3-4-2-1 vs 4-2-3-1
Predicted 1-1Winner: DrawWinning H 2-1 (6.1%)Winning A 1-2 (9.8%)Confidence 0.75λ home/away 1.12 / 1.79Most-likely P 11.0%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset TracingAntagonist + XGBoost match analysis for Forest vs Arsenal. 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.150, Away 1.742). Final calibrated Poisson lambdas: Home 1.117, Away 1.792 (most likely score 1-1).
Home Starters 11/11 XGBoost (9 FBref) Away Starters 11/11 XGBoost (11 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.15 / 1.74 Final λ (H/A) 1.12 / 1.79
FBref Team Priors: Nottingham Forest (Gls/90: 1.0, GA/90: 1.0 → E[λ]: 1.379) vs Arsenal (Gls/90: 2.0, GA/90: 2.0 → E[λ]: 1.379) | Blend Weight: 0.192
Modeling Pipeline Stages (5 layers)
- 1. XGBoost player regressions for volume & event rates with market-value quality scaling
- 2. Multi-source prior blending (FBref 2026-2027 tables + Sofascore season history)
- 3. Antagonist formation duel matrix resolving 1v1 and zonal matchups
- 4. Team-level prior calibration (FBref possession and attack/defense efficiencies)
- 5. Bivariate Poisson matrix with Dixon-Coles low-score correction
Standing & form context
| Metric | Forest | Arsenal |
|---|
| League position | 15.00 | 2.00 |
| Points per game | 1.09 | 1.92 |
| Attack index | 0.85 | 1.04 |
| Defense (concede) index | 0.85 | 0.97 |
| Form multiplier | 0.96 | 1.04 |
| Standing λ multiplier | 0.88 | 1.01 |
Lambda decomposition (how the goal rates were built)
| Stage | Forest λ | Arsenal λ |
|---|
| FBref Squad Prior E[λ] (weight 0.192) | 1.379 | 1.379 |
| Pre-competitive-floor | 1.117 | 1.792 |
| Pre-calibration (Micro-duels) | 1.150 | 1.742 |
| Final λ | 1.117 | 1.792 |
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.0% |
| 1-2 | 9.8% |
| 0-1 | 9.7% |
| 0-2 | 8.8% |
| 2-1 | 6.1% |
| Home win | 23.5% |
| Draw | 23.3% |
| Away win | 53.1% |
| Over 2.5 | 55.6% |
| BTTS yes | 56.1% |
Pregame fair line — favorite Arsenal (53.1%), fair total 2.91, fair spread -0.68
Projected players vs season baseline
Proj = projected for this match · Season = this season's per-game average from match data · deviation badge compares projected xG to the player's season xG/game.
Forest — projected line vs season baseline (3-4-2-1)
| Player | Pos | Min | Proj G | Proj xG | Season xG/g | | Proj Sh | Season Sh/g | Proj Rtg | Season Rtg | Rec | Model / FBref Prior |
|---|
| Liam Delap | F | 79 | 0 | 0.27 | 0.18 | 51% | 2 | 1.2 | 6.8 | 51.6 | 29 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0102, quality 0.764) | market_value_eur=37000000
quality_factor=0.7641
boost_factor=1.0102
reference_quality=0.505
history_matches=33
history_shrink=0.1316 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0017) | blend_weight=0.0017
history_matches=33
season_overlap_discount=1.0
per90_to_match_factor=0.8746
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': 'Bruno Guimarães, Riccardo Calafiori', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle', 'duel_win_rate': 0.219, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.9244, 'skill_edge': -0.0554, 'height_edge': 0.004, 'attacker_skill': 0.7641, 'defender_skill': 0.8873, 'attacker_role': 'SS', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Bruno Guimarães', 'market_value': 77000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8893}, {'player': 'Riccardo Calafiori', 'market_value': 63000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8852}], 'xg_override': 0.3386} | totalShots: 2.1849 -> 2.0197 shotOffTarget: 1.2776 -> 1.181 onTargetScoringAttempt: 0.9041 -> 0.8358 bigChanceMissed: 0.6184 -> 0.5716 expectedGoals: 0.3663 -> 0.3386 goals: 0.3324 -> 0.3073 expectedGoalsOnTarget: 0.1576 -> 0.1457 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.12 (squad xG sum 1.4209, xG scale 0.7861, xA scale 0.8123, team xA 0.73 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.117
squad_xg_sum=1.4209
squad_xa_sum=0.8939
team_expected_assists=0.726
team_xa_to_xg_ratio=0.65 | expected_goals: 0.3386 -> 0.2663 expected_assists: 0.0611 -> 0.0496 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 77.0) | match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.2338
goal_rate=0.3073
scorer_weight=0.2449 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0484
assist_rate=0.0
provider_weight=0.0397 | - |
|
| Morgan Gibbs-White | M | 89 | 0 | 0.18 | 0.27 | 34% | 2 | 1.8 | 7.1 | 61.2 | 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.0117, quality 0.878) | market_value_eur=76000000
quality_factor=0.8781
boost_factor=1.0117
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.9884
prior_reliability=0.1333
competition=Premier League | totalCross: 3.8286 -> 3.8119 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Bruno Guimarães', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.404, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9328, 'skill_edge': -0.0017, 'height_edge': -0.044, 'attacker_skill': 0.8855, 'defender_skill': 0.8893, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Bruno Guimarães', 'market_value': 77000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8893}], 'xg_override': 0.2277} | aerialWon: 0.5532 -> 0.8 totalShots: 2.1674 -> 2.0218 shotOffTarget: 1.3318 -> 1.2423 onTargetScoringAttempt: 0.8342 -> 0.7781 bigChanceMissed: 0.3484 -> 0.325 goals: 0.2755 -> 0.257 expectedGoalsOnTarget: 0.2542 -> 0.2371 expectedGoals: 0.2441 -> 0.2277 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.12 (squad xG sum 1.4209, xG scale 0.7861, xA scale 0.8123, team xA 0.73 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.117
squad_xg_sum=1.4209
squad_xa_sum=0.8939
team_expected_assists=0.726
team_xa_to_xg_ratio=0.65 | expected_goals: 0.2277 -> 0.179 expected_assists: 0.1898 -> 0.1542 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 83.0) | match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1639
goal_rate=0.257
scorer_weight=0.1979 | - | integer_assist_projection | Team scoreline allocation: 1 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.1429
assist_rate=0.1812
provider_weight=0.1487 | - |
|
| Dan Ndoye | F | 68 | 1 | 0.23 | 0.07 | 219% | 2 | 0.7 | 6.9 | 30.6 | 31 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.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.0087) | blend_weight=0.0087
history_matches=30
season_overlap_discount=1.0
per90_to_match_factor=0.7557
prior_reliability=0.0933
competition=Premier League | totalCross: 1.1036 -> 1.094 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Bruno Guimarães, Riccardo Calafiori', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle', 'duel_win_rate': 0.202, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.9004, 'skill_edge': -0.0638, 'height_edge': -0.004, 'attacker_skill': 0.7455, 'defender_skill': 0.8873, 'attacker_role': 'SS', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Bruno Guimarães', 'market_value': 77000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8893}, {'player': 'Riccardo Calafiori', 'market_value': 63000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8852}], 'xg_override': 0.2886} | totalShots: 2.1499 -> 1.9358 shotOffTarget: 1.2583 -> 1.133 onTargetScoringAttempt: 0.8916 -> 0.8028 bigChanceMissed: 0.8156 -> 0.7344 goals: 0.3904 -> 0.3515 expectedGoals: 0.3205 -> 0.2886 expectedGoalsOnTarget: 0.2926 -> 0.2635 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.12 (squad xG sum 1.4209, xG scale 0.7861, xA scale 0.8123, team xA 0.73 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.117
squad_xg_sum=1.4209
squad_xa_sum=0.8939
team_expected_assists=0.726
team_xa_to_xg_ratio=0.65 | expected_goals: 0.2886 -> 0.2269 expected_assists: 0.0904 -> 0.0734 | 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=1
goal_probability=0.203
goal_rate=0.3515
scorer_weight=0.2691 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0708
assist_rate=0.0084
provider_weight=0.0587 | - |
|
| Ibrahim Sangaré | M | 81 | 0 | 0.03 | 0.02 | 48% | 1 | 0.4 | 6.9 | 53.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.0055, quality 0.641) | market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.0055
reference_quality=0.505
history_matches=32
history_shrink=0.1351 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0059) | blend_weight=0.0059
history_matches=32
season_overlap_discount=1.0
per90_to_match_factor=0.9008
prior_reliability=0.0667
competition=Premier League | interceptionWon: 1.0641 -> 1.0579 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Ezri Konsa', 'matchup_zone': 'Left Wingback vs Right Back — Overlapping Run', 'duel_win_rate': 0.36, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.941, 'skill_edge': -0.0721, 'height_edge': 0.032, 'attacker_skill': 0.7176, 'defender_skill': 0.8778, 'attacker_role': 'LWB', 'attacker_mv_price_index': 0.7, 'defender_adjusted_parts': [{'player': 'Ezri Konsa', 'market_value': 53000000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.8778}], 'xg_override': 0.0368} | aerialWon: 1.1402 -> 1.3 totalShots: 0.5591 -> 0.5261 shotOffTarget: 0.401 -> 0.3773 onTargetScoringAttempt: 0.1552 -> 0.146 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.12 (squad xG sum 1.4209, xG scale 0.7861, xA scale 0.8123, team xA 0.73 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.117
squad_xg_sum=1.4209
squad_xa_sum=0.8939
team_expected_assists=0.726
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0368 -> 0.0289 expected_assists: 0.0481 -> 0.0391 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 78.0) | match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0285
goal_rate=0.0444
scorer_weight=0.0314 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0383
assist_rate=0.047
provider_weight=0.0387 | - |
|
| James McAtee | M | 84 | 0 | 0.05 | 0.02 | 182% | 1 | 0.4 | 6.9 | 26.9 | 30 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0074, quality 0.629) | market_value_eur=19800000
quality_factor=0.6291
boost_factor=1.0074
reference_quality=0.505
history_matches=20
history_shrink=0.2 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0156) | blend_weight=0.0156
history_matches=20
season_overlap_discount=1.0
per90_to_match_factor=0.938
prior_reliability=0.12
competition=Premier League | totalShots: 1.2371 -> 1.2178 fouls: 1.027 -> 1.011 interceptionWon: 0.9298 -> 0.9153 wasFouled: 1.3298 -> 1.3416 totalCross: 3.2691 -> 3.275 onTargetScoringAttempt: 0.3513 -> 0.3458 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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', 'matchup_zone': 'Right Wingback vs Left Back — Overlapping Run', 'duel_win_rate': 0.275, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.8163, 'skill_edge': -0.085, 'height_edge': -0.04, 'attacker_skill': 0.7044, 'defender_skill': 0.8933, 'attacker_role': 'RWB', 'attacker_mv_price_index': 0.7, 'defender_adjusted_parts': [{'player': 'Gabriel Magalhães', 'market_value': 70000000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.8933}], 'xg_override': 0.069} | aerialWon: 0.6209 -> 1.1 totalShots: 1.2315 -> 1.0053 shotOffTarget: 0.8857 -> 0.723 onTargetScoringAttempt: 0.3458 -> 0.2823 goals: 0.0922 -> 0.0753 expectedGoals: 0.0845 -> 0.069 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.12 (squad xG sum 1.4209, xG scale 0.7861, xA scale 0.8123, team xA 0.73 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.117
squad_xg_sum=1.4209
squad_xa_sum=0.8939
team_expected_assists=0.726
team_xa_to_xg_ratio=0.65 | expected_goals: 0.069 -> 0.0542 expected_assists: 0.133 -> 0.108 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 73.0) | match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0528
goal_rate=0.0753
scorer_weight=0.0571 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1024
assist_rate=0.0981
provider_weight=0.0874 | - |
|
| Daniel Muñoz | M | 78 | 0 | 0.10 | 0.06 | 67% | 1 | 0.8 | 6.8 | 51.1 | 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.0059, quality 0.660) | market_value_eur=23000000
quality_factor=0.6595
boost_factor=1.0059
reference_quality=0.505
history_matches=34
history_shrink=0.1282 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0033) | blend_weight=0.0033
history_matches=34
season_overlap_discount=1.0
per90_to_match_factor=0.8721
prior_reliability=0.04
competition=Premier League | totalCross: 1.7313 -> 1.7255 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Bruno Guimarães', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.361, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.8688, 'skill_edge': -0.0933, 'height_edge': 0.004, 'attacker_skill': 0.6821, 'defender_skill': 0.8893, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Bruno Guimarães', 'market_value': 77000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8893}], 'xg_override': 0.1303} | aerialWon: 2.163 -> 1.1 totalShots: 1.4002 -> 1.2165 shotOffTarget: 0.9352 -> 0.8125 bigChanceMissed: 0.4702 -> 0.4085 onTargetScoringAttempt: 0.4632 -> 0.4024 goals: 0.1529 -> 0.1328 expectedGoals: 0.15 -> 0.1303 expectedGoalsOnTarget: 0.1183 -> 0.1028 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.12 (squad xG sum 1.4209, xG scale 0.7861, xA scale 0.8123, team xA 0.73 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.117
squad_xg_sum=1.4209
squad_xa_sum=0.8939
team_expected_assists=0.726
team_xa_to_xg_ratio=0.65 | expected_goals: 0.1303 -> 0.1024 expected_assists: 0.0858 -> 0.0697 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 82.0) | match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0973
goal_rate=0.1328
scorer_weight=0.1038 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0673
assist_rate=0.0844
provider_weight=0.069 | - |
|
| Murillo | D | 87 | 0 | 0.07 | 0.05 | 59% | 1 | 0.6 | 6.9 | 54.2 | 23 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0131, quality 0.821) | market_value_eur=49000000
quality_factor=0.8206
boost_factor=1.0131
reference_quality=0.505
history_matches=31
history_shrink=0.1389 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0120) | blend_weight=0.012
history_matches=31
season_overlap_discount=1.0
per90_to_match_factor=0.9684
prior_reliability=0.1333
competition=Premier League | fouls: 1.4394 -> 1.4279 totalShots: 1.2877 -> 1.278 interceptionWon: 1.2225 -> 1.2136 wonTackle: 1.1315 -> 1.1237 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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': '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.12 (squad xG sum 1.4209, xG scale 0.7861, xA scale 0.8123, team xA 0.73 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.117
squad_xg_sum=1.4209
squad_xa_sum=0.8939
team_expected_assists=0.726
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0952 -> 0.0748 expected_assists: 0.0361 -> 0.0293 | 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: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0721
goal_rate=0.0049
scorer_weight=0.0598 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0289
assist_rate=0.1092
provider_weight=0.0366 | - |
|
| Ousmane Diomande | D | 87 | 0 | 0.06 | 0.02 | 196% | 1 | 0.3 | 6.8 | 17.8 | 11 | 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.0492, quality 0.800) | market_value_eur=44000000
quality_factor=0.8002
boost_factor=1.0492
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': '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 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.12 (squad xG sum 1.4209, xG scale 0.7861, xA scale 0.8123, team xA 0.73 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.117
squad_xg_sum=1.4209
squad_xa_sum=0.8939
team_expected_assists=0.726
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0789 -> 0.062 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 81.0) | match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0601
goal_rate=0.0
scorer_weight=0.0496 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0067
assist_rate=0.0
provider_weight=0.0058 | - |
|
| Jair | D | 83 | 0 | 0.02 | 0.02 | ok | 0 | 0.2 | 6.8 | 38.2 | 21 | XGBoost D_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0151, quality 0.686) | market_value_eur=26000000
quality_factor=0.6858
boost_factor=1.0151
reference_quality=0.505
history_matches=13
history_shrink=0.2778 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Bukayo Saka', '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.12 (squad xG sum 1.4209, xG scale 0.7861, xA scale 0.8123, team xA 0.73 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.117
squad_xg_sum=1.4209
squad_xa_sum=0.8939
team_expected_assists=0.726
team_xa_to_xg_ratio=0.65 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 80.0) | match_squad_rank=14
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0154
goal_rate=0.0
scorer_weight=0.0124 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0045
assist_rate=0.0
provider_weight=0.004 | - |
|
| Matz Sels | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 7.0 | 56.4 | 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 0.9979, quality 0.446) | market_value_eur=3700000
quality_factor=0.4461
boost_factor=0.9979
reference_quality=0.505
history_matches=37
history_shrink=0.119 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0103) | blend_weight=0.0103
history_matches=37
season_overlap_discount=1.0
per90_to_match_factor=0.9956
prior_reliability=0.1333
competition=Premier League | saves: 3.0068 -> 2.9963 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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, Bukayo Saka', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.7419} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.12 (squad xG sum 1.4209, xG scale 0.7861, xA scale 0.8123, team xA 0.73 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.117
squad_xg_sum=1.4209
squad_xa_sum=0.8939
team_expected_assists=0.726
team_xa_to_xg_ratio=0.65 | shots_faced: 16.5 -> 17.0 expected_saves: 4.03 -> 4.16 high_pressure_saves: 1.39 -> 1.43 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 81.0) | match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.1226 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by 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.6637 | - |
|
| Neco Williams | D | 89 | 0 | 0.07 | 0.05 | 40% | 1 | 1.2 | 6.8 | 58.0 | 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.0064, quality 0.710) | market_value_eur=29000000
quality_factor=0.71
boost_factor=1.0064
reference_quality=0.505
history_matches=43
history_shrink=0.1042 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0090) | blend_weight=0.009
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=0.9912
prior_reliability=0.1333
competition=Premier League | wonTackle: 1.374 -> 1.3929 totalCross: 5.7284 -> 5.7125 interceptionWon: 0.953 -> 0.9444 totalShots: 1.1762 -> 1.1701 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.12 (squad xG sum 1.4209, xG scale 0.7861, xA scale 0.8123, team xA 0.73 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.117
squad_xg_sum=1.4209
squad_xa_sum=0.8939
team_expected_assists=0.726
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0861 -> 0.0677 expected_assists: 0.1518 -> 0.1233 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 80.0) | match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0655
goal_rate=0.0291
scorer_weight=0.0542 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.116
assist_rate=0.0438
provider_weight=0.0986 | - |
|
| Team totals | 1 | 1.12 | | 12 | | 6.9 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| John Victor | G | 4.5m | 11.3% | Market-value substitute prior |
| Nikola Milenković | D | 14.6m | 23.7% | Market-value substitute prior |
| Ola Aina | D | 14.2m | 23.0% | Market-value substitute prior |
| Omari Hutchinson | M | 23.0m | 54.6% | Market-value substitute prior |
| Xaver Schlager | M | 19.5m | 51.0% | Market-value substitute prior |
| Callum Hudson Odoi | F | 26.5m | 61.2% | Market-value substitute prior |
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 |
|---|
| Bukayo Saka | F | 84 | 0 | 0.36 | 0.30 | ok | 2 | 1.9 | 7.3 | 59.4 | 32 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0140, quality 0.897) | market_value_eur=115000000
quality_factor=0.8968
boost_factor=1.014
reference_quality=0.505
history_matches=37
history_shrink=0.119 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0088) | blend_weight=0.0088
history_matches=37
season_overlap_discount=1.0
per90_to_match_factor=0.9323
prior_reliability=0.1133
competition=Premier League | totalCross: 3.3589 -> 3.3727 wasFouled: 2.495 -> 2.5068 fouls: 1.0433 -> 1.0342 goals: 0.353 -> 0.3595 wonTackle: 0.9672 -> 0.9731 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Murillo, Ousmane Diomande', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.184, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.9768, 'skill_edge': 0.0182, 'height_edge': -0.034, 'attacker_skill': 0.8968, 'defender_skill': 0.8564, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Murillo', 'market_value': 49000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8633}, {'player': 'Ousmane Diomande', 'market_value': 44000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8495}], 'xg_override': 0.355} | totalShots: 2.4963 -> 2.4384 shotOffTarget: 1.4417 -> 1.4083 onTargetScoringAttempt: 1.0532 -> 1.0288 bigChanceMissed: 0.5891 -> 0.5754 expectedGoalsOnTarget: 0.5069 -> 0.4951 expectedGoals: 0.3634 -> 0.355 goals: 0.3595 -> 0.3512 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_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.7892, xG scale 1.0015, xA scale 1.0069, team xA 1.16 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.792
squad_xg_sum=1.7892
squad_xa_sum=1.1568
team_expected_assists=1.1648
team_xa_to_xg_ratio=0.65 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 87.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.2992
goal_rate=0.3512
scorer_weight=0.3522 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1838
assist_rate=0.1132
provider_weight=0.1625 | - |
|
| Bruno Guimarães | M | 81 | 0 | 0.12 | 0.14 | ok | 2 | 0.9 | 7.2 | 53.5 | 21 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0148, quality 0.879) | market_value_eur=77000000
quality_factor=0.8792
boost_factor=1.0148
reference_quality=0.505
history_matches=33
history_shrink=0.1316 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0011) | blend_weight=0.0011
history_matches=33
season_overlap_discount=1.0
per90_to_match_factor=0.9046
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': 'Liam Delap, Dan Ndoye, Morgan Gibbs-White', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.79 (squad xG sum 1.7892, xG scale 1.0015, xA scale 1.0069, team xA 1.16 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.792
squad_xg_sum=1.7892
squad_xa_sum=1.1568
team_expected_assists=1.1648
team_xa_to_xg_ratio=0.65 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 86.0) | match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1096
goal_rate=0.1262
scorer_weight=0.1233 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.139
assist_rate=0.0981
provider_weight=0.1198 | - |
|
| Declan Rice | M | 86 | 0 | 0.04 | 0.04 | ok | 1 | 0.6 | 7.3 | 59.7 | 30 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0125, quality 0.897) | market_value_eur=114000000
quality_factor=0.8967
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.0078) | blend_weight=0.0078
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.9541
prior_reliability=0.1133
competition=Premier League | totalCross: 3.4043 -> 3.4128 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Ibrahim Sangaré', '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.79 (squad xG sum 1.7892, xG scale 1.0015, xA scale 1.0069, team xA 1.16 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.792
squad_xg_sum=1.7892
squad_xa_sum=1.1568
team_expected_assists=1.1648
team_xa_to_xg_ratio=0.65 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 88.0) | match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.044
goal_rate=0.0506
scorer_weight=0.0477 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1333
assist_rate=0.1613
provider_weight=0.1574 | - |
|
| Riccardo Calafiori | D | 79 | 0 | 0.18 | 0.09 | 102% | 1 | 0.8 | 6.8 | 44.7 | 23 | FBref Prior D_service |
Step-by-step (10 steps)| 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.0143, quality 0.859) | market_value_eur=63000000
quality_factor=0.8589
boost_factor=1.0143
reference_quality=0.505
history_matches=32
history_shrink=0.1351 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0111) | blend_weight=0.0111
history_matches=32
season_overlap_discount=1.0
per90_to_match_factor=0.8804
prior_reliability=0.1267
competition=Premier League | goalAssist: 0.153 -> 0.1616 wonTackle: 0.963 -> 0.9574 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Liam Delap', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.79 (squad xG sum 1.7892, xG scale 1.0015, xA scale 1.0069, team xA 1.16 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.792
squad_xg_sum=1.7892
squad_xa_sum=1.1568
team_expected_assists=1.1648
team_xa_to_xg_ratio=0.65 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 82.0) | match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1674
goal_rate=0.154
scorer_weight=0.1605 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0768
assist_rate=0.1616
provider_weight=0.0999 | - |
|
| Gabriel Magalhães | D | 90 | 0 | 0.10 | 0.07 | 30% | 1 | 0.7 | 6.9 | 59.6 | 30 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0128, quality 0.871) | market_value_eur=70000000
quality_factor=0.8707
boost_factor=1.0128
reference_quality=0.505
history_matches=38
history_shrink=0.1163 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0101) | blend_weight=0.0101
history_matches=38
season_overlap_discount=1.0
per90_to_match_factor=0.9996
prior_reliability=0.1333
competition=Premier League | wonTackle: 0.7434 -> 0.7359 fouls: 0.9256 -> 0.9314 interceptionWon: 0.9588 -> 0.9642 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'James McAtee', 'matchup_zone': 'Right Wingback vs Left Back — Overlapping Run'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.79 (squad xG sum 1.7892, xG scale 1.0015, xA scale 1.0069, team xA 1.16 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.792
squad_xg_sum=1.7892
squad_xa_sum=1.1568
team_expected_assists=1.1648
team_xa_to_xg_ratio=0.65 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 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.0907
goal_rate=0.0078
scorer_weight=0.0761 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0431
assist_rate=0.0305
provider_weight=0.0378 | - |
|
| Ezri Konsa | D | 90 | 0 | 0.05 | 0.04 | ok | 0 | 0.3 | 6.8 | 52.4 | 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.0112, quality 0.834) | market_value_eur=53000000
quality_factor=0.834
boost_factor=1.0112
reference_quality=0.505
history_matches=39
history_shrink=0.1136 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0005) | blend_weight=0.0005
history_matches=39
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=true | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Ibrahim Sangaré', 'matchup_zone': 'Left Wingback vs Right Back — Overlapping Run'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.79 (squad xG sum 1.7892, xG scale 1.0015, xA scale 1.0069, team xA 1.16 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.792
squad_xg_sum=1.7892
squad_xa_sum=1.1568
team_expected_assists=1.1648
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 84.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.0498
goal_rate=0.0
scorer_weight=0.0409 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0095
assist_rate=0.0
provider_weight=0.008 | - |
|
| Ben White | D | 73 | 0 | 0.03 | 0.01 | 170% | 0 | 0.1 | 6.7 | 34.6 | 24 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0155, quality 0.732) | market_value_eur=32000000
quality_factor=0.732
boost_factor=1.0155
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.8161
prior_reliability=0.1333
competition=Premier League | totalCross: 1.8276 -> 1.8398 wasFouled: 0.8817 -> 0.8724 wonTackle: 1.081 -> 1.0758 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Liam Delap', 'matchup_zone': 'Shape fallback'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.79 (squad xG sum 1.7892, xG scale 1.0015, xA scale 1.0069, team xA 1.16 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.792
squad_xg_sum=1.7892
squad_xa_sum=1.1568
team_expected_assists=1.1648
team_xa_to_xg_ratio=0.65 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 86.0) | match_squad_rank=14
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.029
goal_rate=0.0
scorer_weight=0.0235 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0794
assist_rate=0.285
provider_weight=0.1034 | - |
|
| David Raya | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 6.9 | 57.4 | 29 | FBref Prior G_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost G_service raw output over 3 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0073, quality 0.739) | market_value_eur=33000000
quality_factor=0.7389
boost_factor=1.0073
reference_quality=0.505
history_matches=43
history_shrink=0.1042 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0090) | blend_weight=0.009
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League | saves: 2.9583 -> 2.9361 wasFouled: 0.6282 -> 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': 'Liam Delap, Dan Ndoye', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.1498} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_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.7892, xG scale 1.0015, xA scale 1.0069, team xA 1.16 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.792
squad_xg_sum=1.7892
squad_xa_sum=1.1568
team_expected_assists=1.1648
team_xa_to_xg_ratio=0.65 | shots_faced: 10.9 -> 10.6 expected_saves: 2.67 -> 2.59 high_pressure_saves: 0.92 -> 0.89 | 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.7121 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by 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.1173 | - |
|
| Martin Ødegaard | M | 80 | 0 | 0.19 | 0.10 | 94% | 2 | 0.6 | 7.2 | 52.1 | 23 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0164, quality 0.888) | market_value_eur=88000000
quality_factor=0.8879
boost_factor=1.0164
reference_quality=0.505
history_matches=30
history_shrink=0.1429 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0099) | blend_weight=0.0099
history_matches=30
season_overlap_discount=1.0
per90_to_match_factor=0.8869
prior_reliability=0.1067
competition=Premier League | wonTackle: 0.5436 -> 0.5547 totalShots: 1.4303 -> 1.4379 totalCross: 1.1395 -> 1.1447 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Murillo', 'matchup_zone': 'LW vs CB', 'duel_win_rate': 0.411, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9869, 'skill_edge': 0.0111, 'height_edge': -0.02, 'attacker_skill': 0.8879, 'defender_skill': 0.8633, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Murillo', 'market_value': 49000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8633}], 'xg_override': 0.1944} | aerialWon: 0.0701 -> 1.0 totalShots: 1.4379 -> 1.4191 shotOffTarget: 0.8154 -> 0.8047 onTargetScoringAttempt: 0.6143 -> 0.6063 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_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.7892, xG scale 1.0015, xA scale 1.0069, team xA 1.16 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.792
squad_xg_sum=1.7892
squad_xa_sum=1.1568
team_expected_assists=1.1648
team_xa_to_xg_ratio=0.65 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 86.0) | match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1769
goal_rate=0.1812
scorer_weight=0.1842 | - | integer_assist_projection | Team scoreline allocation: 1 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.1623
assist_rate=0.1685
provider_weight=0.1713 | - |
|
| Eberechi Eze | M | 74 | 0 | 0.15 | 0.09 | 71% | 2 | 1.1 | 6.8 | 49.9 | 30 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0126, quality 0.859) | market_value_eur=63000000
quality_factor=0.8589
boost_factor=1.0126
reference_quality=0.505
history_matches=37
history_shrink=0.119 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0036) | blend_weight=0.0036
history_matches=37
season_overlap_discount=1.0
per90_to_match_factor=0.8207
prior_reliability=0.0467
competition=Premier League | wasFouled: 1.8442 -> 1.8502 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Morgan Gibbs-White', 'matchup_zone': 'CAM vs CM', 'duel_win_rate': 0.439, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 1.0275, 'skill_edge': -0.0093, 'height_edge': 0.028, 'attacker_skill': 0.865, 'defender_skill': 0.8855, 'attacker_role': 'CAM', 'attacker_mv_price_index': 0.95, 'defender_adjusted_parts': [{'player': 'Morgan Gibbs-White', 'market_value': 76000000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.8855}], 'xg_override': 0.1479} | aerialWon: 0.3706 -> 1.0 totalShots: 1.4618 -> 1.502 shotOffTarget: 0.9413 -> 0.9672 onTargetScoringAttempt: 0.5194 -> 0.5337 expectedGoalsOnTarget: 0.3316 -> 0.3407 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_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.7892, xG scale 1.0015, xA scale 1.0069, team xA 1.16 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.792
squad_xg_sum=1.7892
squad_xa_sum=1.1568
team_expected_assists=1.1648
team_xa_to_xg_ratio=0.65 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 84.0) | match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1377
goal_rate=0.1415
scorer_weight=0.1433 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0637
assist_rate=0.0608
provider_weight=0.0632 | - |
|
| Kai Havertz | F | 77 | 1 | 0.40 | 0.22 | 79% | 3 | 1.3 | 6.9 | 50.2 | 23 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0224, quality 0.848) | market_value_eur=58000000
quality_factor=0.8478
boost_factor=1.0224
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.8524
prior_reliability=0.1333
competition=Premier League | totalOffside: 1.2009 -> 1.2345 totalShots: 2.4483 -> 2.4182 wasFouled: 1.0734 -> 1.0853 totalCross: 0.4955 -> 0.4862 fouls: 0.9056 -> 0.9126 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Murillo, Ousmane Diomande', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.222, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 1.0326, 'skill_edge': -0.0038, 'height_edge': 0.026, 'attacker_skill': 0.8478, 'defender_skill': 0.8564, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Murillo', 'market_value': 49000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8633}, {'player': 'Ousmane Diomande', 'market_value': 44000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8495}], 'xg_override': 0.3991} | totalShots: 2.4457 -> 2.5255 shotOffTarget: 1.4561 -> 1.5036 onTargetScoringAttempt: 0.9896 -> 1.0219 bigChanceMissed: 0.7184 -> 0.7418 expectedGoalsOnTarget: 0.4299 -> 0.4439 expectedGoals: 0.3865 -> 0.3991 goals: 0.3726 -> 0.3847 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_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.7892, xG scale 1.0015, xA scale 1.0069, team xA 1.16 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.792
squad_xg_sum=1.7892
squad_xa_sum=1.1568
team_expected_assists=1.1648
team_xa_to_xg_ratio=0.65 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 81.0) | match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.3295
goal_rate=0.3847
scorer_weight=0.387 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by 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.0836
provider_weight=0.0817 | - |
|
| Team totals | 1 | 1.79 | | 16 | | 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 |
| Max Dowman | M | 23.5m | 57.0% | Market-value substitute prior |
| Viktor Gyökeres | F | 26.9m | 63.4% | Market-value substitute prior |
Antagonist / tactical summary
Midfield is evenly contested — Morgan Gibbs-White vs Declan Rice will be the pivotal duel. Total antagonist xG — Home: 1.09, Away: 1.10. 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 48.2% / 51.8%, dominance ratio 0.45, key duel: Morgan Gibbs-White vs Declan Rice
Liam Delap xG 0.34Dan Ndoye xG 0.29Ibrahim Sangaré xG 0.04Martin Ødegaard xG 0.19Eberechi Eze xG 0.15Kai Havertz xG 0.40
Summary
Antagonist matchup analysis for Forest vs Arsenal. Most likely scoreline: 1-1. Lambdas derived from 6 home and 4 away individual player duels. Head-to-head: Forest 2W-2D-6L vs Arsenal 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 Gibbs-White vs Declan Rice will be the pivotal duel. Total antagonist xG — Home: 1.09, Away: 1.10. Home danger zone: Shadow Striker vs CDM + CB — Zone 14 Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Brighton vs Crystal Palace
Premier League · 20261018 · 4-2-3-1 vs 3-4-2-1
Predicted 1-1Winner: DrawWinning H 1-0 (10.0%)Winning A 0-1 (8.5%)Confidence 0.7λ home/away 1.43 / 1.22Most-likely P 12.4%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset TracingAntagonist + XGBoost match analysis for Brighton vs Crystal Palace. Player statistics regressed using position-specific XGBoost models (G, D, M, F) with 2026-2027 FBref priors. Micro-duels resolved across 4-2-3-1 vs 3-4-2-1 (duel lambdas: Home 1.440, Away 1.207). Final calibrated Poisson lambdas: Home 1.430, Away 1.216 (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.44 / 1.21 Final λ (H/A) 1.43 / 1.22
Modeling Pipeline Stages (5 layers)
- 1. XGBoost player regressions for volume & event rates with market-value quality scaling
- 2. Multi-source prior blending (FBref 2026-2027 tables + Sofascore season history)
- 3. Antagonist formation duel matrix resolving 1v1 and zonal matchups
- 4. Team-level prior calibration (FBref possession and attack/defense efficiencies)
- 5. Bivariate Poisson matrix with Dixon-Coles low-score correction
Standing & form context
| Metric | Brighton | Crystal Palace |
|---|
| League position | 3.00 | 12.00 |
| Points per game | 1.75 | 1.25 |
| Attack index | 1.34 | 1.01 |
| Defense (concede) index | 1.12 | 0.85 |
| Form multiplier | 1.03 | 0.97 |
| Standing λ multiplier | 1.19 | 0.94 |
Lambda decomposition (how the goal rates were built)
| Stage | Brighton λ | Crystal Palace λ |
|---|
| Pre-competitive-floor | 1.430 | 1.216 |
| Pre-calibration (Micro-duels) | 1.440 | 1.207 |
| Final λ | 1.430 | 1.216 |
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.4% |
| 1-0 | 10.0% |
| 2-1 | 8.8% |
| 0-1 | 8.5% |
| 1-2 | 7.5% |
| Home win | 41.9% |
| Draw | 26.2% |
| Away win | 31.9% |
| Over 2.5 | 49.3% |
| BTTS yes | 53.6% |
Pregame fair line — favorite Brighton (41.9%), fair total 2.65, fair spread 0.21
Projected players vs season baseline
Proj = projected for this match · Season = this season's per-game average from match data · deviation badge compares projected xG to the player's season xG/game.
Brighton — projected line vs season baseline (4-2-3-1)
| Player | Pos | Min | Proj G | Proj xG | Season xG/g | | Proj Sh | Season Sh/g | Proj Rtg | Season Rtg | Rec | Model / FBref Prior |
|---|
| Charalampos Kostoulas | F | 77 | 1 | 0.28 | 0.10 | 165% | 2 | 0.9 | 6.8 | 42.7 | 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.0136, quality 0.796) | market_value_eur=43000000
quality_factor=0.7957
boost_factor=1.0136
reference_quality=0.505
history_matches=27
history_shrink=0.1562 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0081) | blend_weight=0.0081
history_matches=27
season_overlap_discount=1.0
per90_to_match_factor=0.8567
prior_reliability=0.08
competition=Premier League | wasFouled: 1.1189 -> 1.1098 wonTackle: 0.7157 -> 0.7099 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Jaydee Canvot, Chris Richards', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.201, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 1.0009, 'skill_edge': 0.0126, 'height_edge': -0.012, 'attacker_skill': 0.7957, 'defender_skill': 0.7676, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Jaydee Canvot', 'market_value': 32000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7941}, {'player': 'Chris Richards', 'market_value': 25000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7411}], 'xg_override': 0.2502} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.43 (squad xG sum 1.2924, xG scale 1.1065, xA scale 1.1065, team xA 0.97 = 0.68 x lambda) | scoreline_reset=true
team_lambda=1.43
squad_xg_sum=1.2924
squad_xa_sum=0.8726
team_expected_assists=0.9656
team_xa_to_xg_ratio=0.6752 | expected_goals: 0.2502 -> 0.2767 expected_assists: 0.063 -> 0.0697 | 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=1
goal_probability=0.2417
goal_rate=0.3154
scorer_weight=0.3368 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0673
assist_rate=0.2724
provider_weight=0.0871 | - |
|
| Maxim De Cuyper | D | 79 | 0 | 0.19 | 0.11 | 65% | 1 | 0.6 | 6.8 | 50.2 | 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.0075, quality 0.710) | market_value_eur=29000000
quality_factor=0.71
boost_factor=1.0075
reference_quality=0.505
history_matches=36
history_shrink=0.122 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0100) | blend_weight=0.01
history_matches=36
season_overlap_discount=1.0
per90_to_match_factor=0.8724
prior_reliability=0.1267
competition=Premier League | totalCross: 4.354 -> 4.3702 totalShots: 0.8201 -> 0.8354 fouls: 0.907 -> 0.9163 wasFouled: 0.743 -> 0.7355 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Quinten Timber', 'matchup_zone': 'Right Wingback vs Left Back — Overlapping Run'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.43 (squad xG sum 1.2924, xG scale 1.1065, xA scale 1.1065, team xA 0.97 = 0.68 x lambda) | scoreline_reset=true
team_lambda=1.43
squad_xg_sum=1.2924
squad_xa_sum=0.8726
team_expected_assists=0.9656
team_xa_to_xg_ratio=0.6752 | expected_goals: 0.1696 -> 0.1877 expected_assists: 0.1754 -> 0.194 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 78.0) | match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1711
goal_rate=0.2392
scorer_weight=0.2346 | - | integer_assist_projection | Team scoreline allocation: 1 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.1763
assist_rate=0.2884
provider_weight=0.2425 | - |
|
| Yasin Ayari | M | 86 | 0 | 0.17 | 0.05 | 224% | 1 | 0.8 | 6.8 | 48.7 | 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.0108, quality 0.786) | market_value_eur=41000000
quality_factor=0.7859
boost_factor=1.0108
reference_quality=0.505
history_matches=34
history_shrink=0.1282 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0039) | blend_weight=0.0039
history_matches=34
season_overlap_discount=1.0
per90_to_match_factor=0.9607
prior_reliability=0.0467
competition=Premier League | fouls: 0.5778 -> 0.5862 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Jørgen Strand Larsen, Yéremy Pino, Adam Wharton', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.43 (squad xG sum 1.2924, xG scale 1.1065, xA scale 1.1065, team xA 0.97 = 0.68 x lambda) | scoreline_reset=true
team_lambda=1.43
squad_xg_sum=1.2924
squad_xa_sum=0.8726
team_expected_assists=0.9656
team_xa_to_xg_ratio=0.6752 | expected_goals: 0.1494 -> 0.1653 expected_assists: 0.0667 -> 0.0738 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 79.0) | match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1524
goal_rate=0.1161
scorer_weight=0.1377 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0711
assist_rate=0.055
provider_weight=0.0664 | - |
|
| Diego Gómez | M | 81 | 0 | 0.20 | 0.14 | 48% | 2 | 1.4 | 7.0 | 54.8 | 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.0079, quality 0.732) | market_value_eur=32000000
quality_factor=0.732
boost_factor=1.0079
reference_quality=0.505
history_matches=38
history_shrink=0.1163 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0096) | blend_weight=0.0096
history_matches=38
season_overlap_discount=1.0
per90_to_match_factor=0.9051
prior_reliability=0.1267
competition=Premier League | totalShots: 1.912 -> 1.9293 onTargetScoringAttempt: 0.6323 -> 0.6396 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Daichi Kamada', 'matchup_zone': '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.43 (squad xG sum 1.2924, xG scale 1.1065, xA scale 1.1065, team xA 0.97 = 0.68 x lambda) | scoreline_reset=true
team_lambda=1.43
squad_xg_sum=1.2924
squad_xa_sum=0.8726
team_expected_assists=0.9656
team_xa_to_xg_ratio=0.6752 | expected_goals: 0.1826 -> 0.202 expected_assists: 0.0884 -> 0.0978 | 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.1829
goal_rate=0.2178
scorer_weight=0.2326 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by 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.1116
provider_weight=0.1142 | - |
|
| Chema Andrés | M | 87 | 0 | 0.10 | 0.06 | 71% | 1 | 0.3 | 6.8 | 23.6 | 9 | 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.0290, quality 0.660) | market_value_eur=23000000
quality_factor=0.6595
boost_factor=1.029
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': 'Adam Wharton', 'matchup_zone': 'CAM vs CM', 'duel_win_rate': 0.366, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9209, 'skill_edge': -0.0978, 'height_edge': 0.044, 'attacker_skill': 0.6704, 'defender_skill': 0.8877, 'attacker_role': 'CAM', 'attacker_mv_price_index': 0.95, 'defender_adjusted_parts': [{'player': 'Adam Wharton', 'market_value': 79000000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.8877}], 'xg_override': 0.0891} | aerialWon: 1.989 -> 1.4 totalShots: 1.0938 -> 1.0073 shotOffTarget: 0.7775 -> 0.716 onTargetScoringAttempt: 0.3163 -> 0.2913 expectedGoalsOnTarget: 0.316 -> 0.291 expectedGoals: 0.0967 -> 0.0891 goals: 0.0885 -> 0.0815 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.43 (squad xG sum 1.2924, xG scale 1.1065, xA scale 1.1065, team xA 0.97 = 0.68 x lambda) | scoreline_reset=true
team_lambda=1.43
squad_xg_sum=1.2924
squad_xa_sum=0.8726
team_expected_assists=0.9656
team_xa_to_xg_ratio=0.6752 | expected_goals: 0.0891 -> 0.0986 expected_assists: 0.0559 -> 0.0619 | 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.0939
goal_rate=0.0815
scorer_weight=0.0932 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.06
assist_rate=0.0696
provider_weight=0.0699 | - |
|
| Pascal Groß | M | 90 | 0 | 0.15 | 0.12 | 30% | 1 | 1.0 | 7.3 | 59.7 | 30 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9966, quality 0.437) | market_value_eur=2300000
quality_factor=0.4374
boost_factor=0.9966
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.9964
prior_reliability=0.1333
competition=Premier League | totalCross: 6.0142 -> 6.0569 totalShots: 1.5262 -> 1.5114 interceptionWon: 0.6354 -> 0.6262 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Jaydee Canvot', 'matchup_zone': 'LW vs CB', 'duel_win_rate': 0.231, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.7229, 'skill_edge': -0.1605, 'height_edge': -0.028, 'attacker_skill': 0.4374, 'defender_skill': 0.7941, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Jaydee Canvot', 'market_value': 32000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7941}], 'xg_override': 0.1364} | totalShots: 1.5251 -> 1.1025 aerialWon: 0.7374 -> 1.1 shotOffTarget: 0.9601 -> 0.6941 onTargetScoringAttempt: 0.565 -> 0.4084 goals: 0.2328 -> 0.1683 expectedGoals: 0.1887 -> 0.1364 expectedGoalsOnTarget: 0.1477 -> 0.1068 bigChanceMissed: 0.0982 -> 0.071 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.43 (squad xG sum 1.2924, xG scale 1.1065, xA scale 1.1065, team xA 0.97 = 0.68 x lambda) | scoreline_reset=true
team_lambda=1.43
squad_xg_sum=1.2924
squad_xa_sum=0.8726
team_expected_assists=0.9656
team_xa_to_xg_ratio=0.6752 | expected_goals: 0.1364 -> 0.1509 expected_assists: 0.1747 -> 0.1933 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 79.0) | match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1401
goal_rate=0.1683
scorer_weight=0.1767 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1758
assist_rate=0.1736
provider_weight=0.1924 | - |
|
| Olivier Boscagli | D | 85 | 0 | 0.01 | 0.01 | 54% | 1 | 0.2 | 7.0 | 36.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.0072, quality 0.616) | market_value_eur=18500000
quality_factor=0.6161
boost_factor=1.0072
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.9417
prior_reliability=0.1333
competition=Premier League | totalCross: 2.9674 -> 2.9558 fouls: 1.2779 -> 1.2893 onTargetScoringAttempt: 0.0864 -> 0.0936 wonTackle: 0.8308 -> 0.824 interceptionWon: 1.1323 -> 1.1376 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Tyrick Mitchell', 'matchup_zone': 'Left Wingback vs Right Back — Overlapping Run'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.43 (squad xG sum 1.2924, xG scale 1.1065, xA scale 1.1065, team xA 0.97 = 0.68 x lambda) | scoreline_reset=true
team_lambda=1.43
squad_xg_sum=1.2924
squad_xa_sum=0.8726
team_expected_assists=0.9656
team_xa_to_xg_ratio=0.6752 | expected_assists: 0.0756 -> 0.0837 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 78.0) | match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0079
goal_rate=0.0
scorer_weight=0.0069 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0803
assist_rate=0.0232
provider_weight=0.067 | - |
|
| Lewis Dunk | D | 90 | 0 | 0.05 | 0.04 | ok | 1 | 0.6 | 7.1 | 53.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 0.9979, quality 0.445) | market_value_eur=3600000
quality_factor=0.4449
boost_factor=0.9979
reference_quality=0.505
history_matches=38
history_shrink=0.1163 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0101) | blend_weight=0.0101
history_matches=38
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League | fouls: 0.6454 -> 0.654 totalCross: 0.2445 -> 0.2521 totalShots: 0.5563 -> 0.5507 | 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': 'Yéremy Pino', '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.43 (squad xG sum 1.2924, xG scale 1.1065, xA scale 1.1065, team xA 0.97 = 0.68 x lambda) | scoreline_reset=true
team_lambda=1.43
squad_xg_sum=1.2924
squad_xa_sum=0.8726
team_expected_assists=0.9656
team_xa_to_xg_ratio=0.6752 | expected_goals: 0.0486 -> 0.0538 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 77.0) | match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0524
goal_rate=0.2108
scorer_weight=0.0673 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0223
assist_rate=0.0
provider_weight=0.0181 | - |
|
| Luka Vušković | D | 88 | 0 | 0.15 | 0.07 | 128% | 1 | 0.9 | 6.9 | 41.0 | 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 1.0497, quality 0.869) | market_value_eur=69000000
quality_factor=0.8692
boost_factor=1.0497
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=0.9826
prior_reliability=0.1333
competition=Premier League | wasFouled: 1.3905 -> 1.3357 interceptionWon: 1.1102 -> 1.0665 totalShots: 1.0579 -> 1.0936 wonTackle: 0.8248 -> 0.8117 totalCross: 0.3105 -> 0.2983 fouls: 1.2589 -> 1.248 goals: 0.1553 -> 0.1492 onTargetScoringAttempt: 0.1553 -> 0.1492 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Jørgen Strand Larsen', 'matchup_zone': '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.43 (squad xG sum 1.2924, xG scale 1.1065, xA scale 1.1065, team xA 0.97 = 0.68 x lambda) | scoreline_reset=true
team_lambda=1.43
squad_xg_sum=1.2924
squad_xa_sum=0.8726
team_expected_assists=0.9656
team_xa_to_xg_ratio=0.6752 | expected_goals: 0.1358 -> 0.1503 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 81.0) | match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1396
goal_rate=0.1492
scorer_weight=0.1611 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0125
assist_rate=0.0
provider_weight=0.0103 | - |
|
| Ferdi Kadıoğlu | D | 87 | 0 | 0.04 | 0.05 | ok | 1 | 0.7 | 6.8 | 56.7 | 29 | XGBoost D_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0090, quality 0.786) | market_value_eur=41000000
quality_factor=0.7859
boost_factor=1.009
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': 'Jørgen Strand Larsen', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.43 (squad xG sum 1.2924, xG scale 1.1065, xA scale 1.1065, team xA 0.97 = 0.68 x lambda) | scoreline_reset=true
team_lambda=1.43
squad_xg_sum=1.2924
squad_xa_sum=0.8726
team_expected_assists=0.9656
team_xa_to_xg_ratio=0.6752 | expected_assists: 0.0705 -> 0.078 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 80.0) | match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0416
goal_rate=0.0355
scorer_weight=0.0411 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by 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.0
provider_weight=0.0624 | - |
|
| Bart Verbruggen | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 7.0 | 58.7 | 30 | FBref Prior G_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost G_service raw output over 3 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0079, quality 0.764) | market_value_eur=37000000
quality_factor=0.7641
boost_factor=1.0079
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.9474 -> 2.9258 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Jørgen Strand Larsen, Yéremy Pino', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.207} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.43 (squad xG sum 1.2924, xG scale 1.1065, xA scale 1.1065, team xA 0.97 = 0.68 x lambda) | scoreline_reset=true
team_lambda=1.43
squad_xg_sum=1.2924
squad_xa_sum=0.8726
team_expected_assists=0.9656
team_xa_to_xg_ratio=0.6752 | shots_faced: 11.5 -> 11.6 expected_saves: 2.82 -> 2.84 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 81.0) | match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.5787 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0
provider_weight=0.0
squad_weight_total=0.9927 | - |
|
| Team totals | 1 | 1.43 | | 14 | | 6.9 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Tom McGill | G | 4.4m | 10.9% | Market-value substitute prior |
| Mats Wieffer | D | 14.5m | 23.6% | Market-value substitute prior |
| Pascal Struijk | D | 14.4m | 33.9% | Market-value substitute prior |
| Jack Hinshelwood | M | 23.2m | 33.2% | Market-value substitute prior |
| Georginio Rutter | M | 23.1m | 33.0% | Market-value substitute prior |
| Yankuba Minteh | F | 26.8m | 62.9% | Market-value substitute prior |
Crystal Palace — projected line vs season baseline (3-4-2-1)
| Player | Pos | Min | Proj G | Proj xG | Season xG/g | | Proj Sh | Season Sh/g | Proj Rtg | Season Rtg | Rec | Model / FBref Prior |
|---|
| Jørgen Strand Larsen | F | 75 | 1 | 0.33 | 0.14 | 141% | 2 | 1.2 | 6.8 | 54.7 | 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.0090, quality 0.786) | market_value_eur=41000000
quality_factor=0.7859
boost_factor=1.009
reference_quality=0.505
history_matches=42
history_shrink=0.1064 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0046) | blend_weight=0.0046
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.8336
prior_reliability=0.0667
competition=Premier League | fouls: 0.9267 -> 0.934 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Yasin Ayari, Ferdi Kadıoğlu', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle', 'duel_win_rate': 0.311, 'pressing_faced': 'HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 1.0602, 'skill_edge': -0.0191, 'height_edge': 0.06, 'attacker_skill': 0.7859, 'defender_skill': 0.8283, 'attacker_role': 'SS', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Yasin Ayari', 'market_value': 41000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8177}, {'player': 'Ferdi Kadıoğlu', 'market_value': 41000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.839}], 'xg_override': 0.3663} | totalShots: 2.1619 -> 2.292 shotOffTarget: 1.3445 -> 1.4254 onTargetScoringAttempt: 0.8174 -> 0.8666 expectedGoals: 0.3455 -> 0.3663 goals: 0.2989 -> 0.3169 bigChanceMissed: 0.2739 -> 0.2904 expectedGoalsOnTarget: 0.2069 -> 0.2194 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.22 (squad xG sum 1.3534, xG scale 0.8984, xA scale 0.8984, team xA 0.81 = 0.66 x lambda) | scoreline_reset=true
team_lambda=1.216
squad_xg_sum=1.3534
squad_xa_sum=0.8965
team_expected_assists=0.8055
team_xa_to_xg_ratio=0.6624 | expected_goals: 0.3663 -> 0.3292 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 77.0) | match_squad_rank=12
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.2805
goal_rate=0.3169
scorer_weight=0.2901 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0422
assist_rate=0.0
provider_weight=0.0345 | - |
|
| Yéremy Pino | F | 70 | 0 | 0.13 | 0.08 | 61% | 1 | 0.9 | 7.0 | 53.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.0060, quality 0.694) | market_value_eur=27000000
quality_factor=0.6941
boost_factor=1.006
reference_quality=0.505
history_matches=42
history_shrink=0.1064 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0051) | blend_weight=0.0051
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.7803
prior_reliability=0.0733
competition=Premier League | totalCross: 2.7188 -> 2.7374 fouls: 0.8787 -> 0.885 wasFouled: 1.0177 -> 1.0233 totalOffside: 0.409 -> 0.4141 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Yasin Ayari, Ferdi Kadıoğlu', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle', 'duel_win_rate': 0.206, 'pressing_faced': 'HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.9053, 'skill_edge': -0.0604, 'height_edge': -0.004, 'attacker_skill': 0.6941, 'defender_skill': 0.8283, 'attacker_role': 'SS', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Yasin Ayari', 'market_value': 41000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8177}, {'player': 'Ferdi Kadıoğlu', 'market_value': 41000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.839}], 'xg_override': 0.1427} | totalShots: 1.492 -> 1.3507 shotOffTarget: 0.9455 -> 0.856 onTargetScoringAttempt: 0.5408 -> 0.4896 expectedGoalsOnTarget: 0.2655 -> 0.2404 goals: 0.2051 -> 0.1857 expectedGoals: 0.1576 -> 0.1427 bigChanceMissed: 0.1147 -> 0.1038 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.22 (squad xG sum 1.3534, xG scale 0.8984, xA scale 0.8984, team xA 0.81 = 0.66 x lambda) | scoreline_reset=true
team_lambda=1.216
squad_xg_sum=1.3534
squad_xa_sum=0.8965
team_expected_assists=0.8055
team_xa_to_xg_ratio=0.6624 | expected_goals: 0.1427 -> 0.1282 expected_assists: 0.1331 -> 0.1196 | 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.1203
goal_rate=0.1857
scorer_weight=0.1568 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1127
assist_rate=0.0068
provider_weight=0.0957 | - |
|
| Daichi Kamada | M | 84 | 0 | 0.07 | 0.07 | ok | 1 | 0.5 | 6.8 | 54.1 | 29 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0008, quality 0.526) | market_value_eur=10300000
quality_factor=0.526
boost_factor=1.0008
reference_quality=0.505
history_matches=34
history_shrink=0.1282 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0111) | blend_weight=0.0111
history_matches=34
season_overlap_discount=1.0
per90_to_match_factor=0.9324
prior_reliability=0.1333
competition=Premier League | wonTackle: 1.4511 -> 1.4712 totalCross: 0.9645 -> 0.9745 totalShots: 1.0307 -> 1.0244 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Yasin Ayari', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.373, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.8864, 'skill_edge': -0.1253, 'height_edge': 0.048, 'attacker_skill': 0.5393, 'defender_skill': 0.8177, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Yasin Ayari', 'market_value': 41000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8177}], 'xg_override': 0.0766} | aerialWon: 0.2679 -> 1.1 totalShots: 1.0264 -> 0.9098 shotOffTarget: 0.652 -> 0.5779 onTargetScoringAttempt: 0.3744 -> 0.3319 bigChanceMissed: 0.1511 -> 0.1339 expectedGoalsOnTarget: 0.1258 -> 0.1115 goals: 0.0922 -> 0.0817 expectedGoals: 0.0864 -> 0.0766 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.22 (squad xG sum 1.3534, xG scale 0.8984, xA scale 0.8984, team xA 0.81 = 0.66 x lambda) | scoreline_reset=true
team_lambda=1.216
squad_xg_sum=1.3534
squad_xa_sum=0.8965
team_expected_assists=0.8055
team_xa_to_xg_ratio=0.6624 | expected_goals: 0.0766 -> 0.0688 expected_assists: 0.1006 -> 0.0904 | 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.0665
goal_rate=0.0817
scorer_weight=0.0716 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0864
assist_rate=0.0959
provider_weight=0.0876 | - |
|
| Tyrick Mitchell | M | 85 | 0 | 0.07 | 0.06 | ok | 1 | 0.6 | 6.9 | 57.8 | 31 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0047, quality 0.660) | market_value_eur=23000000
quality_factor=0.6595
boost_factor=1.0047
reference_quality=0.505
history_matches=44
history_shrink=0.102 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0088) | blend_weight=0.0088
history_matches=44
season_overlap_discount=1.0
per90_to_match_factor=0.9486
prior_reliability=0.1333
competition=Premier League | wonTackle: 2.0587 -> 2.0489 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Olivier Boscagli', 'matchup_zone': 'Left Wingback vs Right Back — Overlapping Run', 'duel_win_rate': 0.394, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9909, 'skill_edge': 0.0218, 'height_edge': -0.028, 'attacker_skill': 0.7379, 'defender_skill': 0.6894, 'attacker_role': 'LWB', 'attacker_mv_price_index': 0.7, 'defender_adjusted_parts': [{'player': 'Olivier Boscagli', 'market_value': 18500000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.6894}], 'xg_override': 0.0828} | aerialWon: 0.8464 -> 0.9 totalShots: 1.0709 -> 1.0612 shotOffTarget: 0.7345 -> 0.7278 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.22 (squad xG sum 1.3534, xG scale 0.8984, xA scale 0.8984, team xA 0.81 = 0.66 x lambda) | scoreline_reset=true
team_lambda=1.216
squad_xg_sum=1.3534
squad_xa_sum=0.8965
team_expected_assists=0.8055
team_xa_to_xg_ratio=0.6624 | expected_goals: 0.0828 -> 0.0744 expected_assists: 0.0965 -> 0.0867 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 79.0) | match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0717
goal_rate=0.0836
scorer_weight=0.0748 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.083
assist_rate=0.0768
provider_weight=0.075 | - |
|
| Adam Wharton | M | 87 | 0 | 0.08 | 0.03 | 177% | 1 | 0.7 | 7.1 | 57.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.881) | market_value_eur=79000000
quality_factor=0.8811
boost_factor=1.0125
reference_quality=0.505
history_matches=40
history_shrink=0.1111 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0096) | blend_weight=0.0096
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=0.9654
prior_reliability=0.1333
competition=Premier League | totalCross: 2.6842 -> 2.663 totalShots: 1.095 -> 1.0845 interceptionWon: 0.9039 -> 0.9138 fouls: 0.7676 -> 0.7602 wasFouled: 1.4008 -> 1.4059 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Yasin Ayari', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.522, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 1.1051, 'skill_edge': 0.0315, 'height_edge': 0.04, 'attacker_skill': 0.8877, 'defender_skill': 0.8177, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Yasin Ayari', 'market_value': 41000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8177}], 'xg_override': 0.0853} | aerialWon: 0.5624 -> 1.1 totalShots: 1.0913 -> 1.206 shotOffTarget: 0.7089 -> 0.7834 onTargetScoringAttempt: 0.3824 -> 0.4226 expectedGoals: 0.0772 -> 0.0853 goals: 0.0766 -> 0.0847 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.22 (squad xG sum 1.3534, xG scale 0.8984, xA scale 0.8984, team xA 0.81 = 0.66 x lambda) | scoreline_reset=true
team_lambda=1.216
squad_xg_sum=1.3534
squad_xa_sum=0.8965
team_expected_assists=0.8055
team_xa_to_xg_ratio=0.6624 | expected_goals: 0.0853 -> 0.0766 expected_assists: 0.161 -> 0.1445 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 82.0) | match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0737
goal_rate=0.0847
scorer_weight=0.0763 | - | integer_assist_projection | Team scoreline allocation: 1 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.1345
assist_rate=0.1252
provider_weight=0.12 | - |
|
| Quinten Timber | M | 87 | 0 | 0.10 | 0.04 | 133% | 1 | 0.7 | 6.9 | 31.1 | 9 | 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.0273, quality 0.669) | market_value_eur=24000000
quality_factor=0.6685
boost_factor=1.0273
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': 'Maxim De Cuyper', 'matchup_zone': 'Right Wingback vs Left Back — Overlapping Run', 'duel_win_rate': 0.358, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 0.9378, 'skill_edge': -0.0183, 'height_edge': -0.024, 'attacker_skill': 0.7474, 'defender_skill': 0.7881, 'attacker_role': 'RWB', 'attacker_mv_price_index': 0.7, 'defender_adjusted_parts': [{'player': 'Maxim De Cuyper', 'market_value': 29000000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.7881}], 'xg_override': 0.1095} | aerialWon: 0.5965 -> 1.0 totalShots: 1.4565 -> 1.3659 shotOffTarget: 0.98 -> 0.919 onTargetScoringAttempt: 0.4764 -> 0.4468 goals: 0.1495 -> 0.1402 expectedGoals: 0.1168 -> 0.1095 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.22 (squad xG sum 1.3534, xG scale 0.8984, xA scale 0.8984, team xA 0.81 = 0.66 x lambda) | scoreline_reset=true
team_lambda=1.216
squad_xg_sum=1.3534
squad_xa_sum=0.8965
team_expected_assists=0.8055
team_xa_to_xg_ratio=0.6624 | expected_goals: 0.1095 -> 0.0984 expected_assists: 0.0779 -> 0.07 | 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.0937
goal_rate=0.1402
scorer_weight=0.1173 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0676
assist_rate=0.083
provider_weight=0.0728 | - |
|
| Anan Khalaili | M | 87 | 0 | 0.11 | 0.10 | ok | 1 | 0.8 | 6.9 | 41.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.0223, quality 0.669) | market_value_eur=24000000
quality_factor=0.6685
boost_factor=1.0223
reference_quality=0.505
history_matches=6
history_shrink=0.4545 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0236) | blend_weight=0.0236
history_matches=6
season_overlap_discount=1.0
per90_to_match_factor=0.9706
prior_reliability=0.08
competition=Premier League | wonTackle: 1.5802 -> 1.7149 totalCross: 2.853 -> 2.9194 interceptionWon: 1.1363 -> 1.1668 fouls: 0.853 -> 0.8711 wasFouled: 0.1439 -> 0.1596 totalShots: 1.3143 -> 1.302 onTargetScoringAttempt: 0.3629 -> 0.3543 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Yasin Ayari', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.437, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9811, 'skill_edge': -0.0568, 'height_edge': 0.044, 'attacker_skill': 0.6914, 'defender_skill': 0.8177, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Yasin Ayari', 'market_value': 41000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8177}], 'xg_override': 0.122} | aerialWon: 1.4022 -> 1.1 totalShots: 1.3057 -> 1.281 shotOffTarget: 0.9514 -> 0.9334 bigChanceMissed: 0.3684 -> 0.3614 onTargetScoringAttempt: 0.3543 -> 0.3476 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.22 (squad xG sum 1.3534, xG scale 0.8984, xA scale 0.8984, team xA 0.81 = 0.66 x lambda) | scoreline_reset=true
team_lambda=1.216
squad_xg_sum=1.3534
squad_xa_sum=0.8965
team_expected_assists=0.8055
team_xa_to_xg_ratio=0.6624 | expected_goals: 0.122 -> 0.1096 expected_assists: 0.1093 -> 0.0982 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 78.0) | match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1038
goal_rate=0.1222
scorer_weight=0.1097 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0935
assist_rate=0.0931
provider_weight=0.0882 | - |
|
| Jaydee Canvot | D | 90 | 0 | 0.04 | 0.05 | ok | 0 | 0.2 | 6.8 | 46.7 | 29 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0114, quality 0.732) | market_value_eur=32000000
quality_factor=0.732
boost_factor=1.0114
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.9948
prior_reliability=0.1333
competition=Premier League | wonTackle: 1.2014 -> 1.2128 interceptionWon: 1.1661 -> 1.1564 fouls: 0.4866 -> 0.4796 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Pascal Groß', 'matchup_zone': '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.22 (squad xG sum 1.3534, xG scale 0.8984, xA scale 0.8984, team xA 0.81 = 0.66 x lambda) | scoreline_reset=true
team_lambda=1.216
squad_xg_sum=1.3534
squad_xa_sum=0.8965
team_expected_assists=0.8055
team_xa_to_xg_ratio=0.6624 | - | 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: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0369
goal_rate=0.0
scorer_weight=0.0301 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0229
assist_rate=0.0
provider_weight=0.0186 | - |
|
| Chris Richards | D | 90 | 0 | 0.07 | 0.07 | ok | 1 | 0.5 | 6.8 | 53.6 | 28 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0059, quality 0.677) | market_value_eur=25000000
quality_factor=0.6773
boost_factor=1.0059
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.9998
prior_reliability=0.1333
competition=Premier League | interceptionWon: 1.1567 -> 1.165 wonTackle: 0.7031 -> 0.7109 fouls: 0.5663 -> 0.5607 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Charalampos Kostoulas', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.22 (squad xG sum 1.3534, xG scale 0.8984, xA scale 0.8984, team xA 0.81 = 0.66 x lambda) | scoreline_reset=true
team_lambda=1.216
squad_xg_sum=1.3534
squad_xa_sum=0.8965
team_expected_assists=0.8055
team_xa_to_xg_ratio=0.6624 | expected_goals: 0.0811 -> 0.0729 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 80.0) | match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0703
goal_rate=0.01
scorer_weight=0.0583 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0206
assist_rate=0.0
provider_weight=0.0166 | - |
|
| Jefferson Lerma | M | 84 | 0 | 0.08 | 0.08 | ok | 1 | 0.6 | 6.8 | 46.5 | 26 | FBref Prior M_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9986, quality 0.468) | market_value_eur=5500000
quality_factor=0.4683
boost_factor=0.9986
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': 'Yasin Ayari', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.324, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.815, 'skill_edge': -0.1539, 'height_edge': 0.028, 'attacker_skill': 0.4758, 'defender_skill': 0.8177, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Yasin Ayari', 'market_value': 41000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8177}], 'xg_override': 0.0856} | aerialWon: 2.7156 -> 1.0 totalShots: 1.1082 -> 0.9032 shotOffTarget: 0.7749 -> 0.6315 onTargetScoringAttempt: 0.3333 -> 0.2716 bigChanceMissed: 0.2905 -> 0.2368 expectedGoalsOnTarget: 0.1638 -> 0.1335 expectedGoals: 0.105 -> 0.0856 goals: 0.0918 -> 0.0748 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.22 (squad xG sum 1.3534, xG scale 0.8984, xA scale 0.8984, team xA 0.81 = 0.66 x lambda) | scoreline_reset=true
team_lambda=1.216
squad_xg_sum=1.3534
squad_xa_sum=0.8965
team_expected_assists=0.8055
team_xa_to_xg_ratio=0.6624 | expected_goals: 0.0856 -> 0.0769 expected_assists: 0.0549 -> 0.0493 | 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.074
goal_rate=0.0748
scorer_weight=0.0708 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0481
assist_rate=0.0549
provider_weight=0.0493 | - |
|
| Walter Benítez | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 7.1 | 9.9 | 31 | 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.9902, quality 0.446) | market_value_eur=3700000
quality_factor=0.4461
boost_factor=0.9902
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': 'Charalampos Kostoulas, Pascal Groß', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.4398} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.22 (squad xG sum 1.3534, xG scale 0.8984, xA scale 0.8984, team xA 0.81 = 0.66 x lambda) | scoreline_reset=true
team_lambda=1.216
squad_xg_sum=1.3534
squad_xa_sum=0.8965
team_expected_assists=0.8055
team_xa_to_xg_ratio=0.6624 | shots_faced: 13.7 -> 13.6 expected_saves: 3.36 -> 3.33 high_pressure_saves: 1.15 -> 1.14 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 78.0) | match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.2267 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by 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.7186 | - |
|
| Team totals | 1 | 1.22 | | 12 | | 6.9 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Dean Henderson | G | 5.5m | 15.4% | Market-value substitute prior |
| Honest Ahanor | D | 14.9m | 36.1% | Market-value substitute prior |
| Chadi Riad | D | 14.3m | 23.2% | Market-value substitute prior |
| Óscar Mingueza | M | 19.0m | 70.7% | Market-value substitute prior |
| Zavier Gozo | M | 22.8m | 70.1% | Market-value substitute prior |
| Ismaïla Sarr | F | 26.7m | 62.3% | Market-value substitute prior |
Antagonist / tactical summary
Midfield is evenly contested — Yasin Ayari vs Adam Wharton will be the pivotal duel. Total antagonist xG — Home: 0.48, Away: 1.07. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Shadow Striker vs CDM + CB — Zone 14 Battle.
Midfield — possession 50.0% / 50.0%, dominance ratio 0.48, key duel: Yasin Ayari vs Adam Wharton
Pascal Groß xG 0.14Chema Andrés xG 0.09Charalampos Kostoulas xG 0.25Jørgen Strand Larsen xG 0.37Yéremy Pino xG 0.14Tyrick Mitchell xG 0.08
Summary
Antagonist matchup analysis for Brighton vs Crystal Palace. Most likely scoreline: 1-1. Lambdas derived from 3 home and 8 away individual player duels. Head-to-head: Brighton 2W-5D-3L vs Crystal Palace over 10 meetings.
Tactical parity between 4-2-3-1 and 3-4-2-1. Match outcome driven primarily by individual player quality. Midfield is evenly contested — Yasin Ayari vs Adam Wharton will be the pivotal duel. Total antagonist xG — Home: 0.48, Away: 1.07. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Shadow Striker vs CDM + CB — Zone 14 Battle.
Leeds vs Man Utd
Premier League · 20261018 · 3-4-2-1 vs 4-2-3-1
Predicted 1-1Winner: DrawWinning H 1-0 (7.8%)Winning A 0-1 (9.8%)Confidence 0.72λ home/away 1.21 / 1.52Most-likely P 12.1%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset TracingAntagonist + XGBoost match analysis for Leeds vs Man Utd. 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.281, Away 1.347). Final calibrated Poisson lambdas: Home 1.207, Away 1.524 (most likely score 1-1).
Home Starters 11/11 XGBoost (10 FBref) Away Starters 11/11 XGBoost (10 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.28 / 1.35 Final λ (H/A) 1.21 / 1.52
FBref Team Priors: Leeds United (Gls/90: 1.0, GA/90: 1.0 → E[λ]: 1.724) vs Manchester United (Gls/90: 2.0, GA/90: 2.5 → E[λ]: 1.379) | Blend Weight: 0.192
Modeling Pipeline Stages (5 layers)
- 1. XGBoost player regressions for volume & event rates with market-value quality scaling
- 2. Multi-source prior blending (FBref 2026-2027 tables + Sofascore season history)
- 3. Antagonist formation duel matrix resolving 1v1 and zonal matchups
- 4. Team-level prior calibration (FBref possession and attack/defense efficiencies)
- 5. Bivariate Poisson matrix with Dixon-Coles low-score correction
Standing & form context
| Metric | Leeds | Man Utd |
|---|
| League position | 7.00 | 13.00 |
| Points per game | 1.42 | 1.17 |
| Attack index | 0.97 | 1.01 |
| Defense (concede) index | 1.01 | 0.85 |
| Form multiplier | 1.01 | 0.98 |
| Standing λ multiplier | 0.99 | 0.94 |
Lambda decomposition (how the goal rates were built)
| Stage | Leeds λ | Man Utd λ |
|---|
| FBref Squad Prior E[λ] (weight 0.192) | 1.724 | 1.379 |
| Pre-competitive-floor | 1.207 | 1.524 |
| Pre-calibration (Micro-duels) | 1.281 | 1.347 |
| Final λ | 1.207 | 1.524 |
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.1% |
| 0-1 | 9.8% |
| 1-2 | 9.1% |
| 1-0 | 7.8% |
| 0-2 | 7.6% |
| Home win | 30.0% |
| Draw | 25.5% |
| Away win | 44.5% |
| Over 2.5 | 51.4% |
| BTTS yes | 54.9% |
Pregame fair line — favorite Man Utd (44.5%), fair total 2.73, fair spread -0.32
Projected players vs season baseline
Proj = projected for this match · Season = this season's per-game average from match data · deviation badge compares projected xG to the player's season xG/game.
Leeds — projected line vs season baseline (3-4-2-1)
| Player | Pos | Min | Proj G | Proj xG | Season xG/g | | Proj Sh | Season Sh/g | Proj Rtg | Season Rtg | Rec | Model / FBref Prior |
|---|
| Gabriel Gudmundsson | M | 84 | 0 | 0.04 | 0.01 | 298% | 1 | 0.3 | 6.8 | 39.5 | 31 | FBref Prior M_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0066, quality 0.686) | market_value_eur=26000000
quality_factor=0.6858
boost_factor=1.0066
reference_quality=0.505
history_matches=36
history_shrink=0.122 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=true | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Lisandro Martínez', 'matchup_zone': 'Left Wingback vs Right Back — Overlapping Run', 'duel_win_rate': 0.377, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9667, 'skill_edge': -0.0466, 'height_edge': 0.024, 'attacker_skill': 0.765, 'defender_skill': 0.8686, 'attacker_role': 'LWB', 'attacker_mv_price_index': 0.7, 'defender_adjusted_parts': [{'player': 'Lisandro Martínez', 'market_value': 48000000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.8686}], 'xg_override': 0.0405} | aerialWon: 0.7065 -> 1.1 totalShots: 0.691 -> 0.668 shotOffTarget: 0.5026 -> 0.4859 onTargetScoringAttempt: 0.1884 -> 0.1821 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.21 (squad xG sum 1.2741, xG scale 0.9474, xA scale 0.9960, team xA 0.78 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.207
squad_xg_sum=1.2741
squad_xa_sum=0.7877
team_expected_assists=0.7846
team_xa_to_xg_ratio=0.65 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 78.0) | match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0377
goal_rate=0.0471
scorer_weight=0.0412 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by 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.1009
provider_weight=0.0972 | - |
|
| Ao Tanaka | M | 75 | 0 | 0.06 | 0.05 | ok | 1 | 0.4 | 6.8 | 35.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.0034, quality 0.592) | market_value_eur=16200000
quality_factor=0.5921
boost_factor=1.0034
reference_quality=0.505
history_matches=33
history_shrink=0.1316 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0028) | blend_weight=0.0028
history_matches=33
season_overlap_discount=1.0
per90_to_match_factor=0.8311
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': 'Kobbie Mainoo', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.309, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.7923, 'skill_edge': -0.1253, 'height_edge': -0.016, 'attacker_skill': 0.6109, 'defender_skill': 0.8893, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Kobbie Mainoo', 'market_value': 77000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8893}], 'xg_override': 0.0612} | aerialWon: 0.3241 -> 1.1 totalShots: 0.9809 -> 0.7772 shotOffTarget: 0.7065 -> 0.5598 onTargetScoringAttempt: 0.2744 -> 0.2174 bigChanceMissed: 0.1359 -> 0.1077 expectedGoals: 0.0772 -> 0.0612 goals: 0.0683 -> 0.0541 expectedGoalsOnTarget: 0.028 -> 0.0222 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.21 (squad xG sum 1.2741, xG scale 0.9474, xA scale 0.9960, team xA 0.78 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.207
squad_xg_sum=1.2741
squad_xa_sum=0.7877
team_expected_assists=0.7846
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 76.0) | match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0564
goal_rate=0.0541
scorer_weight=0.0543 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.063
assist_rate=0.0638
provider_weight=0.0642 | - |
|
| Ethan Ampadu | M | 90 | 0 | 0.05 | 0.05 | ok | 1 | 0.6 | 7.0 | 60.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.0076, quality 0.739) | market_value_eur=33000000
quality_factor=0.7389
boost_factor=1.0076
reference_quality=0.505
history_matches=41
history_shrink=0.1087 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0094) | blend_weight=0.0094
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=0.9978
prior_reliability=0.1333
competition=Premier League | wonTackle: 1.0257 -> 1.0207 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Kobbie Mainoo', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.385, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9041, 'skill_edge': -0.0572, 'height_edge': -0.008, 'attacker_skill': 0.7622, 'defender_skill': 0.8893, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Kobbie Mainoo', 'market_value': 77000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8893}], 'xg_override': 0.0484} | aerialWon: 1.3742 -> 1.1 totalShots: 0.7062 -> 0.6385 shotOffTarget: 0.5227 -> 0.4726 onTargetScoringAttempt: 0.1835 -> 0.1659 expectedGoalsOnTarget: 0.0992 -> 0.0897 goals: 0.0599 -> 0.0542 expectedGoals: 0.0535 -> 0.0484 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.21 (squad xG sum 1.2741, xG scale 0.9474, xA scale 0.9960, team xA 0.78 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.207
squad_xg_sum=1.2741
squad_xa_sum=0.7877
team_expected_assists=0.7846
team_xa_to_xg_ratio=0.65 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 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.0449
goal_rate=0.0542
scorer_weight=0.0486 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0584
assist_rate=0.0662
provider_weight=0.0634 | - |
|
| Jayden Bogle | M | 79 | 0 | 0.13 | 0.08 | 52% | 1 | 0.5 | 6.8 | 55.7 | 27 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0039, quality 0.623) | market_value_eur=19200000
quality_factor=0.6231
boost_factor=1.0039
reference_quality=0.505
history_matches=40
history_shrink=0.1111 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0082) | blend_weight=0.0082
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=0.873
prior_reliability=0.1133
competition=Premier League | wasFouled: 1.1481 -> 1.1597 totalShots: 1.2309 -> 1.2208 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Luke Shaw', 'matchup_zone': 'Right Wingback vs Left Back — Overlapping Run', 'duel_win_rate': 0.475, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.1103, 'skill_edge': 0.0751, 'height_edge': 0.0, 'attacker_skill': 0.6976, 'defender_skill': 0.5308, 'attacker_role': 'RWB', 'attacker_mv_price_index': 0.7, 'defender_adjusted_parts': [{'player': 'Luke Shaw', 'market_value': 7500000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.5308}], 'xg_override': 0.1328} | totalShots: 1.2272 -> 1.3626 aerialWon: 0.8675 -> 1.0 shotOffTarget: 0.7782 -> 0.864 onTargetScoringAttempt: 0.449 -> 0.4985 expectedGoalsOnTarget: 0.2129 -> 0.2364 bigChanceMissed: 0.1896 -> 0.2105 goals: 0.1221 -> 0.1356 expectedGoals: 0.1196 -> 0.1328 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.21 (squad xG sum 1.2741, xG scale 0.9474, xA scale 0.9960, team xA 0.78 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.207
squad_xg_sum=1.2741
squad_xa_sum=0.7877
team_expected_assists=0.7846
team_xa_to_xg_ratio=0.65 | expected_goals: 0.1328 -> 0.1258 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 76.0) | match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1182
goal_rate=0.1356
scorer_weight=0.1277 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0952
assist_rate=0.0976
provider_weight=0.0981 | - |
|
| Tarik Muharemović | D | 90 | 0 | 0.09 | 0.04 | 102% | 1 | 0.5 | 7.0 | 38.7 | 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 1.0396, quality 0.796) | market_value_eur=43000000
quality_factor=0.7957
boost_factor=1.0396
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 | interceptionWon: 1.2081 -> 1.2393 onTargetScoringAttempt: 0.1111 -> 0.1264 totalCross: 0.1307 -> 0.1452 wasFouled: 0.8 -> 0.7882 totalShots: 0.7193 -> 0.7107 wonTackle: 0.6868 -> 0.6794 goalAssist: 0.1809 -> 0.1738 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Bruno Fernandes', 'matchup_zone': '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.21 (squad xG sum 1.2741, xG scale 0.9474, xA scale 0.9960, team xA 0.78 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.207
squad_xg_sum=1.2741
squad_xa_sum=0.7877
team_expected_assists=0.7846
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0949 -> 0.0899 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 75.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.086
goal_rate=0.0
scorer_weight=0.0719 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0085
assist_rate=0.1738
provider_weight=0.0106 | - |
|
| Nico Elvedi | D | 89 | 0 | 0.03 | 0.01 | 161% | 0 | 0.2 | 6.8 | 30.9 | 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 1.0044, quality 0.534) | market_value_eur=11000000
quality_factor=0.5341
boost_factor=1.0044
reference_quality=0.505
history_matches=5
history_shrink=0.5 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0130) | blend_weight=0.013
history_matches=5
season_overlap_discount=1.0
per90_to_match_factor=0.9907
prior_reliability=0.04
competition=Premier League | wasFouled: 0.0 -> 0.0429 wonTackle: 0.728 -> 0.7185 interceptionWon: 1.002 -> 1.0104 fouls: 0.5087 -> 0.5021 totalShots: 0.4926 -> 0.4862 | 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': 'Matheus Cunha', '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.21 (squad xG sum 1.2741, xG scale 0.9474, xA scale 0.9960, team xA 0.78 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.207
squad_xg_sum=1.2741
squad_xa_sum=0.7877
team_expected_assists=0.7846
team_xa_to_xg_ratio=0.65 | - | 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.0275
goal_rate=0.0
scorer_weight=0.0223 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1082
assist_rate=0.0
provider_weight=0.0916 | - |
|
| James Justin | D | 88 | 0 | 0.08 | 0.06 | ok | 1 | 1.0 | 6.8 | 60.2 | 33 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0034, quality 0.595) | market_value_eur=16500000
quality_factor=0.5953
boost_factor=1.0034
reference_quality=0.505
history_matches=35
history_shrink=0.125 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0108) | blend_weight=0.0108
history_matches=35
season_overlap_discount=1.0
per90_to_match_factor=0.977
prior_reliability=0.1333
competition=Premier League | wonTackle: 1.4355 -> 1.4464 totalShots: 1.0026 -> 0.997 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Amad Diallo', '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.21 (squad xG sum 1.2741, xG scale 0.9474, xA scale 0.9960, team xA 0.78 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.207
squad_xg_sum=1.2741
squad_xa_sum=0.7877
team_expected_assists=0.7846
team_xa_to_xg_ratio=0.65 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 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.0752
goal_rate=0.2168
scorer_weight=0.0978 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0634
assist_rate=0.1158
provider_weight=0.0819 | - |
|
| James Trafford | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 7.0 | 16.2 | 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.0265, quality 0.770) | market_value_eur=38000000
quality_factor=0.7699
boost_factor=1.0265
reference_quality=0.505
history_matches=10
history_shrink=0.3333 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0289) | blend_weight=0.0289
history_matches=10
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': 'Bryan Mbeumo, Bruno Fernandes', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.3467} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.21 (squad xG sum 1.2741, xG scale 0.9474, xA scale 0.9960, team xA 0.78 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.207
squad_xg_sum=1.2741
squad_xa_sum=0.7877
team_expected_assists=0.7846
team_xa_to_xg_ratio=0.65 | shots_faced: 12.8 -> 14.5 expected_saves: 3.13 -> 3.55 high_pressure_saves: 1.08 -> 1.22 | 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.0
scorer_weight=0.0
squad_weight_total=1.2764 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by 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.7668 | - |
|
| Anton Stach | M | 87 | 0 | 0.14 | 0.10 | 36% | 1 | 1.3 | 6.9 | 58.7 | 27 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0082, quality 0.725) | market_value_eur=31000000
quality_factor=0.7249
boost_factor=1.0082
reference_quality=0.505
history_matches=35
history_shrink=0.125 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0108) | blend_weight=0.0108
history_matches=35
season_overlap_discount=1.0
per90_to_match_factor=0.9703
prior_reliability=0.1333
competition=Premier League | totalCross: 6.7431 -> 6.7121 interceptionWon: 1.2786 -> 1.2963 wasFouled: 1.4004 -> 1.4168 fouls: 1.9183 -> 1.908 wonTackle: 1.5402 -> 1.534 totalShots: 1.4551 -> 1.4604 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Kobbie Mainoo', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.419, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9538, 'skill_edge': -0.0634, 'height_edge': 0.032, 'attacker_skill': 0.7484, 'defender_skill': 0.8893, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Kobbie Mainoo', 'market_value': 77000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8893}], 'xg_override': 0.1464} | aerialWon: 2.3909 -> 1.4 totalShots: 1.4604 -> 1.3929 shotOffTarget: 1.0103 -> 0.9636 onTargetScoringAttempt: 0.4451 -> 0.4245 bigChanceMissed: 0.2452 -> 0.2339 goals: 0.1632 -> 0.1557 expectedGoals: 0.1535 -> 0.1464 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.21 (squad xG sum 1.2741, xG scale 0.9474, xA scale 0.9960, team xA 0.78 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.207
squad_xg_sum=1.2741
squad_xa_sum=0.7877
team_expected_assists=0.7846
team_xa_to_xg_ratio=0.65 | expected_goals: 0.1464 -> 0.1387 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 80.0) | match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1295
goal_rate=0.1557
scorer_weight=0.1453 | - | integer_assist_projection | Team scoreline allocation: 1 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.1037
assist_rate=0.0942
provider_weight=0.0987 | - |
|
| Noah Okafor | F | 72 | 0 | 0.15 | 0.12 | ok | 2 | 0.9 | 6.8 | 55.5 | 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.0095, quality 0.752) | market_value_eur=35000000
quality_factor=0.752
boost_factor=1.0095
reference_quality=0.505
history_matches=34
history_shrink=0.1282 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0056) | blend_weight=0.0056
history_matches=34
season_overlap_discount=1.0
per90_to_match_factor=0.7951
prior_reliability=0.0667
competition=Premier League | totalCross: 1.9046 -> 1.9161 wonTackle: 0.8229 -> 0.8316 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Kobbie Mainoo, Harry Maguire', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle', 'duel_win_rate': 0.271, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 1.0013, 'skill_edge': 0.0169, 'height_edge': -0.016, 'attacker_skill': 0.752, 'defender_skill': 0.7144, 'attacker_role': 'SS', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Kobbie Mainoo', 'market_value': 77000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8893}, {'player': 'Harry Maguire', 'market_value': 8600000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5395}], 'xg_override': 0.1544} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.21 (squad xG sum 1.2741, xG scale 0.9474, xA scale 0.9960, team xA 0.78 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.207
squad_xg_sum=1.2741
squad_xa_sum=0.7877
team_expected_assists=0.7846
team_xa_to_xg_ratio=0.65 | expected_goals: 0.1544 -> 0.1463 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 77.0) | match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1361
goal_rate=0.1782
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.063
assist_rate=0.0493
provider_weight=0.056 | - |
|
| Dominic Calvert-Lewin | F | 85 | 1 | 0.32 | 0.41 | ok | 2 | 1.7 | 6.9 | 55.8 | 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.0062, quality 0.694) | market_value_eur=27000000
quality_factor=0.6941
boost_factor=1.0062
reference_quality=0.505
history_matches=41
history_shrink=0.1087 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0094) | blend_weight=0.0094
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=0.9494
prior_reliability=0.1333
competition=Premier League | totalOffside: 0.6958 -> 0.7027 wasFouled: 1.0634 -> 1.0579 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Kobbie Mainoo, Harry Maguire', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle', 'duel_win_rate': 0.253, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 0.9748, 'skill_edge': -0.0091, 'height_edge': -0.008, 'attacker_skill': 0.6941, 'defender_skill': 0.7144, 'attacker_role': 'SS', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Kobbie Mainoo', 'market_value': 77000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8893}, {'player': 'Harry Maguire', 'market_value': 8600000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5395}], 'xg_override': 0.3385} | totalShots: 2.1068 -> 2.0537 shotOffTarget: 1.1976 -> 1.1674 onTargetScoringAttempt: 0.9071 -> 0.8842 bigChanceMissed: 0.7658 -> 0.7465 expectedGoalsOnTarget: 0.5302 -> 0.5168 goals: 0.3898 -> 0.38 expectedGoals: 0.3473 -> 0.3385 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.21 (squad xG sum 1.2741, xG scale 0.9474, xA scale 0.9960, team xA 0.78 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.207
squad_xg_sum=1.2741
squad_xa_sum=0.7877
team_expected_assists=0.7846
team_xa_to_xg_ratio=0.65 | expected_goals: 0.3385 -> 0.3205 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 79.0) | match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.2742
goal_rate=0.38
scorer_weight=0.3547 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0285
assist_rate=0.0042
provider_weight=0.0231 | - |
|
| Team totals | 1 | 1.21 | | 13 | | 6.9 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Lucas Perri | G | 4.7m | 12.2% | Market-value substitute prior |
| Joe Rodon | D | 14.3m | 23.2% | Market-value substitute prior |
| Jaka Bijol | D | 14.3m | 23.1% | Market-value substitute prior |
| Sean Longstaff | M | 15.1m | 70.3% | Market-value substitute prior |
| Ilia Gruev | M | 22.4m | 51.6% | Market-value substitute prior |
| Harry Wilson | F | 36.6m | 54.7% | Market-value substitute prior |
Man Utd — projected line vs season baseline (4-2-3-1)
| Player | Pos | Min | Proj G | Proj xG | Season xG/g | | Proj Sh | Season Sh/g | Proj Rtg | Season Rtg | Rec | Model / FBref Prior |
|---|
| Senne Lammens | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 7.0 | 59.3 | 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.0092, quality 0.770) | market_value_eur=38000000
quality_factor=0.7699
boost_factor=1.0092
reference_quality=0.505
history_matches=38
history_shrink=0.1163 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0101) | blend_weight=0.0101
history_matches=38
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Dominic Calvert-Lewin, Noah Okafor', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.2813} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.52 (squad xG sum 1.3082, xG scale 1.1650, xA scale 1.1301, team xA 1.22 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.524
squad_xg_sum=1.3082
squad_xa_sum=1.0789
team_expected_assists=1.2192
team_xa_to_xg_ratio=0.8 | shots_faced: 12.2 -> 11.5 expected_saves: 2.99 -> 2.82 high_pressure_saves: 1.03 -> 0.97 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 82.0) | match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.6938 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by 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.2581 | - |
|
| Bryan Mbeumo | F | 85 | 1 | 0.45 | 0.39 | ok | 2 | 2.2 | 7.1 | 57.5 | 33 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0126, quality 0.875) | market_value_eur=73000000
quality_factor=0.8747
boost_factor=1.0126
reference_quality=0.505
history_matches=39
history_shrink=0.1136 | - | 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.9496
prior_reliability=0.1333
competition=Premier League | totalCross: 3.4363 -> 3.4726 totalShots: 2.3925 -> 2.411 interceptionWon: 0.6583 -> 0.6518 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Tarik Muharemović, Nico Elvedi', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.214, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 1.0202, 'skill_edge': 0.0737, 'height_edge': -0.06, 'attacker_skill': 0.8747, 'defender_skill': 0.7109, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Tarik Muharemović', 'market_value': 43000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8462}, {'player': 'Nico Elvedi', 'market_value': 11000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5755}], 'xg_override': 0.3853} | totalShots: 2.411 -> 2.4597 shotOffTarget: 1.3528 -> 1.3801 onTargetScoringAttempt: 1.0434 -> 1.0645 bigChanceMissed: 0.7171 -> 0.7316 expectedGoalsOnTarget: 0.4449 -> 0.4539 goals: 0.4185 -> 0.427 expectedGoals: 0.3777 -> 0.3853 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.52 (squad xG sum 1.3082, xG scale 1.1650, xA scale 1.1301, team xA 1.22 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.524
squad_xg_sum=1.3082
squad_xa_sum=1.0789
team_expected_assists=1.2192
team_xa_to_xg_ratio=0.8 | expected_goals: 0.3853 -> 0.4486 expected_assists: 0.1338 -> 0.1512 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 84.0) | match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.3615
goal_rate=0.427
scorer_weight=0.4916 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1403
assist_rate=0.0254
provider_weight=0.121 | - |
|
| Matheus Cunha | F | 84 | 0 | 0.21 | 0.11 | 80% | 3 | 1.8 | 7.0 | 56.2 | 30 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0128, quality 0.881) | market_value_eur=79000000
quality_factor=0.8811
boost_factor=1.0128
reference_quality=0.505
history_matches=39
history_shrink=0.1136 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0089) | blend_weight=0.0089
history_matches=39
season_overlap_discount=1.0
per90_to_match_factor=0.9371
prior_reliability=0.12
competition=Premier League | wonTackle: 1.1126 -> 1.1027 fouls: 1.4114 -> 1.4035 interceptionWon: 0.5933 -> 0.588 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Tarik Muharemović, Nico Elvedi', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.251, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 1.0744, 'skill_edge': 0.0766, 'height_edge': -0.026, 'attacker_skill': 0.8811, 'defender_skill': 0.7109, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Tarik Muharemović', 'market_value': 43000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8462}, {'player': 'Nico Elvedi', 'market_value': 11000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5755}], 'xg_override': 0.1765} | totalShots: 2.1173 -> 2.2748 shotOffTarget: 1.4147 -> 1.52 onTargetScoringAttempt: 0.701 -> 0.7532 goals: 0.2198 -> 0.2362 expectedGoals: 0.1643 -> 0.1765 expectedGoalsOnTarget: 0.1623 -> 0.1744 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.52 (squad xG sum 1.3082, xG scale 1.1650, xA scale 1.1301, team xA 1.22 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.524
squad_xg_sum=1.3082
squad_xa_sum=1.0789
team_expected_assists=1.2192
team_xa_to_xg_ratio=0.8 | expected_goals: 0.1765 -> 0.2056 expected_assists: 0.1641 -> 0.1854 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 84.0) | match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1858
goal_rate=0.2362
scorer_weight=0.257 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1692
assist_rate=0.2372
provider_weight=0.2318 | - |
|
| Bruno Fernandes | M | 90 | 0 | 0.22 | 0.22 | ok | 2 | 2.0 | 7.1 | 63.0 | 29 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0074, quality 0.732) | market_value_eur=32000000
quality_factor=0.732
boost_factor=1.0074
reference_quality=0.505
history_matches=41
history_shrink=0.1087 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0094) | blend_weight=0.0094
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=0.9949
prior_reliability=0.1333
competition=Premier League | totalShots: 2.3057 -> 2.3355 onTargetScoringAttempt: 0.7439 -> 0.7556 goals: 0.3442 -> 0.355 wasFouled: 0.7036 -> 0.697 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Tarik Muharemović', 'matchup_zone': 'LW vs CB', 'duel_win_rate': 0.313, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.8422, 'skill_edge': -0.0514, 'height_edge': -0.056, 'attacker_skill': 0.732, 'defender_skill': 0.8462, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Tarik Muharemović', 'market_value': 43000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8462}], 'xg_override': 0.1866} | aerialWon: 0.2881 -> 1.0 totalShots: 2.3355 -> 1.967 shotOffTarget: 1.5618 -> 1.3153 onTargetScoringAttempt: 0.7556 -> 0.6364 goals: 0.355 -> 0.299 expectedGoalsOnTarget: 0.2576 -> 0.217 expectedGoals: 0.2216 -> 0.1866 bigChanceMissed: 0.1647 -> 0.1387 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.52 (squad xG sum 1.3082, xG scale 1.1650, xA scale 1.1301, team xA 1.22 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.524
squad_xg_sum=1.3082
squad_xa_sum=1.0789
team_expected_assists=1.2192
team_xa_to_xg_ratio=0.8 | expected_goals: 0.1866 -> 0.2174 expected_assists: 0.2272 -> 0.2567 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 89.0) | match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1954
goal_rate=0.299
scorer_weight=0.2717 | - | integer_assist_projection | Team scoreline allocation: 1 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.2264
assist_rate=0.3394
provider_weight=0.3209 | - |
|
| Amad Diallo | F | 77 | 0 | 0.15 | 0.07 | 124% | 2 | 1.0 | 6.8 | 43.9 | 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.0117, quality 0.800) | market_value_eur=44000000
quality_factor=0.8002
boost_factor=1.0117
reference_quality=0.505
history_matches=33
history_shrink=0.1316 | - | 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': 'Tarik Muharemović, Nico Elvedi', '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.9709, 'skill_edge': 0.0402, 'height_edge': -0.06, 'attacker_skill': 0.8002, 'defender_skill': 0.7109, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Tarik Muharemović', 'market_value': 43000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8462}, {'player': 'Nico Elvedi', 'market_value': 11000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5755}], 'xg_override': 0.1319} | totalShots: 1.6802 -> 1.6313 shotOffTarget: 1.1023 -> 1.0702 onTargetScoringAttempt: 0.5779 -> 0.5611 bigChanceMissed: 0.1888 -> 0.1833 goals: 0.1872 -> 0.1818 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.52 (squad xG sum 1.3082, xG scale 1.1650, xA scale 1.1301, team xA 1.22 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.524
squad_xg_sum=1.3082
squad_xa_sum=1.0789
team_expected_assists=1.2192
team_xa_to_xg_ratio=0.8 | expected_goals: 0.1319 -> 0.1537 expected_assists: 0.0738 -> 0.0834 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 80.0) | match_squad_rank=11
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1425
goal_rate=0.1818
scorer_weight=0.1921 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.08
assist_rate=0.1416
provider_weight=0.1043 | - |
|
| Kobbie Mainoo | M | 87 | 0 | 0.07 | 0.03 | 166% | 1 | 0.6 | 7.3 | 58.7 | 28 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0144, quality 0.879) | market_value_eur=77000000
quality_factor=0.8792
boost_factor=1.0144
reference_quality=0.505
history_matches=34
history_shrink=0.1282 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0061) | blend_weight=0.0061
history_matches=34
season_overlap_discount=1.0
per90_to_match_factor=0.966
prior_reliability=0.0733
competition=Premier League | totalShots: 0.8279 -> 0.8435 fouls: 0.928 -> 0.9223 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Noah Okafor, Dominic Calvert-Lewin, Anton Stach', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.52 (squad xG sum 1.3082, xG scale 1.1650, xA scale 1.1301, team xA 1.22 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.524
squad_xg_sum=1.3082
squad_xa_sum=1.0789
team_expected_assists=1.2192
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0579 -> 0.0675 expected_assists: 0.1004 -> 0.1135 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 81.0) | match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0653
goal_rate=0.0581
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.1073
assist_rate=0.0724
provider_weight=0.0924 | - |
|
| Youri Tielemans | M | 80 | 0 | 0.08 | 0.05 | 58% | 1 | 0.7 | 7.2 | 57.1 | 23 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0121, quality 0.796) | market_value_eur=43000000
quality_factor=0.7957
boost_factor=1.0121
reference_quality=0.505
history_matches=31
history_shrink=0.1389 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0102) | blend_weight=0.0102
history_matches=31
season_overlap_discount=1.0
per90_to_match_factor=0.8924
prior_reliability=0.1133
competition=Premier League | wonTackle: 1.6271 -> 1.6158 totalShots: 0.9663 -> 0.9775 wasFouled: 2.0765 -> 2.0875 onTargetScoringAttempt: 0.2605 -> 0.2683 totalCross: 1.2703 -> 1.2627 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Ethan Ampadu, Jayden Bogle', 'matchup_zone': 'Midfield lane'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.52 (squad xG sum 1.3082, xG scale 1.1650, xA scale 1.1301, team xA 1.22 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.524
squad_xg_sum=1.3082
squad_xa_sum=1.0789
team_expected_assists=1.2192
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0659 -> 0.0768 expected_assists: 0.1109 -> 0.1253 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 85.0) | match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0739
goal_rate=0.0623
scorer_weight=0.0744 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1178
assist_rate=0.0751
provider_weight=0.1002 | - |
|
| Luke Shaw | D | 85 | 0 | 0.02 | 0.02 | ok | 1 | 0.4 | 6.8 | 56.0 | 29 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9996, quality 0.493) | market_value_eur=7500000
quality_factor=0.4927
boost_factor=0.9996
reference_quality=0.505
history_matches=43
history_shrink=0.1042 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0081) | blend_weight=0.0081
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=0.9459
prior_reliability=0.12
competition=Premier League | totalCross: 1.5215 -> 1.539 fouls: 0.9998 -> 0.9917 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Jayden Bogle', 'matchup_zone': 'Right Wingback vs Left Back — Overlapping Run'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.52 (squad xG sum 1.3082, xG scale 1.1650, xA scale 1.1301, team xA 1.22 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.524
squad_xg_sum=1.3082
squad_xa_sum=1.0789
team_expected_assists=1.2192
team_xa_to_xg_ratio=0.8 | expected_assists: 0.0837 -> 0.0946 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 79.0) | match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0202
goal_rate=0.059
scorer_weight=0.0255 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0903
assist_rate=0.1082
provider_weight=0.1119 | - |
|
| Lisandro Martínez | D | 89 | 0 | 0.04 | 0.02 | 144% | 1 | 0.5 | 7.1 | 51.9 | 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.0167, quality 0.817) | market_value_eur=48000000
quality_factor=0.8168
boost_factor=1.0167
reference_quality=0.505
history_matches=23
history_shrink=0.1786 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0077) | blend_weight=0.0077
history_matches=23
season_overlap_discount=1.0
per90_to_match_factor=0.9851
prior_reliability=0.0667
competition=Premier League | interceptionWon: 0.9356 -> 0.9284 wonTackle: 0.7999 -> 0.7937 fouls: 0.7732 -> 0.7672 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Gabriel Gudmundsson', 'matchup_zone': 'Left Wingback vs Right Back — Overlapping Run'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.52 (squad xG sum 1.3082, xG scale 1.1650, xA scale 1.1301, team xA 1.22 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.524
squad_xg_sum=1.3082
squad_xa_sum=1.0789
team_expected_assists=1.2192
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0322 -> 0.0375 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 82.0) | match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0368
goal_rate=0.0
scorer_weight=0.03 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.039
assist_rate=0.0
provider_weight=0.0318 | - |
|
| Harry Maguire | D | 89 | 0 | 0.06 | 0.04 | 54% | 1 | 0.7 | 6.9 | 54.0 | 27 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0000, quality 0.506) | market_value_eur=8600000
quality_factor=0.5059
boost_factor=1.0
reference_quality=0.505
history_matches=29
history_shrink=0.1471 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0127) | blend_weight=0.0127
history_matches=29
season_overlap_discount=1.0
per90_to_match_factor=0.991
prior_reliability=0.1333
competition=Premier League | wonTackle: 0.7684 -> 0.7586 totalCross: 0.506 -> 0.5122 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Noah Okafor', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.52 (squad xG sum 1.3082, xG scale 1.1650, xA scale 1.1301, team xA 1.22 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.524
squad_xg_sum=1.3082
squad_xa_sum=1.0789
team_expected_assists=1.2192
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0555 -> 0.0647 expected_assists: 0.05 -> 0.0565 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 82.0) | match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0627
goal_rate=0.0044
scorer_weight=0.0518 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0549
assist_rate=0.0327
provider_weight=0.0467 | - |
|
| Diogo Dalot | D | 88 | 0 | 0.08 | 0.04 | 128% | 1 | 0.8 | 6.7 | 53.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.0066, quality 0.702) | market_value_eur=28000000
quality_factor=0.7022
boost_factor=1.0066
reference_quality=0.505
history_matches=40
history_shrink=0.1111 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0043) | blend_weight=0.0043
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=0.9731
prior_reliability=0.06
competition=Premier League | totalCross: 1.8427 -> 1.8581 totalShots: 0.7932 -> 0.8079 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Noah Okafor', '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.52 (squad xG sum 1.3082, xG scale 1.1650, xA scale 1.1301, team xA 1.22 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.524
squad_xg_sum=1.3082
squad_xa_sum=1.0789
team_expected_assists=1.2192
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0695 -> 0.081 expected_assists: 0.0658 -> 0.0744 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 16 by projected rating, fifa_overall 78.0) | match_squad_rank=16
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0778
goal_rate=0.003
scorer_weight=0.0648 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0717
assist_rate=0.0229
provider_weight=0.0595 | - |
|
| Team totals | 1 | 1.52 | | 17 | | 7.0 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Karl Darlow | G | 4.4m | 10.9% | Market-value substitute prior |
| Leny Yoro | D | 16.1m | 63.2% | Market-value substitute prior |
| Ayden Heaven | D | 14.7m | 24.1% | Market-value substitute prior |
| Carlos Baleba | M | 23.6m | 57.5% | Market-value substitute prior |
| Andrey Santos | M | 16.6m | 52.9% | Market-value substitute prior |
| Benjamin Šeško | F | 22.1m | 75.5% | Market-value substitute prior |
Antagonist / tactical summary
Midfield is evenly contested — Ethan Ampadu vs Kobbie Mainoo will be the pivotal duel. Total antagonist xG — Home: 0.92, Away: 0.88. 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.1% / 50.9%, dominance ratio 0.47, key duel: Ethan Ampadu vs Kobbie Mainoo
Noah Okafor xG 0.15Dominic Calvert-Lewin xG 0.34Gabriel Gudmundsson xG 0.04Bruno Fernandes xG 0.19Matheus Cunha xG 0.18Bryan Mbeumo xG 0.39
Summary
Antagonist matchup analysis for Leeds vs Man Utd. Most likely scoreline: 1-1. Lambdas derived from 7 home and 4 away individual player duels. Head-to-head: Leeds 1W-4D-5L vs Man Utd over 10 meetings.
Tactical parity between 3-4-2-1 and 4-2-3-1. Match outcome driven primarily by individual player quality. Midfield is evenly contested — Ethan Ampadu vs Kobbie Mainoo will be the pivotal duel. Total antagonist xG — Home: 0.92, Away: 0.88. Home danger zone: Shadow Striker vs CDM + CB — Zone 14 Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Málaga vs Real Sociedad
LaLiga · 20261018 · 4-1-4-1 vs 4-4-2
Predicted 0-1Winner: Real SociedadWinning H 1-0 (7.5%)Winning A 0-1 (17.4%)Confidence 0.76λ home/away 0.65 / 1.50Most-likely P 17.4%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset TracingAntagonist + XGBoost match analysis for Málaga vs Real Sociedad. Player statistics regressed using position-specific XGBoost models (G, D, M, F) with 2026-2027 FBref priors. Micro-duels resolved across 4-1-4-1 vs 4-4-2 (duel lambdas: Home 0.696, Away 1.462). Final calibrated Poisson lambdas: Home 0.650, Away 1.505 (most likely score 0-1).
Home Starters 11/11 XGBoost (7 FBref) Away Starters 11/11 XGBoost (8 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 0.70 / 1.46 Final λ (H/A) 0.65 / 1.50
FBref Team Priors: Málaga CF (Gls/90: 0.3333333333333333, GA/90: 0.33 → E[λ]: 0.2) vs Real Sociedad (Gls/90: 0.75, GA/90: 0.75 → E[λ]: 0.2) | 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 | Málaga | Real Sociedad |
|---|
| League position | 20.00 | 6.00 |
| Points per game | 0.87 | 1.51 |
| Attack index | 0.73 | 0.99 |
| Defense (concede) index | 1.08 | 1.02 |
| Form multiplier | 0.97 | 1.03 |
| Standing λ multiplier | 0.91 | 1.01 |
Lambda decomposition (how the goal rates were built)
| Stage | Málaga λ | Real Sociedad λ |
|---|
| FBref Squad Prior E[λ] (weight 0.228) | 0.200 | 0.200 |
| Pre-mismatch | 0.701 | 1.452 |
| Pre-competitive-floor | 0.683 | 1.587 |
| Pre-calibration (Micro-duels) | 0.696 | 1.462 |
| Final λ | 0.650 | 1.505 |
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-1 | 17.4% |
| 0-2 | 13.1% |
| 0-0 | 11.7% |
| 1-1 | 11.4% |
| 1-2 | 8.5% |
| Home win | 16.0% |
| Draw | 26.2% |
| Away win | 57.9% |
| Over 2.5 | 36.5% |
| BTTS yes | 37.2% |
Pregame fair line — favorite Real Sociedad (57.9%), fair total 2.15, fair spread -0.85
Projected players vs season baseline
Proj = projected for this match · Season = this season's per-game average from match data · deviation badge compares projected xG to the player's season xG/game.
Málaga — projected line vs season baseline (4-1-4-1)
| Player | Pos | Min | Proj G | Proj xG | Season xG/g | | Proj Sh | Season Sh/g | Proj Rtg | Season Rtg | Rec | Model / FBref Prior |
|---|
| Chupete | F | 88 | 0 | 0.20 | 0.31 | 34% | 2 | 1.6 | 6.7 | 51.1 | 10 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0030, quality 0.531) | market_value_eur=10700000
quality_factor=0.5306
boost_factor=1.003
reference_quality=0.505
history_matches=8
history_shrink=0.3846 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0500) | blend_weight=0.05
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=0.9753
prior_reliability=0.2
competition=La Liga | totalCross: 0.7862 -> 0.7469 totalShots: 2.0199 -> 2.0491 onTargetScoringAttempt: 0.8393 -> 0.8134 fouls: 1.2707 -> 1.2559 wonTackle: 0.37 -> 0.384 interceptionWon: 0.16 -> 0.152 wasFouled: 1.1096 -> 1.1029 totalOffside: 0.4557 -> 0.4492 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Mamadou Sarr, Héctor Fort', '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.8755, 'skill_edge': -0.0667, 'height_edge': -0.018, 'attacker_skill': 0.5306, 'defender_skill': 0.6789, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Mamadou Sarr', 'market_value': 24000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.732}, {'player': 'Héctor Fort', 'market_value': 14600000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6258}], 'xg_override': 0.2644} | totalShots: 2.0491 -> 1.794 shotOffTarget: 1.1805 -> 1.0335 onTargetScoringAttempt: 0.8134 -> 0.7121 goals: 0.3418 -> 0.2992 expectedGoals: 0.302 -> 0.2644 bigChanceMissed: 0.2342 -> 0.205 expectedGoalsOnTarget: 0.233 -> 0.204 | 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.65 (squad xG sum 0.8509, xG scale 0.7639, xA scale 0.7639, team xA 0.50 = 0.77 x lambda) | scoreline_reset=true
team_lambda=0.65
squad_xg_sum=0.8509
squad_xa_sum=0.6556
team_expected_assists=0.5008
team_xa_to_xg_ratio=0.7705 | expected_goals: 0.2644 -> 0.2019 expected_assists: 0.0343 -> 0.0262 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 80.0) | match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.1828
goal_rate=0.2992
scorer_weight=0.2243 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0259
assist_rate=0.0
provider_weight=0.021 | - |
|
| Adrián Niño | F | 80 | 0 | 0.14 | 0.10 | 39% | 2 | 1.2 | 6.7 | 46.0 | 6 | 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.9887, quality 0.437) | market_value_eur=1900000
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': 'Mamadou Sarr, Héctor Fort', '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.8197, 'skill_edge': -0.1087, 'height_edge': -0.014, 'attacker_skill': 0.4374, 'defender_skill': 0.6789, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Mamadou Sarr', 'market_value': 24000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.732}, {'player': 'Héctor Fort', 'market_value': 14600000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6258}], 'xg_override': 0.1864} | totalShots: 2.0559 -> 1.6852 shotOffTarget: 1.2583 -> 1.0314 onTargetScoringAttempt: 0.7976 -> 0.6538 goals: 0.2567 -> 0.2104 expectedGoals: 0.2274 -> 0.1864 expectedGoalsOnTarget: 0.2208 -> 0.181 | 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.65 (squad xG sum 0.8509, xG scale 0.7639, xA scale 0.7639, team xA 0.50 = 0.77 x lambda) | scoreline_reset=true
team_lambda=0.65
squad_xg_sum=0.8509
squad_xa_sum=0.6556
team_expected_assists=0.5008
team_xa_to_xg_ratio=0.7705 | expected_goals: 0.1864 -> 0.1424 expected_assists: 0.034 -> 0.026 | 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.1327
goal_rate=0.2104
scorer_weight=0.1569 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0257
assist_rate=0.0
provider_weight=0.0208 | - |
|
| Dani Lorenzo | M | 79 | 0 | 0.03 | 0.03 | ok | 0 | 0.2 | 6.9 | 53.7 | 9 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9916, quality 0.437) | market_value_eur=2300000
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.8738
prior_reliability=0.12
competition=La Liga | fouls: 0.9023 -> 0.873 totalShots: 0.6115 -> 0.5916 wonTackle: 1.0937 -> 1.0739 interceptionWon: 0.6232 -> 0.6345 totalCross: 0.203 -> 0.1964 onTargetScoringAttempt: 0.1997 -> 0.1932 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Jon Gorrotxategi', 'matchup_zone': 'Central Mid vs Central Mid — Box-to-Box Midfield Contest', 'duel_win_rate': 0.29, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 0.8088, 'skill_edge': -0.1261, 'height_edge': -0.004, 'attacker_skill': 0.4374, 'defender_skill': 0.7176, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Jon Gorrotxategi', 'market_value': 27000000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.7176}], 'xg_override': 0.0362} | aerialWon: 0.2388 -> 0.9 totalShots: 0.6049 -> 0.4893 shotOffTarget: 0.4117 -> 0.333 onTargetScoringAttempt: 0.1932 -> 0.1563 bigChanceMissed: 0.1844 -> 0.1491 goals: 0.0592 -> 0.0479 expectedGoals: 0.0447 -> 0.0362 | 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.65 (squad xG sum 0.8509, xG scale 0.7639, xA scale 0.7639, team xA 0.50 = 0.77 x lambda) | scoreline_reset=true
team_lambda=0.65
squad_xg_sum=0.8509
squad_xa_sum=0.6556
team_expected_assists=0.5008
team_xa_to_xg_ratio=0.7705 | expected_goals: 0.0362 -> 0.0277 expected_assists: 0.0638 -> 0.0487 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 72.0) | match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0273
goal_rate=0.0479
scorer_weight=0.0315 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0475
assist_rate=0.0597
provider_weight=0.0469 | - |
|
| David Larrubia | F | 88 | 0 | 0.06 | 0.07 | ok | 1 | 1.4 | 7.1 | 52.2 | 18 | 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.9969, quality 0.478) | market_value_eur=6300000
quality_factor=0.4781
boost_factor=0.9969
reference_quality=0.505
history_matches=8
history_shrink=0.3846 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0400) | blend_weight=0.04
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=0.9753
prior_reliability=0.16
competition=La Liga | wonTackle: 1.2478 -> 1.3117 totalShots: 1.7307 -> 1.7758 totalCross: 1.0694 -> 1.0266 fouls: 1.0994 -> 1.0717 wasFouled: 1.3211 -> 1.3008 totalOffside: 0.0977 -> 0.11 onTargetScoringAttempt: 0.5412 -> 0.5523 goals: 0.1418 -> 0.1361 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Mamadou Sarr, Héctor Fort', '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.779, 'skill_edge': -0.0904, 'height_edge': -0.06, 'attacker_skill': 0.4781, 'defender_skill': 0.6789, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Mamadou Sarr', 'market_value': 24000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.732}, {'player': 'Héctor Fort', 'market_value': 14600000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6258}], 'xg_override': 0.0848} | totalShots: 1.7758 -> 1.3833 shotOffTarget: 1.1895 -> 0.9266 onTargetScoringAttempt: 0.5523 -> 0.4302 goals: 0.1361 -> 0.106 expectedGoals: 0.1089 -> 0.0848 expectedGoalsOnTarget: 0.0858 -> 0.0668 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.65 (squad xG sum 0.8509, xG scale 0.7639, xA scale 0.7639, team xA 0.50 = 0.77 x lambda) | scoreline_reset=true
team_lambda=0.65
squad_xg_sum=0.8509
squad_xa_sum=0.6556
team_expected_assists=0.5008
team_xa_to_xg_ratio=0.7705 | expected_goals: 0.0848 -> 0.0648 expected_assists: 0.1595 -> 0.1219 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 81.0) | match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_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.0627
goal_rate=0.106
scorer_weight=0.075 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.1148
assist_rate=0.0
provider_weight=0.0975 | - |
|
| Carlos Dotor | M | 81 | 0 | 0.05 | 0.03 | 49% | 1 | 0.4 | 6.9 | 55.0 | 10 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9916, quality 0.437) | market_value_eur=1200000
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.0451) | blend_weight=0.0451
history_matches=7
season_overlap_discount=1.0
per90_to_match_factor=0.8953
prior_reliability=0.1667
competition=La Liga | wonTackle: 1.0809 -> 1.1291 fouls: 1.2684 -> 1.2273 wasFouled: 0.6806 -> 0.6499 totalCross: 0.1246 -> 0.1513 totalShots: 0.7418 -> 0.7241 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Jon Gorrotxategi', 'matchup_zone': 'Holding Mid vs Central Mid — Midfield Anchor Duel', 'duel_win_rate': 0.286, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 0.8323, 'skill_edge': -0.1261, 'height_edge': 0.012, 'attacker_skill': 0.4374, 'defender_skill': 0.7176, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Jon Gorrotxategi', 'market_value': 27000000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.7176}], 'xg_override': 0.0653} | aerialWon: 0.3451 -> 1.1 totalShots: 0.7466 -> 0.6214 shotOffTarget: 0.5 -> 0.4162 onTargetScoringAttempt: 0.2466 -> 0.2052 expectedGoalsOnTarget: 0.2403 -> 0.2 goals: 0.0811 -> 0.0675 expectedGoals: 0.0785 -> 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.65 (squad xG sum 0.8509, xG scale 0.7639, xA scale 0.7639, team xA 0.50 = 0.77 x lambda) | scoreline_reset=true
team_lambda=0.65
squad_xg_sum=0.8509
squad_xa_sum=0.6556
team_expected_assists=0.5008
team_xa_to_xg_ratio=0.7705 | expected_goals: 0.0653 -> 0.0499 expected_assists: 0.0707 -> 0.054 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 85.0) | match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0487
goal_rate=0.0675
scorer_weight=0.0509 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0526
assist_rate=0.0697
provider_weight=0.0536 | - |
|
| Jose Salinas | D | 83 | 0 | 0.00 | 0.01 | 51% | 0 | 0.1 | 6.6 | 18.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.9954, quality 0.437) | market_value_eur=1800000
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.0059) | blend_weight=0.0059
history_matches=17
season_overlap_discount=1.0
per90_to_match_factor=0.9189
prior_reliability=0.04
competition=La Liga | fouls: 1.5985 -> 1.5891 totalCross: 1.1364 -> 1.1297 wasFouled: 0.9784 -> 0.9726 wonTackle: 0.9564 -> 0.9507 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Takefusa Kubo', 'matchup_zone': 'Shape fallback'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 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.65 (squad xG sum 0.8509, xG scale 0.7639, xA scale 0.7639, team xA 0.50 = 0.77 x lambda) | scoreline_reset=true
team_lambda=0.65
squad_xg_sum=0.8509
squad_xa_sum=0.6556
team_expected_assists=0.5008
team_xa_to_xg_ratio=0.7705 | expected_assists: 0.0388 -> 0.0296 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 18 by projected rating, fifa_overall 77.0) | match_squad_rank=18
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0028
goal_rate=0.0
scorer_weight=0.0026 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0292
assist_rate=0.0
provider_weight=0.0237 | - |
|
| Ángel Recio | D | 90 | 0 | 0.02 | 0.01 | ok | 1 | 0.6 | 6.9 | 54.4 | 10 | XGBoost D_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9922, quality 0.437) | market_value_eur=1000000
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': 'Mikel Oyarzabal', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 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.65 (squad xG sum 0.8509, xG scale 0.7639, xA scale 0.7639, team xA 0.50 = 0.77 x lambda) | scoreline_reset=true
team_lambda=0.65
squad_xg_sum=0.8509
squad_xa_sum=0.6556
team_expected_assists=0.5008
team_xa_to_xg_ratio=0.7705 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 65.0) | match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0159
goal_rate=0.0
scorer_weight=0.0128 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0064
assist_rate=0.0
provider_weight=0.0055 | - |
|
| Fernando Calero | D | 85 | 0 | 0.03 | 0.03 | ok | 0 | 0.3 | 6.8 | 53.7 | 20 | 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.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 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Mikel Oyarzabal', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 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.65 (squad xG sum 0.8509, xG scale 0.7639, xA scale 0.7639, team xA 0.50 = 0.77 x lambda) | scoreline_reset=true
team_lambda=0.65
squad_xg_sum=0.8509
squad_xa_sum=0.6556
team_expected_assists=0.5008
team_xa_to_xg_ratio=0.7705 | expected_goals: 0.0388 -> 0.0296 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 81.0) | match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0292
goal_rate=0.0
scorer_weight=0.0237 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0099
assist_rate=0.0
provider_weight=0.0079 | - |
|
| Rafa Garrido | D | 88 | 0 | 0.00 | 0.00 | 37% | 0 | 0.1 | 6.7 | 53.8 | 10 | XGBoost D_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9922, quality 0.437) | market_value_eur=1400000
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': 'Carlos Soler', 'matchup_zone': 'Left Mid vs Right Back — Wide Channel'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 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.65 (squad xG sum 0.8509, xG scale 0.7639, xA scale 0.7639, team xA 0.50 = 0.77 x lambda) | scoreline_reset=true
team_lambda=0.65
squad_xg_sum=0.8509
squad_xa_sum=0.6556
team_expected_assists=0.5008
team_xa_to_xg_ratio=0.7705 | expected_assists: 0.0262 -> 0.02 | 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 skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0019
goal_rate=0.0
scorer_weight=0.0018 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0198
assist_rate=0.2191
provider_weight=0.025 | - |
|
| Alfonso Herrero | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 7.1 | 58.7 | 10 | FBref Prior G_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost G_service raw output over 3 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9922, quality 0.437) | market_value_eur=420000
quality_factor=0.4374
boost_factor=0.9922
reference_quality=0.505
history_matches=8
history_shrink=0.3846 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0500) | blend_weight=0.05
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.2
competition=La Liga | saves: 2.9467 -> 2.9994 wasFouled: 0.2995 -> 0.2845 fouls: 0.1478 -> 0.1404 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Orri Óskarsson, Mikel Oyarzabal', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.4617} | - | 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.65 (squad xG sum 0.8509, xG scale 0.7639, xA scale 0.7639, team xA 0.50 = 0.77 x lambda) | scoreline_reset=true
team_lambda=0.65
squad_xg_sum=0.8509
squad_xa_sum=0.6556
team_expected_assists=0.5008
team_xa_to_xg_ratio=0.7705 | shots_faced: 13.9 -> 14.3 expected_saves: 3.4 -> 3.5 high_pressure_saves: 1.17 -> 1.2 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 75.0) | match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=0.6936 | - | 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.4548 | - |
|
| Pablo Martínez | M | 81 | 0 | 0.05 | 0.05 | ok | 1 | 0.8 | 6.9 | 60.5 | 26 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9974, quality 0.439) | market_value_eur=3100000
quality_factor=0.4387
boost_factor=0.9974
reference_quality=0.505
history_matches=33
history_shrink=0.1316 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0028) | blend_weight=0.0028
history_matches=33
season_overlap_discount=1.0
per90_to_match_factor=0.8977
prior_reliability=0.0333
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': 'Jon Martin', 'matchup_zone': 'Left Mid vs Right Back — Wide Channel', 'duel_win_rate': 0.311, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 0.781, 'skill_edge': -0.137, 'height_edge': -0.012, 'attacker_skill': 0.4429, 'defender_skill': 0.7474, 'attacker_role': 'LM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Jon Martin', 'market_value': 24000000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.7474}], 'xg_override': 0.0656} | aerialWon: 0.4074 -> 1.1 totalShots: 1.0863 -> 0.8484 shotOffTarget: 0.7262 -> 0.5672 onTargetScoringAttempt: 0.3601 -> 0.2812 expectedGoals: 0.084 -> 0.0656 goals: 0.0767 -> 0.0599 | 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.65 (squad xG sum 0.8509, xG scale 0.7639, xA scale 0.7639, team xA 0.50 = 0.77 x lambda) | scoreline_reset=true
team_lambda=0.65
squad_xg_sum=0.8509
squad_xa_sum=0.6556
team_expected_assists=0.5008
team_xa_to_xg_ratio=0.7705 | expected_goals: 0.0656 -> 0.0501 expected_assists: 0.1447 -> 0.1105 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 82.0) | match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0489
goal_rate=0.0599
scorer_weight=0.0476 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.1046
assist_rate=0.1472
provider_weight=0.1119 | - |
|
| Team totals | 0 | 0.65 | | 10 | | 6.8 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Carlos Lopez | G | 4.4m | 10.9% | Market-value substitute prior |
| Adam Aznou | D | 13.7m | 30.6% | Market-value substitute prior |
| Diego Murillo | D | 13.6m | 29.9% | Market-value substitute prior |
| Jens-Lys Cajuste | M | 22.1m | 50.7% | Market-value substitute prior |
| Izan Merino | M | 22.1m | 50.3% | Market-value substitute prior |
| Joaquín Muñoz | F | 25.3m | 55.9% | Market-value substitute prior |
Real Sociedad — projected line vs season baseline (4-4-2)
| Player | Pos | Min | Proj G | Proj xG | Season xG/g | | Proj Sh | Season Sh/g | Proj Rtg | Season Rtg | Rec | Model / FBref Prior |
|---|
| Mikel Oyarzabal | F | 79 | 0 | 0.29 | 0.34 | ok | 2 | 1.6 | 7.0 | 63.5 | 32 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0060, quality 0.694) | market_value_eur=27000000
quality_factor=0.6941
boost_factor=1.006
reference_quality=0.505
history_matches=42
history_shrink=0.1064 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0138) | blend_weight=0.0138
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.8763
prior_reliability=0.2
competition=La Liga | wasFouled: 1.1752 -> 1.1872 wonTackle: 0.8094 -> 0.7982 onTargetScoringAttempt: 0.7327 -> 0.7388 goalAssist: 0.1648 -> 0.1706 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Ángel Recio, Fernando Calero', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.304, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.1522, 'skill_edge': 0.1155, 'height_edge': -0.012, 'attacker_skill': 0.6941, 'defender_skill': 0.4374, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Ángel Recio', 'market_value': 1000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'Fernando Calero', 'market_value': 2100000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.2999} | totalShots: 2.0356 -> 2.3454 shotOffTarget: 1.2968 -> 1.4942 onTargetScoringAttempt: 0.7388 -> 0.8512 bigChanceMissed: 0.6712 -> 0.7734 expectedGoals: 0.2603 -> 0.2999 goals: 0.2566 -> 0.2957 expectedGoalsOnTarget: 0.2492 -> 0.2871 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.50 (squad xG sum 1.5360, xG scale 0.9798, xA scale 1.3683, team xA 0.98 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.505
squad_xg_sum=1.536
squad_xa_sum=0.7149
team_expected_assists=0.9782
team_xa_to_xg_ratio=0.65 | expected_goals: 0.2999 -> 0.2939 expected_assists: 0.0988 -> 0.1352 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 90.0) | match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_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.2546
goal_rate=0.2957
scorer_weight=0.2904 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1265
assist_rate=0.1706
provider_weight=0.169 | - |
|
| Ander Barrenetxea | F | 70 | 0 | 0.14 | 0.06 | 137% | 2 | 0.9 | 6.8 | 55.0 | 32 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0035, quality 0.603) | market_value_eur=17200000
quality_factor=0.6027
boost_factor=1.0035
reference_quality=0.505
history_matches=37
history_shrink=0.119 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0124) | blend_weight=0.0124
history_matches=37
season_overlap_discount=1.0
per90_to_match_factor=0.7772
prior_reliability=0.16
competition=La Liga | totalCross: 2.543 -> 2.5356 interceptionWon: 0.5372 -> 0.5305 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Ángel Recio, Fernando Calero', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.234, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.0505, 'skill_edge': 0.0744, 'height_edge': -0.04, 'attacker_skill': 0.6027, 'defender_skill': 0.4374, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Ángel Recio', 'market_value': 1000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'Fernando Calero', 'market_value': 2100000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.1468} | totalShots: 1.5038 -> 1.5798 shotOffTarget: 1.0189 -> 1.0704 onTargetScoringAttempt: 0.4849 -> 0.5094 goals: 0.2127 -> 0.2234 expectedGoals: 0.1397 -> 0.1468 expectedGoalsOnTarget: 0.1282 -> 0.1347 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.50 (squad xG sum 1.5360, xG scale 0.9798, xA scale 1.3683, team xA 0.98 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.505
squad_xg_sum=1.536
squad_xa_sum=0.7149
team_expected_assists=0.9782
team_xa_to_xg_ratio=0.65 | expected_assists: 0.1045 -> 0.143 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 81.0) | match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1339
goal_rate=0.2234
scorer_weight=0.1798 | - | integer_assist_projection | Team scoreline allocation: 1 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.1332
assist_rate=0.2415
provider_weight=0.1787 | - |
|
| Orri Óskarsson | F | 78 | 1 | 0.40 | 0.29 | 40% | 3 | 1.2 | 6.8 | 55.6 | 27 | XGBoost F_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0066, quality 0.641) | market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.0066
reference_quality=0.505
history_matches=26
history_shrink=0.1613 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Ángel Recio, Fernando Calero', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.3, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.1463, 'skill_edge': 0.0915, 'height_edge': 0.008, 'attacker_skill': 0.6408, 'defender_skill': 0.4374, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Ángel Recio', 'market_value': 1000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'Fernando Calero', 'market_value': 2100000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.412} | totalShots: 2.2235 -> 2.5488 shotOffTarget: 1.2435 -> 1.4254 onTargetScoringAttempt: 0.98 -> 1.1234 bigChanceMissed: 0.9177 -> 1.052 expectedGoalsOnTarget: 0.7178 -> 0.8228 goals: 0.4466 -> 0.5119 expectedGoals: 0.3594 -> 0.412 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | goals: 1.0 -> 0 | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.50 (squad xG sum 1.5360, xG scale 0.9798, xA scale 1.3683, team xA 0.98 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.505
squad_xg_sum=1.536
squad_xa_sum=0.7149
team_expected_assists=0.9782
team_xa_to_xg_ratio=0.65 | expected_goals: 0.412 -> 0.4036 expected_assists: 0.0304 -> 0.0416 | 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: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.3321
goal_rate=0.5119
scorer_weight=0.4909 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0407
assist_rate=0.0
provider_weight=0.0333 | - |
|
| Carlos Soler | M | 83 | 0 | 0.12 | 0.09 | 35% | 1 | 0.9 | 6.9 | 63.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 0.9992, quality 0.482) | market_value_eur=6600000
quality_factor=0.4818
boost_factor=0.9992
reference_quality=0.505
history_matches=41
history_shrink=0.1087 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0108) | blend_weight=0.0108
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=0.9261
prior_reliability=0.1533
competition=La Liga | totalShots: 1.3162 -> 1.3063 wonTackle: 0.3337 -> 0.3432 fouls: 0.5346 -> 0.5288 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Rafa Garrido', 'matchup_zone': 'Left Mid vs Right Back — Wide Channel', 'duel_win_rate': 0.524, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.094, 'skill_edge': 0.024, 'height_edge': 0.04, 'attacker_skill': 0.4907, 'defender_skill': 0.4374, 'attacker_role': 'LM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Rafa Garrido', 'market_value': 1400000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.4374}], 'xg_override': 0.1248} | aerialWon: 0.1438 -> 1.1 totalShots: 1.3118 -> 1.4352 shotOffTarget: 0.9144 -> 1.0004 onTargetScoringAttempt: 0.3974 -> 0.4348 expectedGoalsOnTarget: 0.1518 -> 0.1661 goals: 0.1184 -> 0.1295 expectedGoals: 0.1141 -> 0.1248 bigChanceMissed: 0.086 -> 0.0941 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.50 (squad xG sum 1.5360, xG scale 0.9798, xA scale 1.3683, team xA 0.98 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.505
squad_xg_sum=1.536
squad_xa_sum=0.7149
team_expected_assists=0.9782
team_xa_to_xg_ratio=0.65 | expected_assists: 0.1379 -> 0.1887 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 79.0) | match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1151
goal_rate=0.1295
scorer_weight=0.1256 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.172
assist_rate=0.1242
provider_weight=0.1749 | - |
|
| Jon Gorrotxategi | M | 74 | 0 | 0.04 | 0.01 | 435% | 1 | 0.2 | 6.9 | 50.5 | 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.0071, quality 0.694) | market_value_eur=27000000
quality_factor=0.6941
boost_factor=1.0071
reference_quality=0.505
history_matches=35
history_shrink=0.125 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0016) | blend_weight=0.0016
history_matches=35
season_overlap_discount=1.0
per90_to_match_factor=0.8214
prior_reliability=0.02
competition=La Liga | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Carlos Dotor', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.564, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.1677, 'skill_edge': 0.1261, 'height_edge': -0.012, 'attacker_skill': 0.7176, 'defender_skill': 0.4374, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Carlos Dotor', 'market_value': 1200000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4374}], 'xg_override': 0.0404} | aerialWon: 1.1942 -> 1.0 totalShots: 0.5056 -> 0.5904 shotOffTarget: 0.3832 -> 0.4475 onTargetScoringAttempt: 0.1224 -> 0.1429 goals: 0.0463 -> 0.0541 expectedGoals: 0.0346 -> 0.0404 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.50 (squad xG sum 1.5360, xG scale 0.9798, xA scale 1.3683, team xA 0.98 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.505
squad_xg_sum=1.536
squad_xa_sum=0.7149
team_expected_assists=0.9782
team_xa_to_xg_ratio=0.65 | expected_assists: 0.038 -> 0.052 | 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: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0388
goal_rate=0.0541
scorer_weight=0.0456 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0507
assist_rate=0.0473
provider_weight=0.0575 | - |
|
| Takefusa Kubo | F | 70 | 0 | 0.16 | 0.05 | 201% | 2 | 0.4 | 6.8 | 43.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.0060, quality 0.641) | market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.006
reference_quality=0.505
history_matches=29
history_shrink=0.1471 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0147) | blend_weight=0.0147
history_matches=29
season_overlap_discount=1.0
per90_to_match_factor=0.7751
prior_reliability=0.1533
competition=La Liga | wasFouled: 2.2211 -> 2.2132 onTargetScoringAttempt: 0.4805 -> 0.4735 totalShots: 1.0987 -> 1.0927 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Ángel Recio, Fernando Calero', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.252, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.0757, 'skill_edge': 0.0915, 'height_edge': -0.04, 'attacker_skill': 0.6408, 'defender_skill': 0.4374, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Ángel Recio', 'market_value': 1000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'Fernando Calero', 'market_value': 2100000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.1615} | totalShots: 1.0927 -> 1.1754 shotOffTarget: 0.6182 -> 0.665 onTargetScoringAttempt: 0.4735 -> 0.5093 bigChanceMissed: 0.1989 -> 0.214 goals: 0.169 -> 0.1818 expectedGoals: 0.1501 -> 0.1615 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.50 (squad xG sum 1.5360, xG scale 0.9798, xA scale 1.3683, team xA 0.98 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.505
squad_xg_sum=1.536
squad_xa_sum=0.7149
team_expected_assists=0.9782
team_xa_to_xg_ratio=0.65 | expected_assists: 0.0887 -> 0.1214 | 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.1463
goal_rate=0.1818
scorer_weight=0.1734 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1143
assist_rate=0.0967
provider_weight=0.1284 | - |
|
| Sergio Gómez | D | 86 | 0 | 0.02 | 0.02 | ok | 1 | 0.4 | 6.8 | 60.8 | 29 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.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 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0172) | blend_weight=0.0172
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=0.9511
prior_reliability=0.2533
competition=La Liga | totalCross: 4.4367 -> 4.4593 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Adrián Niño', '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.50 (squad xG sum 1.5360, xG scale 0.9798, xA scale 1.3683, team xA 0.98 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.505
squad_xg_sum=1.536
squad_xa_sum=0.7149
team_expected_assists=0.9782
team_xa_to_xg_ratio=0.65 | expected_assists: 0.1155 -> 0.158 | 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.0154
goal_rate=0.0
scorer_weight=0.0124 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1462
assist_rate=0.1365
provider_weight=0.1781 | - |
|
| Jon Martin | D | 90 | 0 | 0.09 | 0.06 | 38% | 1 | 0.4 | 6.8 | 53.8 | 29 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0066, quality 0.669) | market_value_eur=24000000
quality_factor=0.6685
boost_factor=1.0066
reference_quality=0.505
history_matches=32
history_shrink=0.1351 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0234) | blend_weight=0.0234
history_matches=32
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.2667
competition=La Liga | interceptionWon: 1.1107 -> 1.0905 wonTackle: 0.792 -> 0.8086 wasFouled: 0.4635 -> 0.4702 goals: 0.2568 -> 0.2508 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Pablo Martínez', 'matchup_zone': 'Left Mid vs Right Back — Wide Channel'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.50 (squad xG sum 1.5360, xG scale 0.9798, xA scale 1.3683, team xA 0.98 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.505
squad_xg_sum=1.536
squad_xa_sum=0.7149
team_expected_assists=0.9782
team_xa_to_xg_ratio=0.65 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 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.0844
goal_rate=0.2508
scorer_weight=0.1103 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0122
assist_rate=0.0
provider_weight=0.0104 | - |
|
| Mamadou Sarr | D | 85 | 0 | 0.08 | 0.02 | 248% | 0 | 0.1 | 6.7 | 22.0 | 18 | 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.0223, quality 0.669) | market_value_eur=24000000
quality_factor=0.6685
boost_factor=1.0223
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': 'Chupete', '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.50 (squad xG sum 1.5360, xG scale 0.9798, xA scale 1.3683, team xA 0.98 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.505
squad_xg_sum=1.536
squad_xa_sum=0.7149
team_expected_assists=0.9782
team_xa_to_xg_ratio=0.65 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 16 by projected rating, fifa_overall 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: 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.0
scorer_weight=0.0674 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0107
assist_rate=0.0
provider_weight=0.0093 | - |
|
| Héctor Fort | D | 63 | 0 | 0.06 | 0.00 | 1211% | 1 | 0.1 | 6.6 | 33.2 | 14 | 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.0050, quality 0.575) | market_value_eur=14600000
quality_factor=0.5748
boost_factor=1.005
reference_quality=0.505
history_matches=16
history_shrink=0.2381 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Chupete', '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.50 (squad xG sum 1.5360, xG scale 0.9798, xA scale 1.3683, team xA 0.98 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.505
squad_xg_sum=1.536
squad_xa_sum=0.7149
team_expected_assists=0.9782
team_xa_to_xg_ratio=0.65 | expected_assists: 0.0172 -> 0.0235 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 18 by projected rating, fifa_overall 72.0) | match_squad_rank=18
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0627
goal_rate=0.3822
scorer_weight=0.0809 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0232
assist_rate=0.2726
provider_weight=0.0294 | - |
|
| Álex Remiro | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 6.9 | 63.7 | 30 | FBref Prior G_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost G_service raw output over 3 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0004, quality 0.518) | market_value_eur=9600000
quality_factor=0.5177
boost_factor=1.0004
reference_quality=0.505
history_matches=44
history_shrink=0.102 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0177) | blend_weight=0.0177
history_matches=44
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.2667
competition=La Liga | saves: 2.9674 -> 2.9901 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Chupete, Adrián Niño', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 0.6959} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.50 (squad xG sum 1.5360, xG scale 0.9798, xA scale 1.3683, team xA 0.98 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.505
squad_xg_sum=1.536
squad_xa_sum=0.7149
team_expected_assists=0.9782
team_xa_to_xg_ratio=0.65 | shots_faced: 6.6 -> 6.2 expected_saves: 1.61 -> 1.52 high_pressure_saves: 0.56 -> 0.52 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 81.0) | match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.678 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by 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.0475 | - |
|
| Team totals | 1 | 1.50 | | 16 | | 6.8 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Unai Marrero | G | 4.4m | 10.9% | Market-value substitute prior |
| Jon Aramburu | D | 14.1m | 22.7% | Market-value substitute prior |
| Igor Zubeldia | D | 24.9m | 31.6% | Market-value substitute prior |
| Luka Sučić | M | 26.7m | 41.6% | Market-value substitute prior |
| Beñat Turrientes | M | 20.5m | 41.1% | Market-value substitute prior |
| Gonçalo Guedes | F | 20.8m | 72.2% | Market-value substitute prior |
Antagonist / tactical summary
Away midfield dictates play with ~52% possession expected (Pablo Martínez vs Jon Gorrotxategi). Total antagonist xG — Home: 0.70, Away: 1.19. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Midfield — possession 47.5% / 52.5%, dominance ratio 0.44, key duel: Pablo Martínez vs Jon Gorrotxategi
Chupete xG 0.26Adrián Niño xG 0.19David Larrubia xG 0.08Carlos Soler xG 0.12Jon Gorrotxategi xG 0.04Mikel Oyarzabal xG 0.30
Summary
Antagonist matchup analysis for Málaga vs Real Sociedad. Most likely scoreline: 0-1. Lambdas derived from 6 home and 6 away individual player duels. Head-to-head: Málaga 4W-3D-3L vs Real Sociedad over 10 meetings.
Tactical parity between 4-1-4-1 and 4-4-2. Match outcome driven primarily by individual player quality. Away midfield dictates play with ~52% possession expected (Pablo Martínez vs Jon Gorrotxategi). Total antagonist xG — Home: 0.70, Away: 1.19. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Osasuna vs Racing Club
LaLiga · 20261018 · 4-3-3 vs 4-2-3-1
Predicted 1-1Winner: DrawWinning H 1-0 (8.7%)Winning A 0-1 (9.3%)Confidence 0.7λ home/away 1.30 / 1.39Most-likely P 12.4%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset TracingAntagonist + XGBoost match analysis for Osasuna vs Racing Club. Player statistics regressed using position-specific XGBoost models (G, D, M, F) with 2026-2027 FBref priors. Micro-duels resolved across 4-3-3 vs 4-2-3-1 (duel lambdas: Home 1.343, Away 1.351). Final calibrated Poisson lambdas: Home 1.305, Away 1.390 (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.34 / 1.35 Final λ (H/A) 1.30 / 1.39
Modeling Pipeline Stages (5 layers)
- 1. XGBoost player regressions for volume & event rates with market-value quality scaling
- 2. Multi-source prior blending (FBref 2026-2027 tables + Sofascore season history)
- 3. Antagonist formation duel matrix resolving 1v1 and zonal matchups
- 4. Team-level prior calibration (FBref possession and attack/defense efficiencies)
- 5. Bivariate Poisson matrix with Dixon-Coles low-score correction
Standing & form context
| Metric | Osasuna | Racing Club |
|---|
| League position | 16.00 | 15.00 |
| Points per game | 1.16 | 1.16 |
| Attack index | 0.86 | 1.02 |
| Defense (concede) index | 1.34 | 1.18 |
| Form multiplier | 1.00 | 1.00 |
| Standing λ multiplier | 1.06 | 1.08 |
Lambda decomposition (how the goal rates were built)
| Stage | Osasuna λ | Racing Club λ |
|---|
| Pre-competitive-floor | 1.305 | 1.390 |
| Pre-calibration (Micro-duels) | 1.343 | 1.351 |
| Final λ | 1.305 | 1.390 |
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.4% |
| 0-1 | 9.3% |
| 1-0 | 8.7% |
| 1-2 | 8.5% |
| 2-1 | 8.0% |
| Home win | 35.0% |
| Draw | 26.1% |
| Away win | 38.9% |
| Over 2.5 | 50.5% |
| BTTS yes | 54.9% |
Pregame fair line — favorite Racing Club (38.9%), fair total 2.69, fair spread -0.09
Projected players vs season baseline
Proj = projected for this match · Season = this season's per-game average from match data · deviation badge compares projected xG to the player's season xG/game.
Osasuna — projected line vs season baseline (4-3-3)
| Player | Pos | Min | Proj G | Proj xG | Season xG/g | | Proj Sh | Season Sh/g | Proj Rtg | Season Rtg | Rec | Model / FBref Prior |
|---|
| Aitor Fernández | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 6.9 | 11.5 | 31 | 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=375000
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': 'Yassir Zabiri, Pablo García', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.3505} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.30 (squad xG sum 0.8913, xG scale 1.4642, xA scale 1.4642, team xA 0.98 = 0.75 x lambda) | scoreline_reset=true
team_lambda=1.305
squad_xg_sum=0.8913
squad_xa_sum=0.6669
team_expected_assists=0.9765
team_xa_to_xg_ratio=0.7482 | shots_faced: 12.8 -> 13.2 expected_saves: 3.13 -> 3.23 high_pressure_saves: 1.08 -> 1.11 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 77.0) | match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.3652 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by 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.9792 | - |
|
| Moi Gómez | M | 78 | 0 | 0.05 | 0.01 | 850% | 1 | 0.1 | 7.1 | 45.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.9972, quality 0.437) | market_value_eur=1600000
quality_factor=0.4374
boost_factor=0.9972
reference_quality=0.505
history_matches=31
history_shrink=0.1389 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0120) | blend_weight=0.012
history_matches=31
season_overlap_discount=1.0
per90_to_match_factor=0.8721
prior_reliability=0.1333
competition=La Liga | totalCross: 1.6902 -> 1.6751 wonTackle: 0.6211 -> 0.6136 totalShots: 0.5816 -> 0.5746 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Íñigo Sáinz-Maza', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.41, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9412, 'skill_edge': 0.0, 'height_edge': -0.04, 'attacker_skill': 0.4374, 'defender_skill': 0.4374, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Íñigo Sáinz-Maza', 'market_value': 1000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4374}], 'xg_override': 0.0349} | aerialWon: 0.5907 -> 0.9 totalShots: 0.5799 -> 0.5458 shotOffTarget: 0.4371 -> 0.4114 onTargetScoringAttempt: 0.1428 -> 0.1344 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_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 0.8913, xG scale 1.4642, xA scale 1.4642, team xA 0.98 = 0.75 x lambda) | scoreline_reset=true
team_lambda=1.305
squad_xg_sum=0.8913
squad_xa_sum=0.6669
team_expected_assists=0.9765
team_xa_to_xg_ratio=0.7482 | expected_goals: 0.0349 -> 0.0511 expected_assists: 0.1097 -> 0.1606 | 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.0498
goal_rate=0.0456
scorer_weight=0.0575 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1484
assist_rate=0.0906
provider_weight=0.1414 | - |
|
| Ante Budimir | F | 87 | 1 | 0.60 | 0.49 | ok | 3 | 2.7 | 6.8 | 65.5 | 31 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9980, quality 0.437) | market_value_eur=2600000
quality_factor=0.4374
boost_factor=0.998
reference_quality=0.505
history_matches=45
history_shrink=0.1 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0095) | blend_weight=0.0095
history_matches=45
season_overlap_discount=1.0
per90_to_match_factor=0.9619
prior_reliability=0.1467
competition=La Liga | totalShots: 2.7238 -> 2.7346 wasFouled: 1.5669 -> 1.577 onTargetScoringAttempt: 1.1767 -> 1.1859 wonTackle: 0.4576 -> 0.4657 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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.187, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 0.9806, 'skill_edge': -0.0372, 'height_edge': 0.024, 'attacker_skill': 0.4374, '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.4115} | totalShots: 2.7346 -> 2.6815 shotOffTarget: 1.5471 -> 1.5171 onTargetScoringAttempt: 1.1859 -> 1.1629 bigChanceMissed: 0.8206 -> 0.8047 expectedGoalsOnTarget: 0.659 -> 0.6462 goals: 0.4576 -> 0.4487 expectedGoals: 0.4196 -> 0.4115 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_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 0.8913, xG scale 1.4642, xA scale 1.4642, team xA 0.98 = 0.75 x lambda) | scoreline_reset=true
team_lambda=1.305
squad_xg_sum=0.8913
squad_xa_sum=0.6669
team_expected_assists=0.9765
team_xa_to_xg_ratio=0.7482 | expected_goals: 0.4115 -> 0.6025 expected_assists: 0.0331 -> 0.0485 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 82.0) | match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.4526
goal_rate=0.4487
scorer_weight=0.6511 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0473
assist_rate=0.0
provider_weight=0.0388 | - |
|
| Rubén García | F | 70 | 0 | 0.15 | 0.07 | 125% | 1 | 0.8 | 6.8 | 57.4 | 40 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9979, quality 0.437) | market_value_eur=1700000
quality_factor=0.4374
boost_factor=0.9979
reference_quality=0.505
history_matches=43
history_shrink=0.1042 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0077) | blend_weight=0.0077
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=0.7731
prior_reliability=0.1133
competition=La Liga | totalCross: 4.1566 -> 4.1666 totalShots: 1.2032 -> 1.2083 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Pablo Ramón', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.42, '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': 'Pablo Ramón', 'market_value': 1500000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.4374}], 'xg_override': 0.1007} | totalShots: 1.2083 -> 1.1017 shotOffTarget: 0.8102 -> 0.7387 onTargetScoringAttempt: 0.3972 -> 0.3622 bigChanceMissed: 0.1599 -> 0.1458 goals: 0.1507 -> 0.1374 expectedGoals: 0.1104 -> 0.1007 expectedGoalsOnTarget: 0.0598 -> 0.0545 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.30 (squad xG sum 0.8913, xG scale 1.4642, xA scale 1.4642, team xA 0.98 = 0.75 x lambda) | scoreline_reset=true
team_lambda=1.305
squad_xg_sum=0.8913
squad_xa_sum=0.6669
team_expected_assists=0.9765
team_xa_to_xg_ratio=0.7482 | expected_goals: 0.1007 -> 0.1474 expected_assists: 0.0775 -> 0.1135 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 77.0) | match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1371
goal_rate=0.1374
scorer_weight=0.1833 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1073
assist_rate=0.1602
provider_weight=0.1419 | - |
|
| Iker Muñoz | M | 83 | 0 | 0.05 | 0.01 | 284% | 1 | 0.3 | 6.9 | 44.9 | 30 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9967, quality 0.437) | market_value_eur=1800000
quality_factor=0.4374
boost_factor=0.9967
reference_quality=0.505
history_matches=26
history_shrink=0.1613 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0161) | blend_weight=0.0161
history_matches=26
season_overlap_discount=1.0
per90_to_match_factor=0.9236
prior_reliability=0.1533
competition=La Liga | totalCross: 0.4221 -> 0.4347 wasFouled: 1.4883 -> 1.4773 fouls: 1.4334 -> 1.4426 interceptionWon: 1.2159 -> 1.2093 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Íñigo Sáinz-Maza', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.4, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9706, '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': 'Íñigo Sáinz-Maza', 'market_value': 1000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4374}], 'xg_override': 0.0347} | aerialWon: 1.7725 -> 1.0 totalShots: 0.6132 -> 0.5952 shotOffTarget: 0.4576 -> 0.4441 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_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 0.8913, xG scale 1.4642, xA scale 1.4642, team xA 0.98 = 0.75 x lambda) | scoreline_reset=true
team_lambda=1.305
squad_xg_sum=0.8913
squad_xa_sum=0.6669
team_expected_assists=0.9765
team_xa_to_xg_ratio=0.7482 | expected_goals: 0.0347 -> 0.0508 expected_assists: 0.0413 -> 0.0605 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 73.0) | match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0495
goal_rate=0.0399
scorer_weight=0.0539 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0587
assist_rate=0.058
provider_weight=0.0716 | - |
|
| Lucas Torró | M | 78 | 0 | 0.13 | 0.03 | 277% | 1 | 0.7 | 6.8 | 48.4 | 30 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.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.0063) | blend_weight=0.0063
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=0.8718
prior_reliability=0.0867
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': 'Íñigo Sáinz-Maza', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.474, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0353, 'skill_edge': 0.0, 'height_edge': 0.024, 'attacker_skill': 0.4374, 'defender_skill': 0.4374, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Íñigo Sáinz-Maza', 'market_value': 1000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4374}], 'xg_override': 0.0879} | aerialWon: 3.2092 -> 1.3 totalShots: 0.9178 -> 0.9502 shotOffTarget: 0.5771 -> 0.5975 onTargetScoringAttempt: 0.3403 -> 0.3523 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_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 0.8913, xG scale 1.4642, xA scale 1.4642, team xA 0.98 = 0.75 x lambda) | scoreline_reset=true
team_lambda=1.305
squad_xg_sum=0.8913
squad_xa_sum=0.6669
team_expected_assists=0.9765
team_xa_to_xg_ratio=0.7482 | expected_goals: 0.0879 -> 0.1287 expected_assists: 0.0379 -> 0.0555 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 76.0) | match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1208
goal_rate=0.0741
scorer_weight=0.1158 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.054
assist_rate=0.0486
provider_weight=0.0623 | - |
|
| Jon Moncayola | M | 78 | 0 | 0.06 | 0.05 | ok | 1 | 0.6 | 6.8 | 62.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.9995, quality 0.490) | market_value_eur=7300000
quality_factor=0.4903
boost_factor=0.9995
reference_quality=0.505
history_matches=44
history_shrink=0.102 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0111) | blend_weight=0.0111
history_matches=44
season_overlap_discount=1.0
per90_to_match_factor=0.8702
prior_reliability=0.1667
competition=La Liga | totalCross: 2.6467 -> 2.629 interceptionWon: 0.786 -> 0.7966 wonTackle: 1.2202 -> 1.226 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Íñigo Sáinz-Maza', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.47, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0296, 'skill_edge': 0.0282, 'height_edge': -0.008, 'attacker_skill': 0.5, 'defender_skill': 0.4374, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Íñigo Sáinz-Maza', 'market_value': 1000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4374}], 'xg_override': 0.0437} | aerialWon: 0.5966 -> 1.1 totalShots: 0.626 -> 0.6445 shotOffTarget: 0.4464 -> 0.4596 onTargetScoringAttempt: 0.1796 -> 0.1849 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_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 0.8913, xG scale 1.4642, xA scale 1.4642, team xA 0.98 = 0.75 x lambda) | scoreline_reset=true
team_lambda=1.305
squad_xg_sum=0.8913
squad_xa_sum=0.6669
team_expected_assists=0.9765
team_xa_to_xg_ratio=0.7482 | expected_goals: 0.0437 -> 0.064 expected_assists: 0.0798 -> 0.1168 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 81.0) | match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.062
goal_rate=0.0494
scorer_weight=0.0679 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1102
assist_rate=0.0775
provider_weight=0.1147 | - |
|
| Abel Bretones | D | 88 | 0 | 0.02 | 0.00 | 1989% | 0 | 0.1 | 6.6 | 45.2 | 30 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9977, quality 0.442) | market_value_eur=3400000
quality_factor=0.4424
boost_factor=0.9977
reference_quality=0.505
history_matches=36
history_shrink=0.122 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0159) | blend_weight=0.0159
history_matches=36
season_overlap_discount=1.0
per90_to_match_factor=0.9827
prior_reliability=0.2
competition=La Liga | wonTackle: 1.1419 -> 1.155 fouls: 1.1349 -> 1.1429 wasFouled: 0.8333 -> 0.8253 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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.30 (squad xG sum 0.8913, xG scale 1.4642, xA scale 1.4642, team xA 0.98 = 0.75 x lambda) | scoreline_reset=true
team_lambda=1.305
squad_xg_sum=0.8913
squad_xa_sum=0.6669
team_expected_assists=0.9765
team_xa_to_xg_ratio=0.7482 | expected_goals: 0.016 -> 0.0234 expected_assists: 0.0773 -> 0.1132 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 16 by projected rating, fifa_overall 76.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.0231
goal_rate=0.0104
scorer_weight=0.0214 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.107
assist_rate=0.0484
provider_weight=0.0906 | - |
|
| Enzo Boyomo | D | 85 | 0 | 0.05 | 0.03 | 100% | 0 | 0.3 | 6.8 | 43.3 | 26 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0028, quality 0.575) | market_value_eur=14600000
quality_factor=0.5748
boost_factor=1.0028
reference_quality=0.505
history_matches=33
history_shrink=0.1316 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0034) | blend_weight=0.0034
history_matches=33
season_overlap_discount=1.0
per90_to_match_factor=0.9449
prior_reliability=0.04
competition=La Liga | wonTackle: 0.8913 -> 0.899 fouls: 1.1814 -> 1.1881 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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.30 (squad xG sum 0.8913, xG scale 1.4642, xA scale 1.4642, team xA 0.98 = 0.75 x lambda) | scoreline_reset=true
team_lambda=1.305
squad_xg_sum=0.8913
squad_xa_sum=0.6669
team_expected_assists=0.9765
team_xa_to_xg_ratio=0.7482 | expected_goals: 0.0366 -> 0.0536 expected_assists: 0.0116 -> 0.017 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 79.0) | match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0522
goal_rate=0.0096
scorer_weight=0.0429 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0169
assist_rate=0.0927
provider_weight=0.0213 | - |
|
| Alejandro Catena | D | 89 | 0 | 0.02 | 0.03 | ok | 0 | 0.3 | 6.9 | 61.9 | 29 | XGBoost D_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9978, quality 0.437) | market_value_eur=2700000
quality_factor=0.4374
boost_factor=0.9978
reference_quality=0.505
history_matches=42
history_shrink=0.1064 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': '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.30 (squad xG sum 0.8913, xG scale 1.4642, xA scale 1.4642, team xA 0.98 = 0.75 x lambda) | scoreline_reset=true
team_lambda=1.305
squad_xg_sum=0.8913
squad_xa_sum=0.6669
team_expected_assists=0.9765
team_xa_to_xg_ratio=0.7482 | expected_goals: 0.0166 -> 0.0243 expected_assists: 0.1309 -> 0.1917 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 85.0) | match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.024
goal_rate=0.0248
scorer_weight=0.0273 | - | integer_assist_projection | Team scoreline allocation: 1 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.1744
assist_rate=0.1552
provider_weight=0.2174 | - |
|
| Iñigo Arguibide | D | 78 | 0 | 0.02 | 0.00 | 571% | 0 | 0.1 | 6.6 | 20.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.9947, quality 0.437) | market_value_eur=2700000
quality_factor=0.4374
boost_factor=0.9947
reference_quality=0.505
history_matches=14
history_shrink=0.2632 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0331) | blend_weight=0.0331
history_matches=14
season_overlap_discount=1.0
per90_to_match_factor=0.8689
prior_reliability=0.1933
competition=La Liga | totalCross: 2.2688 -> 2.3028 wonTackle: 0.9588 -> 0.9865 wasFouled: 1.0779 -> 1.0522 fouls: 1.2714 -> 1.2492 totalShots: 0.4585 -> 0.4534 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Sergio Canales', '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 0.8913, xG scale 1.4642, xA scale 1.4642, team xA 0.98 = 0.75 x lambda) | scoreline_reset=true
team_lambda=1.305
squad_xg_sum=0.8913
squad_xa_sum=0.6669
team_expected_assists=0.9765
team_xa_to_xg_ratio=0.7482 | expected_goals: 0.0122 -> 0.0179 expected_assists: 0.0242 -> 0.0354 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 18 by projected rating, fifa_overall 81.0) | match_squad_rank=18
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0177
goal_rate=0.0
scorer_weight=0.0144 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0348
assist_rate=0.0
provider_weight=0.0283 | - |
|
| Team totals | 1 | 1.30 | | 10 | | 6.8 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Sergio Herrera | G | 4.4m | 13.1% | Market-value substitute prior |
| Jorge Herrando | D | 13.6m | 21.7% | Market-value substitute prior |
| Valentin Rosier | D | 13.6m | 29.9% | Market-value substitute prior |
| Aimar Oroz | M | 14.9m | 43.9% | Market-value substitute prior |
| Mauro Echegoyen | M | 22.0m | 49.9% | Market-value substitute prior |
| Romain Del Castillo | F | 25.5m | 56.6% | Market-value substitute prior |
Racing Club — projected line vs season baseline (4-2-3-1)
| Player | Pos | Min | Proj G | Proj xG | Season xG/g | | Proj Sh | Season Sh/g | Proj Rtg | Season Rtg | Rec | Model / FBref Prior |
|---|
| Yassir Zabiri | F | 80 | 1 | 0.56 | 0.36 | 56% | 3 | 1.5 | 6.7 | 52.5 | 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.0168, quality 0.650) | market_value_eur=22000000
quality_factor=0.6503
boost_factor=1.0168
reference_quality=0.505
history_matches=8
history_shrink=0.3846 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0217) | blend_weight=0.0217
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=0.8863
prior_reliability=0.0867
competition=La Liga | goals: 0.5215 -> 0.5545 totalOffside: 0.3412 -> 0.3634 totalShots: 2.4976 -> 2.5174 onTargetScoringAttempt: 1.2298 -> 1.2475 wasFouled: 0.5995 -> 0.5865 wonTackle: 0.5348 -> 0.5232 interceptionWon: 0.2331 -> 0.228 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Enzo Boyomo, Alejandro Catena', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.23, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.0437, 'skill_edge': 0.0517, 'height_edge': -0.022, 'attacker_skill': 0.6503, 'defender_skill': 0.5353, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Enzo Boyomo', 'market_value': 14600000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6258}, {'player': 'Alejandro Catena', 'market_value': 2700000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4449}], 'xg_override': 0.4541} | totalShots: 2.5174 -> 2.6274 shotOffTarget: 1.2677 -> 1.3231 onTargetScoringAttempt: 1.2475 -> 1.302 expectedGoalsOnTarget: 0.7812 -> 0.8153 goals: 0.5545 -> 0.5787 expectedGoals: 0.4351 -> 0.4541 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | goals: 1.0 -> 0 | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.39 (squad xG sum 1.1244, xG scale 1.2362, xA scale 1.2362, team xA 0.92 = 0.66 x lambda) | scoreline_reset=true
team_lambda=1.39
squad_xg_sum=1.1244
squad_xa_sum=0.7429
team_expected_assists=0.9183
team_xa_to_xg_ratio=0.6607 | expected_goals: 0.4541 -> 0.5614 expected_assists: 0.0369 -> 0.0456 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 66.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.4296
goal_rate=0.5787
scorer_weight=0.7002 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0446
assist_rate=0.0
provider_weight=0.0365 | - |
|
| Iñigo Vicente | F | 85 | 0 | 0.09 | 0.03 | 201% | 1 | 0.4 | 7.0 | 48.5 | 21 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9973, quality 0.482) | market_value_eur=6600000
quality_factor=0.4818
boost_factor=0.9973
reference_quality=0.505
history_matches=8
history_shrink=0.3846 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0467) | blend_weight=0.0467
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=0.9461
prior_reliability=0.1867
competition=La Liga | totalCross: 4.945 -> 4.8404 wonTackle: 1.4141 -> 1.3796 totalShots: 1.0342 -> 1.0018 wasFouled: 2.6454 -> 2.6166 onTargetScoringAttempt: 0.3862 -> 0.3682 fouls: 1.2263 -> 1.2164 interceptionWon: 0.5206 -> 0.5121 goalAssist: 0.4942 -> 0.4869 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Enzo Boyomo, Alejandro Catena', '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.9087, 'skill_edge': -0.0241, 'height_edge': -0.038, 'attacker_skill': 0.4818, 'defender_skill': 0.5353, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Enzo Boyomo', 'market_value': 14600000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6258}, {'player': 'Alejandro Catena', 'market_value': 2700000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4449}], 'xg_override': 0.0731} | totalShots: 1.0162 -> 0.9234 shotOffTarget: 0.648 -> 0.5888 onTargetScoringAttempt: 0.3682 -> 0.3346 goals: 0.1155 -> 0.105 expectedGoals: 0.0804 -> 0.0731 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.39 (squad xG sum 1.1244, xG scale 1.2362, xA scale 1.2362, team xA 0.92 = 0.66 x lambda) | scoreline_reset=true
team_lambda=1.39
squad_xg_sum=1.1244
squad_xa_sum=0.7429
team_expected_assists=0.9183
team_xa_to_xg_ratio=0.6607 | expected_goals: 0.0731 -> 0.0904 expected_assists: 0.184 -> 0.2273 | 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.0864
goal_rate=0.105
scorer_weight=0.113 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=1
assist_probability=0.2033
assist_rate=0.4869
provider_weight=0.2841 | - |
|
| Pablo García | F | 74 | 0 | 0.18 | 0.06 | 177% | 2 | 0.8 | 6.8 | 33.0 | 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.9998, quality 0.501) | market_value_eur=8199999
quality_factor=0.5011
boost_factor=0.9998
reference_quality=0.505
history_matches=22
history_shrink=0.1852 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0048) | blend_weight=0.0048
history_matches=22
season_overlap_discount=1.0
per90_to_match_factor=0.8197
prior_reliability=0.04
competition=La Liga | wasFouled: 1.0313 -> 1.0526 fouls: 0.4718 -> 0.4893 totalShots: 1.909 -> 1.9195 goals: 0.2033 -> 0.2089 totalCross: 1.1399 -> 1.1344 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Enzo Boyomo, Alejandro Catena', '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.9038, 'skill_edge': -0.0154, 'height_edge': -0.05, 'attacker_skill': 0.5011, 'defender_skill': 0.5353, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Enzo Boyomo', 'market_value': 14600000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6258}, {'player': 'Alejandro Catena', 'market_value': 2700000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4449}], 'xg_override': 0.1443} | totalShots: 1.9195 -> 1.7348 shotOffTarget: 1.2487 -> 1.1286 onTargetScoringAttempt: 0.6637 -> 0.5999 goals: 0.2089 -> 0.1888 bigChanceMissed: 0.1948 -> 0.1761 expectedGoalsOnTarget: 0.1786 -> 0.1614 expectedGoals: 0.1597 -> 0.1443 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.39 (squad xG sum 1.1244, xG scale 1.2362, xA scale 1.2362, team xA 0.92 = 0.66 x lambda) | scoreline_reset=true
team_lambda=1.39
squad_xg_sum=1.1244
squad_xa_sum=0.7429
team_expected_assists=0.9183
team_xa_to_xg_ratio=0.6607 | expected_goals: 0.1443 -> 0.1784 expected_assists: 0.0611 -> 0.0755 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 70.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.1634
goal_rate=0.1888
scorer_weight=0.2193 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0727
assist_rate=0.0
provider_weight=0.0604 | - |
|
| Sergio Canales | F | 80 | 0 | 0.13 | 0.10 | 37% | 1 | 1.6 | 6.9 | 51.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 0.9925, quality 0.440) | market_value_eur=3200000
quality_factor=0.4399
boost_factor=0.9925
reference_quality=0.505
history_matches=8
history_shrink=0.3846 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0417) | blend_weight=0.0417
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=0.8883
prior_reliability=0.1667
competition=La Liga | totalCross: 2.5581 -> 2.4663 totalShots: 1.4989 -> 1.5708 wonTackle: 0.7958 -> 0.7626 onTargetScoringAttempt: 0.5016 -> 0.5255 interceptionWon: 0.512 -> 0.4907 wasFouled: 1.4717 -> 1.4548 fouls: 0.5855 -> 0.5759 goals: 0.1244 -> 0.1192 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Enzo Boyomo, Alejandro Catena', '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.8693, 'skill_edge': -0.0429, 'height_edge': -0.046, 'attacker_skill': 0.4399, 'defender_skill': 0.5353, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Enzo Boyomo', 'market_value': 14600000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6258}, {'player': 'Alejandro Catena', 'market_value': 2700000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4449}], 'xg_override': 0.1077} | totalShots: 1.5708 -> 1.3655 shotOffTarget: 0.9973 -> 0.867 onTargetScoringAttempt: 0.5255 -> 0.4568 expectedGoalsOnTarget: 0.2014 -> 0.1751 expectedGoals: 0.1239 -> 0.1077 goals: 0.1192 -> 0.1036 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.39 (squad xG sum 1.1244, xG scale 1.2362, xA scale 1.2362, team xA 0.92 = 0.66 x lambda) | scoreline_reset=true
team_lambda=1.39
squad_xg_sum=1.1244
squad_xa_sum=0.7429
team_expected_assists=0.9183
team_xa_to_xg_ratio=0.6607 | expected_goals: 0.1077 -> 0.1331 expected_assists: 0.0887 -> 0.1097 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 78.0) | match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1246
goal_rate=0.1036
scorer_weight=0.1296 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1039
assist_rate=0.0
provider_weight=0.0878 | - |
|
| Íñigo Sáinz-Maza | M | 83 | 0 | 0.05 | - | n/a | 1 | 0.0 | 6.7 | 11.7 | 11 | FBref Prior M_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9855, quality 0.437) | market_value_eur=1000000
quality_factor=0.4374
boost_factor=0.9855
reference_quality=0.505
history_matches=2
history_shrink=0.7143 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Moi Gómez', 'matchup_zone': 'Holding Mid vs Central Mid — Midfield Anchor Duel', 'duel_win_rate': 0.44, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0588, 'skill_edge': 0.0, 'height_edge': 0.04, 'attacker_skill': 0.4374, 'defender_skill': 0.4374, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Moi Gómez', 'market_value': 1600000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.4374}], 'xg_override': 0.0366} | aerialWon: 0.0 -> 1.1 totalShots: 0.5565 -> 0.5892 shotOffTarget: 0.4174 -> 0.4419 onTargetScoringAttempt: 0.1391 -> 0.1473 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.39 (squad xG sum 1.1244, xG scale 1.2362, xA scale 1.2362, team xA 0.92 = 0.66 x lambda) | scoreline_reset=true
team_lambda=1.39
squad_xg_sum=1.1244
squad_xa_sum=0.7429
team_expected_assists=0.9183
team_xa_to_xg_ratio=0.6607 | expected_goals: 0.0366 -> 0.0452 expected_assists: 0.0418 -> 0.0517 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 67.0) | match_squad_rank=14
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0442
goal_rate=0.052
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.0504
assist_rate=0.0488
provider_weight=0.0556 | - |
|
| Iván Martín | M | 86 | 0 | 0.06 | 0.03 | 113% | 1 | 0.4 | 7.0 | 57.8 | 31 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9978, quality 0.437) | market_value_eur=2700000
quality_factor=0.4374
boost_factor=0.9978
reference_quality=0.505
history_matches=41
history_shrink=0.1087 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0071) | blend_weight=0.0071
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=0.9503
prior_reliability=0.1
competition=La Liga | wonTackle: 0.9642 -> 0.9753 totalCross: 0.3919 -> 0.3981 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Moi Gómez', 'matchup_zone': 'Holding Mid vs Central Mid — Midfield Anchor Duel', 'duel_win_rate': 0.417, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.025, 'skill_edge': 0.001, 'height_edge': 0.016, 'attacker_skill': 0.4396, 'defender_skill': 0.4374, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Moi Gómez', 'market_value': 1600000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.4374}], 'xg_override': 0.0487} | aerialWon: 1.0742 -> 1.0 totalShots: 0.6846 -> 0.7017 shotOffTarget: 0.4466 -> 0.4578 onTargetScoringAttempt: 0.2366 -> 0.2425 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.39 (squad xG sum 1.1244, xG scale 1.2362, xA scale 1.2362, team xA 0.92 = 0.66 x lambda) | scoreline_reset=true
team_lambda=1.39
squad_xg_sum=1.1244
squad_xa_sum=0.7429
team_expected_assists=0.9183
team_xa_to_xg_ratio=0.6607 | expected_goals: 0.0487 -> 0.0602 expected_assists: 0.0824 -> 0.1019 | 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.0584
goal_rate=0.082
scorer_weight=0.0752 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0969
assist_rate=0.067
provider_weight=0.09 | - |
|
| Jorge Salinas | D | 90 | 0 | 0.07 | 0.03 | 114% | 1 | 0.4 | 6.7 | 47.5 | 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 1.0000, quality 0.505) | market_value_eur=8500000
quality_factor=0.5047
boost_factor=1.0
reference_quality=0.505
history_matches=8
history_shrink=0.3846 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0500) | blend_weight=0.05
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.2
competition=La Liga | wasFouled: 1.4307 -> 1.4092 totalCross: 1.3315 -> 1.3483 fouls: 0.9738 -> 0.9584 interceptionWon: 1.2391 -> 1.2271 totalShots: 0.5563 -> 0.545 goalAssist: 0.1595 -> 0.1515 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=true | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Rubén 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.39 (squad xG sum 1.1244, xG scale 1.2362, xA scale 1.2362, team xA 0.92 = 0.66 x lambda) | scoreline_reset=true
team_lambda=1.39
squad_xg_sum=1.1244
squad_xa_sum=0.7429
team_expected_assists=0.9183
team_xa_to_xg_ratio=0.6607 | expected_goals: 0.0602 -> 0.0744 expected_assists: 0.1429 -> 0.1767 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 72.0) | match_squad_rank=12
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0717
goal_rate=0.0
scorer_weight=0.0595 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.162
assist_rate=0.1515
provider_weight=0.1846 | - |
|
| Jeanuël Belocian | D | 90 | 0 | 0.05 | 0.02 | 97% | 1 | 0.4 | 6.7 | 32.9 | 8 | XGBoost D_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0085, quality 0.556) | market_value_eur=12900000
quality_factor=0.5559
boost_factor=1.0085
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': 'Ante Budimir', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.39 (squad xG sum 1.1244, xG scale 1.2362, xA scale 1.2362, team xA 0.92 = 0.66 x lambda) | scoreline_reset=true
team_lambda=1.39
squad_xg_sum=1.1244
squad_xa_sum=0.7429
team_expected_assists=0.9183
team_xa_to_xg_ratio=0.6607 | expected_goals: 0.0382 -> 0.0472 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 71.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.0461
goal_rate=0.0
scorer_weight=0.0378 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0146
assist_rate=0.0
provider_weight=0.0119 | - |
|
| Pablo Ramón | D | 83 | 0 | 0.01 | 0.00 | 207% | 1 | 0.2 | 6.8 | 36.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.9908, quality 0.437) | market_value_eur=1500000
quality_factor=0.4374
boost_factor=0.9908
reference_quality=0.505
history_matches=6
history_shrink=0.4545 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0355) | blend_weight=0.0355
history_matches=6
season_overlap_discount=1.0
per90_to_match_factor=0.9234
prior_reliability=0.12
competition=La Liga | wonTackle: 1.0723 -> 1.107 interceptionWon: 1.1453 -> 1.1775 totalShots: 0.538 -> 0.5189 onTargetScoringAttempt: 0.2271 -> 0.219 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Rubén García', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.39 (squad xG sum 1.1244, xG scale 1.2362, xA scale 1.2362, team xA 0.92 = 0.66 x lambda) | scoreline_reset=true
team_lambda=1.39
squad_xg_sum=1.1244
squad_xa_sum=0.7429
team_expected_assists=0.9183
team_xa_to_xg_ratio=0.6607 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 69.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.0082
goal_rate=0.0
scorer_weight=0.0072 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by 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 | - |
|
| Alvaro Mantilla | D | 86 | 0 | 0.02 | 0.02 | ok | 0 | 0.2 | 6.7 | 40.2 | 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 0.9916, quality 0.437) | market_value_eur=1200000
quality_factor=0.4374
boost_factor=0.9916
reference_quality=0.505
history_matches=7
history_shrink=0.4167 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Ante Budimir', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.39 (squad xG sum 1.1244, xG scale 1.2362, xA scale 1.2362, team xA 0.92 = 0.66 x lambda) | scoreline_reset=true
team_lambda=1.39
squad_xg_sum=1.1244
squad_xa_sum=0.7429
team_expected_assists=0.9183
team_xa_to_xg_ratio=0.6607 | expected_assists: 0.0231 -> 0.0286 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 15 by projected rating, fifa_overall 77.0) | match_squad_rank=15
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_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.0176
goal_rate=0.0
scorer_weight=0.0142 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0282
assist_rate=0.0
provider_weight=0.0229 | - |
|
| Julen Agirrezabala | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 6.9 | 37.3 | 16 | FBref Prior G_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost G_service raw output over 3 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9988, quality 0.481) | market_value_eur=6500000
quality_factor=0.4805
boost_factor=0.9988
reference_quality=0.505
history_matches=26
history_shrink=0.1613 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0210) | blend_weight=0.021
history_matches=26
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.2
competition=La Liga | saves: 2.6138 -> 2.6289 wasFouled: 0.1259 -> 0.1372 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Ante Budimir, Rubén García', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.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.39 (squad xG sum 1.1244, xG scale 1.2362, xA scale 1.2362, team xA 0.92 = 0.66 x lambda) | scoreline_reset=true
team_lambda=1.39
squad_xg_sum=1.1244
squad_xa_sum=0.7429
team_expected_assists=0.9183
team_xa_to_xg_ratio=0.6607 | shots_faced: 12.8 -> 12.4 expected_saves: 3.14 -> 3.04 high_pressure_saves: 1.07 -> 1.04 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 82.0) | match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.5727 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0
provider_weight=0.0
squad_weight_total=0.9036 | - |
|
| Team totals | 1 | 1.39 | | 15 | | 6.8 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Simon Eriksson | G | 4.4m | 10.9% | Market-value substitute prior |
| Facundo González | D | 13.6m | 29.9% | Market-value substitute prior |
| Pedro Felipe | D | 13.6m | 29.9% | Market-value substitute prior |
| Gustavo Puerta | M | 22.7m | 32.2% | Market-value substitute prior |
| André Almeida | M | 22.1m | 50.6% | Market-value substitute prior |
| Andrés Martín | F | 25.5m | 57.0% | Market-value substitute prior |
Antagonist / tactical summary
Midfield is evenly contested — Jon Moncayola vs Iván Martín will be the pivotal duel. Total antagonist xG — Home: 0.71, Away: 0.86. 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.54, key duel: Jon Moncayola vs Iván Martín
Rubén García xG 0.10Ante Budimir xG 0.41Iker Muñoz xG 0.03Yassir Zabiri xG 0.45Iñigo Vicente xG 0.07Pablo García xG 0.14
Summary
Antagonist matchup analysis for Osasuna vs Racing Club. Most likely scoreline: 1-1. Lambdas derived from 6 home and 6 away individual player duels. Head-to-head: Osasuna 3W-0D-7L vs Racing Club over 10 meetings.
Tactical parity between 4-3-3 and 4-2-3-1. Match outcome driven primarily by individual player quality. Midfield is evenly contested — Jon Moncayola vs Iván Martín will be the pivotal duel. Total antagonist xG — Home: 0.71, Away: 0.86. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Real Madrid vs Sevilla
LaLiga · 20261018 · 4-2-3-1 vs 4-2-3-1
Predicted 3-1Winner: Real MadridWinning H 3-1 (7.6%)Winning A 1-2 (2.3%)Confidence 0.82λ home/away 3.57 / 1.30Most-likely P 7.6%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset TracingAntagonist + XGBoost match analysis for Real Madrid vs Sevilla. 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 3.272, Away 1.470). Final calibrated Poisson lambdas: Home 3.569, Away 1.300 (most likely score 3-1).
Home Starters 11/11 XGBoost (10 FBref) Away Starters 11/11 XGBoost (7 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 3.27 / 1.47 Final λ (H/A) 3.57 / 1.30
FBref Team Priors: Real Madrid (Gls/90: 3.0, GA/90: 3.33 → E[λ]: 3.5) vs Sevilla (Gls/90: 2.0, GA/90: 2.0 → E[λ]: 3.5) | Blend Weight: 0.228
Modeling Pipeline Stages (5 layers)
- 1. XGBoost player regressions for volume & event rates with market-value quality scaling
- 2. Multi-source prior blending (FBref 2026-2027 tables + Sofascore season history)
- 3. Antagonist formation duel matrix resolving 1v1 and zonal matchups
- 4. Team-level prior calibration (FBref possession and attack/defense efficiencies)
- 5. Bivariate Poisson matrix with Dixon-Coles low-score correction
Standing & form context
| Metric | Real Madrid | Sevilla |
|---|
| League position | 4.00 | 5.00 |
| Points per game | 1.87 | 1.59 |
| Attack index | 1.22 | 1.02 |
| Defense (concede) index | 0.99 | 0.86 |
| Form multiplier | 1.02 | 0.98 |
| Standing λ multiplier | 1.08 | 0.95 |
Lambda decomposition (how the goal rates were built)
| Stage | Real Madrid λ | Sevilla λ |
|---|
| FBref Squad Prior E[λ] (weight 0.228) | 3.500 | 3.500 |
| Pre-mismatch | 3.333 | 1.536 |
| Pre-calibration (Micro-duels) | 3.272 | 1.470 |
| Final λ | 3.569 | 1.300 |
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 |
|---|
| 3-1 | 7.6% |
| 4-1 | 6.8% |
| 2-1 | 6.4% |
| 3-0 | 5.8% |
| 4-0 | 5.2% |
| Home win | 79.0% |
| Draw | 11.4% |
| Away win | 9.6% |
| Over 2.5 | 86.3% |
| BTTS yes | 70.7% |
Pregame fair line — favorite Real Madrid (79.0%), fair total 4.87, fair spread 2.27
Projected players vs season baseline
Proj = projected for this match · Season = this season's per-game average from match data · deviation badge compares projected xG to the player's season xG/game.
Real 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 |
|---|
| Kylian Mbappé | F | 89 | 2 | 1.47 | 0.71 | 107% | 5 | 4.2 | 7.4 | 64.5 | 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.0135, quality 0.900) | market_value_eur=212000000
quality_factor=0.9
boost_factor=1.0135
reference_quality=0.505
history_matches=39
history_shrink=0.1136 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0148) | blend_weight=0.0148
history_matches=39
season_overlap_discount=1.0
per90_to_match_factor=0.9904
prior_reliability=0.2
competition=La Liga | totalShots: 4.028 -> 4.0855 onTargetScoringAttempt: 1.9465 -> 1.9861 totalOffside: 1.6717 -> 1.6519 goals: 0.6007 -> 0.6113 totalCross: 1.3619 -> 1.3515 wasFouled: 1.3699 -> 1.3643 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Andrés Castrin, Kike Salas', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.312, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.1648, 'skill_edge': 0.1401, 'height_edge': -0.028, 'attacker_skill': 0.9, 'defender_skill': 0.5887, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Andrés Castrin', 'market_value': 8700000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5411}, {'player': 'Kike Salas', 'market_value': 15400000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6363}], 'xg_override': 0.7852} | totalShots: 4.0855 -> 4.7588 shotOffTarget: 2.0814 -> 2.4244 onTargetScoringAttempt: 1.9861 -> 2.3134 bigChanceMissed: 1.3341 -> 1.554 expectedGoalsOnTarget: 0.8274 -> 0.9638 expectedGoals: 0.6741 -> 0.7852 goals: 0.6113 -> 0.712 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 3 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=3 | goals: 1.0 -> 0 | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 3.57 (squad xG sum 1.9113, xG scale 1.8673, xA scale 2.4094, team xA 2.32 = 0.65 x lambda) | scoreline_reset=true
team_lambda=3.569
squad_xg_sum=1.9113
squad_xa_sum=0.9628
team_expected_assists=2.3199
team_xa_to_xg_ratio=0.65 | expected_goals: 0.7852 -> 1.4662 expected_assists: 0.1626 -> 0.3918 | 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: 3 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=3
allocation_applied=true
goals_allocated=2
goal_probability=0.7692
goal_rate=0.712
scorer_weight=1.3378 | - | integer_assist_projection | Team scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=2
assists_allocated=1
assist_probability=0.3242
assist_rate=0.21
provider_weight=0.4792 | - |
|
| Yan Diomande | F | 82 | 0 | 0.32 | 0.06 | 402% | 2 | 0.7 | 6.9 | 60.5 | 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.0454, quality 0.899) | market_value_eur=132000000
quality_factor=0.8986
boost_factor=1.0454
reference_quality=0.505
history_matches=8
history_shrink=0.3846 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0117) | blend_weight=0.0117
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=0.9093
prior_reliability=0.0467
competition=La Liga | wasFouled: 2.3234 -> 2.2963 totalCross: 3.5425 -> 3.5618 wonTackle: 1.5717 -> 1.5534 totalShots: 1.4226 -> 1.406 fouls: 0.9845 -> 0.973 interceptionWon: 0.9326 -> 0.9217 onTargetScoringAttempt: 0.5418 -> 0.5355 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Andrés Castrin, Kike Salas', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.311, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.1639, 'skill_edge': 0.1395, 'height_edge': -0.028, 'attacker_skill': 0.8986, 'defender_skill': 0.5887, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Andrés Castrin', 'market_value': 8700000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5411}, {'player': 'Kike Salas', 'market_value': 15400000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6363}], 'xg_override': 0.1726} | totalShots: 1.4162 -> 1.6483 shotOffTarget: 0.8807 -> 1.025 onTargetScoringAttempt: 0.5355 -> 0.6233 expectedGoalsOnTarget: 0.3342 -> 0.389 goals: 0.1728 -> 0.2011 expectedGoals: 0.1483 -> 0.1726 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 3 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=3 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 3.57 (squad xG sum 1.9113, xG scale 1.8673, xA scale 2.4094, team xA 2.32 = 0.65 x lambda) | scoreline_reset=true
team_lambda=3.569
squad_xg_sum=1.9113
squad_xa_sum=0.9628
team_expected_assists=2.3199
team_xa_to_xg_ratio=0.65 | expected_goals: 0.1726 -> 0.3223 expected_assists: 0.1311 -> 0.3159 | 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: 3 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=3
allocation_applied=true
goals_allocated=0
goal_probability=0.2755
goal_rate=0.2011
scorer_weight=0.3636 | - | integer_assist_projection | Team scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=2
assists_allocated=0
assist_probability=0.2709
assist_rate=0.3414
provider_weight=0.3949 | - |
|
| Jude Bellingham | M | 84 | 1 | 0.44 | 0.17 | 159% | 3 | 1.6 | 7.1 | 66.8 | 24 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0144, quality 0.899) | market_value_eur=151000000
quality_factor=0.8995
boost_factor=1.0144
reference_quality=0.505
history_matches=36
history_shrink=0.122 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0143) | blend_weight=0.0143
history_matches=36
season_overlap_discount=1.0
per90_to_match_factor=0.9348
prior_reliability=0.18
competition=La Liga | totalShots: 1.9174 -> 1.9298 onTargetScoringAttempt: 0.7271 -> 0.7366 goalAssist: 0.1183 -> 0.1265 wasFouled: 2.9921 -> 2.984 goals: 0.1646 -> 0.1721 interceptionWon: 0.4962 -> 0.4891 fouls: 1.1313 -> 1.125 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Juan Iglesias', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.671, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.2805, 'skill_edge': 0.1788, 'height_edge': 0.012, 'attacker_skill': 0.8995, 'defender_skill': 0.5021, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Juan Iglesias', 'market_value': 5800000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.5021}], 'xg_override': 0.236} | totalShots: 1.9298 -> 2.4711 aerialWon: 0.6719 -> 1.2 shotOffTarget: 1.1903 -> 1.5242 onTargetScoringAttempt: 0.7366 -> 0.9432 expectedGoalsOnTarget: 0.2689 -> 0.3443 expectedGoals: 0.1843 -> 0.236 goals: 0.1721 -> 0.2204 bigChanceMissed: 0.1552 -> 0.1987 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 3 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=3 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 3.57 (squad xG sum 1.9113, xG scale 1.8673, xA scale 2.4094, team xA 2.32 = 0.65 x lambda) | scoreline_reset=true
team_lambda=3.569
squad_xg_sum=1.9113
squad_xa_sum=0.9628
team_expected_assists=2.3199
team_xa_to_xg_ratio=0.65 | expected_goals: 0.236 -> 0.4407 expected_assists: 0.1276 -> 0.3074 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 90.0) | match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 3 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=3
allocation_applied=true
goals_allocated=1
goal_probability=0.3564
goal_rate=0.2204
scorer_weight=0.4167 | - | integer_assist_projection | Team scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=2
assists_allocated=0
assist_probability=0.2646
assist_rate=0.1265
provider_weight=0.3055 | - |
|
| Arda Güler | M | 70 | 0 | 0.38 | 0.12 | 217% | 2 | 1.2 | 7.1 | 67.4 | 25 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0126, quality 0.892) | market_value_eur=97000000
quality_factor=0.8922
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.0075) | blend_weight=0.0075
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=0.778
prior_reliability=0.1067
competition=La Liga | wasFouled: 1.8538 -> 1.8472 fouls: 0.8281 -> 0.8219 wonTackle: 0.6663 -> 0.6723 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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 Suazo', 'matchup_zone': 'Right Wing vs Left Back — Flank Battle', 'duel_win_rate': 0.634, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.2262, 'skill_edge': 0.1619, 'height_edge': -0.008, 'attacker_skill': 0.8922, 'defender_skill': 0.5325, 'attacker_role': 'RW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Gabriel Suazo', 'market_value': 7600000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.5325}], 'xg_override': 0.205} | aerialWon: 0.2056 -> 0.9 totalShots: 1.7232 -> 2.113 shotOffTarget: 1.0984 -> 1.3469 onTargetScoringAttempt: 0.6248 -> 0.7661 expectedGoals: 0.1672 -> 0.205 goals: 0.1567 -> 0.1921 bigChanceMissed: 0.129 -> 0.1582 expectedGoalsOnTarget: 0.0427 -> 0.0524 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 3 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=3 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 3.57 (squad xG sum 1.9113, xG scale 1.8673, xA scale 2.4094, team xA 2.32 = 0.65 x lambda) | scoreline_reset=true
team_lambda=3.569
squad_xg_sum=1.9113
squad_xa_sum=0.9628
team_expected_assists=2.3199
team_xa_to_xg_ratio=0.65 | expected_goals: 0.205 -> 0.3828 expected_assists: 0.2089 -> 0.5034 | 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: 3 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=3
allocation_applied=true
goals_allocated=0
goal_probability=0.3181
goal_rate=0.1921
scorer_weight=0.3634 | - | integer_assist_projection | Team scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=2
assists_allocated=1
assist_probability=0.3955
assist_rate=0.2007
provider_weight=0.4874 | - |
|
| Aurélien Tchouaméni | M | 80 | 0 | 0.11 | 0.07 | 70% | 1 | 1.3 | 7.0 | 63.1 | 24 | XGBoost M_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0132, quality 0.875) | market_value_eur=73000000
quality_factor=0.8747
boost_factor=1.0132
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': 'Youssouf Fofana', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.551, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.192, 'skill_edge': 0.1186, 'height_edge': 0.012, 'attacker_skill': 0.8865, 'defender_skill': 0.6229, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Youssouf Fofana', 'market_value': 16300000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.6229}], 'xg_override': 0.0601} | aerialWon: 1.3959 -> 1.2 totalShots: 1.0191 -> 1.2148 shotOffTarget: 0.8209 -> 0.9785 onTargetScoringAttempt: 0.1982 -> 0.2363 goals: 0.0621 -> 0.074 expectedGoals: 0.0504 -> 0.0601 bigChanceMissed: 0.0485 -> 0.0578 expectedGoalsOnTarget: 0.0417 -> 0.0497 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 3 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=3 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 3.57 (squad xG sum 1.9113, xG scale 1.8673, xA scale 2.4094, team xA 2.32 = 0.65 x lambda) | scoreline_reset=true
team_lambda=3.569
squad_xg_sum=1.9113
squad_xa_sum=0.9628
team_expected_assists=2.3199
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0601 -> 0.1122 expected_assists: 0.0472 -> 0.1137 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 84.0) | match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 3 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=3
allocation_applied=true
goals_allocated=0
goal_probability=0.1061
goal_rate=0.074
scorer_weight=0.1264 | - | integer_assist_projection | Team scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=2
assists_allocated=0
assist_probability=0.1075
assist_rate=0.0525
provider_weight=0.1199 | - |
|
| Federico Valverde | M | 83 | 0 | 0.14 | 0.08 | 88% | 1 | 1.3 | 7.1 | 68.6 | 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.0125, quality 0.887) | market_value_eur=87000000
quality_factor=0.8873
boost_factor=1.0125
reference_quality=0.505
history_matches=41
history_shrink=0.1087 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0132) | blend_weight=0.0132
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=0.927
prior_reliability=0.1867
competition=La Liga | wonTackle: 0.7228 -> 0.7351 wasFouled: 0.6621 -> 0.6534 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Youssouf Fofana, Lucien Agoumé', 'matchup_zone': 'Attacking Mid vs Double Pivot — Tight Space Battle', 'duel_win_rate': 0.338, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.1447, 'skill_edge': 0.1145, 'height_edge': -0.016, 'attacker_skill': 0.8898, 'defender_skill': 0.6355, 'attacker_role': 'CAM', 'attacker_mv_price_index': 0.95, 'defender_adjusted_parts': [{'player': 'Youssouf Fofana', 'market_value': 16300000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.6229}, {'player': 'Lucien Agoumé', 'market_value': 18500000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.648}], 'xg_override': 0.0776} | aerialWon: 0.9303 -> 1.1 totalShots: 0.9324 -> 1.0673 shotOffTarget: 0.6469 -> 0.7405 onTargetScoringAttempt: 0.2855 -> 0.3268 goals: 0.0748 -> 0.0856 expectedGoalsOnTarget: 0.0705 -> 0.0807 expectedGoals: 0.0678 -> 0.0776 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 3 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=3 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 3.57 (squad xG sum 1.9113, xG scale 1.8673, xA scale 2.4094, team xA 2.32 = 0.65 x lambda) | scoreline_reset=true
team_lambda=3.569
squad_xg_sum=1.9113
squad_xa_sum=0.9628
team_expected_assists=2.3199
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0776 -> 0.1449 expected_assists: 0.1008 -> 0.2429 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 87.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: 3 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=3
allocation_applied=true
goals_allocated=0
goal_probability=0.1349
goal_rate=0.0856
scorer_weight=0.154 | - | integer_assist_projection | Team scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=2
assists_allocated=0
assist_probability=0.2157
assist_rate=0.0922
provider_weight=0.2291 | - |
|
| Marc Cucurella | D | 88 | 0 | 0.05 | 0.07 | ok | 0 | 0.3 | 6.8 | 58.2 | 26 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0112, quality 0.857) | market_value_eur=62000000
quality_factor=0.8569
boost_factor=1.0112
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.9801
prior_reliability=0.12
competition=La Liga | totalCross: 1.5097 -> 1.4972 wasFouled: 0.7827 -> 0.7762 fouls: 0.7316 -> 0.7255 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Chidera Ejuke', 'matchup_zone': 'Shape fallback'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 3 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=3 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 3.57 (squad xG sum 1.9113, xG scale 1.8673, xA scale 2.4094, team xA 2.32 = 0.65 x lambda) | scoreline_reset=true
team_lambda=3.569
squad_xg_sum=1.9113
squad_xa_sum=0.9628
team_expected_assists=2.3199
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0273 -> 0.051 expected_assists: 0.037 -> 0.0891 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 85.0) | match_squad_rank=14
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 3 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=3
allocation_applied=true
goals_allocated=0
goal_probability=0.0497
goal_rate=0.0
scorer_weight=0.0408 | - | integer_assist_projection | Team scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=2
assists_allocated=0
assist_probability=0.0852
assist_rate=0.0659
provider_weight=0.1114 | - |
|
| Dean Huijsen | D | 82 | 0 | 0.17 | 0.06 | 203% | 1 | 0.5 | 7.0 | 60.0 | 25 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0138, quality 0.864) | market_value_eur=66000000
quality_factor=0.8644
boost_factor=1.0138
reference_quality=0.505
history_matches=34
history_shrink=0.1282 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0167) | blend_weight=0.0167
history_matches=34
season_overlap_discount=1.0
per90_to_match_factor=0.9133
prior_reliability=0.2
competition=La Liga | fouls: 0.9422 -> 0.9366 totalShots: 0.5876 -> 0.593 onTargetScoringAttempt: 0.3172 -> 0.3119 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Robbie Ure', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 3 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=3 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 3.57 (squad xG sum 1.9113, xG scale 1.8673, xA scale 2.4094, team xA 2.32 = 0.65 x lambda) | scoreline_reset=true
team_lambda=3.569
squad_xg_sum=1.9113
squad_xa_sum=0.9628
team_expected_assists=2.3199
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0895 -> 0.1671 expected_assists: 0.0363 -> 0.0875 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 81.0) | match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 3 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=3
allocation_applied=true
goals_allocated=0
goal_probability=0.1539
goal_rate=0.0285
scorer_weight=0.1337 | - | integer_assist_projection | Team scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=2
assists_allocated=0
assist_probability=0.0838
assist_rate=0.0173
provider_weight=0.07 | - |
|
| Ibrahima Konaté | D | 89 | 0 | 0.08 | 0.03 | 218% | 1 | 0.3 | 6.8 | 61.3 | 29 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0095, quality 0.809) | market_value_eur=46000000
quality_factor=0.8089
boost_factor=1.0095
reference_quality=0.505
history_matches=43
history_shrink=0.1042 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0090) | blend_weight=0.009
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=0.9894
prior_reliability=0.1333
competition=La Liga | wonTackle: 0.7218 -> 0.7331 fouls: 1.1232 -> 1.1175 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Robbie Ure', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 3 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=3 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 3.57 (squad xG sum 1.9113, xG scale 1.8673, xA scale 2.4094, team xA 2.32 = 0.65 x lambda) | scoreline_reset=true
team_lambda=3.569
squad_xg_sum=1.9113
squad_xa_sum=0.9628
team_expected_assists=2.3199
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0446 -> 0.0833 expected_assists: 0.0124 -> 0.0299 | 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: 3 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=3
allocation_applied=true
goals_allocated=0
goal_probability=0.0799
goal_rate=0.0059
scorer_weight=0.0666 | - | integer_assist_projection | Team scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=2
assists_allocated=0
assist_probability=0.0295
assist_rate=0.0
provider_weight=0.024 | - |
|
| Denzel Dumfries | M | 84 | 0 | 0.18 | 0.04 | 359% | 1 | 0.7 | 6.7 | 43.4 | 18 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0226, quality 0.686) | market_value_eur=26000000
quality_factor=0.6858
boost_factor=1.0226
reference_quality=0.505
history_matches=7
history_shrink=0.4167 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0343) | blend_weight=0.0343
history_matches=7
season_overlap_discount=1.0
per90_to_match_factor=0.9359
prior_reliability=0.1267
competition=La Liga | totalShots: 0.8275 -> 0.8845 fouls: 0.3132 -> 0.3363 wonTackle: 1.3871 -> 1.4071 interceptionWon: 0.5731 -> 0.5872 totalCross: 0.7723 -> 0.7796 onTargetScoringAttempt: 0.3026 -> 0.3092 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Youssouf Fofana', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.477, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0832, 'skill_edge': 0.0446, 'height_edge': 0.012, 'attacker_skill': 0.7219, 'defender_skill': 0.6229, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Youssouf Fofana', 'market_value': 16300000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.6229}], 'xg_override': 0.0967} | aerialWon: 1.0616 -> 1.2 totalShots: 0.8845 -> 0.9581 shotOffTarget: 0.5249 -> 0.5686 onTargetScoringAttempt: 0.3092 -> 0.3349 bigChanceMissed: 0.2344 -> 0.2539 expectedGoals: 0.0893 -> 0.0967 goals: 0.0739 -> 0.08 expectedGoalsOnTarget: 0.0652 -> 0.0706 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 3 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=3 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 3.57 (squad xG sum 1.9113, xG scale 1.8673, xA scale 2.4094, team xA 2.32 = 0.65 x lambda) | scoreline_reset=true
team_lambda=3.569
squad_xg_sum=1.9113
squad_xa_sum=0.9628
team_expected_assists=2.3199
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0967 -> 0.1806 expected_assists: 0.0409 -> 0.0985 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 17 by projected rating, fifa_overall 83.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: 3 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=3
allocation_applied=true
goals_allocated=0
goal_probability=0.1652
goal_rate=0.08
scorer_weight=0.16 | - | integer_assist_projection | Team scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=2
assists_allocated=0
assist_probability=0.0938
assist_rate=0.053
provider_weight=0.1116 | - |
|
| Thibaut Courtois | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 7.1 | 63.7 | 24 | FBref Prior G_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost G_service raw output over 3 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0023, quality 0.574) | market_value_eur=14500000
quality_factor=0.5737
boost_factor=1.0023
reference_quality=0.505
history_matches=40
history_shrink=0.1111 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0144) | blend_weight=0.0144
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.2
competition=La Liga | saves: 2.8736 -> 2.8562 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Robbie Ure, Félix Correia', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.4696} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 3 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=3 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 3.57 (squad xG sum 1.9113, xG scale 1.8673, xA scale 2.4094, team xA 2.32 = 0.65 x lambda) | scoreline_reset=true
team_lambda=3.569
squad_xg_sum=1.9113
squad_xa_sum=0.9628
team_expected_assists=2.3199
team_xa_to_xg_ratio=0.65 | shots_faced: 14.0 -> 12.3 expected_saves: 3.43 -> 3.0 high_pressure_saves: 1.18 -> 1.04 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 90.0) | match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 3 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=3
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=3.3733 | - | integer_assist_projection | Team scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=2
assists_allocated=0
assist_probability=0.0
provider_weight=0.0
squad_weight_total=2.4511 | - |
|
| Team totals | 3 | 3.57 | | 19 | | 7.0 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Andriy Lunin | G | 4.8m | 12.7% | Market-value substitute prior |
| Trent Alexander-Arnold | D | 12.9m | 44.3% | Market-value substitute prior |
| Álvaro Carreras | D | 15.1m | 24.9% | Market-value substitute prior |
| Eduardo Camavinga | M | 17.2m | 59.4% | Market-value substitute prior |
| Franco Mastantuono | M | 23.4m | 56.4% | Market-value substitute prior |
| Vinícius Júnior | F | 27.1m | 37.1% | Market-value substitute prior |
Sevilla — 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 |
|---|
| Robbie Ure | F | 78 | 1 | 0.26 | 0.10 | 158% | 2 | 1.1 | 6.9 | 47.0 | 10 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9976, quality 0.484) | market_value_eur=6800000
quality_factor=0.4842
boost_factor=0.9976
reference_quality=0.505
history_matches=8
history_shrink=0.3846 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0417) | blend_weight=0.0417
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=0.8656
prior_reliability=0.1667
competition=La Liga | totalShots: 2.2672 -> 2.2304 onTargetScoringAttempt: 0.7505 -> 0.7192 wasFouled: 2.3816 -> 2.3545 totalOffside: 0.6261 -> 0.6 goals: 0.2737 -> 0.2623 totalCross: 0.1943 -> 0.1862 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Dean Huijsen, Ibrahima Konaté', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.7084, 'skill_edge': -0.1744, 'height_edge': -0.024, 'attacker_skill': 0.4842, 'defender_skill': 0.8717, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Dean Huijsen', 'market_value': 66000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8879}, {'player': 'Ibrahima Konaté', 'market_value': 46000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8555}], 'xg_override': 0.1786} | totalShots: 2.2359 -> 1.5839 shotOffTarget: 1.5167 -> 1.0744 onTargetScoringAttempt: 0.7192 -> 0.5095 bigChanceMissed: 0.4342 -> 0.3076 goals: 0.2623 -> 0.1858 expectedGoalsOnTarget: 0.2607 -> 0.1847 expectedGoals: 0.2521 -> 0.1786 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_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 0.9026, xG scale 1.4403, xA scale 1.3766, team xA 1.04 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.3
squad_xg_sum=0.9026
squad_xa_sum=0.7555
team_expected_assists=1.04
team_xa_to_xg_ratio=0.8 | expected_goals: 0.1786 -> 0.2572 expected_assists: 0.0874 -> 0.1203 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 71.0) | match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.2268
goal_rate=0.1858
scorer_weight=0.2653 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1133
assist_rate=0.4305
provider_weight=0.1504 | - |
|
| Félix Correia | F | 75 | 0 | 0.22 | 0.10 | 128% | 1 | 0.5 | 6.8 | 36.7 | 13 | 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.0023, quality 0.519) | market_value_eur=9700000
quality_factor=0.5189
boost_factor=1.0023
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': 'Dean Huijsen, Ibrahima Konaté', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.6785, 'skill_edge': -0.1587, 'height_edge': -0.06, 'attacker_skill': 0.5189, 'defender_skill': 0.8717, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Dean Huijsen', 'market_value': 66000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8879}, {'player': 'Ibrahima Konaté', 'market_value': 46000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8555}], 'xg_override': 0.1556} | totalShots: 1.5124 -> 1.0262 shotOffTarget: 0.8241 -> 0.5592 onTargetScoringAttempt: 0.6883 -> 0.467 bigChanceMissed: 0.3896 -> 0.2643 expectedGoalsOnTarget: 0.2885 -> 0.1957 expectedGoals: 0.2293 -> 0.1556 goals: 0.2234 -> 0.1516 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_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 0.9026, xG scale 1.4403, xA scale 1.3766, team xA 1.04 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.3
squad_xg_sum=0.9026
squad_xa_sum=0.7555
team_expected_assists=1.04
team_xa_to_xg_ratio=0.8 | expected_goals: 0.1556 -> 0.2241 expected_assists: 0.0942 -> 0.1297 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 75.0) | match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.2008
goal_rate=0.1516
scorer_weight=0.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.1216
assist_rate=0.2673
provider_weight=0.1621 | - |
|
| Youssouf Fofana | M | 84 | 0 | 0.14 | 0.09 | 49% | 1 | 1.1 | 6.9 | 52.7 | 7 | XGBoost M_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0132, quality 0.593) | market_value_eur=16300000
quality_factor=0.5932
boost_factor=1.0132
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': 'Aurélien Tchouaméni', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.289, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.808, 'skill_edge': -0.1186, 'height_edge': -0.012, 'attacker_skill': 0.6229, 'defender_skill': 0.8865, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Aurélien Tchouaméni', 'market_value': 73000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8865}], 'xg_override': 0.0981} | totalShots: 1.5808 -> 1.2773 shotOffTarget: 1.0591 -> 0.8558 aerialWon: 1.0537 -> 1.2 onTargetScoringAttempt: 0.5217 -> 0.4215 bigChanceMissed: 0.3938 -> 0.3182 expectedGoalsOnTarget: 0.2809 -> 0.227 goals: 0.1455 -> 0.1176 expectedGoals: 0.1214 -> 0.0981 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_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 0.9026, xG scale 1.4403, xA scale 1.3766, team xA 1.04 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.3
squad_xg_sum=0.9026
squad_xa_sum=0.7555
team_expected_assists=1.04
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0981 -> 0.1413 expected_assists: 0.1029 -> 0.1417 | 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.1318
goal_rate=0.1176
scorer_weight=0.1599 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1321
assist_rate=0.1197
provider_weight=0.1573 | - |
|
| Chidera Ejuke | F | 71 | 0 | 0.11 | 0.03 | 220% | 1 | 0.5 | 6.7 | 49.3 | 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.9977, quality 0.446) | market_value_eur=3700000
quality_factor=0.4461
boost_factor=0.9977
reference_quality=0.505
history_matches=33
history_shrink=0.1316 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0057) | blend_weight=0.0057
history_matches=33
season_overlap_discount=1.0
per90_to_match_factor=0.7914
prior_reliability=0.0667
competition=La Liga | interceptionWon: 0.87 -> 0.865 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Dean Huijsen, Ibrahima Konaté', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.6303, 'skill_edge': -0.1915, 'height_edge': -0.06, 'attacker_skill': 0.4461, 'defender_skill': 0.8717, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Dean Huijsen', 'market_value': 66000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8879}, {'player': 'Ibrahima Konaté', 'market_value': 46000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8555}], 'xg_override': 0.0731} | totalShots: 1.1324 -> 0.7138 shotOffTarget: 0.7507 -> 0.4732 onTargetScoringAttempt: 0.3817 -> 0.2406 bigChanceMissed: 0.1591 -> 0.1003 goals: 0.1262 -> 0.0795 expectedGoals: 0.116 -> 0.0731 expectedGoalsOnTarget: 0.0169 -> 0.0107 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_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 0.9026, xG scale 1.4403, xA scale 1.3766, team xA 1.04 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.3
squad_xg_sum=0.9026
squad_xa_sum=0.7555
team_expected_assists=1.04
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0731 -> 0.1053 expected_assists: 0.0691 -> 0.0951 | 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.0999
goal_rate=0.0795
scorer_weight=0.1108 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0907
assist_rate=0.0
provider_weight=0.0761 | - |
|
| Lucien Agoumé | M | 88 | 0 | 0.05 | 0.02 | 148% | 1 | 0.5 | 6.9 | 63.6 | 30 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0035, quality 0.616) | market_value_eur=18500000
quality_factor=0.6161
boost_factor=1.0035
reference_quality=0.505
history_matches=42
history_shrink=0.1064 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0138) | blend_weight=0.0138
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.9771
prior_reliability=0.2
competition=La Liga | wonTackle: 1.7692 -> 1.7898 wasFouled: 0.58 -> 0.5945 totalCross: 0.2626 -> 0.277 interceptionWon: 1.3197 -> 1.3285 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Aurélien Tchouaméni', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.301, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.8246, 'skill_edge': -0.1073, 'height_edge': -0.012, 'attacker_skill': 0.648, 'defender_skill': 0.8865, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Aurélien Tchouaméni', 'market_value': 73000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8865}], 'xg_override': 0.035} | aerialWon: 0.5964 -> 1.2 totalShots: 0.674 -> 0.5558 shotOffTarget: 0.4969 -> 0.4097 onTargetScoringAttempt: 0.1748 -> 0.1441 goals: 0.0459 -> 0.0378 expectedGoals: 0.0424 -> 0.035 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_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 0.9026, xG scale 1.4403, xA scale 1.3766, team xA 1.04 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.3
squad_xg_sum=0.9026
squad_xa_sum=0.7555
team_expected_assists=1.04
team_xa_to_xg_ratio=0.8 | expected_goals: 0.035 -> 0.0504 expected_assists: 0.0443 -> 0.061 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 76.0) | match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0492
goal_rate=0.0378
scorer_weight=0.0521 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0592
assist_rate=0.058
provider_weight=0.0699 | - |
|
| Arouna Sangante | D | 76 | 0 | 0.00 | - | n/a | 0 | 0.0 | 6.7 | 31.4 | 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.9983, quality 0.495) | market_value_eur=7700000
quality_factor=0.4951
boost_factor=0.9983
reference_quality=0.505
history_matches=4
history_shrink=0.5556 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0409) | blend_weight=0.0409
history_matches=4
season_overlap_discount=1.0
per90_to_match_factor=0.8448
prior_reliability=0.1133
competition=La Liga | interceptionWon: 0.954 -> 0.976 totalShots: 0.4219 -> 0.4046 totalCross: 0.1924 -> 0.2049 wonTackle: 0.7847 -> 0.7729 fouls: 1.2246 -> 1.2355 wasFouled: 0.2662 -> 0.2553 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Kylian Mbappé', 'matchup_zone': '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 0.9026, xG scale 1.4403, xA scale 1.3766, team xA 1.04 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.3
squad_xg_sum=0.9026
squad_xa_sum=0.7555
team_expected_assists=1.04
team_xa_to_xg_ratio=0.8 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 16 by projected rating, fifa_overall 74.0) | match_squad_rank=16
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.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.0033
assist_rate=0.0
provider_weight=0.0031 | - |
|
| Gabriel Suazo | D | 88 | 0 | 0.00 | 0.01 | ok | 0 | 0.1 | 6.8 | 57.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 0.9996, quality 0.494) | market_value_eur=7600000
quality_factor=0.4939
boost_factor=0.9996
reference_quality=0.505
history_matches=37
history_shrink=0.119 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0155) | blend_weight=0.0155
history_matches=37
season_overlap_discount=1.0
per90_to_match_factor=0.9741
prior_reliability=0.2
competition=La Liga | fouls: 1.8297 -> 1.8466 totalCross: 2.7379 -> 2.7508 wonTackle: 1.6567 -> 1.6512 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Arda Güler', 'matchup_zone': 'Right Wing vs Left Back — Flank Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.30 (squad xG sum 0.9026, xG scale 1.4403, xA scale 1.3766, team xA 1.04 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.3
squad_xg_sum=0.9026
squad_xa_sum=0.7555
team_expected_assists=1.04
team_xa_to_xg_ratio=0.8 | expected_assists: 0.1715 -> 0.2362 | 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: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0049
goal_rate=0.0
scorer_weight=0.0046 | - | integer_assist_projection | Team scoreline allocation: 1 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.2104
assist_rate=0.0022
provider_weight=0.189 | - |
|
| Kike Salas | D | 90 | 0 | 0.07 | 0.06 | ok | 1 | 0.8 | 6.9 | 64.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.0032, quality 0.584) | market_value_eur=15400000
quality_factor=0.5835
boost_factor=1.0032
reference_quality=0.505
history_matches=32
history_shrink=0.1351 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0117) | blend_weight=0.0117
history_matches=32
season_overlap_discount=1.0
per90_to_match_factor=0.9983
prior_reliability=0.1333
competition=La Liga | wasFouled: 0.7602 -> 0.7688 totalShots: 0.9649 -> 0.9715 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Kylian Mbappé', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_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 0.9026, xG scale 1.4403, xA scale 1.3766, team xA 1.04 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.3
squad_xg_sum=0.9026
squad_xa_sum=0.7555
team_expected_assists=1.04
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0489 -> 0.0704 expected_assists: 0.0394 -> 0.0542 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 76.0) | match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.068
goal_rate=0.0466
scorer_weight=0.0688 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0528
assist_rate=0.0
provider_weight=0.0434 | - |
|
| Andrés Castrin | D | 89 | 0 | 0.04 | 0.01 | 156% | 1 | 0.3 | 6.8 | 46.2 | 27 | XGBoost D_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0001, quality 0.507) | market_value_eur=8700000
quality_factor=0.5071
boost_factor=1.0001
reference_quality=0.505
history_matches=26
history_shrink=0.1613 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Kylian Mbappé', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_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 0.9026, xG scale 1.4403, xA scale 1.3766, team xA 1.04 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.3
squad_xg_sum=0.9026
squad_xa_sum=0.7555
team_expected_assists=1.04
team_xa_to_xg_ratio=0.8 | expected_goals: 0.026 -> 0.0374 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 73.0) | match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0367
goal_rate=0.0504
scorer_weight=0.0467 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0134
assist_rate=0.0
provider_weight=0.0113 | - |
|
| Juan Iglesias | D | 90 | 0 | 0.07 | 0.03 | 112% | 1 | 0.7 | 6.8 | 65.3 | 31 | XGBoost D_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9990, quality 0.472) | market_value_eur=5800000
quality_factor=0.472
boost_factor=0.999
reference_quality=0.505
history_matches=45
history_shrink=0.1 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Jude Bellingham', '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 0.9026, xG scale 1.4403, xA scale 1.3766, team xA 1.04 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.3
squad_xg_sum=0.9026
squad_xa_sum=0.7555
team_expected_assists=1.04
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0472 -> 0.068 expected_assists: 0.0678 -> 0.0933 | 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.0657
goal_rate=0.0966
scorer_weight=0.085 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0891
assist_rate=0.0068
provider_weight=0.0746 | - |
|
| Odysseas Vlachodimos | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 7.0 | 62.6 | 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.9979, quality 0.440) | market_value_eur=3200000
quality_factor=0.4399
boost_factor=0.9979
reference_quality=0.505
history_matches=41
history_shrink=0.1087 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0141) | blend_weight=0.0141
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.2
competition=La Liga | saves: 2.934 -> 2.9396 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Kylian Mbappé, Jude Bellingham', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 3.2715} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_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 0.9026, xG scale 1.4403, xA scale 1.3766, team xA 1.04 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.3
squad_xg_sum=0.9026
squad_xa_sum=0.7555
team_expected_assists=1.04
team_xa_to_xg_ratio=0.8 | shots_faced: 31.1 -> 33.9 expected_saves: 7.61 -> 8.3 high_pressure_saves: 2.62 -> 2.86 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 79.0) | match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.4226 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by 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.0302 | - |
|
| Team totals | 1 | 1.30 | | 13 | | 6.8 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Fran González | G | 4.4m | 10.9% | Market-value substitute prior |
| José Ángel Carmona | D | 14.0m | 31.6% | Market-value substitute prior |
| Marcão | D | 13.6m | 29.9% | Market-value substitute prior |
| Oso | M | 22.3m | 51.5% | Market-value substitute prior |
| Djibril Sow | M | 22.2m | 50.8% | Market-value substitute prior |
| Lucas Stassin | F | 25.9m | 58.6% | Market-value substitute prior |
Antagonist / tactical summary
Home midfield dominates with ~52% possession expected (Jude Bellingham vs Lucien Agoumé). Total antagonist xG — Home: 1.63, Away: 0.54. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Midfield — possession 52.3% / 47.7%, dominance ratio 0.61, key duel: Jude Bellingham vs Lucien Agoumé
Jude Bellingham xG 0.24Arda Güler xG 0.20Federico Valverde xG 0.08Robbie Ure xG 0.18Félix Correia xG 0.16Chidera Ejuke xG 0.07
Summary
Antagonist matchup analysis for Real Madrid vs Sevilla. Most likely scoreline: 3-1. Lambdas derived from 7 home and 5 away individual player duels. Head-to-head: Real Madrid 9W-1D-0L vs Sevilla over 10 meetings.
Tactical parity between 4-2-3-1 and 4-2-3-1. Match outcome driven primarily by individual player quality. Home midfield dominates with ~52% possession expected (Jude Bellingham vs Lucien Agoumé). Total antagonist xG — Home: 1.63, Away: 0.54. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Bournemouth vs Sunderland
Premier League · 20261018 · 4-2-3-1 vs 4-2-3-1
Predicted 1-1Winner: DrawWinning H 1-0 (13.2%)Winning A 0-1 (10.1%)Confidence 0.71λ home/away 1.28 / 0.99Most-likely P 13.2%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset TracingAntagonist + XGBoost match analysis for Bournemouth vs Sunderland. Player statistics regressed using position-specific XGBoost models (G, D, M, F) with 2026-2027 FBref priors. Micro-duels resolved across 4-2-3-1 vs 4-2-3-1 (duel lambdas: Home 1.279, Away 0.986). Final calibrated Poisson lambdas: Home 1.279, Away 0.986 (most likely score 1-1).
Home Starters 11/11 XGBoost (9 FBref) Away Starters 10/11 XGBoost (9 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.28 / 0.99 Final λ (H/A) 1.28 / 0.99
FBref Team Priors: Bournemouth (Gls/90: 1.0, GA/90: 1.0 → E[λ]: 0.69) vs Sunderland (Gls/90: 1.0, GA/90: 1.0 → E[λ]: 0.69) | Blend Weight: 0.192
Modeling Pipeline Stages (5 layers)
- 1. XGBoost player regressions for volume & event rates with market-value quality scaling
- 2. Multi-source prior blending (FBref 2026-2027 tables + Sofascore season history)
- 3. Antagonist formation duel matrix resolving 1v1 and zonal matchups
- 4. Team-level prior calibration (FBref possession and attack/defense efficiencies)
- 5. Bivariate Poisson matrix with Dixon-Coles low-score correction
Standing & form context
| Metric | Bournemouth | Sunderland |
|---|
| League position | 18.00 | 17.00 |
| Points per game | 0.92 | 1.00 |
| Attack index | 0.93 | 0.89 |
| Defense (concede) index | 1.12 | 1.16 |
| Form multiplier | 0.99 | 1.00 |
| Standing λ multiplier | 1.02 | 1.01 |
Lambda decomposition (how the goal rates were built)
| Stage | Bournemouth λ | Sunderland λ |
|---|
| FBref Squad Prior E[λ] (weight 0.192) | 0.690 | 0.690 |
| Pre-competitive-floor | 1.279 | 0.986 |
| Pre-calibration (Micro-duels) | 1.279 | 0.986 |
| Final λ | 1.279 | 0.986 |
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 | 13.2% |
| 1-0 | 13.2% |
| 0-0 | 10.5% |
| 0-1 | 10.1% |
| 2-0 | 8.5% |
| Home win | 43.0% |
| Draw | 28.5% |
| Away win | 28.5% |
| Over 2.5 | 39.5% |
| BTTS yes | 45.4% |
Pregame fair line — favorite Bournemouth (43.0%), fair total 2.27, fair spread 0.29
Projected players vs season baseline
Proj = projected for this match · Season = this season's per-game average from match data · deviation badge compares projected xG to the player's season xG/game.
Bournemouth — projected line vs season baseline (4-2-3-1)
| Player | Pos | Min | Proj G | Proj xG | Season xG/g | | Proj Sh | Season Sh/g | Proj Rtg | Season Rtg | Rec | Model / FBref Prior |
|---|
| Evanilson | F | 84 | 0 | 0.25 | 0.25 | ok | 2 | 1.6 | 6.8 | 55.5 | 30 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0075, quality 0.739) | market_value_eur=33000000
quality_factor=0.7389
boost_factor=1.0075
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.9303
prior_reliability=0.1133
competition=Premier League | fouls: 1.3208 -> 1.3319 wasFouled: 1.7877 -> 1.7951 interceptionWon: 0.7612 -> 0.7681 totalOffside: 0.8307 -> 0.8242 goalAssist: 0.2772 -> 0.2836 onTargetScoringAttempt: 0.7203 -> 0.7147 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Kevin Danso, Trai Hume', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.207, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 1.0101, 'skill_edge': 0.0229, 'height_edge': -0.016, 'attacker_skill': 0.7389, 'defender_skill': 0.6881, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Kevin Danso', 'market_value': 19400000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6847}, {'player': 'Trai Hume', 'market_value': 20000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6914}], 'xg_override': 0.2975} | totalShots: 1.9462 -> 1.9659 shotOffTarget: 1.2283 -> 1.2407 onTargetScoringAttempt: 0.7147 -> 0.7219 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.28 (squad xG sum 1.5028, xG scale 0.8511, xA scale 0.9726, team xA 0.83 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.279
squad_xg_sum=1.5028
squad_xa_sum=0.8548
team_expected_assists=0.8313
team_xa_to_xg_ratio=0.65 | expected_goals: 0.2975 -> 0.2532 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 79.0) | match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.2237
goal_rate=0.2691
scorer_weight=0.2325 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0655
assist_rate=0.2836
provider_weight=0.0846 | - |
|
| Ben Gannon-Doak | F | 80 | 0 | 0.08 | 0.01 | 616% | 1 | 0.2 | 6.8 | 18.5 | 25 | FBref Prior F_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0058, quality 0.575) | market_value_eur=14600000
quality_factor=0.5748
boost_factor=1.0058
reference_quality=0.505
history_matches=13
history_shrink=0.2778 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Kevin Danso, Trai Hume', '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.8604, 'skill_edge': -0.051, 'height_edge': -0.044, 'attacker_skill': 0.5748, 'defender_skill': 0.6881, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Kevin Danso', 'market_value': 19400000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6847}, {'player': 'Trai Hume', 'market_value': 20000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6914}], 'xg_override': 0.0976} | totalShots: 1.5117 -> 1.3007 shotOffTarget: 1.1471 -> 0.987 onTargetScoringAttempt: 0.3646 -> 0.3137 expectedGoals: 0.1134 -> 0.0976 goals: 0.0991 -> 0.0853 bigChanceMissed: 0.0784 -> 0.0675 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.28 (squad xG sum 1.5028, xG scale 0.8511, xA scale 0.9726, team xA 0.83 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.279
squad_xg_sum=1.5028
squad_xa_sum=0.8548
team_expected_assists=0.8313
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0976 -> 0.0831 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 71.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.0797
goal_rate=0.0853
scorer_weight=0.0762 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0725
assist_rate=0.0288
provider_weight=0.0602 | - |
|
| Marcus Tavernier | F | 83 | 0 | 0.16 | 0.23 | ok | 2 | 1.6 | 7.1 | 51.6 | 37 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0063, quality 0.694) | market_value_eur=27000000
quality_factor=0.6941
boost_factor=1.0063
reference_quality=0.505
history_matches=40
history_shrink=0.1111 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0096) | blend_weight=0.0096
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=0.9254
prior_reliability=0.1333
competition=Premier League | wasFouled: 1.0397 -> 1.0475 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Kevin Danso, Trai Hume', '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.9629, 'skill_edge': 0.0027, 'height_edge': -0.028, 'attacker_skill': 0.6941, 'defender_skill': 0.6881, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Kevin Danso', 'market_value': 19400000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6847}, {'player': 'Trai Hume', 'market_value': 20000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6914}], 'xg_override': 0.1911} | totalShots: 1.9718 -> 1.8986 shotOffTarget: 1.0878 -> 1.0474 onTargetScoringAttempt: 0.8811 -> 0.8484 expectedGoalsOnTarget: 0.3468 -> 0.3339 goals: 0.3044 -> 0.2931 expectedGoals: 0.1985 -> 0.1911 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.28 (squad xG sum 1.5028, xG scale 0.8511, xA scale 0.9726, team xA 0.83 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.279
squad_xg_sum=1.5028
squad_xa_sum=0.8548
team_expected_assists=0.8313
team_xa_to_xg_ratio=0.65 | expected_goals: 0.1911 -> 0.1626 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 79.0) | match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1501
goal_rate=0.2931
scorer_weight=0.2032 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=1
assist_probability=0.1452
assist_rate=0.024
provider_weight=0.1255 | - |
|
| Rayan | F | 85 | 1 | 0.28 | 0.14 | 97% | 3 | 1.5 | 7.0 | 49.8 | 37 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0198, quality 0.848) | market_value_eur=58000000
quality_factor=0.8478
boost_factor=1.0198
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.9433
prior_reliability=0.1333
competition=Premier League | totalCross: 2.1999 -> 2.1632 wasFouled: 0.9051 -> 0.89 wonTackle: 0.7021 -> 0.6904 onTargetScoringAttempt: 0.8723 -> 0.8817 totalShots: 2.3856 -> 2.3935 fouls: 0.3359 -> 0.3303 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Kevin Danso, Trai Hume', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.272, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 1.1057, 'skill_edge': 0.0719, 'height_edge': 0.0, 'attacker_skill': 0.8478, 'defender_skill': 0.6881, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Kevin Danso', 'market_value': 19400000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6847}, {'player': 'Trai Hume', 'market_value': 20000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6914}], 'xg_override': 0.3234} | totalShots: 2.395 -> 2.6482 shotOffTarget: 1.5133 -> 1.6733 onTargetScoringAttempt: 0.8817 -> 0.9749 bigChanceMissed: 0.4434 -> 0.4903 expectedGoals: 0.2925 -> 0.3234 goals: 0.2606 -> 0.2881 expectedGoalsOnTarget: 0.1502 -> 0.1661 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.28 (squad xG sum 1.5028, xG scale 0.8511, xA scale 0.9726, team xA 0.83 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.279
squad_xg_sum=1.5028
squad_xa_sum=0.8548
team_expected_assists=0.8313
team_xa_to_xg_ratio=0.65 | expected_goals: 0.3234 -> 0.2752 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 79.0) | match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.2406
goal_rate=0.2881
scorer_weight=0.2492 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0818
assist_rate=0.031
provider_weight=0.0682 | - |
|
| Ryan Christie | M | 70 | 0 | 0.06 | 0.05 | ok | 1 | 0.8 | 6.8 | 51.0 | 25 | FBref Prior M_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0000, quality 0.506) | market_value_eur=8600000
quality_factor=0.5059
boost_factor=1.0
reference_quality=0.505
history_matches=31
history_shrink=0.1389 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Noah Sadiki', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.306, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.8321, 'skill_edge': -0.1342, 'height_edge': 0.02, 'attacker_skill': 0.5238, 'defender_skill': 0.8221, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Noah Sadiki', 'market_value': 42000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8221}], 'xg_override': 0.0661} | totalShots: 1.0365 -> 0.8625 shotOffTarget: 0.748 -> 0.6224 aerialWon: 1.0894 -> 1.0 onTargetScoringAttempt: 0.2885 -> 0.2401 bigChanceMissed: 0.2638 -> 0.2195 expectedGoals: 0.0794 -> 0.0661 goals: 0.072 -> 0.0599 expectedGoalsOnTarget: 0.0633 -> 0.0527 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.28 (squad xG sum 1.5028, xG scale 0.8511, xA scale 0.9726, team xA 0.83 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.279
squad_xg_sum=1.5028
squad_xa_sum=0.8548
team_expected_assists=0.8313
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0661 -> 0.0563 | 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.0547
goal_rate=0.0599
scorer_weight=0.0533 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0665
assist_rate=0.0639
provider_weight=0.0649 | - |
|
| Tyler Adams | M | 81 | 0 | 0.02 | 0.00 | 403% | 0 | 0.1 | 6.8 | 48.6 | 22 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0092, quality 0.725) | market_value_eur=31000000
quality_factor=0.7249
boost_factor=1.0092
reference_quality=0.505
history_matches=31
history_shrink=0.1389 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0024) | blend_weight=0.0024
history_matches=31
season_overlap_discount=1.0
per90_to_match_factor=0.9028
prior_reliability=0.0267
competition=Premier League | interceptionWon: 1.6226 -> 1.6296 fouls: 2.3499 -> 2.3442 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Noah Sadiki', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.401, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9714, 'skill_edge': -0.0275, 'height_edge': 0.008, 'attacker_skill': 0.761, 'defender_skill': 0.8221, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Noah Sadiki', 'market_value': 42000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8221}], 'xg_override': 0.0268} | aerialWon: 0.9405 -> 0.9 totalShots: 0.477 -> 0.4634 shotOffTarget: 0.348 -> 0.338 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.28 (squad xG sum 1.5028, xG scale 0.8511, xA scale 0.9726, team xA 0.83 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.279
squad_xg_sum=1.5028
squad_xa_sum=0.8548
team_expected_assists=0.8313
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 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.0225
goal_rate=0.0376
scorer_weight=0.026 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0332
assist_rate=0.0496
provider_weight=0.0397 | - |
|
| António Silva | D | 90 | 0 | 0.21 | 0.12 | 81% | 1 | 0.5 | 7.0 | 36.7 | 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 1.0310, quality 0.732) | market_value_eur=32000000
quality_factor=0.732
boost_factor=1.031
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 | onTargetScoringAttempt: 0.4007 -> 0.3849 totalShots: 0.8266 -> 0.8137 fouls: 0.7414 -> 0.7319 wonTackle: 0.7965 -> 0.8045 interceptionWon: 1.1753 -> 1.1684 wasFouled: 0.1525 -> 0.1465 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Nilson Angulo', 'matchup_zone': 'Shape fallback'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.28 (squad xG sum 1.5028, xG scale 0.8511, xA scale 0.9726, team xA 0.83 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.279
squad_xg_sum=1.5028
squad_xa_sum=0.8548
team_expected_assists=0.8313
team_xa_to_xg_ratio=0.65 | expected_goals: 0.2513 -> 0.2139 | 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.1926
goal_rate=0.0
scorer_weight=0.1711 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.054
assist_rate=0.0
provider_weight=0.0444 | - |
|
| James Hill | D | 90 | 0 | 0.01 | 0.02 | 46% | 0 | 0.3 | 6.9 | 58.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.0085, quality 0.732) | market_value_eur=32000000
quality_factor=0.732
boost_factor=1.0085
reference_quality=0.505
history_matches=35
history_shrink=0.125 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0108) | blend_weight=0.0108
history_matches=35
season_overlap_discount=1.0
per90_to_match_factor=0.9992
prior_reliability=0.1333
competition=Premier League | fouls: 0.9227 -> 0.9289 totalShots: 0.459 -> 0.454 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Nilson Angulo', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.28 (squad xG sum 1.5028, xG scale 0.8511, xA scale 0.9726, team xA 0.83 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.279
squad_xg_sum=1.5028
squad_xa_sum=0.8548
team_expected_assists=0.8313
team_xa_to_xg_ratio=0.65 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 78.0) | match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0132
goal_rate=0.0
scorer_weight=0.0106 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0736
assist_rate=0.02
provider_weight=0.0611 | - |
|
| Adam Smith | D | 82 | 0 | 0.00 | 0.00 | 142% | 0 | 0.0 | 6.6 | 34.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.9969, quality 0.437) | market_value_eur=310000
quality_factor=0.4374
boost_factor=0.9969
reference_quality=0.505
history_matches=28
history_shrink=0.1515 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0131) | blend_weight=0.0131
history_matches=28
season_overlap_discount=1.0
per90_to_match_factor=0.9122
prior_reliability=0.1333
competition=Premier League | interceptionWon: 0.7459 -> 0.7541 wonTackle: 0.8546 -> 0.8494 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Nilson Angulo', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.28 (squad xG sum 1.5028, xG scale 0.8511, xA scale 0.9726, team xA 0.83 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.279
squad_xg_sum=1.5028
squad_xa_sum=0.8548
team_expected_assists=0.8313
team_xa_to_xg_ratio=0.65 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 18 by projected rating, fifa_overall 73.0) | match_squad_rank=18
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0012
goal_rate=0.0
scorer_weight=0.0012 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0229
assist_rate=0.0604
provider_weight=0.029 | - |
|
| Đorđe Petrović | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 6.9 | 57.3 | 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.0063, quality 0.710) | market_value_eur=29000000
quality_factor=0.71
boost_factor=1.0063
reference_quality=0.505
history_matches=44
history_shrink=0.102 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0088) | blend_weight=0.0088
history_matches=44
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League | saves: 2.9235 -> 2.9374 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Enzo Le Fée, Timur Tuterov', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 0.9855} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.28 (squad xG sum 1.5028, xG scale 0.8511, xA scale 0.9726, team xA 0.83 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.279
squad_xg_sum=1.5028
squad_xa_sum=0.8548
team_expected_assists=0.8313
team_xa_to_xg_ratio=0.65 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 79.0) | match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.2321 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by 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.7617 | - |
|
| Adrien Truffert | D | 89 | 0 | 0.04 | 0.04 | ok | 1 | 0.4 | 6.8 | 57.4 | 30 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0072, quality 0.739) | market_value_eur=33000000
quality_factor=0.7389
boost_factor=1.0072
reference_quality=0.505
history_matches=44
history_shrink=0.102 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0088) | blend_weight=0.0088
history_matches=44
season_overlap_discount=1.0
per90_to_match_factor=0.9899
prior_reliability=0.1333
competition=Premier League | totalCross: 3.8209 -> 3.809 wonTackle: 1.4094 -> 1.4013 totalShots: 0.7423 -> 0.7357 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Granit Xhaka', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.28 (squad xG sum 1.5028, xG scale 0.8511, xA scale 0.9726, team xA 0.83 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.279
squad_xg_sum=1.5028
squad_xa_sum=0.8548
team_expected_assists=0.8313
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0428 -> 0.0364 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 80.0) | match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0357
goal_rate=0.0262
scorer_weight=0.0299 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1059
assist_rate=0.131
provider_weight=0.1227 | - |
|
| Team totals | 1 | 1.28 | | 14 | | 6.9 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Michele Di Gregorio | G | 4.7m | 12.3% | Market-value substitute prior |
| Bafodé Diakité | D | 14.4m | 33.9% | Market-value substitute prior |
| Álex Jiménez | D | 14.3m | 33.3% | Market-value substitute prior |
| Alex Scott | M | 23.7m | 34.3% | Market-value substitute prior |
| Justin Kluivert | M | 22.9m | 32.6% | Market-value substitute prior |
| Eli Junior Kroupi | F | 27.0m | 63.7% | Market-value substitute prior |
Sunderland — projected line vs season baseline (4-2-3-1)
| Player | Pos | Min | Proj G | Proj xG | Season xG/g | | Proj Sh | Season Sh/g | Proj Rtg | Season Rtg | Rec | Model / FBref Prior |
|---|
| Reinildo Mandava | D | 85 | 0 | 0.00 | 0.00 | 48% | 0 | 0.0 | 6.7 | 49.3 | 23 | FBref Prior D_service |
Step-by-step (10 steps)| 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.451) | market_value_eur=4099999
quality_factor=0.4511
boost_factor=0.9977
reference_quality=0.505
history_matches=30
history_shrink=0.1429 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0124) | blend_weight=0.0124
history_matches=30
season_overlap_discount=1.0
per90_to_match_factor=0.9463
prior_reliability=0.1333
competition=Premier League | fouls: 1.3077 -> 1.3208 interceptionWon: 1.185 -> 1.1938 totalCross: 0.7473 -> 0.7556 totalShots: 0.4281 -> 0.4228 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Rayan', '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 0.99 (squad xG sum 1.1482, xG scale 0.8588, xA scale 0.8588, team xA 0.78 = 0.79 x lambda) | scoreline_reset=true
team_lambda=0.986
squad_xg_sum=1.1482
squad_xa_sum=0.9056
team_expected_assists=0.7777
team_xa_to_xg_ratio=0.7887 | expected_assists: 0.0396 -> 0.034 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 80.0) | match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0015
goal_rate=0.0
scorer_weight=0.0014 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0334
assist_rate=0.0181
provider_weight=0.0272 | - |
|
| Kevin Danso | D | 89 | 0 | 0.06 | 0.03 | 85% | 1 | 0.5 | 6.8 | 38.4 | 26 | 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.0055, quality 0.625) | market_value_eur=19400000
quality_factor=0.6251
boost_factor=1.0055
reference_quality=0.505
history_matches=28
history_shrink=0.1515 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Rayan', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.99 (squad xG sum 1.1482, xG scale 0.8588, xA scale 0.8588, team xA 0.78 = 0.79 x lambda) | scoreline_reset=true
team_lambda=0.986
squad_xg_sum=1.1482
squad_xa_sum=0.9056
team_expected_assists=0.7777
team_xa_to_xg_ratio=0.7887 | expected_goals: 0.0679 -> 0.0583 | 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.0566
goal_rate=0.0
scorer_weight=0.0466 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0241
assist_rate=0.0
provider_weight=0.0195 | - |
|
| Omar Alderete | D | 78 | 0 | 0.03 | 0.02 | 51% | 1 | 0.4 | 6.8 | 42.9 | 31 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0009, quality 0.529) | market_value_eur=10600000
quality_factor=0.5295
boost_factor=1.0009
reference_quality=0.505
history_matches=34
history_shrink=0.1282 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0017) | blend_weight=0.0017
history_matches=34
season_overlap_discount=1.0
per90_to_match_factor=0.8679
prior_reliability=0.02
competition=Premier League | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Marcus Tavernier', 'matchup_zone': 'Shape fallback'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.99 (squad xG sum 1.1482, xG scale 0.8588, xA scale 0.8588, team xA 0.78 = 0.79 x lambda) | scoreline_reset=true
team_lambda=0.986
squad_xg_sum=1.1482
squad_xa_sum=0.9056
team_expected_assists=0.7777
team_xa_to_xg_ratio=0.7887 | expected_goals: 0.0363 -> 0.0312 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 81.0) | match_squad_rank=11
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0307
goal_rate=0.0022
scorer_weight=0.025 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by 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.0093 | - |
|
| Nordi Mukiele | D | 88 | 0 | 0.11 | 0.07 | 51% | 1 | 0.9 | 6.8 | 51.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.0035, quality 0.602) | market_value_eur=17100000
quality_factor=0.6016
boost_factor=1.0035
reference_quality=0.505
history_matches=37
history_shrink=0.119 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0052) | blend_weight=0.0052
history_matches=37
season_overlap_discount=1.0
per90_to_match_factor=0.9794
prior_reliability=0.0667
competition=Premier League | totalCross: 3.3363 -> 3.3241 fouls: 1.2518 -> 1.2453 wonTackle: 1.1837 -> 1.1776 totalShots: 1.1193 -> 1.1135 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Ben Gannon-Doak', '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 0.99 (squad xG sum 1.1482, xG scale 0.8588, xA scale 0.8588, team xA 0.78 = 0.79 x lambda) | scoreline_reset=true
team_lambda=0.986
squad_xg_sum=1.1482
squad_xa_sum=0.9056
team_expected_assists=0.7777
team_xa_to_xg_ratio=0.7887 | expected_goals: 0.1261 -> 0.1083 expected_assists: 0.0862 -> 0.074 | 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.1026
goal_rate=0.0715
scorer_weight=0.0866 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0713
assist_rate=0.0353
provider_weight=0.0592 | - |
|
| Robin Roefs | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 7.0 | 54.2 | 28 | FBref Prior G_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost G_service raw output over 3 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0072, quality 0.725) | market_value_eur=31000000
quality_factor=0.7249
boost_factor=1.0072
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.882 -> 2.8596 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Rayan, Evanilson', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.279} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.99 (squad xG sum 1.1482, xG scale 0.8588, xA scale 0.8588, team xA 0.78 = 0.79 x lambda) | scoreline_reset=true
team_lambda=0.986
squad_xg_sum=1.1482
squad_xa_sum=0.9056
team_expected_assists=0.7777
team_xa_to_xg_ratio=0.7887 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 81.0) | match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=0.9086 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by 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.6875 | - |
|
| Granit Xhaka | M | 90 | 0 | 0.04 | 0.02 | 87% | 1 | 0.6 | 7.3 | 60.1 | 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.0000, quality 0.505) | market_value_eur=8500000
quality_factor=0.5047
boost_factor=1.0
reference_quality=0.505
history_matches=40
history_shrink=0.1111 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0096) | blend_weight=0.0096
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=0.9952
prior_reliability=0.1333
competition=Premier League | wasFouled: 1.6554 -> 1.673 totalShots: 0.9351 -> 0.9261 totalCross: 4.6646 -> 4.6724 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Adrien Truffert', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.377, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.8486, 'skill_edge': -0.139, 'height_edge': 0.036, 'attacker_skill': 0.5047, 'defender_skill': 0.8135, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Adrien Truffert', 'market_value': 33000000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.8135}], 'xg_override': 0.051} | aerialWon: 0.7882 -> 1.2 totalShots: 0.9324 -> 0.7912 shotOffTarget: 0.6672 -> 0.5662 onTargetScoringAttempt: 0.2652 -> 0.225 expectedGoalsOnTarget: 0.0706 -> 0.0599 goals: 0.0665 -> 0.0564 expectedGoals: 0.0601 -> 0.051 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.99 (squad xG sum 1.1482, xG scale 0.8588, xA scale 0.8588, team xA 0.78 = 0.79 x lambda) | scoreline_reset=true
team_lambda=0.986
squad_xg_sum=1.1482
squad_xa_sum=0.9056
team_expected_assists=0.7777
team_xa_to_xg_ratio=0.7887 | expected_goals: 0.051 -> 0.0438 expected_assists: 0.1935 -> 0.1661 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 85.0) | match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0429
goal_rate=0.0564
scorer_weight=0.0461 | - | integer_assist_projection | Team scoreline allocation: 1 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.153
assist_rate=0.1285
provider_weight=0.1329 | - |
|
| Noah Sadiki | M | 84 | 0 | 0.08 | 0.06 | 35% | 1 | 0.7 | 6.8 | 55.6 | 28 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0097, quality 0.791) | market_value_eur=42000000
quality_factor=0.7909
boost_factor=1.0097
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.9373
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': 'Ryan Christie', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.534, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.1679, 'skill_edge': 0.1342, 'height_edge': -0.02, 'attacker_skill': 0.8221, 'defender_skill': 0.5238, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Ryan Christie', 'market_value': 8600000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.5238}], 'xg_override': 0.091} | aerialWon: 0.7117 -> 0.9 totalShots: 0.9821 -> 1.147 shotOffTarget: 0.6548 -> 0.7647 onTargetScoringAttempt: 0.3273 -> 0.3823 bigChanceMissed: 0.2108 -> 0.2462 expectedGoals: 0.0779 -> 0.091 goals: 0.0747 -> 0.0872 expectedGoalsOnTarget: 0.0417 -> 0.0487 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.99 (squad xG sum 1.1482, xG scale 0.8588, xA scale 0.8588, team xA 0.78 = 0.79 x lambda) | scoreline_reset=true
team_lambda=0.986
squad_xg_sum=1.1482
squad_xa_sum=0.9056
team_expected_assists=0.7777
team_xa_to_xg_ratio=0.7887 | expected_goals: 0.091 -> 0.0781 expected_assists: 0.0899 -> 0.0772 | 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.0751
goal_rate=0.0872
scorer_weight=0.076 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0743
assist_rate=0.0768
provider_weight=0.07 | - |
|
| Enzo Le Fée | M | 88 | 1 | 0.21 | 0.17 | ok | 2 | 1.1 | 6.9 | 58.7 | 30 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0063, quality 0.702) | market_value_eur=28000000
quality_factor=0.7022
boost_factor=1.0063
reference_quality=0.505
history_matches=42
history_shrink=0.1064 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0088) | blend_weight=0.0088
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.9743
prior_reliability=0.1267
competition=Premier League | totalCross: 3.2348 -> 3.2244 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Ryan Christie', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.497, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.1126, 'skill_edge': 0.0966, 'height_edge': -0.02, 'attacker_skill': 0.7385, 'defender_skill': 0.5238, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Ryan Christie', 'market_value': 8600000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.5238}], 'xg_override': 0.2473} | aerialWon: 0.4364 -> 0.9 totalShots: 1.7139 -> 1.9069 shotOffTarget: 1.1094 -> 1.2343 onTargetScoringAttempt: 0.6005 -> 0.6681 expectedGoalsOnTarget: 0.2293 -> 0.2551 expectedGoals: 0.2223 -> 0.2473 bigChanceMissed: 0.2029 -> 0.2257 goals: 0.193 -> 0.2147 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.99 (squad xG sum 1.1482, xG scale 0.8588, xA scale 0.8588, team xA 0.78 = 0.79 x lambda) | scoreline_reset=true
team_lambda=0.986
squad_xg_sum=1.1482
squad_xa_sum=0.9056
team_expected_assists=0.7777
team_xa_to_xg_ratio=0.7887 | expected_goals: 0.2473 -> 0.2124 expected_assists: 0.1617 -> 0.1389 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 80.0) | match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.1914
goal_rate=0.2147
scorer_weight=0.1891 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1297
assist_rate=0.1307
provider_weight=0.1186 | - |
|
| Trai Hume | D | 86 | 0 | 0.04 | 0.06 | ok | 1 | 0.9 | 6.7 | 54.8 | 33 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0039, quality 0.631) | market_value_eur=20000000
quality_factor=0.6311
boost_factor=1.0039
reference_quality=0.505
history_matches=43
history_shrink=0.1042 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0086) | blend_weight=0.0086
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=0.9548
prior_reliability=0.1267
competition=Premier League | wasFouled: 0.8761 -> 0.8686 wonTackle: 1.1474 -> 1.1548 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Rayan', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.99 (squad xG sum 1.1482, xG scale 0.8588, xA scale 0.8588, team xA 0.78 = 0.79 x lambda) | scoreline_reset=true
team_lambda=0.986
squad_xg_sum=1.1482
squad_xa_sum=0.9056
team_expected_assists=0.7777
team_xa_to_xg_ratio=0.7887 | expected_goals: 0.0515 -> 0.0442 expected_assists: 0.0903 -> 0.0775 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 17 by projected rating, fifa_overall 78.0) | match_squad_rank=17
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0432
goal_rate=0.0996
scorer_weight=0.0553 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0746
assist_rate=0.0013
provider_weight=0.062 | - |
|
| Timur Tuterov | F | 90 | 0 | 0.17 | - | n/a | 2 | 0.0 | 6.9 | - | 8 | Prior F_service |
Step-by-step (8 steps)| Step | Description | Key params | Changes |
|---|
market_value_prior | Market-value baseline for position F (quality 0.44) | market_value_eur=280000
quality_factor=0.4374 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'James Hill, Adam Smith', '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.8879, 'skill_edge': -0.0803, 'height_edge': 0.004, 'attacker_skill': 0.4374, 'defender_skill': 0.6158, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'James Hill', 'market_value': 32000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7941}, {'player': 'Adam Smith', 'market_value': 310000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.2007} | aerialWon: 1.4 -> 1.7 totalShots: 2.4 -> 2.131 onTargetScoringAttempt: 1.2 -> 1.0655 shotOffTarget: 0.8 -> 0.7103 expectedGoals: 0.226 -> 0.2007 expectedGoalsOnTarget: 0.171 -> 0.1518 goals: 0.14 -> 0.1243 bigChanceMissed: 0.14 -> 0.1243 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.99 (squad xG sum 1.1482, xG scale 0.8588, xA scale 0.8588, team xA 0.78 = 0.79 x lambda) | scoreline_reset=true
team_lambda=0.986
squad_xg_sum=1.1482
squad_xa_sum=0.9056
team_expected_assists=0.7777
team_xa_to_xg_ratio=0.7887 | expected_goals: 0.2007 -> 0.1724 expected_assists: 0.081 -> 0.0696 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall n/a) | match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=missing_player_rankings_csv_row
ranking_status=missing | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1584
goal_rate=0.1243
scorer_weight=0.1379 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0672
assist_rate=0.07
provider_weight=0.0638 | - |
|
| Nilson Angulo | F | 70 | 0 | 0.15 | 0.07 | 127% | 2 | 0.5 | 6.7 | 43.4 | 30 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0095, quality 0.625) | market_value_eur=19400000
quality_factor=0.6251
boost_factor=1.0095
reference_quality=0.505
history_matches=14
history_shrink=0.2632 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0160) | blend_weight=0.016
history_matches=14
season_overlap_discount=1.0
per90_to_match_factor=0.7763
prior_reliability=0.0933
competition=Premier League | wasFouled: 0.6967 -> 0.721 totalCross: 1.1302 -> 1.1476 goals: 0.1801 -> 0.1861 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'James Hill, Adam Smith', '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.0062, 'skill_edge': 0.0042, 'height_edge': 0.0, 'attacker_skill': 0.6251, 'defender_skill': 0.6158, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'James Hill', 'market_value': 32000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7941}, {'player': 'Adam Smith', 'market_value': 310000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.1743} | totalShots: 1.3031 -> 1.3112 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.99 (squad xG sum 1.1482, xG scale 0.8588, xA scale 0.8588, team xA 0.78 = 0.79 x lambda) | scoreline_reset=true
team_lambda=0.986
squad_xg_sum=1.1482
squad_xa_sum=0.9056
team_expected_assists=0.7777
team_xa_to_xg_ratio=0.7887 | expected_goals: 0.1743 -> 0.1497 expected_assists: 0.0618 -> 0.0531 | 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.139
goal_rate=0.1873
scorer_weight=0.1584 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0517
assist_rate=0.1521
provider_weight=0.0664 | - |
|
| Team totals | 1 | 0.99 | | 14 | | 6.9 | | |
Bench Candidates (7 modeled substitutes with empirical playing time)
| Player | Pos | Exp Min | App Prob | Substitute Modeling Details |
|---|
| Melker Ellborg | G | 4.4m | 10.9% | Market-value substitute prior |
| Daniel Ballard | D | 14.6m | 23.8% | Market-value substitute prior |
| Lutsharel Geertruida | D | 14.4m | 33.7% | Market-value substitute prior |
| Habib Diarra | M | 18.7m | 71.8% | Market-value substitute prior |
| Dayann Methalie | M | 23.0m | 54.5% | Market-value substitute prior |
| Brian Brobbey | F | 26.9m | 36.6% | Market-value substitute prior |
Antagonist / tactical summary
Midfield is evenly contested — Tyler Adams vs Noah Sadiki will be the pivotal duel. Total antagonist xG — Home: 1.00, Away: 0.76. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: CDM vs CDM.
Midfield — possession 48.7% / 51.3%, dominance ratio 0.47, key duel: Tyler Adams vs Noah Sadiki
Rayan xG 0.32Evanilson xG 0.30Ben Gannon-Doak xG 0.10Granit Xhaka xG 0.05Nilson Angulo xG 0.17Timur Tuterov xG 0.20
Summary
Antagonist matchup analysis for Bournemouth vs Sunderland. Most likely scoreline: 1-1. Lambdas derived from 6 home and 5 away individual player duels. Head-to-head: Bournemouth 2W-2D-2L vs Sunderland over 6 meetings.
Tactical parity between 4-2-3-1 and 4-2-3-1. Match outcome driven primarily by individual player quality. Midfield is evenly contested — Tyler Adams vs Noah Sadiki will be the pivotal duel. Total antagonist xG — Home: 1.00, Away: 0.76. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: CDM vs CDM.
Generated 2026-10-18 13:37:42 UTC · Soccer prediction reporting