XGBoost Reasoning & FBref Dataset TracingAntagonist + XGBoost match analysis for Alavés vs Málaga. Player statistics regressed using position-specific XGBoost models (G, D, M, F) with 2026-2027 FBref priors. Micro-duels resolved across 5-3-2 vs 4-4-2 (duel lambdas: Home 1.231, Away 0.888). Final calibrated Poisson lambdas: Home 1.257, Away 0.869 (most likely score 1-0).
Home Starters 11/11 XGBoost (9 FBref) Away Starters 11/11 XGBoost (6 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.23 / 0.89 Final λ (H/A) 1.26 / 0.87
FBref Team Priors: Deportivo Alavés (Gls/90: 1.6666666666666667, GA/90: 1.67 → E[λ]: 0.407) vs Málaga CF (Gls/90: 0.3333333333333333, GA/90: 0.33 → E[λ]: 0.412) | 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 |
|---|
| Lucas Boyé | F | 78 | 1 | 0.32 | 0.34 | ok | 2 | 2.1 | 6.8 | 61.9 | 27 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9986, quality 0.466) | market_value_eur=5300000
quality_factor=0.4659
boost_factor=0.9986
reference_quality=0.505
history_matches=37
history_shrink=0.119 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0083) | blend_weight=0.0083
history_matches=37
season_overlap_discount=1.0
per90_to_match_factor=0.8649
prior_reliability=0.1067
competition=La Liga | wonTackle: 1.1633 -> 1.176 wasFouled: 1.6954 -> 1.6903 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Ángel Recio, Fernando Calero', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.209, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.0129, 'skill_edge': 0.0128, 'height_edge': -0.004, 'attacker_skill': 0.4659, '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.3169} | totalShots: 2.1359 -> 2.1635 shotOffTarget: 1.3588 -> 1.3763 onTargetScoringAttempt: 0.7748 -> 0.7848 expectedGoalsOnTarget: 0.4579 -> 0.4638 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.26 (squad xG sum 1.2639, xG scale 0.9946, xA scale 1.0687, team xA 0.82 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.257
squad_xg_sum=1.2639
squad_xa_sum=0.7645
team_expected_assists=0.817
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 77.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.2704
goal_rate=0.3514
scorer_weight=0.3448 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0605
assist_rate=0.0068
provider_weight=0.0499 | - |
|
| Mariano Díaz | F | 67 | 0 | 0.23 | 0.08 | 179% | 2 | 0.6 | 6.7 | 31.8 | 22 | XGBoost F_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9958, quality 0.437) | market_value_eur=480000
quality_factor=0.4374
boost_factor=0.9958
reference_quality=0.505
history_matches=19
history_shrink=0.2083 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Ángel Recio, Fernando Calero', '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.9765, 'skill_edge': 0.0, 'height_edge': -0.016, 'attacker_skill': 0.4374, '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.2317} | totalShots: 1.6552 -> 1.6163 shotOffTarget: 0.984 -> 0.9609 onTargetScoringAttempt: 0.6711 -> 0.6553 bigChanceMissed: 0.4077 -> 0.3981 expectedGoals: 0.2373 -> 0.2317 goals: 0.2181 -> 0.213 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.26 (squad xG sum 1.2639, xG scale 0.9946, xA scale 1.0687, team xA 0.82 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.257
squad_xg_sum=1.2639
squad_xa_sum=0.7645
team_expected_assists=0.817
team_xa_to_xg_ratio=0.65 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 91.0) | match_squad_rank=12
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.2058
goal_rate=0.213
scorer_weight=0.2151 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0525
assist_rate=0.1733
provider_weight=0.0674 | - |
|
| Denis Suárez | M | 72 | 0 | 0.08 | 0.03 | 179% | 1 | 0.2 | 7.0 | 55.0 | 28 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9976, quality 0.437) | market_value_eur=1100000
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.0060) | blend_weight=0.006
history_matches=38
season_overlap_discount=1.0
per90_to_match_factor=0.7968
prior_reliability=0.08
competition=La Liga | totalCross: 3.7138 -> 3.7476 fouls: 0.6893 -> 0.6972 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Dani Lorenzo', 'matchup_zone': 'Central Mid vs Central Mid — Box-to-Box Midfield Contest', 'duel_win_rate': 0.42, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0, 'skill_edge': 0.0, 'height_edge': 0.0, 'attacker_skill': 0.4374, 'defender_skill': 0.4374, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Dani Lorenzo', 'market_value': 2300000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.4374}], 'xg_override': 0.081} | aerialWon: 0.1102 -> 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.26 (squad xG sum 1.2639, xG scale 0.9946, xA scale 1.0687, team xA 0.82 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.257
squad_xg_sum=1.2639
squad_xa_sum=0.7645
team_expected_assists=0.817
team_xa_to_xg_ratio=0.65 | expected_assists: 0.1578 -> 0.1686 | 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: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0774
goal_rate=0.0958
scorer_weight=0.0897 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1552
assist_rate=0.1311
provider_weight=0.1469 | - |
|
| Antonio Blanco | M | 83 | 0 | 0.04 | 0.04 | ok | 1 | 1.0 | 6.9 | 64.4 | 32 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0004, quality 0.519) | market_value_eur=9700000
quality_factor=0.5189
boost_factor=1.0004
reference_quality=0.505
history_matches=45
history_shrink=0.1 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0130) | blend_weight=0.013
history_matches=45
season_overlap_discount=1.0
per90_to_match_factor=0.9257
prior_reliability=0.2
competition=La Liga | interceptionWon: 1.3659 -> 1.3802 fouls: 1.7532 -> 1.7665 totalShots: 0.5878 -> 0.5963 totalCross: 1.1384 -> 1.1437 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Dani Lorenzo', 'matchup_zone': 'Central Mid vs Central Mid — Box-to-Box Midfield Contest', 'duel_win_rate': 0.462, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0623, 'skill_edge': 0.0424, 'height_edge': 0.0, 'attacker_skill': 0.5316, 'defender_skill': 0.4374, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Dani Lorenzo', 'market_value': 2300000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.4374}], 'xg_override': 0.0432} | aerialWon: 0.3891 -> 0.9 totalShots: 0.5963 -> 0.6334 shotOffTarget: 0.4137 -> 0.4395 onTargetScoringAttempt: 0.1718 -> 0.1825 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.26 (squad xG sum 1.2639, xG scale 0.9946, xA scale 1.0687, team xA 0.82 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.257
squad_xg_sum=1.2639
squad_xa_sum=0.7645
team_expected_assists=0.817
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 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: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0421
goal_rate=0.0458
scorer_weight=0.0442 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0729
assist_rate=0.0728
provider_weight=0.077 | - |
|
| Pablo Ibáñez | M | 81 | 0 | 0.07 | 0.08 | ok | 1 | 1.2 | 6.9 | 63.4 | 31 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9984, quality 0.451) | market_value_eur=4099999
quality_factor=0.4511
boost_factor=0.9984
reference_quality=0.505
history_matches=46
history_shrink=0.098 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0127) | blend_weight=0.0127
history_matches=46
season_overlap_discount=1.0
per90_to_match_factor=0.9054
prior_reliability=0.2
competition=La Liga | wasFouled: 2.2428 -> 2.2334 totalCross: 1.3067 -> 1.2977 totalShots: 0.9637 -> 0.9707 fouls: 1.757 -> 1.75 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Dani Lorenzo, Carlos Dotor', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.26 (squad xG sum 1.2639, xG scale 0.9946, xA scale 1.0687, team xA 0.82 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.257
squad_xg_sum=1.2639
squad_xa_sum=0.7645
team_expected_assists=0.817
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 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.0684
goal_rate=0.0765
scorer_weight=0.0739 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0705
assist_rate=0.087
provider_weight=0.0846 | - |
|
| Abderrahman Rebbach | F | 81 | 0 | 0.08 | 0.04 | 93% | 1 | 0.6 | 6.8 | 51.4 | 42 | XGBoost F_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9977, quality 0.437) | market_value_eur=2400000
quality_factor=0.4374
boost_factor=0.9977
reference_quality=0.505
history_matches=39
history_shrink=0.1136 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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.18, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 0.953, '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': 'Á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.0772} | totalShots: 0.9531 -> 0.9083 shotOffTarget: 0.6073 -> 0.5788 onTargetScoringAttempt: 0.3458 -> 0.3295 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.26 (squad xG sum 1.2639, xG scale 0.9946, xA scale 1.0687, team xA 0.82 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.257
squad_xg_sum=1.2639
squad_xa_sum=0.7645
team_expected_assists=0.817
team_xa_to_xg_ratio=0.65 | expected_assists: 0.0775 -> 0.0828 | 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_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.0739
goal_rate=0.0899
scorer_weight=0.0845 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0795
assist_rate=0.0643
provider_weight=0.0742 | - |
|
| Nicolás Valentini | D | 87 | 0 | 0.04 | 0.02 | 165% | 1 | 0.4 | 6.8 | 41.2 | 10 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9910, quality 0.439) | market_value_eur=3100000
quality_factor=0.4387
boost_factor=0.991
reference_quality=0.505
history_matches=6
history_shrink=0.4545 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0020) | blend_weight=0.002
history_matches=6
season_overlap_discount=1.0
per90_to_match_factor=0.9624
prior_reliability=0.0067
competition=La Liga | fouls: 0.5754 -> 0.5933 totalShots: 0.699 -> 0.7132 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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.26 (squad xG sum 1.2639, xG scale 0.9946, xA scale 1.0687, team xA 0.82 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.257
squad_xg_sum=1.2639
squad_xa_sum=0.7645
team_expected_assists=0.817
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 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.0439
goal_rate=0.0
scorer_weight=0.0359 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0265
assist_rate=0.0
provider_weight=0.0215 | - |
|
| Ville Koski | D | 89 | 0 | 0.10 | 0.04 | 155% | 0 | 0.1 | 6.8 | 38.4 | 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.9959, quality 0.454) | market_value_eur=4300000
quality_factor=0.4535
boost_factor=0.9959
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.9937
prior_reliability=0.1933
competition=La Liga | fouls: 1.2765 -> 1.2343 wonTackle: 0.714 -> 0.7017 totalShots: 0.364 -> 0.352 wasFouled: 0.309 -> 0.2988 onTargetScoringAttempt: 0.2887 -> 0.2792 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=true | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Pablo Martínez', 'matchup_zone': 'LM 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.26 (squad xG sum 1.2639, xG scale 0.9946, xA scale 1.0687, team xA 0.82 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.257
squad_xg_sum=1.2639
squad_xa_sum=0.7645
team_expected_assists=0.817
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 68.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.0981
goal_rate=0.1258
scorer_weight=0.118 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0141
assist_rate=0.0
provider_weight=0.0114 | - |
|
| Nahuel Tenaglia | D | 87 | 0 | 0.04 | 0.04 | ok | 1 | 0.7 | 6.8 | 61.7 | 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.440) | market_value_eur=3200000
quality_factor=0.4399
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.0130) | blend_weight=0.013
history_matches=45
season_overlap_discount=1.0
per90_to_match_factor=0.9624
prior_reliability=0.2
competition=La Liga | totalCross: 1.413 -> 1.403 totalShots: 0.597 -> 0.6059 interceptionWon: 1.0899 -> 1.0966 fouls: 0.8157 -> 0.8218 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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 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.26 (squad xG sum 1.2639, xG scale 0.9946, xA scale 1.0687, team xA 0.82 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.257
squad_xg_sum=1.2639
squad_xa_sum=0.7645
team_expected_assists=0.817
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 77.0) | match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0423
goal_rate=0.0696
scorer_weight=0.054 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0395
assist_rate=0.0
provider_weight=0.0322 | - |
|
| Ángel Pérez | M | 81 | 0 | 0.17 | 0.07 | 129% | 2 | 1.0 | 6.9 | 61.8 | 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.9975, quality 0.457) | market_value_eur=4600000
quality_factor=0.4572
boost_factor=0.9975
reference_quality=0.505
history_matches=24
history_shrink=0.1724 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0179) | blend_weight=0.0179
history_matches=24
season_overlap_discount=1.0
per90_to_match_factor=0.8982
prior_reliability=0.16
competition=La Liga | totalCross: 3.9139 -> 3.8974 wasFouled: 0.8996 -> 0.8902 interceptionWon: 0.841 -> 0.8461 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Dani Lorenzo', 'matchup_zone': 'Central Mid vs Central Mid — Box-to-Box Midfield Contest', 'duel_win_rate': 0.46, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0584, 'skill_edge': 0.0118, 'height_edge': 0.028, 'attacker_skill': 0.4635, 'defender_skill': 0.4374, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Dani Lorenzo', 'market_value': 2300000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.4374}], 'xg_override': 0.1692} | aerialWon: 0.2623 -> 1.1 totalShots: 1.6432 -> 1.7392 shotOffTarget: 1.0338 -> 1.0942 onTargetScoringAttempt: 0.6075 -> 0.643 goals: 0.174 -> 0.1842 expectedGoals: 0.1599 -> 0.1692 bigChanceMissed: 0.1473 -> 0.1559 expectedGoalsOnTarget: 0.1408 -> 0.149 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.26 (squad xG sum 1.2639, xG scale 0.9946, xA scale 1.0687, team xA 0.82 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.257
squad_xg_sum=1.2639
squad_xa_sum=0.7645
team_expected_assists=0.817
team_xa_to_xg_ratio=0.65 | expected_assists: 0.1484 -> 0.1586 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 72.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.1549
goal_rate=0.1842
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.1467
assist_rate=0.1635
provider_weight=0.1707 | - |
|
| Antonio Sivera | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 7.0 | 65.2 | 32 | FBref Prior G_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost G_service raw output over 3 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9990, quality 0.470) | market_value_eur=5600000
quality_factor=0.4695
boost_factor=0.999
reference_quality=0.505
history_matches=47
history_shrink=0.0962 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0125) | blend_weight=0.0125
history_matches=47
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.2
competition=La Liga | saves: 2.8969 -> 2.9024 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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, Chupete', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 0.8883} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.26 (squad xG sum 1.2639, xG scale 0.9946, xA scale 1.0687, team xA 0.82 = 0.65 x lambda) | scoreline_reset=true
team_lambda=1.257
squad_xg_sum=1.2639
squad_xa_sum=0.7645
team_expected_assists=0.817
team_xa_to_xg_ratio=0.65 | shots_faced: 8.4 -> 8.3 expected_saves: 2.05 -> 2.04 high_pressure_saves: 0.71 -> 0.7 | 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: 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.3303 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by 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.7993 | - |
|
| Team totals | 1 | 1.26 | | 13 | | 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 |
|---|
| Chupete | F | 88 | 0 | 0.23 | 0.32 | ok | 2 | 1.9 | 6.8 | 51.9 | 11 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0027, quality 0.531) | market_value_eur=10700000
quality_factor=0.5306
boost_factor=1.0027
reference_quality=0.505
history_matches=9
history_shrink=0.3571 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0464) | blend_weight=0.0464
history_matches=9
season_overlap_discount=1.0
per90_to_match_factor=0.9778
prior_reliability=0.2
competition=La Liga | totalCross: 0.8305 -> 0.7919 onTargetScoringAttempt: 0.8819 -> 0.8559 totalShots: 2.1644 -> 2.1851 totalOffside: 0.5683 -> 0.557 wonTackle: 0.5003 -> 0.5073 interceptionWon: 0.1269 -> 0.121 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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, Nicolás Valentini', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.233, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.0488, 'skill_edge': 0.0312, 'height_edge': 0.002, 'attacker_skill': 0.5306, 'defender_skill': 0.4613, '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': 'Nicolás Valentini', 'market_value': 3100000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4515}], 'xg_override': 0.3043} | totalShots: 2.1851 -> 2.2917 shotOffTarget: 1.2825 -> 1.3451 onTargetScoringAttempt: 0.8559 -> 0.8977 bigChanceMissed: 0.3927 -> 0.4119 goals: 0.3032 -> 0.318 expectedGoals: 0.2901 -> 0.3043 expectedGoalsOnTarget: 0.2779 -> 0.2915 | 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.87 (squad xG sum 1.1744, xG scale 0.7400, xA scale 0.7968, team xA 0.56 = 0.65 x lambda) | scoreline_reset=true
team_lambda=0.869
squad_xg_sum=1.1744
squad_xa_sum=0.7089
team_expected_assists=0.5648
team_xa_to_xg_ratio=0.65 | expected_goals: 0.3043 -> 0.2252 expected_assists: 0.036 -> 0.0287 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 80.0) | match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.2016
goal_rate=0.318
scorer_weight=0.2339 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0283
assist_rate=0.0
provider_weight=0.023 | - |
|
| Dani Lorenzo | M | 79 | 0 | 0.04 | 0.03 | 37% | 1 | 0.3 | 7.0 | 54.9 | 10 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9922, quality 0.437) | market_value_eur=2300000
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.0300) | blend_weight=0.03
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=0.8738
prior_reliability=0.12
competition=La Liga | fouls: 0.9028 -> 0.8757 totalShots: 0.6276 -> 0.6088 wonTackle: 1.0944 -> 1.0761 interceptionWon: 0.6236 -> 0.634 totalCross: 0.2031 -> 0.197 onTargetScoringAttempt: 0.1911 -> 0.1854 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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.428, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9674, 'skill_edge': -0.0102, 'height_edge': -0.012, 'attacker_skill': 0.4374, '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.049} | aerialWon: 0.2389 -> 0.9 totalShots: 0.6219 -> 0.6017 shotOffTarget: 0.4365 -> 0.4223 onTargetScoringAttempt: 0.1854 -> 0.1794 bigChanceMissed: 0.1845 -> 0.1785 | 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.87 (squad xG sum 1.1744, xG scale 0.7400, xA scale 0.7968, team xA 0.56 = 0.65 x lambda) | scoreline_reset=true
team_lambda=0.869
squad_xg_sum=1.1744
squad_xa_sum=0.7089
team_expected_assists=0.5648
team_xa_to_xg_ratio=0.65 | expected_goals: 0.049 -> 0.0363 expected_assists: 0.0651 -> 0.0519 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 72.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.0356
goal_rate=0.0509
scorer_weight=0.037 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0506
assist_rate=0.0709
provider_weight=0.0545 | - |
|
| Adrián Niño | F | 81 | 0 | 0.24 | 0.13 | 89% | 2 | 1.4 | 6.8 | 50.4 | 7 | XGBoost F_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9899, quality 0.437) | market_value_eur=1900000
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': 'Ville Koski, Nicolás Valentini', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.195, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 0.993, 'skill_edge': -0.0108, 'height_edge': 0.006, 'attacker_skill': 0.4374, 'defender_skill': 0.4613, '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': 'Nicolás Valentini', 'market_value': 3100000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4515}], 'xg_override': 0.3221} | totalShots: 2.327 -> 2.3107 shotOffTarget: 1.3309 -> 1.3216 onTargetScoringAttempt: 0.996 -> 0.989 | 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.87 (squad xG sum 1.1744, xG scale 0.7400, xA scale 0.7968, team xA 0.56 = 0.65 x lambda) | scoreline_reset=true
team_lambda=0.869
squad_xg_sum=1.1744
squad_xa_sum=0.7089
team_expected_assists=0.5648
team_xa_to_xg_ratio=0.65 | expected_goals: 0.3221 -> 0.2383 expected_assists: 0.0399 -> 0.0318 | 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 skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.212
goal_rate=0.3539
scorer_weight=0.2587 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0313
assist_rate=0.0
provider_weight=0.0254 | - |
|
| Pablo Martínez | M | 82 | 0 | 0.08 | 0.06 | 32% | 2 | 0.9 | 6.9 | 61.4 | 27 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9974, quality 0.439) | market_value_eur=3100000
quality_factor=0.4387
boost_factor=0.9974
reference_quality=0.505
history_matches=34
history_shrink=0.1282 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0028) | blend_weight=0.0028
history_matches=34
season_overlap_discount=1.0
per90_to_match_factor=0.9127
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': 'Ville Koski', 'matchup_zone': 'LM vs CB', 'duel_win_rate': 0.395, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9637, 'skill_edge': -0.0127, 'height_edge': -0.012, 'attacker_skill': 0.4429, 'defender_skill': 0.4712, 'attacker_role': 'LM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Ville Koski', 'market_value': 4300000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4712}], 'xg_override': 0.1015} | aerialWon: 0.3454 -> 1.1 totalShots: 1.5947 -> 1.5368 shotOffTarget: 1.1819 -> 1.139 onTargetScoringAttempt: 0.4128 -> 0.3978 bigChanceMissed: 0.1543 -> 0.1487 goals: 0.1498 -> 0.1444 expectedGoalsOnTarget: 0.1371 -> 0.1321 | 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.87 (squad xG sum 1.1744, xG scale 0.7400, xA scale 0.7968, team xA 0.56 = 0.65 x lambda) | scoreline_reset=true
team_lambda=0.869
squad_xg_sum=1.1744
squad_xa_sum=0.7089
team_expected_assists=0.5648
team_xa_to_xg_ratio=0.65 | expected_goals: 0.1015 -> 0.0751 expected_assists: 0.1559 -> 0.1242 | 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.0723
goal_rate=0.1444
scorer_weight=0.0939 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.1168
assist_rate=0.1395
provider_weight=0.1143 | - |
|
| Carlos Dotor | M | 78 | 0 | 0.04 | 0.03 | ok | 1 | 0.4 | 6.9 | 56.4 | 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.9922, quality 0.437) | market_value_eur=1200000
quality_factor=0.4374
boost_factor=0.9922
reference_quality=0.505
history_matches=8
history_shrink=0.3846 | - | 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.8649
prior_reliability=0.1667
competition=La Liga | fouls: 1.208 -> 1.1721 wasFouled: 0.7497 -> 0.7185 totalCross: 0.0972 -> 0.122 wonTackle: 1.5 -> 1.524 totalShots: 0.6517 -> 0.6386 interceptionWon: 0.9623 -> 0.951 onTargetScoringAttempt: 0.1793 -> 0.1859 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Pablo Ibáñez', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.444, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9909, 'skill_edge': -0.0102, 'height_edge': 0.004, 'attacker_skill': 0.4374, '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.0507} | aerialWon: 0.2691 -> 1.1 totalShots: 0.6583 -> 0.6523 | 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.87 (squad xG sum 1.1744, xG scale 0.7400, xA scale 0.7968, team xA 0.56 = 0.65 x lambda) | scoreline_reset=true
team_lambda=0.869
squad_xg_sum=1.1744
squad_xa_sum=0.7089
team_expected_assists=0.5648
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0507 -> 0.0375 expected_assists: 0.0515 -> 0.041 | 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.0368
goal_rate=0.0544
scorer_weight=0.0389 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0402
assist_rate=0.0666
provider_weight=0.0471 | - |
|
| David Larrubia | F | 84 | 0 | 0.07 | 0.07 | ok | 2 | 1.4 | 6.9 | 53.1 | 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.9971, quality 0.478) | market_value_eur=6300000
quality_factor=0.4781
boost_factor=0.9971
reference_quality=0.505
history_matches=9
history_shrink=0.3571 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0371) | blend_weight=0.0371
history_matches=9
season_overlap_discount=1.0
per90_to_match_factor=0.9374
prior_reliability=0.16
competition=La Liga | totalCross: 1.4658 -> 1.4114 totalShots: 1.6074 -> 1.6497 wonTackle: 1.813 -> 1.8472 fouls: 0.8729 -> 0.855 totalOffside: 0.0776 -> 0.0892 onTargetScoringAttempt: 0.4808 -> 0.4922 wasFouled: 1.0488 -> 1.0389 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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, Nicolás Valentini', '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.9376, 'skill_edge': 0.0075, 'height_edge': -0.05, 'attacker_skill': 0.4781, 'defender_skill': 0.4613, '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': 'Nicolás Valentini', 'market_value': 3100000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4515}], 'xg_override': 0.0947} | totalShots: 1.6497 -> 1.5468 shotOffTarget: 1.1265 -> 1.0562 onTargetScoringAttempt: 0.4922 -> 0.4615 goals: 0.1235 -> 0.1158 expectedGoals: 0.101 -> 0.0947 | 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.87 (squad xG sum 1.1744, xG scale 0.7400, xA scale 0.7968, team xA 0.56 = 0.65 x lambda) | scoreline_reset=true
team_lambda=0.869
squad_xg_sum=1.1744
squad_xa_sum=0.7089
team_expected_assists=0.5648
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0947 -> 0.0701 expected_assists: 0.1569 -> 0.125 | 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_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.0677
goal_rate=0.1158
scorer_weight=0.0803 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.1175
assist_rate=0.0
provider_weight=0.1 | - |
|
| Adam Aznou | D | 90 | 0 | 0.08 | 0.02 | 329% | 1 | 0.2 | 6.7 | 11.1 | 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.9940, quality 0.477) | market_value_eur=6200000
quality_factor=0.4769
boost_factor=0.994
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': 'Mariano Díaz', '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.87 (squad xG sum 1.1744, xG scale 0.7400, xA scale 0.7968, team xA 0.56 = 0.65 x lambda) | scoreline_reset=true
team_lambda=0.869
squad_xg_sum=1.1744
squad_xa_sum=0.7089
team_expected_assists=0.5648
team_xa_to_xg_ratio=0.65 | expected_goals: 0.104 -> 0.077 expected_assists: 0.0945 -> 0.0753 | 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.0741
goal_rate=0.0
scorer_weight=0.0616 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0725
assist_rate=0.0
provider_weight=0.0602 | - |
|
| Ángel Recio | D | 90 | 0 | 0.02 | 0.01 | ok | 1 | 0.6 | 6.9 | 54.7 | 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.9928, quality 0.437) | market_value_eur=1000000
quality_factor=0.4374
boost_factor=0.9928
reference_quality=0.505
history_matches=9
history_shrink=0.3571 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': '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.87 (squad xG sum 1.1744, xG scale 0.7400, xA scale 0.7968, team xA 0.56 = 0.65 x lambda) | scoreline_reset=true
team_lambda=0.869
squad_xg_sum=1.1744
squad_xa_sum=0.7089
team_expected_assists=0.5648
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0212 -> 0.0157 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 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.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.0067
assist_rate=0.0
provider_weight=0.0057 | - |
|
| Fernando Calero | D | 85 | 0 | 0.02 | 0.03 | ok | 0 | 0.3 | 6.8 | 54.5 | 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 0.9971, quality 0.437) | market_value_eur=2100000
quality_factor=0.4374
boost_factor=0.9971
reference_quality=0.505
history_matches=30
history_shrink=0.1429 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_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.87 (squad xG sum 1.1744, xG scale 0.7400, xA scale 0.7968, team xA 0.56 = 0.65 x lambda) | scoreline_reset=true
team_lambda=0.869
squad_xg_sum=1.1744
squad_xa_sum=0.7089
team_expected_assists=0.5648
team_xa_to_xg_ratio=0.65 | expected_goals: 0.0329 -> 0.0243 | 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_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.024
goal_rate=0.0
scorer_weight=0.0194 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0093
assist_rate=0.0
provider_weight=0.0075 | - |
|
| Rafa Garrido | D | 88 | 0 | 0.00 | 0.00 | 45% | 0 | 0.1 | 6.8 | 54.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.9928, quality 0.437) | market_value_eur=1400000
quality_factor=0.4374
boost_factor=0.9928
reference_quality=0.505
history_matches=9
history_shrink=0.3571 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Nahuel Tenaglia', 'matchup_zone': 'Left Wingback vs Right Back — Overlapping Run'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.87 (squad xG sum 1.1744, xG scale 0.7400, xA scale 0.7968, team xA 0.56 = 0.65 x lambda) | scoreline_reset=true
team_lambda=0.869
squad_xg_sum=1.1744
squad_xa_sum=0.7089
team_expected_assists=0.5648
team_xa_to_xg_ratio=0.65 | expected_assists: 0.0257 -> 0.0205 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 79.0) | match_squad_rank=12
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0015
goal_rate=0.0
scorer_weight=0.0014 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0203
assist_rate=0.174
provider_weight=0.0256 | - |
|
| Alfonso Herrero | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 6.9 | 58.0 | 11 | 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.9928, quality 0.437) | market_value_eur=420000
quality_factor=0.4374
boost_factor=0.9928
reference_quality=0.505
history_matches=9
history_shrink=0.3571 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0464) | blend_weight=0.0464
history_matches=9
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.2
competition=La Liga | saves: 2.8729 -> 2.9252 wasFouled: 0.2412 -> 0.23 fouls: 0.119 -> 0.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': 'Lucas Boyé, Mariano Díaz', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.2308} | - | 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.87 (squad xG sum 1.1744, xG scale 0.7400, xA scale 0.7968, team xA 0.56 = 0.65 x lambda) | scoreline_reset=true
team_lambda=0.869
squad_xg_sum=1.1744
squad_xa_sum=0.7089
team_expected_assists=0.5648
team_xa_to_xg_ratio=0.65 | shots_faced: 11.7 -> 11.9 expected_saves: 2.86 -> 2.91 high_pressure_saves: 0.98 -> 1.01 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 75.0) | match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=0.91 | - | 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.5067 | - |
|
| Team totals | 0 | 0.87 | | 14 | | 6.8 | | |
Antagonist matchup analysis for Alavés vs Málaga. Most likely scoreline: 1-0. Lambdas derived from 7 home and 6 away individual player duels. Head-to-head: Alavés 5W-3D-2L vs Málaga over 10 meetings.
Tactical parity between 5-3-2 and 4-4-2. Match outcome driven primarily by individual player quality. Midfield is evenly contested — Antonio Blanco vs Pablo Martínez will be the pivotal duel. Total antagonist xG — Home: 0.97, Away: 0.92. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.