XGBoost Reasoning & FBref Dataset TracingAntagonist + XGBoost match analysis for Levante vs Athletic Club. Player statistics regressed using position-specific XGBoost models (G, D, M, F) with 2026-2027 FBref priors. Micro-duels resolved across 4-3-3 vs 4-2-3-1 (duel lambdas: Home 1.171, Away 1.143). Final calibrated Poisson lambdas: Home 1.112, Away 1.200 (most likely score 1-1).
Home Starters 11/11 XGBoost (7 FBref) Away Starters 11/11 XGBoost (10 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.17 / 1.14 Final λ (H/A) 1.11 / 1.20
FBref Team Priors: Levante UD (Gls/90: 1.6666666666666667, GA/90: 1.67 → E[λ]: 1.235) vs Athletic Club (Gls/90: 1.0, GA/90: 1.0 → E[λ]: 1.237) | 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
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.
| Player | Pos | Min | Proj G | Proj xG | Season xG/g | | Proj Sh | Season Sh/g | Proj Rtg | Season Rtg | Rec | Model / FBref Prior |
|---|
| Petar Ratkov | F | 73 | 0 | 0.21 | 0.03 | 533% | 2 | 0.4 | 6.7 | 32.8 | 8 | XGBoost F_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9997, quality 0.503) | market_value_eur=8400000
quality_factor=0.5035
boost_factor=0.9997
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': 'Aymeric Laporte, Yeray Álvarez', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.207, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.0109, 'skill_edge': 0.0074, 'height_edge': 0.0, 'attacker_skill': 0.5035, 'defender_skill': 0.4869, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Aymeric Laporte', 'market_value': 8400000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5365}, {'player': 'Yeray Álvarez', 'market_value': 930000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.2093} | totalShots: 1.5021 -> 1.5185 shotOffTarget: 0.9095 -> 0.9194 onTargetScoringAttempt: 0.5925 -> 0.599 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.11 (squad xG sum 1.0988, xG scale 1.0120, xA scale 1.0460, team xA 0.72 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.112
squad_xg_sum=1.0988
squad_xa_sum=0.691
team_expected_assists=0.7228
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 68.0) | match_squad_rank=16
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1909
goal_rate=0.1985
scorer_weight=0.203 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0353
assist_rate=0.3137
provider_weight=0.0449 | - |
|
| Iván Romero | F | 77 | 1 | 0.26 | 0.24 | ok | 2 | 1.6 | 6.9 | 60.2 | 31 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9995, quality 0.491) | market_value_eur=7400000
quality_factor=0.4915
boost_factor=0.9995
reference_quality=0.505
history_matches=40
history_shrink=0.1111 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0120) | blend_weight=0.012
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=0.8588
prior_reliability=0.1667
competition=La Liga | totalShots: 1.9634 -> 1.9773 wasFouled: 2.0173 -> 2.0096 interceptionWon: 0.4209 -> 0.4158 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Jesús Areso', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.434, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9317, 'skill_edge': -0.0025, 'height_edge': -0.044, 'attacker_skill': 0.4915, 'defender_skill': 0.497, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Jesús Areso', 'market_value': 5500000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.497}], 'xg_override': 0.2612} | totalShots: 1.9773 -> 1.8423 shotOffTarget: 1.1418 -> 1.0638 onTargetScoringAttempt: 0.8201 -> 0.7641 bigChanceMissed: 0.3636 -> 0.3388 goals: 0.3314 -> 0.3088 expectedGoals: 0.2803 -> 0.2612 expectedGoalsOnTarget: 0.2465 -> 0.2297 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.11 (squad xG sum 1.0988, xG scale 1.0120, xA scale 1.0460, team xA 0.72 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.112
squad_xg_sum=1.0988
squad_xa_sum=0.691
team_expected_assists=0.7228
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 75.0) | match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.2323
goal_rate=0.3088
scorer_weight=0.3047 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0624
assist_rate=0.0041
provider_weight=0.0515 | - |
|
| Víctor García | F | 72 | 0 | 0.13 | 0.07 | 82% | 1 | 0.6 | 6.8 | 46.3 | 33 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9969, quality 0.437) | market_value_eur=1500000
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.0079) | blend_weight=0.0079
history_matches=28
season_overlap_discount=1.0
per90_to_match_factor=0.8042
prior_reliability=0.08
competition=La Liga | totalShots: 1.2384 -> 1.2286 totalCross: 4.0178 -> 4.0125 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Yuri Berchiche', 'matchup_zone': 'Right Wing vs Left Back — Flank Battle', 'duel_win_rate': 0.464, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9765, 'skill_edge': 0.0, 'height_edge': -0.016, 'attacker_skill': 0.4374, 'defender_skill': 0.4374, 'attacker_role': 'RW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Yuri Berchiche', 'market_value': 910000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.4374}], 'xg_override': 0.1259} | totalShots: 1.2353 -> 1.2063 shotOffTarget: 0.857 -> 0.8369 onTargetScoringAttempt: 0.3783 -> 0.3694 expectedGoalsOnTarget: 0.235 -> 0.2295 bigChanceMissed: 0.2219 -> 0.2167 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.11 (squad xG sum 1.0988, xG scale 1.0120, xA scale 1.0460, team xA 0.72 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.112
squad_xg_sum=1.0988
squad_xa_sum=0.691
team_expected_assists=0.7228
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 72.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.1196
goal_rate=0.1344
scorer_weight=0.1336 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0762
assist_rate=0.0
provider_weight=0.0634 | - |
|
| Daniel Requena | M | 88 | 0 | 0.09 | 0.03 | 221% | 1 | 0.4 | 6.8 | 36.3 | 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.9899, quality 0.437) | market_value_eur=1500000
quality_factor=0.4374
boost_factor=0.9899
reference_quality=0.505
history_matches=5
history_shrink=0.5 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Iñigo Ruiz de Galarreta', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.498, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0706, 'skill_edge': 0.0, 'height_edge': 0.048, 'attacker_skill': 0.4374, 'defender_skill': 0.4374, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Iñigo Ruiz de Galarreta', 'market_value': 1800000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4374}], 'xg_override': 0.0885} | aerialWon: 0.4938 -> 1.2 totalShots: 1.0344 -> 1.1074 shotOffTarget: 0.6958 -> 0.7449 onTargetScoringAttempt: 0.3386 -> 0.3625 expectedGoals: 0.0827 -> 0.0885 goals: 0.0762 -> 0.0816 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.11 (squad xG sum 1.0988, xG scale 1.0120, xA scale 1.0460, team xA 0.72 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.112
squad_xg_sum=1.0988
squad_xa_sum=0.691
team_expected_assists=0.7228
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_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.0857
goal_rate=0.0816
scorer_weight=0.0851 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0414
assist_rate=0.0496
provider_weight=0.0466 | - |
|
| Oriol Rey | M | 81 | 0 | 0.04 | 0.01 | 459% | 1 | 0.2 | 6.8 | 35.6 | 30 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9969, quality 0.437) | market_value_eur=1700000
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.0197) | blend_weight=0.0197
history_matches=28
season_overlap_discount=1.0
per90_to_match_factor=0.9039
prior_reliability=0.2
competition=La Liga | totalShots: 0.5439 -> 0.5332 totalCross: 0.4842 -> 0.4747 wasFouled: 0.6818 -> 0.6743 fouls: 1.1987 -> 1.2048 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Iñigo Ruiz de Galarreta', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.454, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0059, 'skill_edge': 0.0, 'height_edge': 0.004, 'attacker_skill': 0.4374, 'defender_skill': 0.4374, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Iñigo Ruiz de Galarreta', 'market_value': 1800000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4374}], 'xg_override': 0.0356} | aerialWon: 0.8458 -> 0.9 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.11 (squad xG sum 1.0988, xG scale 1.0120, xA scale 1.0460, team xA 0.72 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.112
squad_xg_sum=1.0988
squad_xa_sum=0.691
team_expected_assists=0.7228
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 73.0) | match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0354
goal_rate=0.0534
scorer_weight=0.0435 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0386
assist_rate=0.0513
provider_weight=0.0455 | - |
|
| Jon Ander Olasagasti | M | 84 | 0 | 0.09 | 0.09 | ok | 1 | 0.9 | 6.9 | 62.4 | 32 | XGBoost M_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.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 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Iñigo Ruiz de Galarreta', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.429, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0132, 'skill_edge': 0.001, 'height_edge': 0.008, 'attacker_skill': 0.4396, 'defender_skill': 0.4374, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Iñigo Ruiz de Galarreta', 'market_value': 1800000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4374}], 'xg_override': 0.0863} | aerialWon: 0.6155 -> 0.9 totalShots: 1.0516 -> 1.0655 shotOffTarget: 0.7215 -> 0.731 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.11 (squad xG sum 1.0988, xG scale 1.0120, xA scale 1.0460, team xA 0.72 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.112
squad_xg_sum=1.0988
squad_xa_sum=0.691
team_expected_assists=0.7228
team_xa_to_xg_ratio=0.65 | expected_assists: 0.1278 -> 0.1337 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 84.0) | match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0836
goal_rate=0.0779
scorer_weight=0.0819 | - | integer_assist_projection | Team scoreline allocation: 1 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.1251
assist_rate=0.1014
provider_weight=0.1138 | - |
|
| Manuel Sánchez | D | 88 | 0 | 0.00 | 0.01 | 50% | 0 | 0.2 | 6.8 | 54.0 | 32 | XGBoost D_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9992, quality 0.479) | market_value_eur=6400000
quality_factor=0.4793
boost_factor=0.9992
reference_quality=0.505
history_matches=41
history_shrink=0.1087 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Maroan Sannadi', 'matchup_zone': 'Shape fallback'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.11 (squad xG sum 1.0988, xG scale 1.0120, xA scale 1.0460, team xA 0.72 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.112
squad_xg_sum=1.0988
squad_xa_sum=0.691
team_expected_assists=0.7228
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_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.0036
goal_rate=0.0019
scorer_weight=0.0035 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0602
assist_rate=0.019
provider_weight=0.0497 | - |
|
| Aïssa Mandi | D | 85 | 0 | 0.01 | 0.00 | ok | 0 | 0.1 | 6.8 | 37.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 0.9908, quality 0.437) | market_value_eur=1100000
quality_factor=0.4374
boost_factor=0.9908
reference_quality=0.505
history_matches=6
history_shrink=0.4545 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0591) | blend_weight=0.0591
history_matches=6
season_overlap_discount=1.0
per90_to_match_factor=0.9458
prior_reliability=0.2
competition=La Liga | wonTackle: 0.7918 -> 0.8382 fouls: 0.4414 -> 0.4153 interceptionWon: 1.1447 -> 1.1329 wasFouled: 0.7703 -> 0.762 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Maroan Sannadi', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.11 (squad xG sum 1.0988, xG scale 1.0120, xA scale 1.0460, team xA 0.72 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.112
squad_xg_sum=1.0988
squad_xa_sum=0.691
team_expected_assists=0.7228
team_xa_to_xg_ratio=0.65 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 79.0) | match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0051
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=0
assist_probability=0.0076
assist_rate=0.0
provider_weight=0.0066 | - |
|
| Adrián de la Fuente | D | 88 | 0 | 0.14 | 0.12 | ok | 2 | 1.5 | 7.0 | 64.9 | 31 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9987, quality 0.465) | market_value_eur=5200000
quality_factor=0.4646
boost_factor=0.9987
reference_quality=0.505
history_matches=41
history_shrink=0.1087 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0141) | blend_weight=0.0141
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=0.9767
prior_reliability=0.2
competition=La Liga | onTargetScoringAttempt: 0.8132 -> 0.8063 wonTackle: 0.7433 -> 0.7374 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Peio Canales', 'matchup_zone': '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.11 (squad xG sum 1.0988, xG scale 1.0120, xA scale 1.0460, team xA 0.72 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.112
squad_xg_sum=1.0988
squad_xa_sum=0.691
team_expected_assists=0.7228
team_xa_to_xg_ratio=0.65 | expected_assists: 0.112 -> 0.1171 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 86.0) | match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1337
goal_rate=0.2727
scorer_weight=0.1794 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1105
assist_rate=0.0022
provider_weight=0.0937 | - |
|
| Jeremy Toljan | D | 85 | 0 | 0.03 | 0.01 | 153% | 0 | 0.2 | 6.6 | 59.4 | 32 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9980, quality 0.437) | market_value_eur=1900000
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.0035) | blend_weight=0.0035
history_matches=45
season_overlap_discount=1.0
per90_to_match_factor=0.9412
prior_reliability=0.0533
competition=La Liga | totalCross: 2.4902 -> 2.4979 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Maroan Sannadi', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.11 (squad xG sum 1.0988, xG scale 1.0120, xA scale 1.0460, team xA 0.72 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.112
squad_xg_sum=1.0988
squad_xa_sum=0.691
team_expected_assists=0.7228
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 74.0) | match_squad_rank=18
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.031
goal_rate=0.0003
scorer_weight=0.0252 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0738
assist_rate=0.1999
provider_weight=0.0959 | - |
|
| Mathew Ryan | G | 90 | 0 | 0.00 | 0.00 | 100% | | 0.1 | 7.0 | 65.8 | 33 | FBref Prior G_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost G_service raw output over 3 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9979, quality 0.437) | market_value_eur=1700000
quality_factor=0.4374
boost_factor=0.9979
reference_quality=0.505
history_matches=44
history_shrink=0.102 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0133) | blend_weight=0.0133
history_matches=44
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.2
competition=La Liga | saves: 3.0283 -> 3.05 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Maroan Sannadi, Robert Navarro', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.1434} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.11 (squad xG sum 1.0988, xG scale 1.0120, xA scale 1.0460, team xA 0.72 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.112
squad_xg_sum=1.0988
squad_xa_sum=0.691
team_expected_assists=0.7228
team_xa_to_xg_ratio=0.65 | shots_faced: 10.9 -> 11.4 expected_saves: 2.67 -> 2.79 high_pressure_saves: 0.91 -> 0.96 | 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.193 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by 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.6864 | - |
|
| Team totals | 1 | 1.11 | | 12 | | 6.8 | | |
| Player | Pos | Min | Proj G | Proj xG | Season xG/g | | Proj Sh | Season Sh/g | Proj Rtg | Season Rtg | Rec | Model / FBref Prior |
|---|
| Maroan Sannadi | F | 68 | 0 | 0.28 | 0.02 | 1024% | 2 | 0.2 | 6.6 | 25.7 | 15 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9947, quality 0.437) | market_value_eur=2800000
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.0046) | blend_weight=0.0046
history_matches=14
season_overlap_discount=1.0
per90_to_match_factor=0.7506
prior_reliability=0.0267
competition=La Liga | totalShots: 1.5881 -> 1.5808 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Aïssa Mandi, Jeremy Toljan', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.232, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.047, 'skill_edge': 0.0, 'height_edge': 0.032, 'attacker_skill': 0.4374, 'defender_skill': 0.4374, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Aïssa Mandi', 'market_value': 1100000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'Jeremy Toljan', 'market_value': 1900000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.2144} | totalShots: 1.5853 -> 1.6598 shotOffTarget: 0.9903 -> 1.0368 onTargetScoringAttempt: 0.595 -> 0.623 expectedGoals: 0.2048 -> 0.2144 goals: 0.1988 -> 0.2081 bigChanceMissed: 0.1202 -> 0.1258 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.20 (squad xG sum 0.9247, xG scale 1.2978, xA scale 1.0679, team xA 0.96 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.2
squad_xg_sum=0.9247
squad_xa_sum=0.8989
team_expected_assists=0.96
team_xa_to_xg_ratio=0.8 | expected_goals: 0.2144 -> 0.2783 | 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: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.2429
goal_rate=0.2081
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=0
assist_probability=0.0295
assist_rate=0.0
provider_weight=0.0239 | - |
|
| Robert Navarro | F | 76 | 1 | 0.27 | 0.12 | 129% | 2 | 0.8 | 7.1 | 49.8 | 40 | XGBoost F_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9996, quality 0.493) | market_value_eur=7500000
quality_factor=0.4927
boost_factor=0.9996
reference_quality=0.505
history_matches=38
history_shrink=0.1163 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Aïssa Mandi, Jeremy Toljan', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.201, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.0013, 'skill_edge': 0.0249, 'height_edge': -0.024, 'attacker_skill': 0.4927, 'defender_skill': 0.4374, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Aïssa Mandi', 'market_value': 1100000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'Jeremy Toljan', 'market_value': 1900000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.2093} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.20 (squad xG sum 0.9247, xG scale 1.2978, xA scale 1.0679, team xA 0.96 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.2
squad_xg_sum=0.9247
squad_xa_sum=0.8989
team_expected_assists=0.96
team_xa_to_xg_ratio=0.8 | expected_goals: 0.2093 -> 0.2716 expected_assists: 0.1536 -> 0.164 | 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=1
goal_probability=0.2378
goal_rate=0.273
scorer_weight=0.3383 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1513
assist_rate=0.0
provider_weight=0.1312 | - |
|
| Peio Canales | M | 88 | 0 | 0.12 | 0.05 | 159% | 1 | 0.6 | 6.9 | 36.1 | 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 1.0021, quality 0.519) | market_value_eur=9700000
quality_factor=0.5189
boost_factor=1.0021
reference_quality=0.505
history_matches=5
history_shrink=0.5 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0498) | blend_weight=0.0498
history_matches=5
season_overlap_discount=1.0
per90_to_match_factor=0.9822
prior_reliability=0.1533
competition=La Liga | onTargetScoringAttempt: 0.3642 -> 0.3886 wasFouled: 1.2339 -> 1.2575 totalCross: 2.0042 -> 1.9895 interceptionWon: 0.7206 -> 0.706 totalShots: 1.0396 -> 1.0519 fouls: 0.671 -> 0.6588 wonTackle: 1.0518 -> 1.042 goalAssist: 0.1231 -> 0.117 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Adrián de la Fuente', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.48, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0003, 'skill_edge': 0.0122, 'height_edge': -0.012, 'attacker_skill': 0.5189, 'defender_skill': 0.4918, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Adrián de la Fuente', 'market_value': 5200000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.4918}], 'xg_override': 0.0945} | aerialWon: 0.0 -> 0.9 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.20 (squad xG sum 0.9247, xG scale 1.2978, xA scale 1.0679, team xA 0.96 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.2
squad_xg_sum=0.9247
squad_xa_sum=0.8989
team_expected_assists=0.96
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0945 -> 0.1226 expected_assists: 0.1102 -> 0.1177 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 73.0) | match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1154
goal_rate=0.1004
scorer_weight=0.1276 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.111
assist_rate=0.117
provider_weight=0.1227 | - |
|
| Álex Berenguer | F | 84 | 0 | 0.16 | 0.07 | 132% | 1 | 0.9 | 6.9 | 49.8 | 32 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9981, quality 0.451) | market_value_eur=4099999
quality_factor=0.4511
boost_factor=0.9981
reference_quality=0.505
history_matches=38
history_shrink=0.1163 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0116) | blend_weight=0.0116
history_matches=38
season_overlap_discount=1.0
per90_to_match_factor=0.9373
prior_reliability=0.1533
competition=La Liga | totalShots: 1.2965 -> 1.3046 wasFouled: 0.9958 -> 0.989 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Aïssa Mandi, Jeremy Toljan', '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.9561, 'skill_edge': 0.0061, 'height_edge': -0.036, 'attacker_skill': 0.4511, 'defender_skill': 0.4374, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Aïssa Mandi', 'market_value': 1100000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'Jeremy Toljan', 'market_value': 1900000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.125} | totalShots: 1.3046 -> 1.2473 shotOffTarget: 0.9033 -> 0.8636 onTargetScoringAttempt: 0.3979 -> 0.3804 expectedGoalsOnTarget: 0.1886 -> 0.1803 goals: 0.1432 -> 0.1369 expectedGoals: 0.1307 -> 0.125 bigChanceMissed: 0.1263 -> 0.1208 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.20 (squad xG sum 0.9247, xG scale 1.2978, xA scale 1.0679, team xA 0.96 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.2
squad_xg_sum=0.9247
squad_xa_sum=0.8989
team_expected_assists=0.96
team_xa_to_xg_ratio=0.8 | expected_goals: 0.125 -> 0.1622 expected_assists: 0.1263 -> 0.1349 | 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: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1497
goal_rate=0.1369
scorer_weight=0.1732 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1262
assist_rate=0.0189
provider_weight=0.1079 | - |
|
| Iñigo Ruiz de Galarreta | M | 70 | 0 | 0.06 | 0.02 | 215% | 1 | 0.6 | 7.0 | 55.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.9977, quality 0.437) | market_value_eur=1800000
quality_factor=0.4374
boost_factor=0.9977
reference_quality=0.505
history_matches=40
history_shrink=0.1111 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0038) | blend_weight=0.0038
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=0.7826
prior_reliability=0.0533
competition=La Liga | fouls: 1.9279 -> 1.9355 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Oriol Rey', 'matchup_zone': 'Holding Mid vs Central Mid — Midfield Anchor Duel', 'duel_win_rate': 0.396, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9941, 'skill_edge': 0.0, 'height_edge': -0.004, 'attacker_skill': 0.4374, 'defender_skill': 0.4374, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Oriol Rey', 'market_value': 1700000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.4374}], 'xg_override': 0.0469} | aerialWon: 1.1363 -> 0.9 totalShots: 0.9331 -> 0.9276 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.20 (squad xG sum 0.9247, xG scale 1.2978, xA scale 1.0679, team xA 0.96 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.2
squad_xg_sum=0.9247
squad_xa_sum=0.8989
team_expected_assists=0.96
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0469 -> 0.0609 expected_assists: 0.1381 -> 0.1475 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 82.0) | match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0591
goal_rate=0.0472
scorer_weight=0.0611 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1371
assist_rate=0.0986
provider_weight=0.118 | - |
|
| Beñat Gerenabarrena | M | 79 | 0 | 0.04 | 0.00 | 1240% | 1 | 0.1 | 6.8 | 36.2 | 11 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9945, quality 0.465) | market_value_eur=5200000
quality_factor=0.4646
boost_factor=0.9945
reference_quality=0.505
history_matches=6
history_shrink=0.4545 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0414) | blend_weight=0.0414
history_matches=6
season_overlap_discount=1.0
per90_to_match_factor=0.8832
prior_reliability=0.14
competition=La Liga | totalCross: 0.9183 -> 0.9847 interceptionWon: 1.8922 -> 1.9357 fouls: 2.2092 -> 2.2396 wonTackle: 1.6329 -> 1.6523 wasFouled: 1.4026 -> 1.4142 onTargetScoringAttempt: 0.1566 -> 0.1673 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Oriol Rey', 'matchup_zone': 'Holding Mid vs Central Mid — Midfield Anchor Duel', 'duel_win_rate': 0.409, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0137, 'skill_edge': 0.0173, 'height_edge': -0.008, 'attacker_skill': 0.4759, 'defender_skill': 0.4374, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Oriol Rey', 'market_value': 1700000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.4374}], 'xg_override': 0.0293} | aerialWon: 0.6972 -> 0.9 totalShots: 0.5063 -> 0.5132 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.20 (squad xG sum 0.9247, xG scale 1.2978, xA scale 1.0679, team xA 0.96 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.2
squad_xg_sum=0.9247
squad_xa_sum=0.8989
team_expected_assists=0.96
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0293 -> 0.038 | 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.0373
goal_rate=0.0364
scorer_weight=0.0414 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0455
assist_rate=0.06
provider_weight=0.0548 | - |
|
| Yuri Berchiche | D | 82 | 0 | 0.05 | 0.02 | 164% | 1 | 0.9 | 7.1 | 53.8 | 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=910000
quality_factor=0.4374
boost_factor=0.9976
reference_quality=0.505
history_matches=37
history_shrink=0.119 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0057) | blend_weight=0.0057
history_matches=37
season_overlap_discount=1.0
per90_to_match_factor=0.9063
prior_reliability=0.0733
competition=La Liga | totalShots: 1.1492 -> 1.1566 wonTackle: 0.9959 -> 0.9903 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Víctor García', 'matchup_zone': 'Right Wing vs Left Back — Flank Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.20 (squad xG sum 0.9247, xG scale 1.2978, xA scale 1.0679, team xA 0.96 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.2
squad_xg_sum=0.9247
squad_xa_sum=0.8989
team_expected_assists=0.96
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0419 -> 0.0544 expected_assists: 0.1701 -> 0.1816 | 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.0529
goal_rate=0.0
scorer_weight=0.0435 | - | integer_assist_projection | Team scoreline allocation: 1 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.1661
assist_rate=0.1756
provider_weight=0.1861 | - |
|
| Aymeric Laporte | D | 88 | 0 | 0.08 | 0.07 | ok | 1 | 0.5 | 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.9999, quality 0.503) | market_value_eur=8400000
quality_factor=0.5035
boost_factor=0.9999
reference_quality=0.505
history_matches=32
history_shrink=0.1351 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0141) | blend_weight=0.0141
history_matches=32
season_overlap_discount=1.0
per90_to_match_factor=0.9723
prior_reliability=0.16
competition=La Liga | fouls: 1.0853 -> 1.0757 wonTackle: 0.783 -> 0.7891 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Petar Ratkov', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.20 (squad xG sum 0.9247, xG scale 1.2978, xA scale 1.0679, team xA 0.96 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.2
squad_xg_sum=0.9247
squad_xa_sum=0.8989
team_expected_assists=0.96
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0622 -> 0.0807 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 84.0) | match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0775
goal_rate=0.0
scorer_weight=0.0646 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0158
assist_rate=0.0035
provider_weight=0.0131 | - |
|
| Yeray Álvarez | D | 79 | 0 | 0.04 | 0.01 | 166% | 1 | 0.2 | 6.7 | 36.5 | 20 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9937, quality 0.437) | market_value_eur=930000
quality_factor=0.4374
boost_factor=0.9937
reference_quality=0.505
history_matches=11
history_shrink=0.3125 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0271) | blend_weight=0.0271
history_matches=11
season_overlap_discount=1.0
per90_to_match_factor=0.8828
prior_reliability=0.1333
competition=La Liga | totalCross: 0.6179 -> 0.649 totalShots: 0.5305 -> 0.552 wonTackle: 0.656 -> 0.6382 wasFouled: 0.809 -> 0.799 goalAssist: 0.114 -> 0.1229 interceptionWon: 1.0561 -> 1.0634 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Petar Ratkov', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.20 (squad xG sum 0.9247, xG scale 1.2978, xA scale 1.0679, team xA 0.96 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.2
squad_xg_sum=0.9247
squad_xa_sum=0.8989
team_expected_assists=0.96
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0281 -> 0.0365 | 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_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.0358
goal_rate=0.0
scorer_weight=0.0292 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0174
assist_rate=0.1229
provider_weight=0.022 | - |
|
| Jesús Areso | D | 79 | 0 | 0.01 | 0.01 | 147% | 0 | 0.1 | 6.7 | 37.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.9985, quality 0.468) | market_value_eur=5500000
quality_factor=0.4683
boost_factor=0.9985
reference_quality=0.505
history_matches=32
history_shrink=0.1351 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0094) | blend_weight=0.0094
history_matches=32
season_overlap_discount=1.0
per90_to_match_factor=0.8791
prior_reliability=0.1067
competition=La Liga | wasFouled: 0.5308 -> 0.5413 interceptionWon: 1.1346 -> 1.1291 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Iván Romero', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.20 (squad xG sum 0.9247, xG scale 1.2978, xA scale 1.0679, team xA 0.96 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.2
squad_xg_sum=0.9247
squad_xa_sum=0.8989
team_expected_assists=0.96
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 80.0) | match_squad_rank=16
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0143
goal_rate=0.0
scorer_weight=0.0118 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0519
assist_rate=0.0223
provider_weight=0.0426 | - |
|
| Unai Simón | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 7.1 | 57.9 | 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.0042, quality 0.641) | market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.0042
reference_quality=0.505
history_matches=44
history_shrink=0.102 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0133) | blend_weight=0.0133
history_matches=44
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.2
competition=La Liga | saves: 2.961 -> 2.9748 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Iván Romero, Petar Ratkov', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.1714} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.20 (squad xG sum 0.9247, xG scale 1.2978, xA scale 1.0679, team xA 0.96 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.2
squad_xg_sum=0.9247
squad_xa_sum=0.8989
team_expected_assists=0.96
team_xa_to_xg_ratio=0.8 | shots_faced: 11.1 -> 10.6 expected_saves: 2.71 -> 2.6 high_pressure_saves: 0.94 -> 0.89 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 85.0) | match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 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.2595 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by 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.8679 | - |
|
| Team totals | 1 | 1.20 | | 12 | | 6.9 | | |
Antagonist matchup analysis for Levante vs Athletic Club. Most likely scoreline: 1-1. Lambdas derived from 6 home and 6 away individual player duels. Head-to-head: Levante 0W-3D-7L vs Athletic Club over 10 meetings.
Tactical parity between 4-3-3 and 4-2-3-1. Match outcome driven primarily by individual player quality. Midfield is evenly contested — Jon Ander Olasagasti vs Peio Canales will be the pivotal duel. Total antagonist xG — Home: 0.81, Away: 0.72. Home danger zone: Left Wing vs Right Back — Flank Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.