XGBoost Reasoning & FBref Dataset TracingAntagonist + XGBoost match analysis for Villarreal vs Espanyol. Player statistics regressed using position-specific XGBoost models (G, D, M, F) with 2026-2027 FBref priors. Micro-duels resolved across 4-4-2 vs 4-2-3-1 (duel lambdas: Home 2.046, Away 1.214). Final calibrated Poisson lambdas: Home 1.848, Away 1.191 (most likely score 2-1).
Home Starters 11/11 XGBoost (8 FBref) Away Starters 11/11 XGBoost (7 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 2.05 / 1.21 Final λ (H/A) 1.85 / 1.19
FBref Team Priors: Villarreal (Gls/90: 1.3333333333333333, GA/90: 1.33 → E[λ]: 1.649) vs Espanyol (Gls/90: 1.6666666666666667, GA/90: 1.67 → E[λ]: 1.642) | 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 |
|---|
| Georges Mikautadze | F | 84 | 1 | 0.53 | 0.39 | 35% | 3 | 2.0 | 7.0 | 63.8 | 34 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0093, quality 0.796) | market_value_eur=43000000
quality_factor=0.7957
boost_factor=1.0093
reference_quality=0.505
history_matches=42
history_shrink=0.1064 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0129) | blend_weight=0.0129
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.9298
prior_reliability=0.1867
competition=La Liga | totalShots: 2.4169 -> 2.429 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Leandro Cabrera, Vanja Drkušić', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.301, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.1488, 'skill_edge': 0.1492, 'height_edge': -0.048, 'attacker_skill': 0.7957, 'defender_skill': 0.464, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Leandro Cabrera', 'market_value': 930000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'Vanja Drkušić', 'market_value': 5500000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4907}], 'xg_override': 0.422} | totalShots: 2.429 -> 2.7904 shotOffTarget: 1.269 -> 1.4578 onTargetScoringAttempt: 1.1505 -> 1.3217 expectedGoalsOnTarget: 0.5934 -> 0.6817 bigChanceMissed: 0.5785 -> 0.6646 goals: 0.3763 -> 0.4323 expectedGoals: 0.3673 -> 0.422 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.85 (squad xG sum 1.4665, xG scale 1.2601, xA scale 1.2601, team xA 1.31 = 0.71 x lambda) | scoreline_reset=true
team_lambda=1.848
squad_xg_sum=1.4665
squad_xa_sum=1.0421
team_expected_assists=1.3132
team_xa_to_xg_ratio=0.7106 | expected_goals: 0.422 -> 0.5317 expected_assists: 0.093 -> 0.1172 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 79.0) | match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=1
goal_probability=0.4124
goal_rate=0.4323
scorer_weight=0.5433 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1106
assist_rate=0.2227
provider_weight=0.1465 | - |
|
| Gerard Moreno | F | 77 | 0 | 0.31 | 0.22 | 39% | 2 | 1.3 | 7.0 | 57.7 | 29 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9972, quality 0.437) | market_value_eur=2400000
quality_factor=0.4374
boost_factor=0.9972
reference_quality=0.505
history_matches=31
history_shrink=0.1389 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0090) | blend_weight=0.009
history_matches=31
season_overlap_discount=1.0
per90_to_match_factor=0.8608
prior_reliability=0.1
competition=La Liga | fouls: 0.5412 -> 0.5519 wasFouled: 0.7727 -> 0.7657 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Leandro Cabrera, Vanja Drkušić', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 0.9354, 'skill_edge': -0.012, 'height_edge': -0.032, 'attacker_skill': 0.4374, 'defender_skill': 0.464, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Leandro Cabrera', 'market_value': 930000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'Vanja Drkušić', 'market_value': 5500000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4907}], 'xg_override': 0.2484} | totalShots: 1.8756 -> 1.7545 shotOffTarget: 1.2004 -> 1.1229 onTargetScoringAttempt: 0.6752 -> 0.6316 expectedGoalsOnTarget: 0.3383 -> 0.3164 expectedGoals: 0.2656 -> 0.2484 goals: 0.2587 -> 0.242 bigChanceMissed: 0.2216 -> 0.2073 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.85 (squad xG sum 1.4665, xG scale 1.2601, xA scale 1.2601, team xA 1.31 = 0.71 x lambda) | scoreline_reset=true
team_lambda=1.848
squad_xg_sum=1.4665
squad_xa_sum=1.0421
team_expected_assists=1.3132
team_xa_to_xg_ratio=0.7106 | expected_goals: 0.2484 -> 0.313 expected_assists: 0.1057 -> 0.1332 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 81.0) | match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.2688
goal_rate=0.242
scorer_weight=0.3063 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1247
assist_rate=0.0
provider_weight=0.1066 | - |
|
| Alberto Moleiro | F | 80 | 1 | 0.41 | 0.16 | 152% | 3 | 1.1 | 7.4 | 61.4 | 42 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0096, quality 0.837) | market_value_eur=54000000
quality_factor=0.837
boost_factor=1.0096
reference_quality=0.505
history_matches=47
history_shrink=0.0962 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0067) | blend_weight=0.0067
history_matches=47
season_overlap_discount=1.0
per90_to_match_factor=0.8926
prior_reliability=0.1067
competition=La Liga | totalShots: 2.7059 -> 2.6879 onTargetScoringAttempt: 1.2602 -> 1.2518 wonTackle: 0.6332 -> 0.6401 totalCross: 3.5651 -> 3.5599 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Leandro Cabrera, Vanja Drkušić', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.308, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.1585, 'skill_edge': 0.1678, 'height_edge': -0.06, 'attacker_skill': 0.837, 'defender_skill': 0.464, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Leandro Cabrera', 'market_value': 930000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'Vanja Drkušić', 'market_value': 5500000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4907}], 'xg_override': 0.3257} | totalShots: 2.6974 -> 3.1249 shotOffTarget: 1.4456 -> 1.6747 onTargetScoringAttempt: 1.2518 -> 1.4502 bigChanceMissed: 0.5902 -> 0.6837 goals: 0.4049 -> 0.4691 expectedGoalsOnTarget: 0.3774 -> 0.4372 expectedGoals: 0.2811 -> 0.3257 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.85 (squad xG sum 1.4665, xG scale 1.2601, xA scale 1.2601, team xA 1.31 = 0.71 x lambda) | scoreline_reset=true
team_lambda=1.848
squad_xg_sum=1.4665
squad_xa_sum=1.0421
team_expected_assists=1.3132
team_xa_to_xg_ratio=0.7106 | expected_goals: 0.3257 -> 0.4104 expected_assists: 0.1904 -> 0.24 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 79.0) | match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=1
goal_probability=0.3366
goal_rate=0.4691
scorer_weight=0.513 | - | integer_assist_projection | Team scoreline allocation: 1 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.2134
assist_rate=0.328
provider_weight=0.3 | - |
|
| Santi Comesaña | M | 70 | 0 | 0.08 | 0.07 | ok | 1 | 0.4 | 6.9 | 62.9 | 30 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0000, quality 0.503) | market_value_eur=8400000
quality_factor=0.5035
boost_factor=1.0
reference_quality=0.505
history_matches=43
history_shrink=0.1042 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0099) | blend_weight=0.0099
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=0.779
prior_reliability=0.1467
competition=La Liga | fouls: 1.4729 -> 1.4794 wonTackle: 0.7787 -> 0.785 totalShots: 0.5823 -> 0.5765 wasFouled: 0.8838 -> 0.8785 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Álex Calatrava', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.517, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.099, 'skill_edge': 0.0194, 'height_edge': 0.048, 'attacker_skill': 0.5146, 'defender_skill': 0.4716, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Álex Calatrava', 'market_value': 4900000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4716}], 'xg_override': 0.0642} | aerialWon: 0.2212 -> 1.2 totalShots: 0.5808 -> 0.6383 shotOffTarget: 0.4297 -> 0.4722 onTargetScoringAttempt: 0.1511 -> 0.1661 bigChanceMissed: 0.1353 -> 0.1487 expectedGoalsOnTarget: 0.0872 -> 0.0958 expectedGoals: 0.0584 -> 0.0642 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.85 (squad xG sum 1.4665, xG scale 1.2601, xA scale 1.2601, team xA 1.31 = 0.71 x lambda) | scoreline_reset=true
team_lambda=1.848
squad_xg_sum=1.4665
squad_xa_sum=1.0421
team_expected_assists=1.3132
team_xa_to_xg_ratio=0.7106 | expected_goals: 0.0642 -> 0.0809 expected_assists: 0.0639 -> 0.0805 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 79.0) | match_squad_rank=11
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0777
goal_rate=0.0549
scorer_weight=0.0743 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0773
assist_rate=0.0727
provider_weight=0.0867 | - |
|
| Carlos Maciá | M | 82 | 0 | 0.06 | 0.01 | 1156% | 1 | 0.1 | 6.8 | 30.3 | 18 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0064, quality 0.574) | market_value_eur=14500000
quality_factor=0.5737
boost_factor=1.0064
reference_quality=0.505
history_matches=11
history_shrink=0.3125 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0068) | blend_weight=0.0068
history_matches=11
season_overlap_discount=1.0
per90_to_match_factor=0.9166
prior_reliability=0.0333
competition=La Liga | wonTackle: 1.0805 -> 1.1104 interceptionWon: 0.7584 -> 0.7657 fouls: 0.7869 -> 0.794 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Álex Calatrava', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.564, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.1673, 'skill_edge': 0.0538, 'height_edge': 0.06, 'attacker_skill': 0.5912, 'defender_skill': 0.4716, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Álex Calatrava', 'market_value': 4900000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4716}], 'xg_override': 0.0507} | aerialWon: 0.3626 -> 1.4 totalShots: 0.5746 -> 0.6708 shotOffTarget: 0.4289 -> 0.5007 onTargetScoringAttempt: 0.1457 -> 0.1701 goals: 0.0541 -> 0.0632 expectedGoals: 0.0434 -> 0.0507 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.85 (squad xG sum 1.4665, xG scale 1.2601, xA scale 1.2601, team xA 1.31 = 0.71 x lambda) | scoreline_reset=true
team_lambda=1.848
squad_xg_sum=1.4665
squad_xa_sum=1.0421
team_expected_assists=1.3132
team_xa_to_xg_ratio=0.7106 | expected_goals: 0.0507 -> 0.0639 expected_assists: 0.0405 -> 0.051 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 65.0) | match_squad_rank=12
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0619
goal_rate=0.0632
scorer_weight=0.0718 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0497
assist_rate=0.0497
provider_weight=0.0562 | - |
|
| Tajon Buchanan | M | 72 | 0 | 0.18 | 0.08 | 115% | 2 | 1.0 | 6.9 | 58.2 | 33 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0017, quality 0.557) | market_value_eur=13000000
quality_factor=0.557
boost_factor=1.0017
reference_quality=0.505
history_matches=42
history_shrink=0.1064 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0065) | blend_weight=0.0065
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.8052
prior_reliability=0.0933
competition=La Liga | totalCross: 3.0137 -> 3.0277 wasFouled: 1.8946 -> 1.9046 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Omar El Hilali', 'matchup_zone': 'Left Mid vs Right Back — Wide Channel', 'duel_win_rate': 0.422, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9446, 'skill_edge': -0.0377, 'height_edge': 0.0, 'attacker_skill': 0.5731, 'defender_skill': 0.6569, 'attacker_role': 'LM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Omar El Hilali', 'market_value': 15900000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.6569}], 'xg_override': 0.1438} | aerialWon: 0.4572 -> 1.1 totalShots: 1.7996 -> 1.6999 shotOffTarget: 1.1419 -> 1.0786 onTargetScoringAttempt: 0.6577 -> 0.6213 goals: 0.1555 -> 0.1469 expectedGoals: 0.1522 -> 0.1438 bigChanceMissed: 0.1482 -> 0.14 expectedGoalsOnTarget: 0.0984 -> 0.0929 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.85 (squad xG sum 1.4665, xG scale 1.2601, xA scale 1.2601, team xA 1.31 = 0.71 x lambda) | scoreline_reset=true
team_lambda=1.848
squad_xg_sum=1.4665
squad_xa_sum=1.0421
team_expected_assists=1.3132
team_xa_to_xg_ratio=0.7106 | expected_goals: 0.1438 -> 0.1812 expected_assists: 0.1516 -> 0.191 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 76.0) | match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.1657
goal_rate=0.1469
scorer_weight=0.1841 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1739
assist_rate=0.1213
provider_weight=0.1623 | - |
|
| Sergi Cardona | D | 86 | 0 | 0.03 | 0.01 | 162% | 1 | 0.4 | 6.8 | 47.8 | 34 | FBref Prior D_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0000, quality 0.506) | market_value_eur=8600000
quality_factor=0.5059
boost_factor=1.0
reference_quality=0.505
history_matches=37
history_shrink=0.119 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Roberto Fernández', 'matchup_zone': 'Shape fallback'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.85 (squad xG sum 1.4665, xG scale 1.2601, xA scale 1.2601, team xA 1.31 = 0.71 x lambda) | scoreline_reset=true
team_lambda=1.848
squad_xg_sum=1.4665
squad_xa_sum=1.0421
team_expected_assists=1.3132
team_xa_to_xg_ratio=0.7106 | expected_goals: 0.0256 -> 0.0323 expected_assists: 0.1243 -> 0.1566 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 79.0) | match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0318
goal_rate=0.0491
scorer_weight=0.0404 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.145
assist_rate=0.0095
provider_weight=0.1253 | - |
|
| Renato Veiga | D | 90 | 0 | 0.02 | 0.01 | 111% | 1 | 0.2 | 7.0 | 57.6 | 32 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0067, quality 0.710) | market_value_eur=29000000
quality_factor=0.71
boost_factor=1.0067
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.9987
prior_reliability=0.2
competition=La Liga | wonTackle: 0.5659 -> 0.5579 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Roberto Fernández', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.85 (squad xG sum 1.4665, xG scale 1.2601, xA scale 1.2601, team xA 1.31 = 0.71 x lambda) | scoreline_reset=true
team_lambda=1.848
squad_xg_sum=1.4665
squad_xa_sum=1.0421
team_expected_assists=1.3132
team_xa_to_xg_ratio=0.7106 | expected_assists: 0.0779 -> 0.0982 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 78.0) | match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0197
goal_rate=0.0
scorer_weight=0.0159 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0935
assist_rate=0.0779
provider_weight=0.0982 | - |
|
| Juan Foyth | D | 78 | 0 | 0.04 | 0.02 | 70% | 1 | 0.3 | 7.0 | 53.9 | 13 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0001, quality 0.506) | market_value_eur=8600000
quality_factor=0.5059
boost_factor=1.0001
reference_quality=0.505
history_matches=19
history_shrink=0.2083 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0271) | blend_weight=0.0271
history_matches=19
season_overlap_discount=1.0
per90_to_match_factor=0.8703
prior_reliability=0.2
competition=La Liga | interceptionWon: 1.1314 -> 1.1558 totalShots: 0.5094 -> 0.527 wonTackle: 0.828 -> 0.8449 fouls: 0.6301 -> 0.6209 onTargetScoringAttempt: 0.0973 -> 0.1024 wasFouled: 0.3964 -> 0.4014 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Edu Expósito', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.85 (squad xG sum 1.4665, xG scale 1.2601, xA scale 1.2601, team xA 1.31 = 0.71 x lambda) | scoreline_reset=true
team_lambda=1.848
squad_xg_sum=1.4665
squad_xa_sum=1.0421
team_expected_assists=1.3132
team_xa_to_xg_ratio=0.7106 | expected_goals: 0.0334 -> 0.0421 expected_assists: 0.0391 -> 0.0493 | 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: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0412
goal_rate=0.0
scorer_weight=0.0337 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0481
assist_rate=0.0
provider_weight=0.0394 | - |
|
| Péter Gulácsi | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 7.0 | 36.8 | 12 | FBref Prior G_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost G_service raw output over 3 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9908, quality 0.437) | market_value_eur=970000
quality_factor=0.4374
boost_factor=0.9908
reference_quality=0.505
history_matches=6
history_shrink=0.4545 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Roberto Fernández, Álex Calatrava', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.2142} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.85 (squad xG sum 1.4665, xG scale 1.2601, xA scale 1.2601, team xA 1.31 = 0.71 x lambda) | scoreline_reset=true
team_lambda=1.848
squad_xg_sum=1.4665
squad_xa_sum=1.0421
team_expected_assists=1.3132
team_xa_to_xg_ratio=0.7106 | shots_faced: 11.5 -> 11.3 expected_saves: 2.81 -> 2.76 high_pressure_saves: 0.97 -> 0.95 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 82.0) | match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.9647 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0
provider_weight=0.0
squad_weight_total=1.3182 | - |
|
| Alexander Freeman | D | 90 | 0 | 0.05 | 0.01 | 406% | 1 | 0.2 | 7.1 | 39.7 | 30 | XGBoost D_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0040, quality 0.566) | market_value_eur=13800000
quality_factor=0.566
boost_factor=1.004
reference_quality=0.505
history_matches=18
history_shrink=0.2174 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Roberto Fernández', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=2 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.85 (squad xG sum 1.4665, xG scale 1.2601, xA scale 1.2601, team xA 1.31 = 0.71 x lambda) | scoreline_reset=true
team_lambda=1.848
squad_xg_sum=1.4665
squad_xa_sum=1.0421
team_expected_assists=1.3132
team_xa_to_xg_ratio=0.7106 | expected_goals: 0.043 -> 0.0542 expected_assists: 0.0735 -> 0.0926 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 81.0) | match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0528
goal_rate=0.235
scorer_weight=0.0678 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0884
assist_rate=0.0
provider_weight=0.0741 | - |
|
| Team totals | 2 | 1.85 | | 18 | | 7.0 | | |
| Player | Pos | Min | Proj G | Proj xG | Season xG/g | | Proj Sh | Season Sh/g | Proj Rtg | Season Rtg | Rec | Model / FBref Prior |
|---|
| Roberto Fernández | F | 84 | 1 | 0.41 | 0.27 | 55% | 2 | 1.5 | 6.8 | 62.9 | 33 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0038, quality 0.641) | market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.0038
reference_quality=0.505
history_matches=48
history_shrink=0.0943 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0119) | blend_weight=0.0119
history_matches=48
season_overlap_discount=1.0
per90_to_match_factor=0.9359
prior_reliability=0.1933
competition=La Liga | totalOffside: 1.167 -> 1.1532 fouls: 1.9089 -> 1.8977 goals: 0.4192 -> 0.4257 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Renato Veiga, Alexander Freeman', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 0.9469, 'skill_edge': -0.0241, 'height_edge': -0.012, 'attacker_skill': 0.6408, 'defender_skill': 0.6943, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Renato Veiga', 'market_value': 29000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7736}, {'player': 'Alexander Freeman', 'market_value': 13800000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.615}], 'xg_override': 0.3496} | totalShots: 2.2881 -> 2.1666 shotOffTarget: 1.3568 -> 1.2848 onTargetScoringAttempt: 0.9313 -> 0.8818 goals: 0.4257 -> 0.4031 bigChanceMissed: 0.4033 -> 0.3819 expectedGoals: 0.3692 -> 0.3496 expectedGoalsOnTarget: 0.3351 -> 0.3173 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.19 (squad xG sum 1.0072, xG scale 1.1825, xA scale 1.0990, team xA 0.95 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.191
squad_xg_sum=1.0072
squad_xa_sum=0.867
team_expected_assists=0.9528
team_xa_to_xg_ratio=0.8 | expected_goals: 0.3496 -> 0.4135 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 74.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=1
goal_probability=0.3387
goal_rate=0.4031
scorer_weight=0.4689 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0413
assist_rate=0.0219
provider_weight=0.0343 | - |
|
| Bryan Zaragoza | F | 77 | 0 | 0.11 | 0.12 | ok | 1 | 1.2 | 7.0 | 61.4 | 14 | XGBoost F_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9994, quality 0.493) | market_value_eur=7500000
quality_factor=0.4927
boost_factor=0.9994
reference_quality=0.505
history_matches=26
history_shrink=0.1613 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Renato Veiga, Alexander Freeman', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 0.7784, 'skill_edge': -0.0907, 'height_edge': -0.06, 'attacker_skill': 0.4927, 'defender_skill': 0.6943, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Renato Veiga', 'market_value': 29000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7736}, {'player': 'Alexander Freeman', 'market_value': 13800000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.615}], 'xg_override': 0.0895} | totalShots: 1.4191 -> 1.1046 shotOffTarget: 0.9186 -> 0.715 onTargetScoringAttempt: 0.5005 -> 0.3896 expectedGoalsOnTarget: 0.1725 -> 0.1343 goals: 0.1572 -> 0.1224 expectedGoals: 0.115 -> 0.0895 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.19 (squad xG sum 1.0072, xG scale 1.1825, xA scale 1.0990, team xA 0.95 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.191
squad_xg_sum=1.0072
squad_xa_sum=0.867
team_expected_assists=0.9528
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0895 -> 0.1058 expected_assists: 0.1275 -> 0.1401 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 77.0) | match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1004
goal_rate=0.1224
scorer_weight=0.1307 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1307
assist_rate=0.0371
provider_weight=0.1121 | - |
|
| Javier Hernández | M | 77 | 0 | 0.12 | 0.07 | 72% | 1 | 1.0 | 6.7 | 55.7 | 13 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9974, quality 0.479) | market_value_eur=6400000
quality_factor=0.4793
boost_factor=0.9974
reference_quality=0.505
history_matches=10
history_shrink=0.3333 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0361) | blend_weight=0.0361
history_matches=10
season_overlap_discount=1.0
per90_to_match_factor=0.8587
prior_reliability=0.1667
competition=La Liga | totalCross: 2.0106 -> 1.9504 wasFouled: 1.0497 -> 1.0986 fouls: 1.7738 -> 1.809 goalAssist: 0.2779 -> 0.3051 interceptionWon: 0.5857 -> 0.5645 totalShots: 1.3759 -> 1.3637 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Santi Comesaña', 'matchup_zone': 'CAM vs CM', 'duel_win_rate': 0.358, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9088, 'skill_edge': -0.014, 'height_edge': -0.048, 'attacker_skill': 0.4834, 'defender_skill': 0.5146, 'attacker_role': 'CAM', 'attacker_mv_price_index': 0.95, 'defender_adjusted_parts': [{'player': 'Santi Comesaña', 'market_value': 8400000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.5146}], 'xg_override': 0.1025} | aerialWon: 0.1345 -> 0.9 totalShots: 1.3712 -> 1.2461 shotOffTarget: 0.9013 -> 0.8191 onTargetScoringAttempt: 0.4699 -> 0.427 goals: 0.1141 -> 0.1037 expectedGoals: 0.1128 -> 0.1025 expectedGoalsOnTarget: 0.0854 -> 0.0776 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.19 (squad xG sum 1.0072, xG scale 1.1825, xA scale 1.0990, team xA 0.95 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.191
squad_xg_sum=1.0072
squad_xa_sum=0.867
team_expected_assists=0.9528
team_xa_to_xg_ratio=0.8 | expected_goals: 0.1025 -> 0.1212 expected_assists: 0.1383 -> 0.152 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 86.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.1141
goal_rate=0.1037
scorer_weight=0.1222 | - | integer_assist_projection | Team scoreline allocation: 1 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.141
assist_rate=0.3051
provider_weight=0.19 | - |
|
| Álex Calatrava | M | 76 | 0 | 0.13 | 0.09 | 36% | 1 | 1.2 | 6.8 | 55.8 | 12 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9956, quality 0.461) | market_value_eur=4900000
quality_factor=0.4609
boost_factor=0.9956
reference_quality=0.505
history_matches=10
history_shrink=0.3333 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0361) | blend_weight=0.0361
history_matches=10
season_overlap_discount=1.0
per90_to_match_factor=0.8432
prior_reliability=0.1667
competition=La Liga | fouls: 1.1742 -> 1.2049 onTargetScoringAttempt: 0.5056 -> 0.5358 wasFouled: 0.9373 -> 0.9156 totalShots: 1.5213 -> 1.5391 interceptionWon: 0.3462 -> 0.3581 goals: 0.1438 -> 0.1508 wonTackle: 1.5078 -> 1.5143 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Santi Comesaña', 'matchup_zone': 'Holding Mid vs Central Mid — Midfield Anchor Duel', 'duel_win_rate': 0.333, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.901, 'skill_edge': -0.0194, 'height_edge': -0.048, 'attacker_skill': 0.4716, 'defender_skill': 0.5146, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Santi Comesaña', 'market_value': 8400000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.5146}], 'xg_override': 0.1078} | totalShots: 1.5515 -> 1.3979 shotOffTarget: 1.0157 -> 0.9151 aerialWon: 0.9722 -> 0.9 onTargetScoringAttempt: 0.5358 -> 0.4828 bigChanceMissed: 0.1939 -> 0.1747 goals: 0.1508 -> 0.1359 expectedGoals: 0.1196 -> 0.1078 expectedGoalsOnTarget: 0.0709 -> 0.0639 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.19 (squad xG sum 1.0072, xG scale 1.1825, xA scale 1.0990, team xA 0.95 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.191
squad_xg_sum=1.0072
squad_xa_sum=0.867
team_expected_assists=0.9528
team_xa_to_xg_ratio=0.8 | expected_goals: 0.1078 -> 0.1275 expected_assists: 0.0884 -> 0.0972 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 87.0) | match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_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.1197
goal_rate=0.1359
scorer_weight=0.1502 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0926
assist_rate=0.086
provider_weight=0.0955 | - |
|
| Gabriel Moscardo | M | 69 | 0 | 0.09 | 0.02 | 497% | 1 | 0.2 | 6.7 | 27.6 | 12 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9981, quality 0.493) | market_value_eur=7500000
quality_factor=0.4927
boost_factor=0.9981
reference_quality=0.505
history_matches=5
history_shrink=0.5 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0108) | blend_weight=0.0108
history_matches=5
season_overlap_discount=1.0
per90_to_match_factor=0.7636
prior_reliability=0.0333
competition=La Liga | onTargetScoringAttempt: 0.288 -> 0.3014 wonTackle: 0.5002 -> 0.5113 totalShots: 0.9174 -> 0.924 fouls: 0.5885 -> 0.5821 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Santi Comesaña', 'matchup_zone': 'Holding Mid vs Central Mid — Midfield Anchor Duel', 'duel_win_rate': 0.389, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9842, 'skill_edge': -0.0027, 'height_edge': -0.008, 'attacker_skill': 0.5085, 'defender_skill': 0.5146, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Santi Comesaña', 'market_value': 8400000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.5146}], 'xg_override': 0.0778} | totalShots: 0.9308 -> 0.9161 shotOffTarget: 0.6294 -> 0.6195 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.19 (squad xG sum 1.0072, xG scale 1.1825, xA scale 1.0990, team xA 0.95 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.191
squad_xg_sum=1.0072
squad_xa_sum=0.867
team_expected_assists=0.9528
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0778 -> 0.092 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 15 by projected rating, fifa_overall 72.0) | match_squad_rank=15
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0879
goal_rate=0.0853
scorer_weight=0.0974 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.028
assist_rate=0.0401
provider_weight=0.0338 | - |
|
| Edu Expósito | M | 83 | 0 | 0.11 | 0.08 | 32% | 1 | 1.4 | 7.1 | 65.8 | 32 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9986, quality 0.456) | market_value_eur=4500000
quality_factor=0.456
boost_factor=0.9986
reference_quality=0.505
history_matches=46
history_shrink=0.098 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0115) | blend_weight=0.0115
history_matches=46
season_overlap_discount=1.0
per90_to_match_factor=0.9208
prior_reliability=0.18
competition=La Liga | totalCross: 4.1268 -> 4.0912 totalShots: 1.3283 -> 1.3486 fouls: 1.2427 -> 1.2363 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Juan Foyth', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.39, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.868, 'skill_edge': -0.0418, 'height_edge': -0.048, 'attacker_skill': 0.456, 'defender_skill': 0.5489, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Juan Foyth', 'market_value': 8600000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.5489}], 'xg_override': 0.0944} | totalShots: 1.3486 -> 1.1706 aerialWon: 0.7692 -> 0.9 shotOffTarget: 0.9196 -> 0.7982 onTargetScoringAttempt: 0.4079 -> 0.3541 goals: 0.1406 -> 0.122 expectedGoals: 0.1088 -> 0.0944 expectedGoalsOnTarget: 0.0883 -> 0.0766 | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.19 (squad xG sum 1.0072, xG scale 1.1825, xA scale 1.0990, team xA 0.95 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.191
squad_xg_sum=1.0072
squad_xa_sum=0.867
team_expected_assists=0.9528
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0944 -> 0.1116 expected_assists: 0.1504 -> 0.1652 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 77.0) | match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1056
goal_rate=0.122
scorer_weight=0.1329 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1523
assist_rate=0.0977
provider_weight=0.1322 | - |
|
| Quilindschy Hartman | D | 87 | 0 | 0.02 | 0.01 | 190% | 0 | 0.2 | 6.7 | 30.8 | 26 | FBref Prior D_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0017, quality 0.541) | market_value_eur=11600000
quality_factor=0.5411
boost_factor=1.0017
reference_quality=0.505
history_matches=26
history_shrink=0.1613 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Gerard Moreno', '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.19 (squad xG sum 1.0072, xG scale 1.1825, xA scale 1.0990, team xA 0.95 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.191
squad_xg_sum=1.0072
squad_xa_sum=0.867
team_expected_assists=0.9528
team_xa_to_xg_ratio=0.8 | expected_assists: 0.0723 -> 0.0795 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 75.0) | match_squad_rank=14
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.018
goal_rate=0.0
scorer_weight=0.0146 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0764
assist_rate=0.1128
provider_weight=0.0994 | - |
|
| Leandro Cabrera | D | 90 | 0 | 0.08 | 0.06 | ok | 1 | 1.1 | 6.9 | 61.9 | 30 | XGBoost D_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9979, quality 0.437) | market_value_eur=930000
quality_factor=0.4374
boost_factor=0.9979
reference_quality=0.505
history_matches=44
history_shrink=0.102 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Georges Mikautadze', '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.19 (squad xG sum 1.0072, xG scale 1.1825, xA scale 1.0990, team xA 0.95 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.191
squad_xg_sum=1.0072
squad_xa_sum=0.867
team_expected_assists=0.9528
team_xa_to_xg_ratio=0.8 | expected_goals: 0.0675 -> 0.0798 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 76.0) | match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0767
goal_rate=0.0061
scorer_weight=0.0638 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0294
assist_rate=0.0
provider_weight=0.0238 | - |
|
| Vanja Drkušić | D | 85 | 0 | 0.00 | - | n/a | 0 | 0.0 | 6.7 | 23.2 | 12 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9945, quality 0.468) | market_value_eur=5500000
quality_factor=0.4683
boost_factor=0.9945
reference_quality=0.505
history_matches=5
history_shrink=0.5 | - | fbref_prior_blend | FBref 2026-27 prior blended (weight 0.0282) | blend_weight=0.0282
history_matches=5
season_overlap_discount=1.0
per90_to_match_factor=0.9401
prior_reliability=0.0867
competition=La Liga | fouls: 0.5586 -> 0.604 wasFouled: 0.838 -> 0.8755 interceptionWon: 0.8702 -> 0.8457 wonTackle: 0.7267 -> 0.747 totalShots: 0.3686 -> 0.3582 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Georges Mikautadze', '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.19 (squad xG sum 1.0072, xG scale 1.1825, xA scale 1.0990, team xA 0.95 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.191
squad_xg_sum=1.0072
squad_xa_sum=0.867
team_expected_assists=0.9528
team_xa_to_xg_ratio=0.8 | - | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 80.0) | match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
goal_rate=0.0
scorer_weight=0.001 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0014
assist_rate=0.0
provider_weight=0.0014 | - |
|
| Omar El Hilali | D | 89 | 0 | 0.00 | - | n/a | 0 | 0.0 | 6.8 | 61.4 | 31 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-value quality scaling (boost 1.0025, quality 0.589) | market_value_eur=15900000
quality_factor=0.5889
boost_factor=1.0025
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.9856
prior_reliability=0.2
competition=La Liga | wasFouled: 0.7143 -> 0.705 wonTackle: 1.2058 -> 1.1987 totalCross: 3.0907 -> 3.0975 totalShots: 0.4036 -> 0.3984 | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Tajon Buchanan', 'matchup_zone': 'Left Mid vs Right Back — Wide Channel'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.19 (squad xG sum 1.0072, xG scale 1.1825, xA scale 1.0990, team xA 0.95 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.191
squad_xg_sum=1.0072
squad_xa_sum=0.867
team_expected_assists=0.9528
team_xa_to_xg_ratio=0.8 | expected_assists: 0.1149 -> 0.1263 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 75.0) | match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined | - | integer_goal_projection | Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance) | team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
goal_rate=0.0
scorer_weight=0.001 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal) | allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1186
assist_rate=0.0778
provider_weight=0.101 | - |
|
| Ángel Fortuño | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 7.2 | 9.3 | 33 | XGBoost G_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost G_service raw output over 3 target models | - | - | market_value_boost | Market-value quality scaling (boost 0.9887, quality 0.437) | market_value_eur=290000
quality_factor=0.4374
boost_factor=0.9887
reference_quality=0.505
history_matches=4
history_shrink=0.5556 | - | final_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Georges Mikautadze, Alberto Moleiro', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 2.046} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.19 (squad xG sum 1.0072, xG scale 1.1825, xA scale 1.0990, team xA 0.95 = 0.80 x lambda) | scoreline_reset=true
team_lambda=1.191
squad_xg_sum=1.0072
squad_xa_sum=0.867
team_expected_assists=0.9528
team_xa_to_xg_ratio=0.8 | shots_faced: 19.4 -> 17.6 expected_saves: 4.74 -> 4.31 high_pressure_saves: 1.64 -> 1.48 | rankings_attached | Display-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 89.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.3186 | - | integer_assist_projection | Team scoreline allocation: 1 projected assists distributed by 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.9085 | - |
|
| Team totals | 1 | 1.19 | | 11 | | 6.8 | | |
Antagonist matchup analysis for Villarreal vs Espanyol. Most likely scoreline: 2-1. Lambdas derived from 6 home and 6 away individual player duels. Head-to-head: Villarreal 8W-1D-1L vs Espanyol over 10 meetings.
Tactical parity between 4-4-2 and 4-2-3-1. Match outcome driven primarily by individual player quality. Midfield is evenly contested — Carlos Maciá vs Gabriel Moscardo will be the pivotal duel. Total antagonist xG — Home: 1.25, Away: 0.82. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.