Soccer predictions: actual data vs predicted data

Slate 20261018 · 8 match(es)
How to read this report. Each match shows the model's headline prediction, the stage-by-stage lambda (goal-rate) build, both teams' standing/form inputs, and every starter's projected line next to their real season baseline. A moderate / large deviation badge flags a projection that strays far from the player's season form — a quick way to spot when the inputs look right but a projection does not. When the real result is known an actual-vs-predicted banner appears.

All matches overview

MatchScoreWinnerH / D / AO2.5BTTSConfλ H/AActualResult
Celta vs Alavés
LaLiga
0-0Draw33.1% / 34.3% / 32.6%24.5%33.1%0.690.86 / 0.85-pending
Forest vs Arsenal
Premier League
1-1Draw23.5% / 23.3% / 53.1%55.6%56.1%0.751.12 / 1.79-pending
Brighton vs Crystal Palace
Premier League
1-1Draw41.9% / 26.2% / 31.9%49.3%53.6%0.71.43 / 1.22-pending
Leeds vs Man Utd
Premier League
1-1Draw30.0% / 25.5% / 44.5%51.4%54.9%0.721.21 / 1.52-pending
Málaga vs Real Sociedad
LaLiga
0-1Real Sociedad16.0% / 26.2% / 57.9%36.5%37.2%0.760.65 / 1.50-pending
Osasuna vs Racing Club
LaLiga
1-1Draw35.0% / 26.1% / 38.9%50.5%54.9%0.71.30 / 1.39-pending
Real Madrid vs Sevilla
LaLiga
3-1Real Madrid79.0% / 11.4% / 9.6%86.3%70.7%0.823.57 / 1.30-pending
Bournemouth vs Sunderland
Premier League
1-1Draw43.0% / 28.5% / 28.5%39.5%45.4%0.711.28 / 0.99-pending

Match detail

Celta vs Alavés

LaLiga · 20261018 · 3-4-3 vs 5-3-2
Predicted 0-0Winner: DrawWinning H 1-0 (15.4%)Winning A 0-1 (15.2%)Confidence 0.69λ home/away 0.86 / 0.85Most-likely P 18.3%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset Tracing
Antagonist + XGBoost match analysis for Celta vs Alavés. Player statistics regressed using position-specific XGBoost models (G, D, M, F) with 2026-2027 FBref priors. Micro-duels resolved across 3-4-3 vs 5-3-2 (duel lambdas: Home 0.835, Away 0.874). Final calibrated Poisson lambdas: Home 0.859, Away 0.849 (most likely score 0-0).
Home Starters 11/11 XGBoost (9 FBref) Away Starters 11/11 XGBoost (9 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 0.83 / 0.87 Final λ (H/A) 0.86 / 0.85
FBref Team Priors: Celta Vigo (Gls/90: 0.25, GA/90: 0.25 → E[λ]: 0.309) vs Deportivo Alavés (Gls/90: 1.6666666666666667, GA/90: 1.67 → E[λ]: 0.309) | Blend Weight: 0.228
Modeling Pipeline Stages (5 layers)
  1. 1. XGBoost player regressions for volume & event rates with market-value quality scaling
  2. 2. Multi-source prior blending (FBref 2026-2027 tables + Sofascore season history)
  3. 3. Antagonist formation duel matrix resolving 1v1 and zonal matchups
  4. 4. Team-level prior calibration (FBref possession and attack/defense efficiencies)
  5. 5. Bivariate Poisson matrix with Dixon-Coles low-score correction

Standing & form context

MetricCeltaAlavés
League position9.007.00
Points per game1.161.37
Attack index0.860.99
Defense (concede) index0.860.79
Form multiplier0.991.01
Standing λ multiplier0.880.91

Lambda decomposition (how the goal rates were built)

StageCelta λAlavés λ
FBref Squad Prior E[λ] (weight 0.228)0.3090.309
Pre-competitive-floor0.8590.849
Pre-calibration (Micro-duels)0.8350.874
Final λ0.8590.849
competition calibration scale 1.0competition observed total goals 0.0quality gap applied Falsemismatch score pressure applied Falsecompetitive underdog floor applied Falsestage discount 1.0

Scoreline distribution & markets

Top 5 scorelinesP
0-018.3%
1-015.4%
0-115.2%
1-113.4%
2-06.7%
Home win33.1%
Draw34.3%
Away win32.6%
Over 2.524.5%
BTTS yes33.1%
Pregame fair line — favorite Celta (33.1%), fair total 1.71, fair spread 0.01

Projected players vs season baseline

Proj = projected for this match · Season = this season's per-game average from match data · deviation badge compares projected xG to the player's season xG/game.

Celta — projected line vs season baseline (3-4-3)

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Hugo ÁlvarezF7300.150.0885%10.46.853.738FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9997, quality 0.496)market_value_eur=7800000
quality_factor=0.4963
boost_factor=0.9997
reference_quality=0.505
history_matches=34
history_shrink=0.1282
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0072)blend_weight=0.0072
history_matches=34
season_overlap_discount=1.0
per90_to_match_factor=0.8062
prior_reliability=0.0867
competition=La Liga
totalCross: 0.9998 -> 1.0195
totalShots: 1.2189 -> 1.2101
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Ville Koski', 'matchup_zone': 'Shadow Striker vs Centre Back — Half-Space Threat', 'duel_win_rate': 0.425, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9637, 'skill_edge': 0.0113, 'height_edge': -0.036, 'attacker_skill': 0.4963, 'defender_skill': 0.4712, 'attacker_role': 'SS', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Ville Koski', 'market_value': 4300000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4712}], 'xg_override': 0.1324}
totalShots: 1.2158 -> 1.1717
shotOffTarget: 0.7951 -> 0.7662
onTargetScoringAttempt: 0.4207 -> 0.4054
goals: 0.1562 -> 0.1505
bigChanceMissed: 0.1437 -> 0.1385
expectedGoals: 0.1374 -> 0.1324
scoreline_resetTeam 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_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.86 (squad xG sum 0.7665, xG scale 1.1206, xA scale 1.1206, team xA 0.64 = 0.75 x lambda)scoreline_reset=true
team_lambda=0.859
squad_xg_sum=0.7665
squad_xa_sum=0.5741
team_expected_assists=0.6433
team_xa_to_xg_ratio=0.7489
expected_goals: 0.1324 -> 0.1484
expected_assists: 0.0764 -> 0.0856
rankings_attachedDisplay-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_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.1379
goal_rate=0.1505
scorer_weight=0.1631
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.082
assist_rate=0.3603
provider_weight=0.107
-
Iago AspasF6700.160.08105%20.76.854.129FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9976, quality 0.437)market_value_eur=1500000
quality_factor=0.4374
boost_factor=0.9976
reference_quality=0.505
history_matches=38
history_shrink=0.1163
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0086)blend_weight=0.0086
history_matches=38
season_overlap_discount=1.0
per90_to_match_factor=0.7443
prior_reliability=0.1133
competition=La Liga
totalCross: 0.7874 -> 0.7807
wasFouled: 1.0956 -> 1.09
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=true
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Ville Koski, Nahuel Tenaglia', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 0.9395, 'skill_edge': -0.0111, 'height_edge': -0.03, 'attacker_skill': 0.4374, 'defender_skill': 0.4622, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Ville Koski', 'market_value': 4300000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4712}, {'player': 'Nahuel Tenaglia', 'market_value': 3200000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4531}], 'xg_override': 0.145}
totalShots: 1.4304 -> 1.3439
shotOffTarget: 0.8924 -> 0.8384
onTargetScoringAttempt: 0.538 -> 0.5055
expectedGoalsOnTarget: 0.2097 -> 0.197
goals: 0.1785 -> 0.1677
expectedGoals: 0.1543 -> 0.145
scoreline_resetTeam 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_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.86 (squad xG sum 0.7665, xG scale 1.1206, xA scale 1.1206, team xA 0.64 = 0.75 x lambda)scoreline_reset=true
team_lambda=0.859
squad_xg_sum=0.7665
squad_xa_sum=0.5741
team_expected_assists=0.6433
team_xa_to_xg_ratio=0.7489
expected_goals: 0.145 -> 0.1625
expected_assists: 0.0797 -> 0.0893
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 81.0)match_squad_rank=11
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.15
goal_rate=0.1677
scorer_weight=0.1814
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0854
assist_rate=0.0
provider_weight=0.0714
-
Ferrán JutglàF7300.210.17ok21.26.759.428FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0009, quality 0.531)market_value_eur=10700000
quality_factor=0.5306
boost_factor=1.0009
reference_quality=0.505
history_matches=38
history_shrink=0.1163
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0131)blend_weight=0.0131
history_matches=38
season_overlap_discount=1.0
per90_to_match_factor=0.8092
prior_reliability=0.1733
competition=La Liga
totalShots: 1.568 -> 1.5516
wasFouled: 1.5501 -> 1.5583
onTargetScoringAttempt: 0.6078 -> 0.5998
totalOffside: 0.5433 -> 0.5362
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Ville Koski', 'matchup_zone': 'Shadow Striker vs Centre Back — Half-Space Threat', 'duel_win_rate': 0.437, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9805, 'skill_edge': 0.0268, 'height_edge': -0.04, 'attacker_skill': 0.5306, 'defender_skill': 0.4712, 'attacker_role': 'SS', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Ville Koski', 'market_value': 4300000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4712}], 'xg_override': 0.1884}
totalShots: 1.56 -> 1.5296
shotOffTarget: 0.9602 -> 0.9415
onTargetScoringAttempt: 0.5998 -> 0.5881
expectedGoalsOnTarget: 0.2996 -> 0.2938
scoreline_resetTeam 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_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.86 (squad xG sum 0.7665, xG scale 1.1206, xA scale 1.1206, team xA 0.64 = 0.75 x lambda)scoreline_reset=true
team_lambda=0.859
squad_xg_sum=0.7665
squad_xa_sum=0.5741
team_expected_assists=0.6433
team_xa_to_xg_ratio=0.7489
expected_goals: 0.1884 -> 0.2113
expected_assists: 0.0537 -> 0.0602
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 16 by projected rating, fifa_overall 75.0)match_squad_rank=16
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.1905
goal_rate=0.2025
scorer_weight=0.2238
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0584
assist_rate=0.0728
provider_weight=0.0713
-
Javi GalánD7700.010.01ok00.26.860.434FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9973, quality 0.437)market_value_eur=1700000
quality_factor=0.4374
boost_factor=0.9973
reference_quality=0.505
history_matches=32
history_shrink=0.1351
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0088)blend_weight=0.0088
history_matches=32
season_overlap_discount=1.0
per90_to_match_factor=0.8568
prior_reliability=0.1
competition=La Liga
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=true
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Toni Martínez', 'matchup_zone': 'Shape fallback'}
-
scoreline_resetTeam 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_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.86 (squad xG sum 0.7665, xG scale 1.1206, xA scale 1.1206, team xA 0.64 = 0.75 x lambda)scoreline_reset=true
team_lambda=0.859
squad_xg_sum=0.7665
squad_xa_sum=0.5741
team_expected_assists=0.6433
team_xa_to_xg_ratio=0.7489
expected_assists: 0.0682 -> 0.0764
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 77.0)match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0056
goal_rate=0.0
scorer_weight=0.0051
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0736
assist_rate=0.0058
provider_weight=0.0611
-
Hugo BurcioM8600.100.03272%10.26.722.112XGBoost M_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 0.9887, quality 0.437)market_value_eur=1900000
quality_factor=0.4374
boost_factor=0.9887
reference_quality=0.505
history_matches=4
history_shrink=0.5556
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Ville Koski', 'matchup_zone': 'LWB vs CB', 'duel_win_rate': 0.413, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9894, 'skill_edge': -0.0152, 'height_edge': 0.008, 'attacker_skill': 0.4374, 'defender_skill': 0.4712, 'attacker_role': 'LWB', 'attacker_mv_price_index': 0.7, 'defender_adjusted_parts': [{'player': 'Ville Koski', 'market_value': 4300000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4712}], 'xg_override': 0.0849}
aerialWon: 0.2241 -> 1.2
totalShots: 1.0343 -> 1.0233
shotOffTarget: 0.7258 -> 0.7181
scoreline_resetTeam 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_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.86 (squad xG sum 0.7665, xG scale 1.1206, xA scale 1.1206, team xA 0.64 = 0.75 x lambda)scoreline_reset=true
team_lambda=0.859
squad_xg_sum=0.7665
squad_xa_sum=0.5741
team_expected_assists=0.6433
team_xa_to_xg_ratio=0.7489
expected_goals: 0.0849 -> 0.0951
expected_assists: 0.0443 -> 0.0496
rankings_attachedDisplay-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_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0907
goal_rate=0.1465
scorer_weight=0.1189
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0484
assist_rate=0.0393
provider_weight=0.047
-
Aleix FebasM8500.080.04114%10.56.959.726FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 0.9986, quality 0.465)market_value_eur=5200000
quality_factor=0.4646
boost_factor=0.9986
reference_quality=0.505
history_matches=39
history_shrink=0.1136
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0089)blend_weight=0.0089
history_matches=39
season_overlap_discount=1.0
per90_to_match_factor=0.9408
prior_reliability=0.12
competition=La Liga
fouls: 1.5694 -> 1.5787
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Pablo Ibáñez', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.411, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9431, 'skill_edge': 0.0053, 'height_edge': -0.044, 'attacker_skill': 0.4717, 'defender_skill': 0.46, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Pablo Ibáñez', 'market_value': 4099999, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.46}], 'xg_override': 0.0692}
aerialWon: 0.109 -> 0.8
totalShots: 0.811 -> 0.7649
shotOffTarget: 0.4816 -> 0.4542
onTargetScoringAttempt: 0.3294 -> 0.3107
scoreline_resetTeam 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_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.86 (squad xG sum 0.7665, xG scale 1.1206, xA scale 1.1206, team xA 0.64 = 0.75 x lambda)scoreline_reset=true
team_lambda=0.859
squad_xg_sum=0.7665
squad_xa_sum=0.5741
team_expected_assists=0.6433
team_xa_to_xg_ratio=0.7489
expected_goals: 0.0692 -> 0.0775
expected_assists: 0.0842 -> 0.0944
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 79.0)match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0746
goal_rate=0.068
scorer_weight=0.0767
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0901
assist_rate=0.0689
provider_weight=0.0836
-
Álvaro NúñezD8100.020.01160%10.36.834.326FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9975, quality 0.449)market_value_eur=3900000
quality_factor=0.4486
boost_factor=0.9975
reference_quality=0.505
history_matches=29
history_shrink=0.1471
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0121)blend_weight=0.0121
history_matches=29
season_overlap_discount=1.0
per90_to_match_factor=0.9022
prior_reliability=0.1267
competition=La Liga
interceptionWon: 0.7721 -> 0.78
totalCross: 1.49 -> 1.4835
wonTackle: 0.9129 -> 0.9076
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=true
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Lucas Boyé', 'matchup_zone': 'Shape fallback'}
-
scoreline_resetTeam 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_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.86 (squad xG sum 0.7665, xG scale 1.1206, xA scale 1.1206, team xA 0.64 = 0.75 x lambda)scoreline_reset=true
team_lambda=0.859
squad_xg_sum=0.7665
squad_xa_sum=0.5741
team_expected_assists=0.6433
team_xa_to_xg_ratio=0.7489
expected_assists: 0.0588 -> 0.0659
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 76.0)match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0156
goal_rate=0.0
scorer_weight=0.0126
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0638
assist_rate=0.0204
provider_weight=0.0527
-
Yoel LagoD8900.020.00236%00.16.842.126FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9989, quality 0.487)market_value_eur=7000000
quality_factor=0.4866
boost_factor=0.9989
reference_quality=0.505
history_matches=20
history_shrink=0.2
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0303)blend_weight=0.0303
history_matches=20
season_overlap_discount=1.0
per90_to_match_factor=0.9912
prior_reliability=0.2333
competition=La Liga
fouls: 2.1519 -> 2.1382
totalShots: 0.3629 -> 0.3519
totalCross: 0.0 -> 0.0086
interceptionWon: 1.1822 -> 1.1893
wonTackle: 0.7893 -> 0.7825
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Jonny Otto', 'matchup_zone': 'LWB vs CB'}
-
scoreline_resetTeam 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_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.86 (squad xG sum 0.7665, xG scale 1.1206, xA scale 1.1206, team xA 0.64 = 0.75 x lambda)scoreline_reset=true
team_lambda=0.859
squad_xg_sum=0.7665
squad_xa_sum=0.5741
team_expected_assists=0.6433
team_xa_to_xg_ratio=0.7489
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 71.0)match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0151
goal_rate=0.0
scorer_weight=0.0122
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0129
assist_rate=0.0
provider_weight=0.0106
-
Sebastián CáceresD9000.010.00206%10.26.823.86XGBoost D_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9884, quality 0.451)market_value_eur=4099999
quality_factor=0.4511
boost_factor=0.9884
reference_quality=0.505
history_matches=2
history_shrink=0.7143
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel 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_resetTeam 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_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.86 (squad xG sum 0.7665, xG scale 1.1206, xA scale 1.1206, team xA 0.64 = 0.75 x lambda)scoreline_reset=true
team_lambda=0.859
squad_xg_sum=0.7665
squad_xa_sum=0.5741
team_expected_assists=0.6433
team_xa_to_xg_ratio=0.7489
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 75.0)match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0133
goal_rate=0.0
scorer_weight=0.0108
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0129
assist_rate=0.0
provider_weight=0.0106
-
Ionuț RaduG9000.00-n/a0.06.965.031FBref Prior G_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost G_service raw output over 3 target models--
market_value_boostMarket-value quality scaling (boost 1.0004, quality 0.519)market_value_eur=9700000
quality_factor=0.5189
boost_factor=1.0004
reference_quality=0.505
history_matches=46
history_shrink=0.098
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0170)blend_weight=0.017
history_matches=46
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.2667
competition=La Liga
saves: 2.882 -> 2.8925
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Toni Martínez, Lucas Boyé', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 0.8739}
-
scoreline_resetTeam 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_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.86 (squad xG sum 0.7665, xG scale 1.1206, xA scale 1.1206, team xA 0.64 = 0.75 x lambda)scoreline_reset=true
team_lambda=0.859
squad_xg_sum=0.7665
squad_xa_sum=0.5741
team_expected_assists=0.6433
team_xa_to_xg_ratio=0.7489
shots_faced: 8.3 -> 8.1
expected_saves: 2.03 -> 1.99
high_pressure_saves: 0.7 -> 0.68
rankings_attachedDisplay-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_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=0.9142
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0
provider_weight=0.0
squad_weight_total=0.6035
-
Marcos AlonsoD8700.040.0845%10.77.162.227FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9976, quality 0.437)market_value_eur=1300000
quality_factor=0.4374
boost_factor=0.9976
reference_quality=0.505
history_matches=38
history_shrink=0.1163
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0131)blend_weight=0.0131
history_matches=38
season_overlap_discount=1.0
per90_to_match_factor=0.963
prior_reliability=0.1733
competition=La Liga
interceptionWon: 1.1502 -> 1.1739
wonTackle: 0.9483 -> 0.9553
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Abderrahman Rebbach', 'matchup_zone': 'Shape fallback'}
-
scoreline_resetTeam 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_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.86 (squad xG sum 0.7665, xG scale 1.1206, xA scale 1.1206, team xA 0.64 = 0.75 x lambda)scoreline_reset=true
team_lambda=0.859
squad_xg_sum=0.7665
squad_xa_sum=0.5741
team_expected_assists=0.6433
team_xa_to_xg_ratio=0.7489
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 79.0)match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0407
goal_rate=0.0061
scorer_weight=0.0332
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0453
assist_rate=0.0
provider_weight=0.0371
-
Team totals00.86116.8
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Altay BayındırG4.5m11.3%Market-value substitute prior
Javi RodríguezD10.3m32.7%Market-value substitute prior
Abdoulaye FayeD13.6m21.8%Market-value substitute prior
Fer LópezM22.6m52.9%Market-value substitute prior
Miguel RománM34.9m41.4%Market-value substitute prior
Williot SwedbergF30.4m44.5%Market-value substitute prior

Alavés — projected line vs season baseline (5-3-2)

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Ville KoskiD8900.090.04120%00.16.737.122FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9957, quality 0.454)market_value_eur=4300000
quality_factor=0.4535
boost_factor=0.9957
reference_quality=0.505
history_matches=13
history_shrink=0.2778
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0349)blend_weight=0.0349
history_matches=13
season_overlap_discount=1.0
per90_to_match_factor=0.9923
prior_reliability=0.1933
competition=La Liga
fouls: 1.3379 -> 1.2912
totalShots: 0.3872 -> 0.3737
onTargetScoringAttempt: 0.3521 -> 0.3398
wonTackle: 0.6428 -> 0.6323
goals: 0.1652 -> 0.1594
wasFouled: 0.1581 -> 0.1526
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Hugo Burcio', 'matchup_zone': 'LWB vs CB'}
-
scoreline_resetTeam 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_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.85 (squad xG sum 1.1554, xG scale 0.7348, xA scale 1.0488, team xA 0.55 = 0.65 x lambda)scoreline_reset=true
team_lambda=0.849
squad_xg_sum=1.1554
squad_xa_sum=0.5262
team_expected_assists=0.5518
team_xa_to_xg_ratio=0.65
expected_goals: 0.1267 -> 0.0931
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 68.0)match_squad_rank=14
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0889
goal_rate=0.1594
scorer_weight=0.1103
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0159
assist_rate=0.0
provider_weight=0.0128
-
Jonny OttoD8800.010.01ok00.26.853.630XGBoost D_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9978, quality 0.437)market_value_eur=2100000
quality_factor=0.4374
boost_factor=0.9978
reference_quality=0.505
history_matches=41
history_shrink=0.1087
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=true
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Yoel Lago', 'matchup_zone': 'LWB vs CB'}
-
scoreline_resetTeam 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_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.85 (squad xG sum 1.1554, xG scale 0.7348, xA scale 1.0488, team xA 0.55 = 0.65 x lambda)scoreline_reset=true
team_lambda=0.849
squad_xg_sum=1.1554
squad_xa_sum=0.5262
team_expected_assists=0.5518
team_xa_to_xg_ratio=0.65
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 84.0)match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0107
goal_rate=0.0
scorer_weight=0.0086
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0299
assist_rate=0.0
provider_weight=0.0243
-
Nahuel TenagliaD8600.030.0436%10.66.861.531FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9980, quality 0.440)market_value_eur=3200000
quality_factor=0.4399
boost_factor=0.998
reference_quality=0.505
history_matches=44
history_shrink=0.102
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0133)blend_weight=0.0133
history_matches=44
season_overlap_discount=1.0
per90_to_match_factor=0.9558
prior_reliability=0.2
competition=La Liga
totalShots: 0.6318 -> 0.6403
fouls: 0.7834 -> 0.7899
interceptionWon: 1.1823 -> 1.1877
wasFouled: 1.3585 -> 1.3532
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Iago Aspas', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam 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_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.85 (squad xG sum 1.1554, xG scale 0.7348, xA scale 1.0488, team xA 0.55 = 0.65 x lambda)scoreline_reset=true
team_lambda=0.849
squad_xg_sum=1.1554
squad_xa_sum=0.5262
team_expected_assists=0.5518
team_xa_to_xg_ratio=0.65
expected_goals: 0.0354 -> 0.026
rankings_attachedDisplay-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_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0257
goal_rate=0.0829
scorer_weight=0.0325
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0351
assist_rate=0.0
provider_weight=0.0286
-
Antonio SiveraG9000.00-n/a0.07.065.331FBref Prior G_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost G_service raw output over 3 target models--
market_value_boostMarket-value quality scaling (boost 0.9990, quality 0.470)market_value_eur=5600000
quality_factor=0.4695
boost_factor=0.999
reference_quality=0.505
history_matches=46
history_shrink=0.098
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0127)blend_weight=0.0127
history_matches=46
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.2
competition=La Liga
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Ferrán Jutglà, Iago Aspas', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 0.8347}
-
scoreline_resetTeam 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_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.85 (squad xG sum 1.1554, xG scale 0.7348, xA scale 1.0488, team xA 0.55 = 0.65 x lambda)scoreline_reset=true
team_lambda=0.849
squad_xg_sum=1.1554
squad_xa_sum=0.5262
team_expected_assists=0.5518
team_xa_to_xg_ratio=0.65
shots_faced: 7.9 -> 8.2
expected_saves: 1.93 -> 2.01
high_pressure_saves: 0.67 -> 0.69
rankings_attachedDisplay-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_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=0.9123
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0
provider_weight=0.0
squad_weight_total=0.5324
-
Nicolás ValentiniD8600.000.00100%00.16.738.49FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9901, quality 0.439)market_value_eur=3100000
quality_factor=0.4387
boost_factor=0.9901
reference_quality=0.505
history_matches=5
history_shrink=0.5
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0022)blend_weight=0.0022
history_matches=5
season_overlap_discount=1.0
per90_to_match_factor=0.9508
prior_reliability=0.0067
competition=La Liga
fouls: 0.3849 -> 0.4048
totalShots: 0.3776 -> 0.3937
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Ferrán Jutglà', 'matchup_zone': 'Shape fallback'}
-
scoreline_resetTeam 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_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.85 (squad xG sum 1.1554, xG scale 0.7348, xA scale 1.0488, team xA 0.55 = 0.65 x lambda)scoreline_reset=true
team_lambda=0.849
squad_xg_sum=1.1554
squad_xa_sum=0.5262
team_expected_assists=0.5518
team_xa_to_xg_ratio=0.65
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 73.0)match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0
goal_rate=0.0
scorer_weight=0.001
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.023
assist_rate=0.0
provider_weight=0.0186
-
Abderrahman RebbachF8000.050.0438%10.66.851.041XGBoost F_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9976, quality 0.437)market_value_eur=2400000
quality_factor=0.4374
boost_factor=0.9976
reference_quality=0.505
history_matches=38
history_shrink=0.1163
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=true
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Yoel Lago, Sebastián Cáceres', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 0.9174, 'skill_edge': -0.0242, 'height_edge': -0.032, 'attacker_skill': 0.4374, 'defender_skill': 0.4913, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Yoel Lago', 'market_value': 7000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5146}, {'player': 'Sebastián Cáceres', 'market_value': 4099999, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4679}], 'xg_override': 0.0745}
totalShots: 0.9894 -> 0.9077
shotOffTarget: 0.6806 -> 0.6244
onTargetScoringAttempt: 0.3088 -> 0.2833
goals: 0.0927 -> 0.085
expectedGoals: 0.0812 -> 0.0745
scoreline_resetTeam 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_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.85 (squad xG sum 1.1554, xG scale 0.7348, xA scale 1.0488, team xA 0.55 = 0.65 x lambda)scoreline_reset=true
team_lambda=0.849
squad_xg_sum=1.1554
squad_xa_sum=0.5262
team_expected_assists=0.5518
team_xa_to_xg_ratio=0.65
expected_goals: 0.0745 -> 0.0547
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 78.0)match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0532
goal_rate=0.085
scorer_weight=0.0593
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0485
assist_rate=0.0758
provider_weight=0.0621
-
Antonio BlancoM8300.040.04ok11.16.864.031FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0004, quality 0.519)market_value_eur=9700000
quality_factor=0.5189
boost_factor=1.0004
reference_quality=0.505
history_matches=44
history_shrink=0.102
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0133)blend_weight=0.0133
history_matches=44
season_overlap_discount=1.0
per90_to_match_factor=0.9168
prior_reliability=0.2
competition=La Liga
fouls: 1.5327 -> 1.5489
interceptionWon: 1.4305 -> 1.444
totalCross: 0.9861 -> 0.9933
totalShots: 0.792 -> 0.7978
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Aleix Febas', 'matchup_zone': 'Central Mid vs Central Mid — Box-to-Box Midfield Contest', 'duel_win_rate': 0.479, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0866, 'skill_edge': 0.0269, 'height_edge': 0.032, 'attacker_skill': 0.5316, 'defender_skill': 0.4717, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Aleix Febas', 'market_value': 5200000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.4717}], 'xg_override': 0.0591}
aerialWon: 0.281 -> 0.9
totalShots: 0.7978 -> 0.8669
shotOffTarget: 0.5805 -> 0.6308
onTargetScoringAttempt: 0.2086 -> 0.2267
scoreline_resetTeam 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_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.85 (squad xG sum 1.1554, xG scale 0.7348, xA scale 1.0488, team xA 0.55 = 0.65 x lambda)scoreline_reset=true
team_lambda=0.849
squad_xg_sum=1.1554
squad_xa_sum=0.5262
team_expected_assists=0.5518
team_xa_to_xg_ratio=0.65
expected_goals: 0.0591 -> 0.0434
rankings_attachedDisplay-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_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0425
goal_rate=0.0606
scorer_weight=0.044
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0533
assist_rate=0.0758
provider_weight=0.0674
-
Denis SuárezM7200.070.03117%10.36.954.627FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 0.9976, quality 0.437)market_value_eur=1100000
quality_factor=0.4374
boost_factor=0.9976
reference_quality=0.505
history_matches=37
history_shrink=0.119
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0062)blend_weight=0.0062
history_matches=37
season_overlap_discount=1.0
per90_to_match_factor=0.7968
prior_reliability=0.08
competition=La Liga
totalCross: 3.7138 -> 3.7484
fouls: 0.6893 -> 0.6974
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Aleix Febas', 'matchup_zone': 'Central Mid vs Central Mid — Box-to-Box Midfield Contest', 'duel_win_rate': 0.437, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0244, 'skill_edge': -0.0154, 'height_edge': 0.032, 'attacker_skill': 0.4374, 'defender_skill': 0.4717, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Aleix Febas', 'market_value': 5200000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.4717}], 'xg_override': 0.0886}
aerialWon: 0.1102 -> 0.9
totalShots: 0.9436 -> 0.9666
shotOffTarget: 0.6312 -> 0.6466
onTargetScoringAttempt: 0.3124 -> 0.32
scoreline_resetTeam 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_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.85 (squad xG sum 1.1554, xG scale 0.7348, xA scale 1.0488, team xA 0.55 = 0.65 x lambda)scoreline_reset=true
team_lambda=0.849
squad_xg_sum=1.1554
squad_xa_sum=0.5262
team_expected_assists=0.5518
team_xa_to_xg_ratio=0.65
expected_goals: 0.0886 -> 0.0651
expected_assists: 0.1605 -> 0.1683
rankings_attachedDisplay-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_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.063
goal_rate=0.0994
scorer_weight=0.0702
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.1549
assist_rate=0.1369
provider_weight=0.1494
-
Lucas BoyéF7600.210.3439%22.06.761.426FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9986, quality 0.466)market_value_eur=5300000
quality_factor=0.4659
boost_factor=0.9986
reference_quality=0.505
history_matches=36
history_shrink=0.122
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0085)blend_weight=0.0085
history_matches=36
season_overlap_discount=1.0
per90_to_match_factor=0.8422
prior_reliability=0.1067
competition=La Liga
wonTackle: 1.1926 -> 1.2048
wasFouled: 1.8194 -> 1.8129
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Yoel Lago, Sebastián Cáceres', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.185, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 0.9773, 'skill_edge': -0.0114, 'height_edge': -0.004, 'attacker_skill': 0.4659, 'defender_skill': 0.4913, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Yoel Lago', 'market_value': 7000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5146}, {'player': 'Sebastián Cáceres', 'market_value': 4099999, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4679}], 'xg_override': 0.2833}
totalShots: 2.1417 -> 2.0931
shotOffTarget: 1.4168 -> 1.3846
onTargetScoringAttempt: 0.7234 -> 0.707
expectedGoalsOnTarget: 0.3956 -> 0.3866
expectedGoals: 0.2899 -> 0.2833
goals: 0.2834 -> 0.277
scoreline_resetTeam 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_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.85 (squad xG sum 1.1554, xG scale 0.7348, xA scale 1.0488, team xA 0.55 = 0.65 x lambda)scoreline_reset=true
team_lambda=0.849
squad_xg_sum=1.1554
squad_xa_sum=0.5262
team_expected_assists=0.5518
team_xa_to_xg_ratio=0.65
expected_goals: 0.2833 -> 0.2082
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 77.0)match_squad_rank=11
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.188
goal_rate=0.277
scorer_weight=0.2043
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0437
assist_rate=0.008
provider_weight=0.0358
-
Toni MartínezF7700.240.34ok22.66.866.030FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9995, quality 0.490)market_value_eur=7300000
quality_factor=0.4903
boost_factor=0.9995
reference_quality=0.505
history_matches=44
history_shrink=0.102
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0115)blend_weight=0.0115
history_matches=44
season_overlap_discount=1.0
per90_to_match_factor=0.8537
prior_reliability=0.1733
competition=La Liga
onTargetScoringAttempt: 0.8653 -> 0.8554
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Yoel Lago, Sebastián Cáceres', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.184, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 0.9758, 'skill_edge': -0.0005, 'height_edge': -0.016, 'attacker_skill': 0.4903, 'defender_skill': 0.4913, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Yoel Lago', 'market_value': 7000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5146}, {'player': 'Sebastián Cáceres', 'market_value': 4099999, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4679}], 'xg_override': 0.33}
totalShots: 2.329 -> 2.2726
shotOffTarget: 1.464 -> 1.4286
onTargetScoringAttempt: 0.8554 -> 0.8347
goals: 0.3896 -> 0.3802
bigChanceMissed: 0.3881 -> 0.3787
expectedGoals: 0.3382 -> 0.33
expectedGoalsOnTarget: 0.2673 -> 0.2608
scoreline_resetTeam 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_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.85 (squad xG sum 1.1554, xG scale 0.7348, xA scale 1.0488, team xA 0.55 = 0.65 x lambda)scoreline_reset=true
team_lambda=0.849
squad_xg_sum=1.1554
squad_xa_sum=0.5262
team_expected_assists=0.5518
team_xa_to_xg_ratio=0.65
expected_goals: 0.33 -> 0.2426
rankings_attachedDisplay-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_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.2154
goal_rate=0.3802
scorer_weight=0.2746
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0342
assist_rate=0.0209
provider_weight=0.0297
-
Pablo IbáñezM8000.050.0836%11.26.863.130FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 0.9984, quality 0.451)market_value_eur=4099999
quality_factor=0.4511
boost_factor=0.9984
reference_quality=0.505
history_matches=45
history_shrink=0.1
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0130)blend_weight=0.013
history_matches=45
season_overlap_discount=1.0
per90_to_match_factor=0.8892
prior_reliability=0.2
competition=La Liga
fouls: 1.7146 -> 1.7077
totalShots: 0.9808 -> 0.9874
interceptionWon: 1.0629 -> 1.0683
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Aleix Febas', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel'}
-
scoreline_resetTeam 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_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.85 (squad xG sum 1.1554, xG scale 0.7348, xA scale 1.0488, team xA 0.55 = 0.65 x lambda)scoreline_reset=true
team_lambda=0.849
squad_xg_sum=1.1554
squad_xa_sum=0.5262
team_expected_assists=0.5518
team_xa_to_xg_ratio=0.65
expected_goals: 0.0736 -> 0.0541
rankings_attachedDisplay-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_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0527
goal_rate=0.0611
scorer_weight=0.0486
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.046
assist_rate=0.0775
provider_weight=0.0589
-
Team totals00.85106.8
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Grégoire SwiderskiG4.4m10.9%Market-value substitute prior
Youssef EnriquezD13.7m30.4%Market-value substitute prior
Victor ParadaD13.6m30.1%Market-value substitute prior
Ángel PérezM22.1m30.9%Market-value substitute prior
Carles AleñáM13.2m69.2%Market-value substitute prior
Miguel RodríguezF25.4m56.2%Market-value substitute prior
Antagonist / tactical summary
Midfield is evenly contested — Aleix Febas vs Antonio Blanco will be the pivotal duel. Total antagonist xG — Home: 0.62, Away: 0.85. Home danger zone: Shadow Striker vs Centre Back — Half-Space Threat. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Midfield — possession 49.3% / 50.7%, dominance ratio 0.48, key duel: Aleix Febas vs Antonio Blanco
Hugo Burcio xG 0.08Aleix Febas xG 0.07Hugo Álvarez xG 0.13Jonny Otto xG 0.01Antonio Blanco xG 0.06Denis Suárez xG 0.09

Summary

Antagonist matchup analysis for Celta vs Alavés. Most likely scoreline: 0-0. Lambdas derived from 5 home and 6 away individual player duels. Head-to-head: Celta 6W-2D-2L vs Alavés over 10 meetings.
Tactical parity between 3-4-3 and 5-3-2. Match outcome driven primarily by individual player quality. Midfield is evenly contested — Aleix Febas vs Antonio Blanco will be the pivotal duel. Total antagonist xG — Home: 0.62, Away: 0.85. Home danger zone: Shadow Striker vs Centre Back — Half-Space Threat. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.

Forest vs Arsenal

Premier League · 20261018 · 3-4-2-1 vs 4-2-3-1
Predicted 1-1Winner: DrawWinning H 2-1 (6.1%)Winning A 1-2 (9.8%)Confidence 0.75λ home/away 1.12 / 1.79Most-likely P 11.0%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset Tracing
Antagonist + XGBoost match analysis for Forest vs Arsenal. Player statistics regressed using position-specific XGBoost models (G, D, M, F) with 2026-2027 FBref priors. Micro-duels resolved across 3-4-2-1 vs 4-2-3-1 (duel lambdas: Home 1.150, Away 1.742). Final calibrated Poisson lambdas: Home 1.117, Away 1.792 (most likely score 1-1).
Home Starters 11/11 XGBoost (9 FBref) Away Starters 11/11 XGBoost (11 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.15 / 1.74 Final λ (H/A) 1.12 / 1.79
FBref Team Priors: Nottingham Forest (Gls/90: 1.0, GA/90: 1.0 → E[λ]: 1.379) vs Arsenal (Gls/90: 2.0, GA/90: 2.0 → E[λ]: 1.379) | Blend Weight: 0.192
Modeling Pipeline Stages (5 layers)
  1. 1. XGBoost player regressions for volume & event rates with market-value quality scaling
  2. 2. Multi-source prior blending (FBref 2026-2027 tables + Sofascore season history)
  3. 3. Antagonist formation duel matrix resolving 1v1 and zonal matchups
  4. 4. Team-level prior calibration (FBref possession and attack/defense efficiencies)
  5. 5. Bivariate Poisson matrix with Dixon-Coles low-score correction

Standing & form context

MetricForestArsenal
League position15.002.00
Points per game1.091.92
Attack index0.851.04
Defense (concede) index0.850.97
Form multiplier0.961.04
Standing λ multiplier0.881.01

Lambda decomposition (how the goal rates were built)

StageForest λArsenal λ
FBref Squad Prior E[λ] (weight 0.192)1.3791.379
Pre-competitive-floor1.1171.792
Pre-calibration (Micro-duels)1.1501.742
Final λ1.1171.792
competition calibration scale 1.0competition observed total goals 0.0quality gap applied Truemismatch score pressure applied Falsecompetitive underdog floor applied Falsestage discount 1.0

Scoreline distribution & markets

Top 5 scorelinesP
1-111.0%
1-29.8%
0-19.7%
0-28.8%
2-16.1%
Home win23.5%
Draw23.3%
Away win53.1%
Over 2.555.6%
BTTS yes56.1%
Pregame fair line — favorite Arsenal (53.1%), fair total 2.91, fair spread -0.68

Projected players vs season baseline

Proj = projected for this match · Season = this season's per-game average from match data · deviation badge compares projected xG to the player's season xG/game.

Forest — projected line vs season baseline (3-4-2-1)

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Liam DelapF7900.270.1851%21.26.851.629FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0102, quality 0.764)market_value_eur=37000000
quality_factor=0.7641
boost_factor=1.0102
reference_quality=0.505
history_matches=33
history_shrink=0.1316
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0017)blend_weight=0.0017
history_matches=33
season_overlap_discount=1.0
per90_to_match_factor=0.8746
prior_reliability=0.02
competition=Premier League
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Bruno Guimarães, Riccardo Calafiori', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle', 'duel_win_rate': 0.219, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.9244, 'skill_edge': -0.0554, 'height_edge': 0.004, 'attacker_skill': 0.7641, 'defender_skill': 0.8873, 'attacker_role': 'SS', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Bruno Guimarães', 'market_value': 77000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8893}, {'player': 'Riccardo Calafiori', 'market_value': 63000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8852}], 'xg_override': 0.3386}
totalShots: 2.1849 -> 2.0197
shotOffTarget: 1.2776 -> 1.181
onTargetScoringAttempt: 0.9041 -> 0.8358
bigChanceMissed: 0.6184 -> 0.5716
expectedGoals: 0.3663 -> 0.3386
goals: 0.3324 -> 0.3073
expectedGoalsOnTarget: 0.1576 -> 0.1457
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.12 (squad xG sum 1.4209, xG scale 0.7861, xA scale 0.8123, team xA 0.73 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.117
squad_xg_sum=1.4209
squad_xa_sum=0.8939
team_expected_assists=0.726
team_xa_to_xg_ratio=0.65
expected_goals: 0.3386 -> 0.2663
expected_assists: 0.0611 -> 0.0496
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 77.0)match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.2338
goal_rate=0.3073
scorer_weight=0.2449
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0484
assist_rate=0.0
provider_weight=0.0397
-
Morgan Gibbs-WhiteM8900.180.2734%21.87.161.235FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0117, quality 0.878)market_value_eur=76000000
quality_factor=0.8781
boost_factor=1.0117
reference_quality=0.505
history_matches=43
history_shrink=0.1042
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0090)blend_weight=0.009
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=0.9884
prior_reliability=0.1333
competition=Premier League
totalCross: 3.8286 -> 3.8119
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Bruno Guimarães', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.404, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9328, 'skill_edge': -0.0017, 'height_edge': -0.044, 'attacker_skill': 0.8855, 'defender_skill': 0.8893, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Bruno Guimarães', 'market_value': 77000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8893}], 'xg_override': 0.2277}
aerialWon: 0.5532 -> 0.8
totalShots: 2.1674 -> 2.0218
shotOffTarget: 1.3318 -> 1.2423
onTargetScoringAttempt: 0.8342 -> 0.7781
bigChanceMissed: 0.3484 -> 0.325
goals: 0.2755 -> 0.257
expectedGoalsOnTarget: 0.2542 -> 0.2371
expectedGoals: 0.2441 -> 0.2277
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.12 (squad xG sum 1.4209, xG scale 0.7861, xA scale 0.8123, team xA 0.73 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.117
squad_xg_sum=1.4209
squad_xa_sum=0.8939
team_expected_assists=0.726
team_xa_to_xg_ratio=0.65
expected_goals: 0.2277 -> 0.179
expected_assists: 0.1898 -> 0.1542
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 83.0)match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1639
goal_rate=0.257
scorer_weight=0.1979
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=1
assist_probability=0.1429
assist_rate=0.1812
provider_weight=0.1487
-
Dan NdoyeF6810.230.07219%20.76.930.631FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0103, quality 0.746)market_value_eur=34000000
quality_factor=0.7455
boost_factor=1.0103
reference_quality=0.505
history_matches=30
history_shrink=0.1429
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0087)blend_weight=0.0087
history_matches=30
season_overlap_discount=1.0
per90_to_match_factor=0.7557
prior_reliability=0.0933
competition=Premier League
totalCross: 1.1036 -> 1.094
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Bruno Guimarães, Riccardo Calafiori', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle', 'duel_win_rate': 0.202, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.9004, 'skill_edge': -0.0638, 'height_edge': -0.004, 'attacker_skill': 0.7455, 'defender_skill': 0.8873, 'attacker_role': 'SS', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Bruno Guimarães', 'market_value': 77000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8893}, {'player': 'Riccardo Calafiori', 'market_value': 63000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8852}], 'xg_override': 0.2886}
totalShots: 2.1499 -> 1.9358
shotOffTarget: 1.2583 -> 1.133
onTargetScoringAttempt: 0.8916 -> 0.8028
bigChanceMissed: 0.8156 -> 0.7344
goals: 0.3904 -> 0.3515
expectedGoals: 0.3205 -> 0.2886
expectedGoalsOnTarget: 0.2926 -> 0.2635
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.12 (squad xG sum 1.4209, xG scale 0.7861, xA scale 0.8123, team xA 0.73 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.117
squad_xg_sum=1.4209
squad_xa_sum=0.8939
team_expected_assists=0.726
team_xa_to_xg_ratio=0.65
expected_goals: 0.2886 -> 0.2269
expected_assists: 0.0904 -> 0.0734
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 77.0)match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.203
goal_rate=0.3515
scorer_weight=0.2691
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0708
assist_rate=0.0084
provider_weight=0.0587
-
Ibrahim SangaréM8100.030.0248%10.46.953.924FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0055, quality 0.641)market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.0055
reference_quality=0.505
history_matches=32
history_shrink=0.1351
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0059)blend_weight=0.0059
history_matches=32
season_overlap_discount=1.0
per90_to_match_factor=0.9008
prior_reliability=0.0667
competition=Premier League
interceptionWon: 1.0641 -> 1.0579
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Ezri Konsa', 'matchup_zone': 'Left Wingback vs Right Back — Overlapping Run', 'duel_win_rate': 0.36, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.941, 'skill_edge': -0.0721, 'height_edge': 0.032, 'attacker_skill': 0.7176, 'defender_skill': 0.8778, 'attacker_role': 'LWB', 'attacker_mv_price_index': 0.7, 'defender_adjusted_parts': [{'player': 'Ezri Konsa', 'market_value': 53000000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.8778}], 'xg_override': 0.0368}
aerialWon: 1.1402 -> 1.3
totalShots: 0.5591 -> 0.5261
shotOffTarget: 0.401 -> 0.3773
onTargetScoringAttempt: 0.1552 -> 0.146
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.12 (squad xG sum 1.4209, xG scale 0.7861, xA scale 0.8123, team xA 0.73 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.117
squad_xg_sum=1.4209
squad_xa_sum=0.8939
team_expected_assists=0.726
team_xa_to_xg_ratio=0.65
expected_goals: 0.0368 -> 0.0289
expected_assists: 0.0481 -> 0.0391
rankings_attachedDisplay-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_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0285
goal_rate=0.0444
scorer_weight=0.0314
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0383
assist_rate=0.047
provider_weight=0.0387
-
James McAteeM8400.050.02182%10.46.926.930FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0074, quality 0.629)market_value_eur=19800000
quality_factor=0.6291
boost_factor=1.0074
reference_quality=0.505
history_matches=20
history_shrink=0.2
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0156)blend_weight=0.0156
history_matches=20
season_overlap_discount=1.0
per90_to_match_factor=0.938
prior_reliability=0.12
competition=Premier League
totalShots: 1.2371 -> 1.2178
fouls: 1.027 -> 1.011
interceptionWon: 0.9298 -> 0.9153
wasFouled: 1.3298 -> 1.3416
totalCross: 3.2691 -> 3.275
onTargetScoringAttempt: 0.3513 -> 0.3458
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Gabriel Magalhães', 'matchup_zone': 'Right Wingback vs Left Back — Overlapping Run', 'duel_win_rate': 0.275, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.8163, 'skill_edge': -0.085, 'height_edge': -0.04, 'attacker_skill': 0.7044, 'defender_skill': 0.8933, 'attacker_role': 'RWB', 'attacker_mv_price_index': 0.7, 'defender_adjusted_parts': [{'player': 'Gabriel Magalhães', 'market_value': 70000000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.8933}], 'xg_override': 0.069}
aerialWon: 0.6209 -> 1.1
totalShots: 1.2315 -> 1.0053
shotOffTarget: 0.8857 -> 0.723
onTargetScoringAttempt: 0.3458 -> 0.2823
goals: 0.0922 -> 0.0753
expectedGoals: 0.0845 -> 0.069
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.12 (squad xG sum 1.4209, xG scale 0.7861, xA scale 0.8123, team xA 0.73 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.117
squad_xg_sum=1.4209
squad_xa_sum=0.8939
team_expected_assists=0.726
team_xa_to_xg_ratio=0.65
expected_goals: 0.069 -> 0.0542
expected_assists: 0.133 -> 0.108
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 73.0)match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0528
goal_rate=0.0753
scorer_weight=0.0571
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1024
assist_rate=0.0981
provider_weight=0.0874
-
Daniel MuñozM7800.100.0667%10.86.851.128FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0059, quality 0.660)market_value_eur=23000000
quality_factor=0.6595
boost_factor=1.0059
reference_quality=0.505
history_matches=34
history_shrink=0.1282
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0033)blend_weight=0.0033
history_matches=34
season_overlap_discount=1.0
per90_to_match_factor=0.8721
prior_reliability=0.04
competition=Premier League
totalCross: 1.7313 -> 1.7255
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Bruno Guimarães', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.361, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.8688, 'skill_edge': -0.0933, 'height_edge': 0.004, 'attacker_skill': 0.6821, 'defender_skill': 0.8893, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Bruno Guimarães', 'market_value': 77000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8893}], 'xg_override': 0.1303}
aerialWon: 2.163 -> 1.1
totalShots: 1.4002 -> 1.2165
shotOffTarget: 0.9352 -> 0.8125
bigChanceMissed: 0.4702 -> 0.4085
onTargetScoringAttempt: 0.4632 -> 0.4024
goals: 0.1529 -> 0.1328
expectedGoals: 0.15 -> 0.1303
expectedGoalsOnTarget: 0.1183 -> 0.1028
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.12 (squad xG sum 1.4209, xG scale 0.7861, xA scale 0.8123, team xA 0.73 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.117
squad_xg_sum=1.4209
squad_xa_sum=0.8939
team_expected_assists=0.726
team_xa_to_xg_ratio=0.65
expected_goals: 0.1303 -> 0.1024
expected_assists: 0.0858 -> 0.0697
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 82.0)match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0973
goal_rate=0.1328
scorer_weight=0.1038
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0673
assist_rate=0.0844
provider_weight=0.069
-
MurilloD8700.070.0559%10.66.954.223FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0131, quality 0.821)market_value_eur=49000000
quality_factor=0.8206
boost_factor=1.0131
reference_quality=0.505
history_matches=31
history_shrink=0.1389
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0120)blend_weight=0.012
history_matches=31
season_overlap_discount=1.0
per90_to_match_factor=0.9684
prior_reliability=0.1333
competition=Premier League
fouls: 1.4394 -> 1.4279
totalShots: 1.2877 -> 1.278
interceptionWon: 1.2225 -> 1.2136
wonTackle: 1.1315 -> 1.1237
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Martin Ødegaard', 'matchup_zone': 'LW vs CB'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.12 (squad xG sum 1.4209, xG scale 0.7861, xA scale 0.8123, team xA 0.73 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.117
squad_xg_sum=1.4209
squad_xa_sum=0.8939
team_expected_assists=0.726
team_xa_to_xg_ratio=0.65
expected_goals: 0.0952 -> 0.0748
expected_assists: 0.0361 -> 0.0293
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 82.0)match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0721
goal_rate=0.0049
scorer_weight=0.0598
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0289
assist_rate=0.1092
provider_weight=0.0366
-
Ousmane DiomandeD8700.060.02196%10.36.817.811FBref Prior D_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0492, quality 0.800)market_value_eur=44000000
quality_factor=0.8002
boost_factor=1.0492
reference_quality=0.505
history_matches=4
history_shrink=0.5556
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Kai Havertz', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.12 (squad xG sum 1.4209, xG scale 0.7861, xA scale 0.8123, team xA 0.73 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.117
squad_xg_sum=1.4209
squad_xa_sum=0.8939
team_expected_assists=0.726
team_xa_to_xg_ratio=0.65
expected_goals: 0.0789 -> 0.062
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 81.0)match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0601
goal_rate=0.0
scorer_weight=0.0496
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0067
assist_rate=0.0
provider_weight=0.0058
-
JairD8300.020.02ok00.26.838.221XGBoost D_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0151, quality 0.686)market_value_eur=26000000
quality_factor=0.6858
boost_factor=1.0151
reference_quality=0.505
history_matches=13
history_shrink=0.2778
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Bukayo Saka', 'matchup_zone': 'Shape fallback'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.12 (squad xG sum 1.4209, xG scale 0.7861, xA scale 0.8123, team xA 0.73 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.117
squad_xg_sum=1.4209
squad_xa_sum=0.8939
team_expected_assists=0.726
team_xa_to_xg_ratio=0.65
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 80.0)match_squad_rank=14
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0154
goal_rate=0.0
scorer_weight=0.0124
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0045
assist_rate=0.0
provider_weight=0.004
-
Matz SelsG9000.00-n/a0.07.056.427FBref Prior G_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost G_service raw output over 3 target models--
market_value_boostMarket-value quality scaling (boost 0.9979, quality 0.446)market_value_eur=3700000
quality_factor=0.4461
boost_factor=0.9979
reference_quality=0.505
history_matches=37
history_shrink=0.119
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0103)blend_weight=0.0103
history_matches=37
season_overlap_discount=1.0
per90_to_match_factor=0.9956
prior_reliability=0.1333
competition=Premier League
saves: 3.0068 -> 2.9963
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Kai Havertz, Bukayo Saka', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.7419}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.12 (squad xG sum 1.4209, xG scale 0.7861, xA scale 0.8123, team xA 0.73 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.117
squad_xg_sum=1.4209
squad_xa_sum=0.8939
team_expected_assists=0.726
team_xa_to_xg_ratio=0.65
shots_faced: 16.5 -> 17.0
expected_saves: 4.03 -> 4.16
high_pressure_saves: 1.39 -> 1.43
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 81.0)match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.1226
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0
provider_weight=0.0
squad_weight_total=0.6637
-
Neco WilliamsD8900.070.0540%11.26.858.035FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0064, quality 0.710)market_value_eur=29000000
quality_factor=0.71
boost_factor=1.0064
reference_quality=0.505
history_matches=43
history_shrink=0.1042
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0090)blend_weight=0.009
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=0.9912
prior_reliability=0.1333
competition=Premier League
wonTackle: 1.374 -> 1.3929
totalCross: 5.7284 -> 5.7125
interceptionWon: 0.953 -> 0.9444
totalShots: 1.1762 -> 1.1701
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Kai Havertz', 'matchup_zone': 'Shape fallback'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.12 (squad xG sum 1.4209, xG scale 0.7861, xA scale 0.8123, team xA 0.73 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.117
squad_xg_sum=1.4209
squad_xa_sum=0.8939
team_expected_assists=0.726
team_xa_to_xg_ratio=0.65
expected_goals: 0.0861 -> 0.0677
expected_assists: 0.1518 -> 0.1233
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 80.0)match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0655
goal_rate=0.0291
scorer_weight=0.0542
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.116
assist_rate=0.0438
provider_weight=0.0986
-
Team totals11.12126.9
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
John VictorG4.5m11.3%Market-value substitute prior
Nikola MilenkovićD14.6m23.7%Market-value substitute prior
Ola AinaD14.2m23.0%Market-value substitute prior
Omari HutchinsonM23.0m54.6%Market-value substitute prior
Xaver SchlagerM19.5m51.0%Market-value substitute prior
Callum Hudson OdoiF26.5m61.2%Market-value substitute prior

Arsenal — projected line vs season baseline (4-2-3-1)

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Bukayo SakaF8400.360.30ok21.97.359.432FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0140, quality 0.897)market_value_eur=115000000
quality_factor=0.8968
boost_factor=1.014
reference_quality=0.505
history_matches=37
history_shrink=0.119
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0088)blend_weight=0.0088
history_matches=37
season_overlap_discount=1.0
per90_to_match_factor=0.9323
prior_reliability=0.1133
competition=Premier League
totalCross: 3.3589 -> 3.3727
wasFouled: 2.495 -> 2.5068
fouls: 1.0433 -> 1.0342
goals: 0.353 -> 0.3595
wonTackle: 0.9672 -> 0.9731
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Murillo, Ousmane Diomande', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.184, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.9768, 'skill_edge': 0.0182, 'height_edge': -0.034, 'attacker_skill': 0.8968, 'defender_skill': 0.8564, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Murillo', 'market_value': 49000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8633}, {'player': 'Ousmane Diomande', 'market_value': 44000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8495}], 'xg_override': 0.355}
totalShots: 2.4963 -> 2.4384
shotOffTarget: 1.4417 -> 1.4083
onTargetScoringAttempt: 1.0532 -> 1.0288
bigChanceMissed: 0.5891 -> 0.5754
expectedGoalsOnTarget: 0.5069 -> 0.4951
expectedGoals: 0.3634 -> 0.355
goals: 0.3595 -> 0.3512
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.79 (squad xG sum 1.7892, xG scale 1.0015, xA scale 1.0069, team xA 1.16 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.792
squad_xg_sum=1.7892
squad_xa_sum=1.1568
team_expected_assists=1.1648
team_xa_to_xg_ratio=0.65
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 87.0)match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.2992
goal_rate=0.3512
scorer_weight=0.3522
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1838
assist_rate=0.1132
provider_weight=0.1625
-
Bruno GuimarãesM8100.120.14ok20.97.253.521FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0148, quality 0.879)market_value_eur=77000000
quality_factor=0.8792
boost_factor=1.0148
reference_quality=0.505
history_matches=33
history_shrink=0.1316
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0011)blend_weight=0.0011
history_matches=33
season_overlap_discount=1.0
per90_to_match_factor=0.9046
prior_reliability=0.0133
competition=Premier League
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Liam Delap, Dan Ndoye, Morgan Gibbs-White', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.79 (squad xG sum 1.7892, xG scale 1.0015, xA scale 1.0069, team xA 1.16 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.792
squad_xg_sum=1.7892
squad_xa_sum=1.1568
team_expected_assists=1.1648
team_xa_to_xg_ratio=0.65
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 86.0)match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1096
goal_rate=0.1262
scorer_weight=0.1233
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.139
assist_rate=0.0981
provider_weight=0.1198
-
Declan RiceM8600.040.04ok10.67.359.730FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0125, quality 0.897)market_value_eur=114000000
quality_factor=0.8967
boost_factor=1.0125
reference_quality=0.505
history_matches=42
history_shrink=0.1064
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0078)blend_weight=0.0078
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.9541
prior_reliability=0.1133
competition=Premier League
totalCross: 3.4043 -> 3.4128
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Ibrahim Sangaré', 'matchup_zone': 'Midfield lane'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.79 (squad xG sum 1.7892, xG scale 1.0015, xA scale 1.0069, team xA 1.16 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.792
squad_xg_sum=1.7892
squad_xa_sum=1.1568
team_expected_assists=1.1648
team_xa_to_xg_ratio=0.65
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 88.0)match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.044
goal_rate=0.0506
scorer_weight=0.0477
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1333
assist_rate=0.1613
provider_weight=0.1574
-
Riccardo CalafioriD7900.180.09102%10.86.844.723FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0143, quality 0.859)market_value_eur=63000000
quality_factor=0.8589
boost_factor=1.0143
reference_quality=0.505
history_matches=32
history_shrink=0.1351
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0111)blend_weight=0.0111
history_matches=32
season_overlap_discount=1.0
per90_to_match_factor=0.8804
prior_reliability=0.1267
competition=Premier League
goalAssist: 0.153 -> 0.1616
wonTackle: 0.963 -> 0.9574
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Liam Delap', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.79 (squad xG sum 1.7892, xG scale 1.0015, xA scale 1.0069, team xA 1.16 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.792
squad_xg_sum=1.7892
squad_xa_sum=1.1568
team_expected_assists=1.1648
team_xa_to_xg_ratio=0.65
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 82.0)match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1674
goal_rate=0.154
scorer_weight=0.1605
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0768
assist_rate=0.1616
provider_weight=0.0999
-
Gabriel MagalhãesD9000.100.0730%10.76.959.630FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0128, quality 0.871)market_value_eur=70000000
quality_factor=0.8707
boost_factor=1.0128
reference_quality=0.505
history_matches=38
history_shrink=0.1163
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0101)blend_weight=0.0101
history_matches=38
season_overlap_discount=1.0
per90_to_match_factor=0.9996
prior_reliability=0.1333
competition=Premier League
wonTackle: 0.7434 -> 0.7359
fouls: 0.9256 -> 0.9314
interceptionWon: 0.9588 -> 0.9642
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'James McAtee', 'matchup_zone': 'Right Wingback vs Left Back — Overlapping Run'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.79 (squad xG sum 1.7892, xG scale 1.0015, xA scale 1.0069, team xA 1.16 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.792
squad_xg_sum=1.7892
squad_xa_sum=1.1568
team_expected_assists=1.1648
team_xa_to_xg_ratio=0.65
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 88.0)match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0907
goal_rate=0.0078
scorer_weight=0.0761
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0431
assist_rate=0.0305
provider_weight=0.0378
-
Ezri KonsaD9000.050.04ok00.36.852.428FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0112, quality 0.834)market_value_eur=53000000
quality_factor=0.834
boost_factor=1.0112
reference_quality=0.505
history_matches=39
history_shrink=0.1136
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0005)blend_weight=0.0005
history_matches=39
season_overlap_discount=1.0
per90_to_match_factor=0.9999
prior_reliability=0.0067
competition=Premier League
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=true
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Ibrahim Sangaré', 'matchup_zone': 'Left Wingback vs Right Back — Overlapping Run'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.79 (squad xG sum 1.7892, xG scale 1.0015, xA scale 1.0069, team xA 1.16 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.792
squad_xg_sum=1.7892
squad_xa_sum=1.1568
team_expected_assists=1.1648
team_xa_to_xg_ratio=0.65
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 84.0)match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0498
goal_rate=0.0
scorer_weight=0.0409
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0095
assist_rate=0.0
provider_weight=0.008
-
Ben WhiteD7300.030.01170%00.16.734.624FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0155, quality 0.732)market_value_eur=32000000
quality_factor=0.732
boost_factor=1.0155
reference_quality=0.505
history_matches=17
history_shrink=0.2273
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0197)blend_weight=0.0197
history_matches=17
season_overlap_discount=1.0
per90_to_match_factor=0.8161
prior_reliability=0.1333
competition=Premier League
totalCross: 1.8276 -> 1.8398
wasFouled: 0.8817 -> 0.8724
wonTackle: 1.081 -> 1.0758
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Liam Delap', 'matchup_zone': 'Shape fallback'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.79 (squad xG sum 1.7892, xG scale 1.0015, xA scale 1.0069, team xA 1.16 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.792
squad_xg_sum=1.7892
squad_xa_sum=1.1568
team_expected_assists=1.1648
team_xa_to_xg_ratio=0.65
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 86.0)match_squad_rank=14
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.029
goal_rate=0.0
scorer_weight=0.0235
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0794
assist_rate=0.285
provider_weight=0.1034
-
David RayaG9000.00-n/a0.06.957.429FBref Prior G_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost G_service raw output over 3 target models--
market_value_boostMarket-value quality scaling (boost 1.0073, quality 0.739)market_value_eur=33000000
quality_factor=0.7389
boost_factor=1.0073
reference_quality=0.505
history_matches=43
history_shrink=0.1042
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0090)blend_weight=0.009
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League
saves: 2.9583 -> 2.9361
wasFouled: 0.6282 -> 0.6225
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Liam Delap, Dan Ndoye', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.1498}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.79 (squad xG sum 1.7892, xG scale 1.0015, xA scale 1.0069, team xA 1.16 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.792
squad_xg_sum=1.7892
squad_xa_sum=1.1568
team_expected_assists=1.1648
team_xa_to_xg_ratio=0.65
shots_faced: 10.9 -> 10.6
expected_saves: 2.67 -> 2.59
high_pressure_saves: 0.92 -> 0.89
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 88.0)match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.7121
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0
provider_weight=0.0
squad_weight_total=1.1173
-
Martin ØdegaardM8000.190.1094%20.67.252.123FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0164, quality 0.888)market_value_eur=88000000
quality_factor=0.8879
boost_factor=1.0164
reference_quality=0.505
history_matches=30
history_shrink=0.1429
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0099)blend_weight=0.0099
history_matches=30
season_overlap_discount=1.0
per90_to_match_factor=0.8869
prior_reliability=0.1067
competition=Premier League
wonTackle: 0.5436 -> 0.5547
totalShots: 1.4303 -> 1.4379
totalCross: 1.1395 -> 1.1447
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Murillo', 'matchup_zone': 'LW vs CB', 'duel_win_rate': 0.411, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9869, 'skill_edge': 0.0111, 'height_edge': -0.02, 'attacker_skill': 0.8879, 'defender_skill': 0.8633, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Murillo', 'market_value': 49000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8633}], 'xg_override': 0.1944}
aerialWon: 0.0701 -> 1.0
totalShots: 1.4379 -> 1.4191
shotOffTarget: 0.8154 -> 0.8047
onTargetScoringAttempt: 0.6143 -> 0.6063
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.79 (squad xG sum 1.7892, xG scale 1.0015, xA scale 1.0069, team xA 1.16 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.792
squad_xg_sum=1.7892
squad_xa_sum=1.1568
team_expected_assists=1.1648
team_xa_to_xg_ratio=0.65
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 86.0)match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1769
goal_rate=0.1812
scorer_weight=0.1842
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=1
assist_probability=0.1623
assist_rate=0.1685
provider_weight=0.1713
-
Eberechi EzeM7400.150.0971%21.16.849.930FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0126, quality 0.859)market_value_eur=63000000
quality_factor=0.8589
boost_factor=1.0126
reference_quality=0.505
history_matches=37
history_shrink=0.119
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0036)blend_weight=0.0036
history_matches=37
season_overlap_discount=1.0
per90_to_match_factor=0.8207
prior_reliability=0.0467
competition=Premier League
wasFouled: 1.8442 -> 1.8502
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Morgan Gibbs-White', 'matchup_zone': 'CAM vs CM', 'duel_win_rate': 0.439, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 1.0275, 'skill_edge': -0.0093, 'height_edge': 0.028, 'attacker_skill': 0.865, 'defender_skill': 0.8855, 'attacker_role': 'CAM', 'attacker_mv_price_index': 0.95, 'defender_adjusted_parts': [{'player': 'Morgan Gibbs-White', 'market_value': 76000000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.8855}], 'xg_override': 0.1479}
aerialWon: 0.3706 -> 1.0
totalShots: 1.4618 -> 1.502
shotOffTarget: 0.9413 -> 0.9672
onTargetScoringAttempt: 0.5194 -> 0.5337
expectedGoalsOnTarget: 0.3316 -> 0.3407
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.79 (squad xG sum 1.7892, xG scale 1.0015, xA scale 1.0069, team xA 1.16 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.792
squad_xg_sum=1.7892
squad_xa_sum=1.1568
team_expected_assists=1.1648
team_xa_to_xg_ratio=0.65
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 84.0)match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1377
goal_rate=0.1415
scorer_weight=0.1433
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0637
assist_rate=0.0608
provider_weight=0.0632
-
Kai HavertzF7710.400.2279%31.36.950.223FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0224, quality 0.848)market_value_eur=58000000
quality_factor=0.8478
boost_factor=1.0224
reference_quality=0.505
history_matches=18
history_shrink=0.2174
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0188)blend_weight=0.0188
history_matches=18
season_overlap_discount=1.0
per90_to_match_factor=0.8524
prior_reliability=0.1333
competition=Premier League
totalOffside: 1.2009 -> 1.2345
totalShots: 2.4483 -> 2.4182
wasFouled: 1.0734 -> 1.0853
totalCross: 0.4955 -> 0.4862
fouls: 0.9056 -> 0.9126
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Murillo, Ousmane Diomande', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.222, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 1.0326, 'skill_edge': -0.0038, 'height_edge': 0.026, 'attacker_skill': 0.8478, 'defender_skill': 0.8564, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Murillo', 'market_value': 49000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8633}, {'player': 'Ousmane Diomande', 'market_value': 44000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8495}], 'xg_override': 0.3991}
totalShots: 2.4457 -> 2.5255
shotOffTarget: 1.4561 -> 1.5036
onTargetScoringAttempt: 0.9896 -> 1.0219
bigChanceMissed: 0.7184 -> 0.7418
expectedGoalsOnTarget: 0.4299 -> 0.4439
expectedGoals: 0.3865 -> 0.3991
goals: 0.3726 -> 0.3847
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.79 (squad xG sum 1.7892, xG scale 1.0015, xA scale 1.0069, team xA 1.16 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.792
squad_xg_sum=1.7892
squad_xa_sum=1.1568
team_expected_assists=1.1648
team_xa_to_xg_ratio=0.65
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 81.0)match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.3295
goal_rate=0.3847
scorer_weight=0.387
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.075
assist_rate=0.0836
provider_weight=0.0817
-
Team totals11.79167.0
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Illan MeslierG4.6m11.9%Market-value substitute prior
William SalibaD15.4m38.0%Market-value substitute prior
Jurriën TimberD15.3m37.7%Market-value substitute prior
Martín ZubimendiM18.9m72.8%Market-value substitute prior
Max DowmanM23.5m57.0%Market-value substitute prior
Viktor GyökeresF26.9m63.4%Market-value substitute prior
Antagonist / tactical summary
Midfield is evenly contested — Morgan Gibbs-White vs Declan Rice will be the pivotal duel. Total antagonist xG — Home: 1.09, Away: 1.10. Home danger zone: Shadow Striker vs CDM + CB — Zone 14 Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Midfield — possession 48.2% / 51.8%, dominance ratio 0.45, key duel: Morgan Gibbs-White vs Declan Rice
Liam Delap xG 0.34Dan Ndoye xG 0.29Ibrahim Sangaré xG 0.04Martin Ødegaard xG 0.19Eberechi Eze xG 0.15Kai Havertz xG 0.40

Summary

Antagonist matchup analysis for Forest vs Arsenal. Most likely scoreline: 1-1. Lambdas derived from 6 home and 4 away individual player duels. Head-to-head: Forest 2W-2D-6L vs Arsenal over 10 meetings.
Tactical parity between 3-4-2-1 and 4-2-3-1. Match outcome driven primarily by individual player quality. Midfield is evenly contested — Morgan Gibbs-White vs Declan Rice will be the pivotal duel. Total antagonist xG — Home: 1.09, Away: 1.10. Home danger zone: Shadow Striker vs CDM + CB — Zone 14 Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.

Brighton vs Crystal Palace

Premier League · 20261018 · 4-2-3-1 vs 3-4-2-1
Predicted 1-1Winner: DrawWinning H 1-0 (10.0%)Winning A 0-1 (8.5%)Confidence 0.7λ home/away 1.43 / 1.22Most-likely P 12.4%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset Tracing
Antagonist + XGBoost match analysis for Brighton vs Crystal Palace. Player statistics regressed using position-specific XGBoost models (G, D, M, F) with 2026-2027 FBref priors. Micro-duels resolved across 4-2-3-1 vs 3-4-2-1 (duel lambdas: Home 1.440, Away 1.207). Final calibrated Poisson lambdas: Home 1.430, Away 1.216 (most likely score 1-1).
Home Starters 11/11 XGBoost (9 FBref) Away Starters 11/11 XGBoost (8 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.44 / 1.21 Final λ (H/A) 1.43 / 1.22
Modeling Pipeline Stages (5 layers)
  1. 1. XGBoost player regressions for volume & event rates with market-value quality scaling
  2. 2. Multi-source prior blending (FBref 2026-2027 tables + Sofascore season history)
  3. 3. Antagonist formation duel matrix resolving 1v1 and zonal matchups
  4. 4. Team-level prior calibration (FBref possession and attack/defense efficiencies)
  5. 5. Bivariate Poisson matrix with Dixon-Coles low-score correction

Standing & form context

MetricBrightonCrystal Palace
League position3.0012.00
Points per game1.751.25
Attack index1.341.01
Defense (concede) index1.120.85
Form multiplier1.030.97
Standing λ multiplier1.190.94

Lambda decomposition (how the goal rates were built)

StageBrighton λCrystal Palace λ
Pre-competitive-floor1.4301.216
Pre-calibration (Micro-duels)1.4401.207
Final λ1.4301.216
competition calibration scale 1.0competition observed total goals 0.0quality gap applied Falsemismatch score pressure applied Falsecompetitive underdog floor applied Falsestage discount 1.0

Scoreline distribution & markets

Top 5 scorelinesP
1-112.4%
1-010.0%
2-18.8%
0-18.5%
1-27.5%
Home win41.9%
Draw26.2%
Away win31.9%
Over 2.549.3%
BTTS yes53.6%
Pregame fair line — favorite Brighton (41.9%), fair total 2.65, fair spread 0.21

Projected players vs season baseline

Proj = projected for this match · Season = this season's per-game average from match data · deviation badge compares projected xG to the player's season xG/game.

Brighton — projected line vs season baseline (4-2-3-1)

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Charalampos KostoulasF7710.280.10165%20.96.842.727FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0136, quality 0.796)market_value_eur=43000000
quality_factor=0.7957
boost_factor=1.0136
reference_quality=0.505
history_matches=27
history_shrink=0.1562
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0081)blend_weight=0.0081
history_matches=27
season_overlap_discount=1.0
per90_to_match_factor=0.8567
prior_reliability=0.08
competition=Premier League
wasFouled: 1.1189 -> 1.1098
wonTackle: 0.7157 -> 0.7099
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Jaydee Canvot, Chris Richards', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.201, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 1.0009, 'skill_edge': 0.0126, 'height_edge': -0.012, 'attacker_skill': 0.7957, 'defender_skill': 0.7676, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Jaydee Canvot', 'market_value': 32000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7941}, {'player': 'Chris Richards', 'market_value': 25000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7411}], 'xg_override': 0.2502}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.43 (squad xG sum 1.2924, xG scale 1.1065, xA scale 1.1065, team xA 0.97 = 0.68 x lambda)scoreline_reset=true
team_lambda=1.43
squad_xg_sum=1.2924
squad_xa_sum=0.8726
team_expected_assists=0.9656
team_xa_to_xg_ratio=0.6752
expected_goals: 0.2502 -> 0.2767
expected_assists: 0.063 -> 0.0697
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 73.0)match_squad_rank=12
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.2417
goal_rate=0.3154
scorer_weight=0.3368
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0673
assist_rate=0.2724
provider_weight=0.0871
-
Maxim De CuyperD7900.190.1165%10.66.850.235FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0075, quality 0.710)market_value_eur=29000000
quality_factor=0.71
boost_factor=1.0075
reference_quality=0.505
history_matches=36
history_shrink=0.122
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0100)blend_weight=0.01
history_matches=36
season_overlap_discount=1.0
per90_to_match_factor=0.8724
prior_reliability=0.1267
competition=Premier League
totalCross: 4.354 -> 4.3702
totalShots: 0.8201 -> 0.8354
fouls: 0.907 -> 0.9163
wasFouled: 0.743 -> 0.7355
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Quinten Timber', 'matchup_zone': 'Right Wingback vs Left Back — Overlapping Run'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.43 (squad xG sum 1.2924, xG scale 1.1065, xA scale 1.1065, team xA 0.97 = 0.68 x lambda)scoreline_reset=true
team_lambda=1.43
squad_xg_sum=1.2924
squad_xa_sum=0.8726
team_expected_assists=0.9656
team_xa_to_xg_ratio=0.6752
expected_goals: 0.1696 -> 0.1877
expected_assists: 0.1754 -> 0.194
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 78.0)match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1711
goal_rate=0.2392
scorer_weight=0.2346
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=1
assist_probability=0.1763
assist_rate=0.2884
provider_weight=0.2425
-
Yasin AyariM8600.170.05224%10.86.848.724FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0108, quality 0.786)market_value_eur=41000000
quality_factor=0.7859
boost_factor=1.0108
reference_quality=0.505
history_matches=34
history_shrink=0.1282
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0039)blend_weight=0.0039
history_matches=34
season_overlap_discount=1.0
per90_to_match_factor=0.9607
prior_reliability=0.0467
competition=Premier League
fouls: 0.5778 -> 0.5862
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Jørgen Strand Larsen, Yéremy Pino, Adam Wharton', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.43 (squad xG sum 1.2924, xG scale 1.1065, xA scale 1.1065, team xA 0.97 = 0.68 x lambda)scoreline_reset=true
team_lambda=1.43
squad_xg_sum=1.2924
squad_xa_sum=0.8726
team_expected_assists=0.9656
team_xa_to_xg_ratio=0.6752
expected_goals: 0.1494 -> 0.1653
expected_assists: 0.0667 -> 0.0738
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 79.0)match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1524
goal_rate=0.1161
scorer_weight=0.1377
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0711
assist_rate=0.055
provider_weight=0.0664
-
Diego GómezM8100.200.1448%21.47.054.826FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0079, quality 0.732)market_value_eur=32000000
quality_factor=0.732
boost_factor=1.0079
reference_quality=0.505
history_matches=38
history_shrink=0.1163
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0096)blend_weight=0.0096
history_matches=38
season_overlap_discount=1.0
per90_to_match_factor=0.9051
prior_reliability=0.1267
competition=Premier League
totalShots: 1.912 -> 1.9293
onTargetScoringAttempt: 0.6323 -> 0.6396
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Daichi Kamada', 'matchup_zone': 'Midfield lane'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.43 (squad xG sum 1.2924, xG scale 1.1065, xA scale 1.1065, team xA 0.97 = 0.68 x lambda)scoreline_reset=true
team_lambda=1.43
squad_xg_sum=1.2924
squad_xa_sum=0.8726
team_expected_assists=0.9656
team_xa_to_xg_ratio=0.6752
expected_goals: 0.1826 -> 0.202
expected_assists: 0.0884 -> 0.0978
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 78.0)match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1829
goal_rate=0.2178
scorer_weight=0.2326
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0932
assist_rate=0.1116
provider_weight=0.1142
-
Chema AndrésM8700.100.0671%10.36.823.69XGBoost M_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0290, quality 0.660)market_value_eur=23000000
quality_factor=0.6595
boost_factor=1.029
reference_quality=0.505
history_matches=3
history_shrink=0.625
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Adam Wharton', 'matchup_zone': 'CAM vs CM', 'duel_win_rate': 0.366, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9209, 'skill_edge': -0.0978, 'height_edge': 0.044, 'attacker_skill': 0.6704, 'defender_skill': 0.8877, 'attacker_role': 'CAM', 'attacker_mv_price_index': 0.95, 'defender_adjusted_parts': [{'player': 'Adam Wharton', 'market_value': 79000000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.8877}], 'xg_override': 0.0891}
aerialWon: 1.989 -> 1.4
totalShots: 1.0938 -> 1.0073
shotOffTarget: 0.7775 -> 0.716
onTargetScoringAttempt: 0.3163 -> 0.2913
expectedGoalsOnTarget: 0.316 -> 0.291
expectedGoals: 0.0967 -> 0.0891
goals: 0.0885 -> 0.0815
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.43 (squad xG sum 1.2924, xG scale 1.1065, xA scale 1.1065, team xA 0.97 = 0.68 x lambda)scoreline_reset=true
team_lambda=1.43
squad_xg_sum=1.2924
squad_xa_sum=0.8726
team_expected_assists=0.9656
team_xa_to_xg_ratio=0.6752
expected_goals: 0.0891 -> 0.0986
expected_assists: 0.0559 -> 0.0619
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 86.0)match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0939
goal_rate=0.0815
scorer_weight=0.0932
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.06
assist_rate=0.0696
provider_weight=0.0699
-
Pascal GroßM9000.150.1230%11.07.359.730FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 0.9966, quality 0.437)market_value_eur=2300000
quality_factor=0.4374
boost_factor=0.9966
reference_quality=0.505
history_matches=25
history_shrink=0.1667
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0144)blend_weight=0.0144
history_matches=25
season_overlap_discount=1.0
per90_to_match_factor=0.9964
prior_reliability=0.1333
competition=Premier League
totalCross: 6.0142 -> 6.0569
totalShots: 1.5262 -> 1.5114
interceptionWon: 0.6354 -> 0.6262
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Jaydee Canvot', 'matchup_zone': 'LW vs CB', 'duel_win_rate': 0.231, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.7229, 'skill_edge': -0.1605, 'height_edge': -0.028, 'attacker_skill': 0.4374, 'defender_skill': 0.7941, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Jaydee Canvot', 'market_value': 32000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7941}], 'xg_override': 0.1364}
totalShots: 1.5251 -> 1.1025
aerialWon: 0.7374 -> 1.1
shotOffTarget: 0.9601 -> 0.6941
onTargetScoringAttempt: 0.565 -> 0.4084
goals: 0.2328 -> 0.1683
expectedGoals: 0.1887 -> 0.1364
expectedGoalsOnTarget: 0.1477 -> 0.1068
bigChanceMissed: 0.0982 -> 0.071
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.43 (squad xG sum 1.2924, xG scale 1.1065, xA scale 1.1065, team xA 0.97 = 0.68 x lambda)scoreline_reset=true
team_lambda=1.43
squad_xg_sum=1.2924
squad_xa_sum=0.8726
team_expected_assists=0.9656
team_xa_to_xg_ratio=0.6752
expected_goals: 0.1364 -> 0.1509
expected_assists: 0.1747 -> 0.1933
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 79.0)match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1401
goal_rate=0.1683
scorer_weight=0.1767
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1758
assist_rate=0.1736
provider_weight=0.1924
-
Olivier BoscagliD8500.010.0154%10.27.036.331FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0072, quality 0.616)market_value_eur=18500000
quality_factor=0.6161
boost_factor=1.0072
reference_quality=0.505
history_matches=18
history_shrink=0.2174
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0188)blend_weight=0.0188
history_matches=18
season_overlap_discount=1.0
per90_to_match_factor=0.9417
prior_reliability=0.1333
competition=Premier League
totalCross: 2.9674 -> 2.9558
fouls: 1.2779 -> 1.2893
onTargetScoringAttempt: 0.0864 -> 0.0936
wonTackle: 0.8308 -> 0.824
interceptionWon: 1.1323 -> 1.1376
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Tyrick Mitchell', 'matchup_zone': 'Left Wingback vs Right Back — Overlapping Run'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.43 (squad xG sum 1.2924, xG scale 1.1065, xA scale 1.1065, team xA 0.97 = 0.68 x lambda)scoreline_reset=true
team_lambda=1.43
squad_xg_sum=1.2924
squad_xa_sum=0.8726
team_expected_assists=0.9656
team_xa_to_xg_ratio=0.6752
expected_assists: 0.0756 -> 0.0837
rankings_attachedDisplay-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_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0079
goal_rate=0.0
scorer_weight=0.0069
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0803
assist_rate=0.0232
provider_weight=0.067
-
Lewis DunkD9000.050.04ok10.67.153.427FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9979, quality 0.445)market_value_eur=3600000
quality_factor=0.4449
boost_factor=0.9979
reference_quality=0.505
history_matches=38
history_shrink=0.1163
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0101)blend_weight=0.0101
history_matches=38
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League
fouls: 0.6454 -> 0.654
totalCross: 0.2445 -> 0.2521
totalShots: 0.5563 -> 0.5507
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=true
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Yéremy Pino', 'matchup_zone': 'Shape fallback'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.43 (squad xG sum 1.2924, xG scale 1.1065, xA scale 1.1065, team xA 0.97 = 0.68 x lambda)scoreline_reset=true
team_lambda=1.43
squad_xg_sum=1.2924
squad_xa_sum=0.8726
team_expected_assists=0.9656
team_xa_to_xg_ratio=0.6752
expected_goals: 0.0486 -> 0.0538
rankings_attachedDisplay-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_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0524
goal_rate=0.2108
scorer_weight=0.0673
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0223
assist_rate=0.0
provider_weight=0.0181
-
Luka VuškovićD8800.150.07128%10.96.941.011FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0497, quality 0.869)market_value_eur=69000000
quality_factor=0.8692
boost_factor=1.0497
reference_quality=0.505
history_matches=6
history_shrink=0.4545
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0394)blend_weight=0.0394
history_matches=6
season_overlap_discount=1.0
per90_to_match_factor=0.9826
prior_reliability=0.1333
competition=Premier League
wasFouled: 1.3905 -> 1.3357
interceptionWon: 1.1102 -> 1.0665
totalShots: 1.0579 -> 1.0936
wonTackle: 0.8248 -> 0.8117
totalCross: 0.3105 -> 0.2983
fouls: 1.2589 -> 1.248
goals: 0.1553 -> 0.1492
onTargetScoringAttempt: 0.1553 -> 0.1492
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Jørgen Strand Larsen', 'matchup_zone': 'Shape fallback'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.43 (squad xG sum 1.2924, xG scale 1.1065, xA scale 1.1065, team xA 0.97 = 0.68 x lambda)scoreline_reset=true
team_lambda=1.43
squad_xg_sum=1.2924
squad_xa_sum=0.8726
team_expected_assists=0.9656
team_xa_to_xg_ratio=0.6752
expected_goals: 0.1358 -> 0.1503
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 81.0)match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1396
goal_rate=0.1492
scorer_weight=0.1611
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0125
assist_rate=0.0
provider_weight=0.0103
-
Ferdi KadıoğluD8700.040.05ok10.76.856.729XGBoost D_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0090, quality 0.786)market_value_eur=41000000
quality_factor=0.7859
boost_factor=1.009
reference_quality=0.505
history_matches=42
history_shrink=0.1064
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Jørgen Strand Larsen', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.43 (squad xG sum 1.2924, xG scale 1.1065, xA scale 1.1065, team xA 0.97 = 0.68 x lambda)scoreline_reset=true
team_lambda=1.43
squad_xg_sum=1.2924
squad_xa_sum=0.8726
team_expected_assists=0.9656
team_xa_to_xg_ratio=0.6752
expected_assists: 0.0705 -> 0.078
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 80.0)match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0416
goal_rate=0.0355
scorer_weight=0.0411
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.075
assist_rate=0.0
provider_weight=0.0624
-
Bart VerbruggenG9000.00-n/a0.07.058.730FBref Prior G_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost G_service raw output over 3 target models--
market_value_boostMarket-value quality scaling (boost 1.0079, quality 0.764)market_value_eur=37000000
quality_factor=0.7641
boost_factor=1.0079
reference_quality=0.505
history_matches=44
history_shrink=0.102
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0088)blend_weight=0.0088
history_matches=44
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League
saves: 2.9474 -> 2.9258
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Jørgen Strand Larsen, Yéremy Pino', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.207}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.43 (squad xG sum 1.2924, xG scale 1.1065, xA scale 1.1065, team xA 0.97 = 0.68 x lambda)scoreline_reset=true
team_lambda=1.43
squad_xg_sum=1.2924
squad_xa_sum=0.8726
team_expected_assists=0.9656
team_xa_to_xg_ratio=0.6752
shots_faced: 11.5 -> 11.6
expected_saves: 2.82 -> 2.84
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 81.0)match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.5787
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0
provider_weight=0.0
squad_weight_total=0.9927
-
Team totals11.43146.9
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Tom McGillG4.4m10.9%Market-value substitute prior
Mats WiefferD14.5m23.6%Market-value substitute prior
Pascal StruijkD14.4m33.9%Market-value substitute prior
Jack HinshelwoodM23.2m33.2%Market-value substitute prior
Georginio RutterM23.1m33.0%Market-value substitute prior
Yankuba MintehF26.8m62.9%Market-value substitute prior

Crystal Palace — projected line vs season baseline (3-4-2-1)

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Jørgen Strand LarsenF7510.330.14141%21.26.854.730FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0090, quality 0.786)market_value_eur=41000000
quality_factor=0.7859
boost_factor=1.009
reference_quality=0.505
history_matches=42
history_shrink=0.1064
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0046)blend_weight=0.0046
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.8336
prior_reliability=0.0667
competition=Premier League
fouls: 0.9267 -> 0.934
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Yasin Ayari, Ferdi Kadıoğlu', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle', 'duel_win_rate': 0.311, 'pressing_faced': 'HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 1.0602, 'skill_edge': -0.0191, 'height_edge': 0.06, 'attacker_skill': 0.7859, 'defender_skill': 0.8283, 'attacker_role': 'SS', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Yasin Ayari', 'market_value': 41000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8177}, {'player': 'Ferdi Kadıoğlu', 'market_value': 41000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.839}], 'xg_override': 0.3663}
totalShots: 2.1619 -> 2.292
shotOffTarget: 1.3445 -> 1.4254
onTargetScoringAttempt: 0.8174 -> 0.8666
expectedGoals: 0.3455 -> 0.3663
goals: 0.2989 -> 0.3169
bigChanceMissed: 0.2739 -> 0.2904
expectedGoalsOnTarget: 0.2069 -> 0.2194
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.22 (squad xG sum 1.3534, xG scale 0.8984, xA scale 0.8984, team xA 0.81 = 0.66 x lambda)scoreline_reset=true
team_lambda=1.216
squad_xg_sum=1.3534
squad_xa_sum=0.8965
team_expected_assists=0.8055
team_xa_to_xg_ratio=0.6624
expected_goals: 0.3663 -> 0.3292
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 77.0)match_squad_rank=12
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.2805
goal_rate=0.3169
scorer_weight=0.2901
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0422
assist_rate=0.0
provider_weight=0.0345
-
Yéremy PinoF7000.130.0861%10.97.053.332FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0060, quality 0.694)market_value_eur=27000000
quality_factor=0.6941
boost_factor=1.006
reference_quality=0.505
history_matches=42
history_shrink=0.1064
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0051)blend_weight=0.0051
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.7803
prior_reliability=0.0733
competition=Premier League
totalCross: 2.7188 -> 2.7374
fouls: 0.8787 -> 0.885
wasFouled: 1.0177 -> 1.0233
totalOffside: 0.409 -> 0.4141
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Yasin Ayari, Ferdi Kadıoğlu', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle', 'duel_win_rate': 0.206, 'pressing_faced': 'HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.9053, 'skill_edge': -0.0604, 'height_edge': -0.004, 'attacker_skill': 0.6941, 'defender_skill': 0.8283, 'attacker_role': 'SS', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Yasin Ayari', 'market_value': 41000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8177}, {'player': 'Ferdi Kadıoğlu', 'market_value': 41000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.839}], 'xg_override': 0.1427}
totalShots: 1.492 -> 1.3507
shotOffTarget: 0.9455 -> 0.856
onTargetScoringAttempt: 0.5408 -> 0.4896
expectedGoalsOnTarget: 0.2655 -> 0.2404
goals: 0.2051 -> 0.1857
expectedGoals: 0.1576 -> 0.1427
bigChanceMissed: 0.1147 -> 0.1038
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.22 (squad xG sum 1.3534, xG scale 0.8984, xA scale 0.8984, team xA 0.81 = 0.66 x lambda)scoreline_reset=true
team_lambda=1.216
squad_xg_sum=1.3534
squad_xa_sum=0.8965
team_expected_assists=0.8055
team_xa_to_xg_ratio=0.6624
expected_goals: 0.1427 -> 0.1282
expected_assists: 0.1331 -> 0.1196
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 79.0)match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1203
goal_rate=0.1857
scorer_weight=0.1568
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1127
assist_rate=0.0068
provider_weight=0.0957
-
Daichi KamadaM8400.070.07ok10.56.854.129FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0008, quality 0.526)market_value_eur=10300000
quality_factor=0.526
boost_factor=1.0008
reference_quality=0.505
history_matches=34
history_shrink=0.1282
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0111)blend_weight=0.0111
history_matches=34
season_overlap_discount=1.0
per90_to_match_factor=0.9324
prior_reliability=0.1333
competition=Premier League
wonTackle: 1.4511 -> 1.4712
totalCross: 0.9645 -> 0.9745
totalShots: 1.0307 -> 1.0244
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Yasin Ayari', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.373, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.8864, 'skill_edge': -0.1253, 'height_edge': 0.048, 'attacker_skill': 0.5393, 'defender_skill': 0.8177, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Yasin Ayari', 'market_value': 41000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8177}], 'xg_override': 0.0766}
aerialWon: 0.2679 -> 1.1
totalShots: 1.0264 -> 0.9098
shotOffTarget: 0.652 -> 0.5779
onTargetScoringAttempt: 0.3744 -> 0.3319
bigChanceMissed: 0.1511 -> 0.1339
expectedGoalsOnTarget: 0.1258 -> 0.1115
goals: 0.0922 -> 0.0817
expectedGoals: 0.0864 -> 0.0766
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.22 (squad xG sum 1.3534, xG scale 0.8984, xA scale 0.8984, team xA 0.81 = 0.66 x lambda)scoreline_reset=true
team_lambda=1.216
squad_xg_sum=1.3534
squad_xa_sum=0.8965
team_expected_assists=0.8055
team_xa_to_xg_ratio=0.6624
expected_goals: 0.0766 -> 0.0688
expected_assists: 0.1006 -> 0.0904
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 79.0)match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0665
goal_rate=0.0817
scorer_weight=0.0716
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0864
assist_rate=0.0959
provider_weight=0.0876
-
Tyrick MitchellM8500.070.06ok10.66.957.831FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0047, quality 0.660)market_value_eur=23000000
quality_factor=0.6595
boost_factor=1.0047
reference_quality=0.505
history_matches=44
history_shrink=0.102
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0088)blend_weight=0.0088
history_matches=44
season_overlap_discount=1.0
per90_to_match_factor=0.9486
prior_reliability=0.1333
competition=Premier League
wonTackle: 2.0587 -> 2.0489
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Olivier Boscagli', 'matchup_zone': 'Left Wingback vs Right Back — Overlapping Run', 'duel_win_rate': 0.394, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9909, 'skill_edge': 0.0218, 'height_edge': -0.028, 'attacker_skill': 0.7379, 'defender_skill': 0.6894, 'attacker_role': 'LWB', 'attacker_mv_price_index': 0.7, 'defender_adjusted_parts': [{'player': 'Olivier Boscagli', 'market_value': 18500000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.6894}], 'xg_override': 0.0828}
aerialWon: 0.8464 -> 0.9
totalShots: 1.0709 -> 1.0612
shotOffTarget: 0.7345 -> 0.7278
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.22 (squad xG sum 1.3534, xG scale 0.8984, xA scale 0.8984, team xA 0.81 = 0.66 x lambda)scoreline_reset=true
team_lambda=1.216
squad_xg_sum=1.3534
squad_xa_sum=0.8965
team_expected_assists=0.8055
team_xa_to_xg_ratio=0.6624
expected_goals: 0.0828 -> 0.0744
expected_assists: 0.0965 -> 0.0867
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 79.0)match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0717
goal_rate=0.0836
scorer_weight=0.0748
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.083
assist_rate=0.0768
provider_weight=0.075
-
Adam WhartonM8700.080.03177%10.77.157.629FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0125, quality 0.881)market_value_eur=79000000
quality_factor=0.8811
boost_factor=1.0125
reference_quality=0.505
history_matches=40
history_shrink=0.1111
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0096)blend_weight=0.0096
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=0.9654
prior_reliability=0.1333
competition=Premier League
totalCross: 2.6842 -> 2.663
totalShots: 1.095 -> 1.0845
interceptionWon: 0.9039 -> 0.9138
fouls: 0.7676 -> 0.7602
wasFouled: 1.4008 -> 1.4059
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Yasin Ayari', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.522, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 1.1051, 'skill_edge': 0.0315, 'height_edge': 0.04, 'attacker_skill': 0.8877, 'defender_skill': 0.8177, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Yasin Ayari', 'market_value': 41000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8177}], 'xg_override': 0.0853}
aerialWon: 0.5624 -> 1.1
totalShots: 1.0913 -> 1.206
shotOffTarget: 0.7089 -> 0.7834
onTargetScoringAttempt: 0.3824 -> 0.4226
expectedGoals: 0.0772 -> 0.0853
goals: 0.0766 -> 0.0847
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.22 (squad xG sum 1.3534, xG scale 0.8984, xA scale 0.8984, team xA 0.81 = 0.66 x lambda)scoreline_reset=true
team_lambda=1.216
squad_xg_sum=1.3534
squad_xa_sum=0.8965
team_expected_assists=0.8055
team_xa_to_xg_ratio=0.6624
expected_goals: 0.0853 -> 0.0766
expected_assists: 0.161 -> 0.1445
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 82.0)match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0737
goal_rate=0.0847
scorer_weight=0.0763
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=1
assist_probability=0.1345
assist_rate=0.1252
provider_weight=0.12
-
Quinten TimberM8700.100.04133%10.76.931.19XGBoost M_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0273, quality 0.669)market_value_eur=24000000
quality_factor=0.6685
boost_factor=1.0273
reference_quality=0.505
history_matches=4
history_shrink=0.5556
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Maxim De Cuyper', 'matchup_zone': 'Right Wingback vs Left Back — Overlapping Run', 'duel_win_rate': 0.358, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 0.9378, 'skill_edge': -0.0183, 'height_edge': -0.024, 'attacker_skill': 0.7474, 'defender_skill': 0.7881, 'attacker_role': 'RWB', 'attacker_mv_price_index': 0.7, 'defender_adjusted_parts': [{'player': 'Maxim De Cuyper', 'market_value': 29000000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.7881}], 'xg_override': 0.1095}
aerialWon: 0.5965 -> 1.0
totalShots: 1.4565 -> 1.3659
shotOffTarget: 0.98 -> 0.919
onTargetScoringAttempt: 0.4764 -> 0.4468
goals: 0.1495 -> 0.1402
expectedGoals: 0.1168 -> 0.1095
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.22 (squad xG sum 1.3534, xG scale 0.8984, xA scale 0.8984, team xA 0.81 = 0.66 x lambda)scoreline_reset=true
team_lambda=1.216
squad_xg_sum=1.3534
squad_xa_sum=0.8965
team_expected_assists=0.8055
team_xa_to_xg_ratio=0.6624
expected_goals: 0.1095 -> 0.0984
expected_assists: 0.0779 -> 0.07
rankings_attachedDisplay-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_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0937
goal_rate=0.1402
scorer_weight=0.1173
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0676
assist_rate=0.083
provider_weight=0.0728
-
Anan KhalailiM8700.110.10ok10.86.941.812FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0223, quality 0.669)market_value_eur=24000000
quality_factor=0.6685
boost_factor=1.0223
reference_quality=0.505
history_matches=6
history_shrink=0.4545
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0236)blend_weight=0.0236
history_matches=6
season_overlap_discount=1.0
per90_to_match_factor=0.9706
prior_reliability=0.08
competition=Premier League
wonTackle: 1.5802 -> 1.7149
totalCross: 2.853 -> 2.9194
interceptionWon: 1.1363 -> 1.1668
fouls: 0.853 -> 0.8711
wasFouled: 0.1439 -> 0.1596
totalShots: 1.3143 -> 1.302
onTargetScoringAttempt: 0.3629 -> 0.3543
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Yasin Ayari', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.437, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9811, 'skill_edge': -0.0568, 'height_edge': 0.044, 'attacker_skill': 0.6914, 'defender_skill': 0.8177, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Yasin Ayari', 'market_value': 41000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8177}], 'xg_override': 0.122}
aerialWon: 1.4022 -> 1.1
totalShots: 1.3057 -> 1.281
shotOffTarget: 0.9514 -> 0.9334
bigChanceMissed: 0.3684 -> 0.3614
onTargetScoringAttempt: 0.3543 -> 0.3476
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.22 (squad xG sum 1.3534, xG scale 0.8984, xA scale 0.8984, team xA 0.81 = 0.66 x lambda)scoreline_reset=true
team_lambda=1.216
squad_xg_sum=1.3534
squad_xa_sum=0.8965
team_expected_assists=0.8055
team_xa_to_xg_ratio=0.6624
expected_goals: 0.122 -> 0.1096
expected_assists: 0.1093 -> 0.0982
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 78.0)match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1038
goal_rate=0.1222
scorer_weight=0.1097
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0935
assist_rate=0.0931
provider_weight=0.0882
-
Jaydee CanvotD9000.040.05ok00.26.846.729FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0114, quality 0.732)market_value_eur=32000000
quality_factor=0.732
boost_factor=1.0114
reference_quality=0.505
history_matches=25
history_shrink=0.1667
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0144)blend_weight=0.0144
history_matches=25
season_overlap_discount=1.0
per90_to_match_factor=0.9948
prior_reliability=0.1333
competition=Premier League
wonTackle: 1.2014 -> 1.2128
interceptionWon: 1.1661 -> 1.1564
fouls: 0.4866 -> 0.4796
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Pascal Groß', 'matchup_zone': 'LW vs CB'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.22 (squad xG sum 1.3534, xG scale 0.8984, xA scale 0.8984, team xA 0.81 = 0.66 x lambda)scoreline_reset=true
team_lambda=1.216
squad_xg_sum=1.3534
squad_xa_sum=0.8965
team_expected_assists=0.8055
team_xa_to_xg_ratio=0.6624
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 76.0)match_squad_rank=11
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0369
goal_rate=0.0
scorer_weight=0.0301
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0229
assist_rate=0.0
provider_weight=0.0186
-
Chris RichardsD9000.070.07ok10.56.853.628FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0059, quality 0.677)market_value_eur=25000000
quality_factor=0.6773
boost_factor=1.0059
reference_quality=0.505
history_matches=39
history_shrink=0.1136
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0098)blend_weight=0.0098
history_matches=39
season_overlap_discount=1.0
per90_to_match_factor=0.9998
prior_reliability=0.1333
competition=Premier League
interceptionWon: 1.1567 -> 1.165
wonTackle: 0.7031 -> 0.7109
fouls: 0.5663 -> 0.5607
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Charalampos Kostoulas', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.22 (squad xG sum 1.3534, xG scale 0.8984, xA scale 0.8984, team xA 0.81 = 0.66 x lambda)scoreline_reset=true
team_lambda=1.216
squad_xg_sum=1.3534
squad_xa_sum=0.8965
team_expected_assists=0.8055
team_xa_to_xg_ratio=0.6624
expected_goals: 0.0811 -> 0.0729
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 80.0)match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0703
goal_rate=0.01
scorer_weight=0.0583
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0206
assist_rate=0.0
provider_weight=0.0166
-
Jefferson LermaM8400.080.08ok10.66.846.526FBref Prior M_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 0.9986, quality 0.468)market_value_eur=5500000
quality_factor=0.4683
boost_factor=0.9986
reference_quality=0.505
history_matches=34
history_shrink=0.1282
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Yasin Ayari', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.324, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.815, 'skill_edge': -0.1539, 'height_edge': 0.028, 'attacker_skill': 0.4758, 'defender_skill': 0.8177, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Yasin Ayari', 'market_value': 41000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8177}], 'xg_override': 0.0856}
aerialWon: 2.7156 -> 1.0
totalShots: 1.1082 -> 0.9032
shotOffTarget: 0.7749 -> 0.6315
onTargetScoringAttempt: 0.3333 -> 0.2716
bigChanceMissed: 0.2905 -> 0.2368
expectedGoalsOnTarget: 0.1638 -> 0.1335
expectedGoals: 0.105 -> 0.0856
goals: 0.0918 -> 0.0748
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.22 (squad xG sum 1.3534, xG scale 0.8984, xA scale 0.8984, team xA 0.81 = 0.66 x lambda)scoreline_reset=true
team_lambda=1.216
squad_xg_sum=1.3534
squad_xa_sum=0.8965
team_expected_assists=0.8055
team_xa_to_xg_ratio=0.6624
expected_goals: 0.0856 -> 0.0769
expected_assists: 0.0549 -> 0.0493
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 76.0)match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.074
goal_rate=0.0748
scorer_weight=0.0708
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0481
assist_rate=0.0549
provider_weight=0.0493
-
Walter BenítezG9000.00-n/a0.07.19.931FBref Prior G_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost G_service raw output over 3 target models--
market_value_boostMarket-value quality scaling (boost 0.9902, quality 0.446)market_value_eur=3700000
quality_factor=0.4461
boost_factor=0.9902
reference_quality=0.505
history_matches=4
history_shrink=0.5556
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Charalampos Kostoulas, Pascal Groß', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.4398}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.22 (squad xG sum 1.3534, xG scale 0.8984, xA scale 0.8984, team xA 0.81 = 0.66 x lambda)scoreline_reset=true
team_lambda=1.216
squad_xg_sum=1.3534
squad_xa_sum=0.8965
team_expected_assists=0.8055
team_xa_to_xg_ratio=0.6624
shots_faced: 13.7 -> 13.6
expected_saves: 3.36 -> 3.33
high_pressure_saves: 1.15 -> 1.14
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 78.0)match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.2267
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0
provider_weight=0.0
squad_weight_total=0.7186
-
Team totals11.22126.9
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Dean HendersonG5.5m15.4%Market-value substitute prior
Honest AhanorD14.9m36.1%Market-value substitute prior
Chadi RiadD14.3m23.2%Market-value substitute prior
Óscar MinguezaM19.0m70.7%Market-value substitute prior
Zavier GozoM22.8m70.1%Market-value substitute prior
Ismaïla SarrF26.7m62.3%Market-value substitute prior
Antagonist / tactical summary
Midfield is evenly contested — Yasin Ayari vs Adam Wharton will be the pivotal duel. Total antagonist xG — Home: 0.48, Away: 1.07. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Shadow Striker vs CDM + CB — Zone 14 Battle.
Midfield — possession 50.0% / 50.0%, dominance ratio 0.48, key duel: Yasin Ayari vs Adam Wharton
Pascal Groß xG 0.14Chema Andrés xG 0.09Charalampos Kostoulas xG 0.25Jørgen Strand Larsen xG 0.37Yéremy Pino xG 0.14Tyrick Mitchell xG 0.08

Summary

Antagonist matchup analysis for Brighton vs Crystal Palace. Most likely scoreline: 1-1. Lambdas derived from 3 home and 8 away individual player duels. Head-to-head: Brighton 2W-5D-3L vs Crystal Palace over 10 meetings.
Tactical parity between 4-2-3-1 and 3-4-2-1. Match outcome driven primarily by individual player quality. Midfield is evenly contested — Yasin Ayari vs Adam Wharton will be the pivotal duel. Total antagonist xG — Home: 0.48, Away: 1.07. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Shadow Striker vs CDM + CB — Zone 14 Battle.

Leeds vs Man Utd

Premier League · 20261018 · 3-4-2-1 vs 4-2-3-1
Predicted 1-1Winner: DrawWinning H 1-0 (7.8%)Winning A 0-1 (9.8%)Confidence 0.72λ home/away 1.21 / 1.52Most-likely P 12.1%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset Tracing
Antagonist + XGBoost match analysis for Leeds vs Man Utd. Player statistics regressed using position-specific XGBoost models (G, D, M, F) with 2026-2027 FBref priors. Micro-duels resolved across 3-4-2-1 vs 4-2-3-1 (duel lambdas: Home 1.281, Away 1.347). Final calibrated Poisson lambdas: Home 1.207, Away 1.524 (most likely score 1-1).
Home Starters 11/11 XGBoost (10 FBref) Away Starters 11/11 XGBoost (10 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.28 / 1.35 Final λ (H/A) 1.21 / 1.52
FBref Team Priors: Leeds United (Gls/90: 1.0, GA/90: 1.0 → E[λ]: 1.724) vs Manchester United (Gls/90: 2.0, GA/90: 2.5 → E[λ]: 1.379) | Blend Weight: 0.192
Modeling Pipeline Stages (5 layers)
  1. 1. XGBoost player regressions for volume & event rates with market-value quality scaling
  2. 2. Multi-source prior blending (FBref 2026-2027 tables + Sofascore season history)
  3. 3. Antagonist formation duel matrix resolving 1v1 and zonal matchups
  4. 4. Team-level prior calibration (FBref possession and attack/defense efficiencies)
  5. 5. Bivariate Poisson matrix with Dixon-Coles low-score correction

Standing & form context

MetricLeedsMan Utd
League position7.0013.00
Points per game1.421.17
Attack index0.971.01
Defense (concede) index1.010.85
Form multiplier1.010.98
Standing λ multiplier0.990.94

Lambda decomposition (how the goal rates were built)

StageLeeds λMan Utd λ
FBref Squad Prior E[λ] (weight 0.192)1.7241.379
Pre-competitive-floor1.2071.524
Pre-calibration (Micro-duels)1.2811.347
Final λ1.2071.524
competition calibration scale 1.0competition observed total goals 0.0quality gap applied Truemismatch score pressure applied Falsecompetitive underdog floor applied Falsestage discount 1.0

Scoreline distribution & markets

Top 5 scorelinesP
1-112.1%
0-19.8%
1-29.1%
1-07.8%
0-27.6%
Home win30.0%
Draw25.5%
Away win44.5%
Over 2.551.4%
BTTS yes54.9%
Pregame fair line — favorite Man Utd (44.5%), fair total 2.73, fair spread -0.32

Projected players vs season baseline

Proj = projected for this match · Season = this season's per-game average from match data · deviation badge compares projected xG to the player's season xG/game.

Leeds — projected line vs season baseline (3-4-2-1)

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Gabriel GudmundssonM8400.040.01298%10.36.839.531FBref Prior M_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0066, quality 0.686)market_value_eur=26000000
quality_factor=0.6858
boost_factor=1.0066
reference_quality=0.505
history_matches=36
history_shrink=0.122
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=true
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Lisandro Martínez', 'matchup_zone': 'Left Wingback vs Right Back — Overlapping Run', 'duel_win_rate': 0.377, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9667, 'skill_edge': -0.0466, 'height_edge': 0.024, 'attacker_skill': 0.765, 'defender_skill': 0.8686, 'attacker_role': 'LWB', 'attacker_mv_price_index': 0.7, 'defender_adjusted_parts': [{'player': 'Lisandro Martínez', 'market_value': 48000000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.8686}], 'xg_override': 0.0405}
aerialWon: 0.7065 -> 1.1
totalShots: 0.691 -> 0.668
shotOffTarget: 0.5026 -> 0.4859
onTargetScoringAttempt: 0.1884 -> 0.1821
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.21 (squad xG sum 1.2741, xG scale 0.9474, xA scale 0.9960, team xA 0.78 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.207
squad_xg_sum=1.2741
squad_xa_sum=0.7877
team_expected_assists=0.7846
team_xa_to_xg_ratio=0.65
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 78.0)match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0377
goal_rate=0.0471
scorer_weight=0.0412
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0873
assist_rate=0.1009
provider_weight=0.0972
-
Ao TanakaM7500.060.05ok10.46.835.331FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0034, quality 0.592)market_value_eur=16200000
quality_factor=0.5921
boost_factor=1.0034
reference_quality=0.505
history_matches=33
history_shrink=0.1316
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0028)blend_weight=0.0028
history_matches=33
season_overlap_discount=1.0
per90_to_match_factor=0.8311
prior_reliability=0.0333
competition=Premier League
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Kobbie Mainoo', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.309, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.7923, 'skill_edge': -0.1253, 'height_edge': -0.016, 'attacker_skill': 0.6109, 'defender_skill': 0.8893, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Kobbie Mainoo', 'market_value': 77000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8893}], 'xg_override': 0.0612}
aerialWon: 0.3241 -> 1.1
totalShots: 0.9809 -> 0.7772
shotOffTarget: 0.7065 -> 0.5598
onTargetScoringAttempt: 0.2744 -> 0.2174
bigChanceMissed: 0.1359 -> 0.1077
expectedGoals: 0.0772 -> 0.0612
goals: 0.0683 -> 0.0541
expectedGoalsOnTarget: 0.028 -> 0.0222
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.21 (squad xG sum 1.2741, xG scale 0.9474, xA scale 0.9960, team xA 0.78 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.207
squad_xg_sum=1.2741
squad_xa_sum=0.7877
team_expected_assists=0.7846
team_xa_to_xg_ratio=0.65
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 76.0)match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0564
goal_rate=0.0541
scorer_weight=0.0543
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.063
assist_rate=0.0638
provider_weight=0.0642
-
Ethan AmpaduM9000.050.05ok10.67.060.130FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0076, quality 0.739)market_value_eur=33000000
quality_factor=0.7389
boost_factor=1.0076
reference_quality=0.505
history_matches=41
history_shrink=0.1087
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0094)blend_weight=0.0094
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=0.9978
prior_reliability=0.1333
competition=Premier League
wonTackle: 1.0257 -> 1.0207
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Kobbie Mainoo', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.385, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9041, 'skill_edge': -0.0572, 'height_edge': -0.008, 'attacker_skill': 0.7622, 'defender_skill': 0.8893, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Kobbie Mainoo', 'market_value': 77000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8893}], 'xg_override': 0.0484}
aerialWon: 1.3742 -> 1.1
totalShots: 0.7062 -> 0.6385
shotOffTarget: 0.5227 -> 0.4726
onTargetScoringAttempt: 0.1835 -> 0.1659
expectedGoalsOnTarget: 0.0992 -> 0.0897
goals: 0.0599 -> 0.0542
expectedGoals: 0.0535 -> 0.0484
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.21 (squad xG sum 1.2741, xG scale 0.9474, xA scale 0.9960, team xA 0.78 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.207
squad_xg_sum=1.2741
squad_xa_sum=0.7877
team_expected_assists=0.7846
team_xa_to_xg_ratio=0.65
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 80.0)match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0449
goal_rate=0.0542
scorer_weight=0.0486
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0584
assist_rate=0.0662
provider_weight=0.0634
-
Jayden BogleM7900.130.0852%10.56.855.727FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0039, quality 0.623)market_value_eur=19200000
quality_factor=0.6231
boost_factor=1.0039
reference_quality=0.505
history_matches=40
history_shrink=0.1111
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0082)blend_weight=0.0082
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=0.873
prior_reliability=0.1133
competition=Premier League
wasFouled: 1.1481 -> 1.1597
totalShots: 1.2309 -> 1.2208
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Luke Shaw', 'matchup_zone': 'Right Wingback vs Left Back — Overlapping Run', 'duel_win_rate': 0.475, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.1103, 'skill_edge': 0.0751, 'height_edge': 0.0, 'attacker_skill': 0.6976, 'defender_skill': 0.5308, 'attacker_role': 'RWB', 'attacker_mv_price_index': 0.7, 'defender_adjusted_parts': [{'player': 'Luke Shaw', 'market_value': 7500000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.5308}], 'xg_override': 0.1328}
totalShots: 1.2272 -> 1.3626
aerialWon: 0.8675 -> 1.0
shotOffTarget: 0.7782 -> 0.864
onTargetScoringAttempt: 0.449 -> 0.4985
expectedGoalsOnTarget: 0.2129 -> 0.2364
bigChanceMissed: 0.1896 -> 0.2105
goals: 0.1221 -> 0.1356
expectedGoals: 0.1196 -> 0.1328
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.21 (squad xG sum 1.2741, xG scale 0.9474, xA scale 0.9960, team xA 0.78 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.207
squad_xg_sum=1.2741
squad_xa_sum=0.7877
team_expected_assists=0.7846
team_xa_to_xg_ratio=0.65
expected_goals: 0.1328 -> 0.1258
rankings_attachedDisplay-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_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1182
goal_rate=0.1356
scorer_weight=0.1277
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0952
assist_rate=0.0976
provider_weight=0.0981
-
Tarik MuharemovićD9000.090.04102%10.57.038.711FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0396, quality 0.796)market_value_eur=43000000
quality_factor=0.7957
boost_factor=1.0396
reference_quality=0.505
history_matches=6
history_shrink=0.4545
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0394)blend_weight=0.0394
history_matches=6
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League
interceptionWon: 1.2081 -> 1.2393
onTargetScoringAttempt: 0.1111 -> 0.1264
totalCross: 0.1307 -> 0.1452
wasFouled: 0.8 -> 0.7882
totalShots: 0.7193 -> 0.7107
wonTackle: 0.6868 -> 0.6794
goalAssist: 0.1809 -> 0.1738
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Bruno Fernandes', 'matchup_zone': 'LW vs CB'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.21 (squad xG sum 1.2741, xG scale 0.9474, xA scale 0.9960, team xA 0.78 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.207
squad_xg_sum=1.2741
squad_xa_sum=0.7877
team_expected_assists=0.7846
team_xa_to_xg_ratio=0.65
expected_goals: 0.0949 -> 0.0899
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 75.0)match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.086
goal_rate=0.0
scorer_weight=0.0719
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0085
assist_rate=0.1738
provider_weight=0.0106
-
Nico ElvediD8900.030.01161%00.26.830.911FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0044, quality 0.534)market_value_eur=11000000
quality_factor=0.5341
boost_factor=1.0044
reference_quality=0.505
history_matches=5
history_shrink=0.5
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0130)blend_weight=0.013
history_matches=5
season_overlap_discount=1.0
per90_to_match_factor=0.9907
prior_reliability=0.04
competition=Premier League
wasFouled: 0.0 -> 0.0429
wonTackle: 0.728 -> 0.7185
interceptionWon: 1.002 -> 1.0104
fouls: 0.5087 -> 0.5021
totalShots: 0.4926 -> 0.4862
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=true
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Matheus Cunha', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.21 (squad xG sum 1.2741, xG scale 0.9474, xA scale 0.9960, team xA 0.78 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.207
squad_xg_sum=1.2741
squad_xa_sum=0.7877
team_expected_assists=0.7846
team_xa_to_xg_ratio=0.65
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 78.0)match_squad_rank=11
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0275
goal_rate=0.0
scorer_weight=0.0223
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1082
assist_rate=0.0
provider_weight=0.0916
-
James JustinD8800.080.06ok11.06.860.233FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0034, quality 0.595)market_value_eur=16500000
quality_factor=0.5953
boost_factor=1.0034
reference_quality=0.505
history_matches=35
history_shrink=0.125
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0108)blend_weight=0.0108
history_matches=35
season_overlap_discount=1.0
per90_to_match_factor=0.977
prior_reliability=0.1333
competition=Premier League
wonTackle: 1.4355 -> 1.4464
totalShots: 1.0026 -> 0.997
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Amad Diallo', 'matchup_zone': 'Shape fallback'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.21 (squad xG sum 1.2741, xG scale 0.9474, xA scale 0.9960, team xA 0.78 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.207
squad_xg_sum=1.2741
squad_xa_sum=0.7877
team_expected_assists=0.7846
team_xa_to_xg_ratio=0.65
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 76.0)match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0752
goal_rate=0.2168
scorer_weight=0.0978
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0634
assist_rate=0.1158
provider_weight=0.0819
-
James TraffordG9000.00-n/a0.07.016.231FBref Prior G_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost G_service raw output over 3 target models--
market_value_boostMarket-value quality scaling (boost 1.0265, quality 0.770)market_value_eur=38000000
quality_factor=0.7699
boost_factor=1.0265
reference_quality=0.505
history_matches=10
history_shrink=0.3333
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0289)blend_weight=0.0289
history_matches=10
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Bryan Mbeumo, Bruno Fernandes', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.3467}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.21 (squad xG sum 1.2741, xG scale 0.9474, xA scale 0.9960, team xA 0.78 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.207
squad_xg_sum=1.2741
squad_xa_sum=0.7877
team_expected_assists=0.7846
team_xa_to_xg_ratio=0.65
shots_faced: 12.8 -> 14.5
expected_saves: 3.13 -> 3.55
high_pressure_saves: 1.08 -> 1.22
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 79.0)match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.2764
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0
provider_weight=0.0
squad_weight_total=0.7668
-
Anton StachM8700.140.1036%11.36.958.727FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0082, quality 0.725)market_value_eur=31000000
quality_factor=0.7249
boost_factor=1.0082
reference_quality=0.505
history_matches=35
history_shrink=0.125
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0108)blend_weight=0.0108
history_matches=35
season_overlap_discount=1.0
per90_to_match_factor=0.9703
prior_reliability=0.1333
competition=Premier League
totalCross: 6.7431 -> 6.7121
interceptionWon: 1.2786 -> 1.2963
wasFouled: 1.4004 -> 1.4168
fouls: 1.9183 -> 1.908
wonTackle: 1.5402 -> 1.534
totalShots: 1.4551 -> 1.4604
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Kobbie Mainoo', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.419, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9538, 'skill_edge': -0.0634, 'height_edge': 0.032, 'attacker_skill': 0.7484, 'defender_skill': 0.8893, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Kobbie Mainoo', 'market_value': 77000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8893}], 'xg_override': 0.1464}
aerialWon: 2.3909 -> 1.4
totalShots: 1.4604 -> 1.3929
shotOffTarget: 1.0103 -> 0.9636
onTargetScoringAttempt: 0.4451 -> 0.4245
bigChanceMissed: 0.2452 -> 0.2339
goals: 0.1632 -> 0.1557
expectedGoals: 0.1535 -> 0.1464
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.21 (squad xG sum 1.2741, xG scale 0.9474, xA scale 0.9960, team xA 0.78 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.207
squad_xg_sum=1.2741
squad_xa_sum=0.7877
team_expected_assists=0.7846
team_xa_to_xg_ratio=0.65
expected_goals: 0.1464 -> 0.1387
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 80.0)match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1295
goal_rate=0.1557
scorer_weight=0.1453
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=1
assist_probability=0.1037
assist_rate=0.0942
provider_weight=0.0987
-
Noah OkaforF7200.150.12ok20.96.855.524FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0095, quality 0.752)market_value_eur=35000000
quality_factor=0.752
boost_factor=1.0095
reference_quality=0.505
history_matches=34
history_shrink=0.1282
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0056)blend_weight=0.0056
history_matches=34
season_overlap_discount=1.0
per90_to_match_factor=0.7951
prior_reliability=0.0667
competition=Premier League
totalCross: 1.9046 -> 1.9161
wonTackle: 0.8229 -> 0.8316
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Kobbie Mainoo, Harry Maguire', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle', 'duel_win_rate': 0.271, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 1.0013, 'skill_edge': 0.0169, 'height_edge': -0.016, 'attacker_skill': 0.752, 'defender_skill': 0.7144, 'attacker_role': 'SS', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Kobbie Mainoo', 'market_value': 77000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8893}, {'player': 'Harry Maguire', 'market_value': 8600000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5395}], 'xg_override': 0.1544}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.21 (squad xG sum 1.2741, xG scale 0.9474, xA scale 0.9960, team xA 0.78 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.207
squad_xg_sum=1.2741
squad_xa_sum=0.7877
team_expected_assists=0.7846
team_xa_to_xg_ratio=0.65
expected_goals: 0.1544 -> 0.1463
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 77.0)match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1361
goal_rate=0.1782
scorer_weight=0.1633
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.063
assist_rate=0.0493
provider_weight=0.056
-
Dominic Calvert-LewinF8510.320.41ok21.76.955.830FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0062, quality 0.694)market_value_eur=27000000
quality_factor=0.6941
boost_factor=1.0062
reference_quality=0.505
history_matches=41
history_shrink=0.1087
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0094)blend_weight=0.0094
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=0.9494
prior_reliability=0.1333
competition=Premier League
totalOffside: 0.6958 -> 0.7027
wasFouled: 1.0634 -> 1.0579
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Kobbie Mainoo, Harry Maguire', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle', 'duel_win_rate': 0.253, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 0.9748, 'skill_edge': -0.0091, 'height_edge': -0.008, 'attacker_skill': 0.6941, 'defender_skill': 0.7144, 'attacker_role': 'SS', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Kobbie Mainoo', 'market_value': 77000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8893}, {'player': 'Harry Maguire', 'market_value': 8600000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5395}], 'xg_override': 0.3385}
totalShots: 2.1068 -> 2.0537
shotOffTarget: 1.1976 -> 1.1674
onTargetScoringAttempt: 0.9071 -> 0.8842
bigChanceMissed: 0.7658 -> 0.7465
expectedGoalsOnTarget: 0.5302 -> 0.5168
goals: 0.3898 -> 0.38
expectedGoals: 0.3473 -> 0.3385
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.21 (squad xG sum 1.2741, xG scale 0.9474, xA scale 0.9960, team xA 0.78 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.207
squad_xg_sum=1.2741
squad_xa_sum=0.7877
team_expected_assists=0.7846
team_xa_to_xg_ratio=0.65
expected_goals: 0.3385 -> 0.3205
rankings_attachedDisplay-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_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.2742
goal_rate=0.38
scorer_weight=0.3547
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0285
assist_rate=0.0042
provider_weight=0.0231
-
Team totals11.21136.9
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Lucas PerriG4.7m12.2%Market-value substitute prior
Joe RodonD14.3m23.2%Market-value substitute prior
Jaka BijolD14.3m23.1%Market-value substitute prior
Sean LongstaffM15.1m70.3%Market-value substitute prior
Ilia GruevM22.4m51.6%Market-value substitute prior
Harry WilsonF36.6m54.7%Market-value substitute prior

Man Utd — projected line vs season baseline (4-2-3-1)

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Senne LammensG9000.00-n/a0.07.059.330FBref Prior G_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost G_service raw output over 3 target models--
market_value_boostMarket-value quality scaling (boost 1.0092, quality 0.770)market_value_eur=38000000
quality_factor=0.7699
boost_factor=1.0092
reference_quality=0.505
history_matches=38
history_shrink=0.1163
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0101)blend_weight=0.0101
history_matches=38
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Dominic Calvert-Lewin, Noah Okafor', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.2813}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.52 (squad xG sum 1.3082, xG scale 1.1650, xA scale 1.1301, team xA 1.22 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.524
squad_xg_sum=1.3082
squad_xa_sum=1.0789
team_expected_assists=1.2192
team_xa_to_xg_ratio=0.8
shots_faced: 12.2 -> 11.5
expected_saves: 2.99 -> 2.82
high_pressure_saves: 1.03 -> 0.97
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 82.0)match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.6938
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0
provider_weight=0.0
squad_weight_total=1.2581
-
Bryan MbeumoF8510.450.39ok22.27.157.533FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0126, quality 0.875)market_value_eur=73000000
quality_factor=0.8747
boost_factor=1.0126
reference_quality=0.505
history_matches=39
history_shrink=0.1136
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0098)blend_weight=0.0098
history_matches=39
season_overlap_discount=1.0
per90_to_match_factor=0.9496
prior_reliability=0.1333
competition=Premier League
totalCross: 3.4363 -> 3.4726
totalShots: 2.3925 -> 2.411
interceptionWon: 0.6583 -> 0.6518
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Tarik Muharemović, Nico Elvedi', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.214, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 1.0202, 'skill_edge': 0.0737, 'height_edge': -0.06, 'attacker_skill': 0.8747, 'defender_skill': 0.7109, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Tarik Muharemović', 'market_value': 43000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8462}, {'player': 'Nico Elvedi', 'market_value': 11000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5755}], 'xg_override': 0.3853}
totalShots: 2.411 -> 2.4597
shotOffTarget: 1.3528 -> 1.3801
onTargetScoringAttempt: 1.0434 -> 1.0645
bigChanceMissed: 0.7171 -> 0.7316
expectedGoalsOnTarget: 0.4449 -> 0.4539
goals: 0.4185 -> 0.427
expectedGoals: 0.3777 -> 0.3853
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.52 (squad xG sum 1.3082, xG scale 1.1650, xA scale 1.1301, team xA 1.22 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.524
squad_xg_sum=1.3082
squad_xa_sum=1.0789
team_expected_assists=1.2192
team_xa_to_xg_ratio=0.8
expected_goals: 0.3853 -> 0.4486
expected_assists: 0.1338 -> 0.1512
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 84.0)match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.3615
goal_rate=0.427
scorer_weight=0.4916
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1403
assist_rate=0.0254
provider_weight=0.121
-
Matheus CunhaF8400.210.1180%31.87.056.230FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0128, quality 0.881)market_value_eur=79000000
quality_factor=0.8811
boost_factor=1.0128
reference_quality=0.505
history_matches=39
history_shrink=0.1136
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0089)blend_weight=0.0089
history_matches=39
season_overlap_discount=1.0
per90_to_match_factor=0.9371
prior_reliability=0.12
competition=Premier League
wonTackle: 1.1126 -> 1.1027
fouls: 1.4114 -> 1.4035
interceptionWon: 0.5933 -> 0.588
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Tarik Muharemović, Nico Elvedi', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.251, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 1.0744, 'skill_edge': 0.0766, 'height_edge': -0.026, 'attacker_skill': 0.8811, 'defender_skill': 0.7109, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Tarik Muharemović', 'market_value': 43000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8462}, {'player': 'Nico Elvedi', 'market_value': 11000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5755}], 'xg_override': 0.1765}
totalShots: 2.1173 -> 2.2748
shotOffTarget: 1.4147 -> 1.52
onTargetScoringAttempt: 0.701 -> 0.7532
goals: 0.2198 -> 0.2362
expectedGoals: 0.1643 -> 0.1765
expectedGoalsOnTarget: 0.1623 -> 0.1744
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.52 (squad xG sum 1.3082, xG scale 1.1650, xA scale 1.1301, team xA 1.22 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.524
squad_xg_sum=1.3082
squad_xa_sum=1.0789
team_expected_assists=1.2192
team_xa_to_xg_ratio=0.8
expected_goals: 0.1765 -> 0.2056
expected_assists: 0.1641 -> 0.1854
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 84.0)match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1858
goal_rate=0.2362
scorer_weight=0.257
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1692
assist_rate=0.2372
provider_weight=0.2318
-
Bruno FernandesM9000.220.22ok22.07.163.029FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0074, quality 0.732)market_value_eur=32000000
quality_factor=0.732
boost_factor=1.0074
reference_quality=0.505
history_matches=41
history_shrink=0.1087
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0094)blend_weight=0.0094
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=0.9949
prior_reliability=0.1333
competition=Premier League
totalShots: 2.3057 -> 2.3355
onTargetScoringAttempt: 0.7439 -> 0.7556
goals: 0.3442 -> 0.355
wasFouled: 0.7036 -> 0.697
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Tarik Muharemović', 'matchup_zone': 'LW vs CB', 'duel_win_rate': 0.313, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.8422, 'skill_edge': -0.0514, 'height_edge': -0.056, 'attacker_skill': 0.732, 'defender_skill': 0.8462, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Tarik Muharemović', 'market_value': 43000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8462}], 'xg_override': 0.1866}
aerialWon: 0.2881 -> 1.0
totalShots: 2.3355 -> 1.967
shotOffTarget: 1.5618 -> 1.3153
onTargetScoringAttempt: 0.7556 -> 0.6364
goals: 0.355 -> 0.299
expectedGoalsOnTarget: 0.2576 -> 0.217
expectedGoals: 0.2216 -> 0.1866
bigChanceMissed: 0.1647 -> 0.1387
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.52 (squad xG sum 1.3082, xG scale 1.1650, xA scale 1.1301, team xA 1.22 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.524
squad_xg_sum=1.3082
squad_xa_sum=1.0789
team_expected_assists=1.2192
team_xa_to_xg_ratio=0.8
expected_goals: 0.1866 -> 0.2174
expected_assists: 0.2272 -> 0.2567
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 89.0)match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1954
goal_rate=0.299
scorer_weight=0.2717
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=1
assist_probability=0.2264
assist_rate=0.3394
provider_weight=0.3209
-
Amad DialloF7700.150.07124%21.06.843.929XGBoost F_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0117, quality 0.800)market_value_eur=44000000
quality_factor=0.8002
boost_factor=1.0117
reference_quality=0.505
history_matches=33
history_shrink=0.1316
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=true
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Tarik Muharemović, Nico Elvedi', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 0.9709, 'skill_edge': 0.0402, 'height_edge': -0.06, 'attacker_skill': 0.8002, 'defender_skill': 0.7109, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Tarik Muharemović', 'market_value': 43000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8462}, {'player': 'Nico Elvedi', 'market_value': 11000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5755}], 'xg_override': 0.1319}
totalShots: 1.6802 -> 1.6313
shotOffTarget: 1.1023 -> 1.0702
onTargetScoringAttempt: 0.5779 -> 0.5611
bigChanceMissed: 0.1888 -> 0.1833
goals: 0.1872 -> 0.1818
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.52 (squad xG sum 1.3082, xG scale 1.1650, xA scale 1.1301, team xA 1.22 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.524
squad_xg_sum=1.3082
squad_xa_sum=1.0789
team_expected_assists=1.2192
team_xa_to_xg_ratio=0.8
expected_goals: 0.1319 -> 0.1537
expected_assists: 0.0738 -> 0.0834
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 80.0)match_squad_rank=11
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1425
goal_rate=0.1818
scorer_weight=0.1921
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.08
assist_rate=0.1416
provider_weight=0.1043
-
Kobbie MainooM8700.070.03166%10.67.358.728FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0144, quality 0.879)market_value_eur=77000000
quality_factor=0.8792
boost_factor=1.0144
reference_quality=0.505
history_matches=34
history_shrink=0.1282
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0061)blend_weight=0.0061
history_matches=34
season_overlap_discount=1.0
per90_to_match_factor=0.966
prior_reliability=0.0733
competition=Premier League
totalShots: 0.8279 -> 0.8435
fouls: 0.928 -> 0.9223
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Noah Okafor, Dominic Calvert-Lewin, Anton Stach', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.52 (squad xG sum 1.3082, xG scale 1.1650, xA scale 1.1301, team xA 1.22 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.524
squad_xg_sum=1.3082
squad_xa_sum=1.0789
team_expected_assists=1.2192
team_xa_to_xg_ratio=0.8
expected_goals: 0.0579 -> 0.0675
expected_assists: 0.1004 -> 0.1135
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 81.0)match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0653
goal_rate=0.0581
scorer_weight=0.0676
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1073
assist_rate=0.0724
provider_weight=0.0924
-
Youri TielemansM8000.080.0558%10.77.257.123FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0121, quality 0.796)market_value_eur=43000000
quality_factor=0.7957
boost_factor=1.0121
reference_quality=0.505
history_matches=31
history_shrink=0.1389
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0102)blend_weight=0.0102
history_matches=31
season_overlap_discount=1.0
per90_to_match_factor=0.8924
prior_reliability=0.1133
competition=Premier League
wonTackle: 1.6271 -> 1.6158
totalShots: 0.9663 -> 0.9775
wasFouled: 2.0765 -> 2.0875
onTargetScoringAttempt: 0.2605 -> 0.2683
totalCross: 1.2703 -> 1.2627
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Ethan Ampadu, Jayden Bogle', 'matchup_zone': 'Midfield lane'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.52 (squad xG sum 1.3082, xG scale 1.1650, xA scale 1.1301, team xA 1.22 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.524
squad_xg_sum=1.3082
squad_xa_sum=1.0789
team_expected_assists=1.2192
team_xa_to_xg_ratio=0.8
expected_goals: 0.0659 -> 0.0768
expected_assists: 0.1109 -> 0.1253
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 85.0)match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0739
goal_rate=0.0623
scorer_weight=0.0744
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1178
assist_rate=0.0751
provider_weight=0.1002
-
Luke ShawD8500.020.02ok10.46.856.029FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9996, quality 0.493)market_value_eur=7500000
quality_factor=0.4927
boost_factor=0.9996
reference_quality=0.505
history_matches=43
history_shrink=0.1042
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0081)blend_weight=0.0081
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=0.9459
prior_reliability=0.12
competition=Premier League
totalCross: 1.5215 -> 1.539
fouls: 0.9998 -> 0.9917
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Jayden Bogle', 'matchup_zone': 'Right Wingback vs Left Back — Overlapping Run'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.52 (squad xG sum 1.3082, xG scale 1.1650, xA scale 1.1301, team xA 1.22 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.524
squad_xg_sum=1.3082
squad_xa_sum=1.0789
team_expected_assists=1.2192
team_xa_to_xg_ratio=0.8
expected_assists: 0.0837 -> 0.0946
rankings_attachedDisplay-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_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0202
goal_rate=0.059
scorer_weight=0.0255
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0903
assist_rate=0.1082
provider_weight=0.1119
-
Lisandro MartínezD8900.040.02144%10.57.151.922FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0167, quality 0.817)market_value_eur=48000000
quality_factor=0.8168
boost_factor=1.0167
reference_quality=0.505
history_matches=23
history_shrink=0.1786
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0077)blend_weight=0.0077
history_matches=23
season_overlap_discount=1.0
per90_to_match_factor=0.9851
prior_reliability=0.0667
competition=Premier League
interceptionWon: 0.9356 -> 0.9284
wonTackle: 0.7999 -> 0.7937
fouls: 0.7732 -> 0.7672
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Gabriel Gudmundsson', 'matchup_zone': 'Left Wingback vs Right Back — Overlapping Run'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.52 (squad xG sum 1.3082, xG scale 1.1650, xA scale 1.1301, team xA 1.22 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.524
squad_xg_sum=1.3082
squad_xa_sum=1.0789
team_expected_assists=1.2192
team_xa_to_xg_ratio=0.8
expected_goals: 0.0322 -> 0.0375
rankings_attachedDisplay-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_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0368
goal_rate=0.0
scorer_weight=0.03
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.039
assist_rate=0.0
provider_weight=0.0318
-
Harry MaguireD8900.060.0454%10.76.954.027FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0000, quality 0.506)market_value_eur=8600000
quality_factor=0.5059
boost_factor=1.0
reference_quality=0.505
history_matches=29
history_shrink=0.1471
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0127)blend_weight=0.0127
history_matches=29
season_overlap_discount=1.0
per90_to_match_factor=0.991
prior_reliability=0.1333
competition=Premier League
wonTackle: 0.7684 -> 0.7586
totalCross: 0.506 -> 0.5122
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Noah Okafor', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.52 (squad xG sum 1.3082, xG scale 1.1650, xA scale 1.1301, team xA 1.22 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.524
squad_xg_sum=1.3082
squad_xa_sum=1.0789
team_expected_assists=1.2192
team_xa_to_xg_ratio=0.8
expected_goals: 0.0555 -> 0.0647
expected_assists: 0.05 -> 0.0565
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 82.0)match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0627
goal_rate=0.0044
scorer_weight=0.0518
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0549
assist_rate=0.0327
provider_weight=0.0467
-
Diogo DalotD8800.080.04128%10.86.753.729FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0066, quality 0.702)market_value_eur=28000000
quality_factor=0.7022
boost_factor=1.0066
reference_quality=0.505
history_matches=40
history_shrink=0.1111
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0043)blend_weight=0.0043
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=0.9731
prior_reliability=0.06
competition=Premier League
totalCross: 1.8427 -> 1.8581
totalShots: 0.7932 -> 0.8079
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Noah Okafor', 'matchup_zone': 'Shape fallback'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.52 (squad xG sum 1.3082, xG scale 1.1650, xA scale 1.1301, team xA 1.22 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.524
squad_xg_sum=1.3082
squad_xa_sum=1.0789
team_expected_assists=1.2192
team_xa_to_xg_ratio=0.8
expected_goals: 0.0695 -> 0.081
expected_assists: 0.0658 -> 0.0744
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 16 by projected rating, fifa_overall 78.0)match_squad_rank=16
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0778
goal_rate=0.003
scorer_weight=0.0648
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0717
assist_rate=0.0229
provider_weight=0.0595
-
Team totals11.52177.0
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Karl DarlowG4.4m10.9%Market-value substitute prior
Leny YoroD16.1m63.2%Market-value substitute prior
Ayden HeavenD14.7m24.1%Market-value substitute prior
Carlos BalebaM23.6m57.5%Market-value substitute prior
Andrey SantosM16.6m52.9%Market-value substitute prior
Benjamin ŠeškoF22.1m75.5%Market-value substitute prior
Antagonist / tactical summary
Midfield is evenly contested — Ethan Ampadu vs Kobbie Mainoo will be the pivotal duel. Total antagonist xG — Home: 0.92, Away: 0.88. Home danger zone: Shadow Striker vs CDM + CB — Zone 14 Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Midfield — possession 49.1% / 50.9%, dominance ratio 0.47, key duel: Ethan Ampadu vs Kobbie Mainoo
Noah Okafor xG 0.15Dominic Calvert-Lewin xG 0.34Gabriel Gudmundsson xG 0.04Bruno Fernandes xG 0.19Matheus Cunha xG 0.18Bryan Mbeumo xG 0.39

Summary

Antagonist matchup analysis for Leeds vs Man Utd. Most likely scoreline: 1-1. Lambdas derived from 7 home and 4 away individual player duels. Head-to-head: Leeds 1W-4D-5L vs Man Utd over 10 meetings.
Tactical parity between 3-4-2-1 and 4-2-3-1. Match outcome driven primarily by individual player quality. Midfield is evenly contested — Ethan Ampadu vs Kobbie Mainoo will be the pivotal duel. Total antagonist xG — Home: 0.92, Away: 0.88. Home danger zone: Shadow Striker vs CDM + CB — Zone 14 Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.

Málaga vs Real Sociedad

LaLiga · 20261018 · 4-1-4-1 vs 4-4-2
Predicted 0-1Winner: Real SociedadWinning H 1-0 (7.5%)Winning A 0-1 (17.4%)Confidence 0.76λ home/away 0.65 / 1.50Most-likely P 17.4%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset Tracing
Antagonist + XGBoost match analysis for Málaga vs Real Sociedad. Player statistics regressed using position-specific XGBoost models (G, D, M, F) with 2026-2027 FBref priors. Micro-duels resolved across 4-1-4-1 vs 4-4-2 (duel lambdas: Home 0.696, Away 1.462). Final calibrated Poisson lambdas: Home 0.650, Away 1.505 (most likely score 0-1).
Home Starters 11/11 XGBoost (7 FBref) Away Starters 11/11 XGBoost (8 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 0.70 / 1.46 Final λ (H/A) 0.65 / 1.50
FBref Team Priors: Málaga CF (Gls/90: 0.3333333333333333, GA/90: 0.33 → E[λ]: 0.2) vs Real Sociedad (Gls/90: 0.75, GA/90: 0.75 → E[λ]: 0.2) | Blend Weight: 0.228
Modeling Pipeline Stages (5 layers)
  1. 1. XGBoost player regressions for volume & event rates with market-value quality scaling
  2. 2. Multi-source prior blending (FBref 2026-2027 tables + Sofascore season history)
  3. 3. Antagonist formation duel matrix resolving 1v1 and zonal matchups
  4. 4. Team-level prior calibration (FBref possession and attack/defense efficiencies)
  5. 5. Bivariate Poisson matrix with Dixon-Coles low-score correction

Standing & form context

MetricMálagaReal Sociedad
League position20.006.00
Points per game0.871.51
Attack index0.730.99
Defense (concede) index1.081.02
Form multiplier0.971.03
Standing λ multiplier0.911.01

Lambda decomposition (how the goal rates were built)

StageMálaga λReal Sociedad λ
FBref Squad Prior E[λ] (weight 0.228)0.2000.200
Pre-mismatch0.7011.452
Pre-competitive-floor0.6831.587
Pre-calibration (Micro-duels)0.6961.462
Final λ0.6501.505
competition calibration scale 1.0competition observed total goals 0.0quality gap applied Truemismatch score pressure applied Truecompetitive underdog floor applied Falsestage discount 1.0

Scoreline distribution & markets

Top 5 scorelinesP
0-117.4%
0-213.1%
0-011.7%
1-111.4%
1-28.5%
Home win16.0%
Draw26.2%
Away win57.9%
Over 2.536.5%
BTTS yes37.2%
Pregame fair line — favorite Real Sociedad (57.9%), fair total 2.15, fair spread -0.85

Projected players vs season baseline

Proj = projected for this match · Season = this season's per-game average from match data · deviation badge compares projected xG to the player's season xG/game.

Málaga — projected line vs season baseline (4-1-4-1)

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
ChupeteF8800.200.3134%21.66.751.110FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0030, quality 0.531)market_value_eur=10700000
quality_factor=0.5306
boost_factor=1.003
reference_quality=0.505
history_matches=8
history_shrink=0.3846
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0500)blend_weight=0.05
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=0.9753
prior_reliability=0.2
competition=La Liga
totalCross: 0.7862 -> 0.7469
totalShots: 2.0199 -> 2.0491
onTargetScoringAttempt: 0.8393 -> 0.8134
fouls: 1.2707 -> 1.2559
wonTackle: 0.37 -> 0.384
interceptionWon: 0.16 -> 0.152
wasFouled: 1.1096 -> 1.1029
totalOffside: 0.4557 -> 0.4492
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Mamadou Sarr, Héctor Fort', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 0.8755, 'skill_edge': -0.0667, 'height_edge': -0.018, 'attacker_skill': 0.5306, 'defender_skill': 0.6789, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Mamadou Sarr', 'market_value': 24000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.732}, {'player': 'Héctor Fort', 'market_value': 14600000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6258}], 'xg_override': 0.2644}
totalShots: 2.0491 -> 1.794
shotOffTarget: 1.1805 -> 1.0335
onTargetScoringAttempt: 0.8134 -> 0.7121
goals: 0.3418 -> 0.2992
expectedGoals: 0.302 -> 0.2644
bigChanceMissed: 0.2342 -> 0.205
expectedGoalsOnTarget: 0.233 -> 0.204
scoreline_resetTeam 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_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.65 (squad xG sum 0.8509, xG scale 0.7639, xA scale 0.7639, team xA 0.50 = 0.77 x lambda)scoreline_reset=true
team_lambda=0.65
squad_xg_sum=0.8509
squad_xa_sum=0.6556
team_expected_assists=0.5008
team_xa_to_xg_ratio=0.7705
expected_goals: 0.2644 -> 0.2019
expected_assists: 0.0343 -> 0.0262
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 80.0)match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.1828
goal_rate=0.2992
scorer_weight=0.2243
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0259
assist_rate=0.0
provider_weight=0.021
-
Adrián NiñoF8000.140.1039%21.26.746.06XGBoost F_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9887, quality 0.437)market_value_eur=1900000
quality_factor=0.4374
boost_factor=0.9887
reference_quality=0.505
history_matches=4
history_shrink=0.5556
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Mamadou Sarr, Héctor Fort', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 0.8197, 'skill_edge': -0.1087, 'height_edge': -0.014, 'attacker_skill': 0.4374, 'defender_skill': 0.6789, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Mamadou Sarr', 'market_value': 24000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.732}, {'player': 'Héctor Fort', 'market_value': 14600000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6258}], 'xg_override': 0.1864}
totalShots: 2.0559 -> 1.6852
shotOffTarget: 1.2583 -> 1.0314
onTargetScoringAttempt: 0.7976 -> 0.6538
goals: 0.2567 -> 0.2104
expectedGoals: 0.2274 -> 0.1864
expectedGoalsOnTarget: 0.2208 -> 0.181
scoreline_resetTeam 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_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.65 (squad xG sum 0.8509, xG scale 0.7639, xA scale 0.7639, team xA 0.50 = 0.77 x lambda)scoreline_reset=true
team_lambda=0.65
squad_xg_sum=0.8509
squad_xa_sum=0.6556
team_expected_assists=0.5008
team_xa_to_xg_ratio=0.7705
expected_goals: 0.1864 -> 0.1424
expected_assists: 0.034 -> 0.026
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 72.0)match_squad_rank=14
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.1327
goal_rate=0.2104
scorer_weight=0.1569
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0257
assist_rate=0.0
provider_weight=0.0208
-
Dani LorenzoM7900.030.03ok00.26.953.79FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 0.9916, quality 0.437)market_value_eur=2300000
quality_factor=0.4374
boost_factor=0.9916
reference_quality=0.505
history_matches=7
history_shrink=0.4167
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0325)blend_weight=0.0325
history_matches=7
season_overlap_discount=1.0
per90_to_match_factor=0.8738
prior_reliability=0.12
competition=La Liga
fouls: 0.9023 -> 0.873
totalShots: 0.6115 -> 0.5916
wonTackle: 1.0937 -> 1.0739
interceptionWon: 0.6232 -> 0.6345
totalCross: 0.203 -> 0.1964
onTargetScoringAttempt: 0.1997 -> 0.1932
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Jon Gorrotxategi', 'matchup_zone': 'Central Mid vs Central Mid — Box-to-Box Midfield Contest', 'duel_win_rate': 0.29, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 0.8088, 'skill_edge': -0.1261, 'height_edge': -0.004, 'attacker_skill': 0.4374, 'defender_skill': 0.7176, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Jon Gorrotxategi', 'market_value': 27000000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.7176}], 'xg_override': 0.0362}
aerialWon: 0.2388 -> 0.9
totalShots: 0.6049 -> 0.4893
shotOffTarget: 0.4117 -> 0.333
onTargetScoringAttempt: 0.1932 -> 0.1563
bigChanceMissed: 0.1844 -> 0.1491
goals: 0.0592 -> 0.0479
expectedGoals: 0.0447 -> 0.0362
scoreline_resetTeam 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_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.65 (squad xG sum 0.8509, xG scale 0.7639, xA scale 0.7639, team xA 0.50 = 0.77 x lambda)scoreline_reset=true
team_lambda=0.65
squad_xg_sum=0.8509
squad_xa_sum=0.6556
team_expected_assists=0.5008
team_xa_to_xg_ratio=0.7705
expected_goals: 0.0362 -> 0.0277
expected_assists: 0.0638 -> 0.0487
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 72.0)match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0273
goal_rate=0.0479
scorer_weight=0.0315
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0475
assist_rate=0.0597
provider_weight=0.0469
-
David LarrubiaF8800.060.07ok11.47.152.218FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9969, quality 0.478)market_value_eur=6300000
quality_factor=0.4781
boost_factor=0.9969
reference_quality=0.505
history_matches=8
history_shrink=0.3846
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0400)blend_weight=0.04
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=0.9753
prior_reliability=0.16
competition=La Liga
wonTackle: 1.2478 -> 1.3117
totalShots: 1.7307 -> 1.7758
totalCross: 1.0694 -> 1.0266
fouls: 1.0994 -> 1.0717
wasFouled: 1.3211 -> 1.3008
totalOffside: 0.0977 -> 0.11
onTargetScoringAttempt: 0.5412 -> 0.5523
goals: 0.1418 -> 0.1361
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Mamadou Sarr, Héctor Fort', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 0.779, 'skill_edge': -0.0904, 'height_edge': -0.06, 'attacker_skill': 0.4781, 'defender_skill': 0.6789, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Mamadou Sarr', 'market_value': 24000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.732}, {'player': 'Héctor Fort', 'market_value': 14600000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6258}], 'xg_override': 0.0848}
totalShots: 1.7758 -> 1.3833
shotOffTarget: 1.1895 -> 0.9266
onTargetScoringAttempt: 0.5523 -> 0.4302
goals: 0.1361 -> 0.106
expectedGoals: 0.1089 -> 0.0848
expectedGoalsOnTarget: 0.0858 -> 0.0668
scoreline_resetTeam 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_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.65 (squad xG sum 0.8509, xG scale 0.7639, xA scale 0.7639, team xA 0.50 = 0.77 x lambda)scoreline_reset=true
team_lambda=0.65
squad_xg_sum=0.8509
squad_xa_sum=0.6556
team_expected_assists=0.5008
team_xa_to_xg_ratio=0.7705
expected_goals: 0.0848 -> 0.0648
expected_assists: 0.1595 -> 0.1219
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 81.0)match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0627
goal_rate=0.106
scorer_weight=0.075
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.1148
assist_rate=0.0
provider_weight=0.0975
-
Carlos DotorM8100.050.0349%10.46.955.010FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 0.9916, quality 0.437)market_value_eur=1200000
quality_factor=0.4374
boost_factor=0.9916
reference_quality=0.505
history_matches=7
history_shrink=0.4167
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0451)blend_weight=0.0451
history_matches=7
season_overlap_discount=1.0
per90_to_match_factor=0.8953
prior_reliability=0.1667
competition=La Liga
wonTackle: 1.0809 -> 1.1291
fouls: 1.2684 -> 1.2273
wasFouled: 0.6806 -> 0.6499
totalCross: 0.1246 -> 0.1513
totalShots: 0.7418 -> 0.7241
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Jon Gorrotxategi', 'matchup_zone': 'Holding Mid vs Central Mid — Midfield Anchor Duel', 'duel_win_rate': 0.286, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 0.8323, 'skill_edge': -0.1261, 'height_edge': 0.012, 'attacker_skill': 0.4374, 'defender_skill': 0.7176, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Jon Gorrotxategi', 'market_value': 27000000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.7176}], 'xg_override': 0.0653}
aerialWon: 0.3451 -> 1.1
totalShots: 0.7466 -> 0.6214
shotOffTarget: 0.5 -> 0.4162
onTargetScoringAttempt: 0.2466 -> 0.2052
expectedGoalsOnTarget: 0.2403 -> 0.2
goals: 0.0811 -> 0.0675
expectedGoals: 0.0785 -> 0.0653
scoreline_resetTeam 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_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.65 (squad xG sum 0.8509, xG scale 0.7639, xA scale 0.7639, team xA 0.50 = 0.77 x lambda)scoreline_reset=true
team_lambda=0.65
squad_xg_sum=0.8509
squad_xa_sum=0.6556
team_expected_assists=0.5008
team_xa_to_xg_ratio=0.7705
expected_goals: 0.0653 -> 0.0499
expected_assists: 0.0707 -> 0.054
rankings_attachedDisplay-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_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0487
goal_rate=0.0675
scorer_weight=0.0509
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0526
assist_rate=0.0697
provider_weight=0.0536
-
Jose SalinasD8300.000.0151%00.16.618.530FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9954, quality 0.437)market_value_eur=1800000
quality_factor=0.4374
boost_factor=0.9954
reference_quality=0.505
history_matches=17
history_shrink=0.2273
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0059)blend_weight=0.0059
history_matches=17
season_overlap_discount=1.0
per90_to_match_factor=0.9189
prior_reliability=0.04
competition=La Liga
fouls: 1.5985 -> 1.5891
totalCross: 1.1364 -> 1.1297
wasFouled: 0.9784 -> 0.9726
wonTackle: 0.9564 -> 0.9507
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Takefusa Kubo', 'matchup_zone': 'Shape fallback'}
-
scoreline_resetTeam 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_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.65 (squad xG sum 0.8509, xG scale 0.7639, xA scale 0.7639, team xA 0.50 = 0.77 x lambda)scoreline_reset=true
team_lambda=0.65
squad_xg_sum=0.8509
squad_xa_sum=0.6556
team_expected_assists=0.5008
team_xa_to_xg_ratio=0.7705
expected_assists: 0.0388 -> 0.0296
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 18 by projected rating, fifa_overall 77.0)match_squad_rank=18
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0028
goal_rate=0.0
scorer_weight=0.0026
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0292
assist_rate=0.0
provider_weight=0.0237
-
Ángel RecioD9000.020.01ok10.66.954.410XGBoost D_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9922, quality 0.437)market_value_eur=1000000
quality_factor=0.4374
boost_factor=0.9922
reference_quality=0.505
history_matches=8
history_shrink=0.3846
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Mikel Oyarzabal', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam 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_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.65 (squad xG sum 0.8509, xG scale 0.7639, xA scale 0.7639, team xA 0.50 = 0.77 x lambda)scoreline_reset=true
team_lambda=0.65
squad_xg_sum=0.8509
squad_xa_sum=0.6556
team_expected_assists=0.5008
team_xa_to_xg_ratio=0.7705
-
rankings_attachedDisplay-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_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0159
goal_rate=0.0
scorer_weight=0.0128
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0064
assist_rate=0.0
provider_weight=0.0055
-
Fernando CaleroD8500.030.03ok00.36.853.720XGBoost D_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9970, quality 0.437)market_value_eur=2100000
quality_factor=0.4374
boost_factor=0.997
reference_quality=0.505
history_matches=29
history_shrink=0.1471
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Mikel Oyarzabal', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam 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_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.65 (squad xG sum 0.8509, xG scale 0.7639, xA scale 0.7639, team xA 0.50 = 0.77 x lambda)scoreline_reset=true
team_lambda=0.65
squad_xg_sum=0.8509
squad_xa_sum=0.6556
team_expected_assists=0.5008
team_xa_to_xg_ratio=0.7705
expected_goals: 0.0388 -> 0.0296
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 81.0)match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0292
goal_rate=0.0
scorer_weight=0.0237
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0099
assist_rate=0.0
provider_weight=0.0079
-
Rafa GarridoD8800.000.0037%00.16.753.810XGBoost D_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9922, quality 0.437)market_value_eur=1400000
quality_factor=0.4374
boost_factor=0.9922
reference_quality=0.505
history_matches=8
history_shrink=0.3846
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Carlos Soler', 'matchup_zone': 'Left Mid vs Right Back — Wide Channel'}
-
scoreline_resetTeam 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_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.65 (squad xG sum 0.8509, xG scale 0.7639, xA scale 0.7639, team xA 0.50 = 0.77 x lambda)scoreline_reset=true
team_lambda=0.65
squad_xg_sum=0.8509
squad_xa_sum=0.6556
team_expected_assists=0.5008
team_xa_to_xg_ratio=0.7705
expected_assists: 0.0262 -> 0.02
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 79.0)match_squad_rank=11
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0019
goal_rate=0.0
scorer_weight=0.0018
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0198
assist_rate=0.2191
provider_weight=0.025
-
Alfonso HerreroG9000.00-n/a0.07.158.710FBref Prior G_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost G_service raw output over 3 target models--
market_value_boostMarket-value quality scaling (boost 0.9922, quality 0.437)market_value_eur=420000
quality_factor=0.4374
boost_factor=0.9922
reference_quality=0.505
history_matches=8
history_shrink=0.3846
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0500)blend_weight=0.05
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.2
competition=La Liga
saves: 2.9467 -> 2.9994
wasFouled: 0.2995 -> 0.2845
fouls: 0.1478 -> 0.1404
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Orri Óskarsson, Mikel Oyarzabal', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.4617}
-
scoreline_resetTeam 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_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.65 (squad xG sum 0.8509, xG scale 0.7639, xA scale 0.7639, team xA 0.50 = 0.77 x lambda)scoreline_reset=true
team_lambda=0.65
squad_xg_sum=0.8509
squad_xa_sum=0.6556
team_expected_assists=0.5008
team_xa_to_xg_ratio=0.7705
shots_faced: 13.9 -> 14.3
expected_saves: 3.4 -> 3.5
high_pressure_saves: 1.17 -> 1.2
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 75.0)match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=0.6936
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0
provider_weight=0.0
squad_weight_total=0.4548
-
Pablo MartínezM8100.050.05ok10.86.960.526FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 0.9974, quality 0.439)market_value_eur=3100000
quality_factor=0.4387
boost_factor=0.9974
reference_quality=0.505
history_matches=33
history_shrink=0.1316
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0028)blend_weight=0.0028
history_matches=33
season_overlap_discount=1.0
per90_to_match_factor=0.8977
prior_reliability=0.0333
competition=La Liga
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Jon Martin', 'matchup_zone': 'Left Mid vs Right Back — Wide Channel', 'duel_win_rate': 0.311, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 0.781, 'skill_edge': -0.137, 'height_edge': -0.012, 'attacker_skill': 0.4429, 'defender_skill': 0.7474, 'attacker_role': 'LM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Jon Martin', 'market_value': 24000000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.7474}], 'xg_override': 0.0656}
aerialWon: 0.4074 -> 1.1
totalShots: 1.0863 -> 0.8484
shotOffTarget: 0.7262 -> 0.5672
onTargetScoringAttempt: 0.3601 -> 0.2812
expectedGoals: 0.084 -> 0.0656
goals: 0.0767 -> 0.0599
scoreline_resetTeam 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_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.65 (squad xG sum 0.8509, xG scale 0.7639, xA scale 0.7639, team xA 0.50 = 0.77 x lambda)scoreline_reset=true
team_lambda=0.65
squad_xg_sum=0.8509
squad_xa_sum=0.6556
team_expected_assists=0.5008
team_xa_to_xg_ratio=0.7705
expected_goals: 0.0656 -> 0.0501
expected_assists: 0.1447 -> 0.1105
rankings_attachedDisplay-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_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0489
goal_rate=0.0599
scorer_weight=0.0476
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.1046
assist_rate=0.1472
provider_weight=0.1119
-
Team totals00.65106.8
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Carlos LopezG4.4m10.9%Market-value substitute prior
Adam AznouD13.7m30.6%Market-value substitute prior
Diego MurilloD13.6m29.9%Market-value substitute prior
Jens-Lys CajusteM22.1m50.7%Market-value substitute prior
Izan MerinoM22.1m50.3%Market-value substitute prior
Joaquín MuñozF25.3m55.9%Market-value substitute prior

Real Sociedad — projected line vs season baseline (4-4-2)

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Mikel OyarzabalF7900.290.34ok21.67.063.532FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0060, quality 0.694)market_value_eur=27000000
quality_factor=0.6941
boost_factor=1.006
reference_quality=0.505
history_matches=42
history_shrink=0.1064
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0138)blend_weight=0.0138
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.8763
prior_reliability=0.2
competition=La Liga
wasFouled: 1.1752 -> 1.1872
wonTackle: 0.8094 -> 0.7982
onTargetScoringAttempt: 0.7327 -> 0.7388
goalAssist: 0.1648 -> 0.1706
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Ángel Recio, Fernando Calero', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.304, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.1522, 'skill_edge': 0.1155, 'height_edge': -0.012, 'attacker_skill': 0.6941, 'defender_skill': 0.4374, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Ángel Recio', 'market_value': 1000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'Fernando Calero', 'market_value': 2100000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.2999}
totalShots: 2.0356 -> 2.3454
shotOffTarget: 1.2968 -> 1.4942
onTargetScoringAttempt: 0.7388 -> 0.8512
bigChanceMissed: 0.6712 -> 0.7734
expectedGoals: 0.2603 -> 0.2999
goals: 0.2566 -> 0.2957
expectedGoalsOnTarget: 0.2492 -> 0.2871
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.50 (squad xG sum 1.5360, xG scale 0.9798, xA scale 1.3683, team xA 0.98 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.505
squad_xg_sum=1.536
squad_xa_sum=0.7149
team_expected_assists=0.9782
team_xa_to_xg_ratio=0.65
expected_goals: 0.2999 -> 0.2939
expected_assists: 0.0988 -> 0.1352
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 90.0)match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.2546
goal_rate=0.2957
scorer_weight=0.2904
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1265
assist_rate=0.1706
provider_weight=0.169
-
Ander BarrenetxeaF7000.140.06137%20.96.855.032FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0035, quality 0.603)market_value_eur=17200000
quality_factor=0.6027
boost_factor=1.0035
reference_quality=0.505
history_matches=37
history_shrink=0.119
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0124)blend_weight=0.0124
history_matches=37
season_overlap_discount=1.0
per90_to_match_factor=0.7772
prior_reliability=0.16
competition=La Liga
totalCross: 2.543 -> 2.5356
interceptionWon: 0.5372 -> 0.5305
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Ángel Recio, Fernando Calero', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.234, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.0505, 'skill_edge': 0.0744, 'height_edge': -0.04, 'attacker_skill': 0.6027, 'defender_skill': 0.4374, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Ángel Recio', 'market_value': 1000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'Fernando Calero', 'market_value': 2100000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.1468}
totalShots: 1.5038 -> 1.5798
shotOffTarget: 1.0189 -> 1.0704
onTargetScoringAttempt: 0.4849 -> 0.5094
goals: 0.2127 -> 0.2234
expectedGoals: 0.1397 -> 0.1468
expectedGoalsOnTarget: 0.1282 -> 0.1347
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.50 (squad xG sum 1.5360, xG scale 0.9798, xA scale 1.3683, team xA 0.98 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.505
squad_xg_sum=1.536
squad_xa_sum=0.7149
team_expected_assists=0.9782
team_xa_to_xg_ratio=0.65
expected_assists: 0.1045 -> 0.143
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 81.0)match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1339
goal_rate=0.2234
scorer_weight=0.1798
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=1
assist_probability=0.1332
assist_rate=0.2415
provider_weight=0.1787
-
Orri ÓskarssonF7810.400.2940%31.26.855.627XGBoost F_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0066, quality 0.641)market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.0066
reference_quality=0.505
history_matches=26
history_shrink=0.1613
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Ángel Recio, Fernando Calero', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.3, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.1463, 'skill_edge': 0.0915, 'height_edge': 0.008, 'attacker_skill': 0.6408, 'defender_skill': 0.4374, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Ángel Recio', 'market_value': 1000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'Fernando Calero', 'market_value': 2100000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.412}
totalShots: 2.2235 -> 2.5488
shotOffTarget: 1.2435 -> 1.4254
onTargetScoringAttempt: 0.98 -> 1.1234
bigChanceMissed: 0.9177 -> 1.052
expectedGoalsOnTarget: 0.7178 -> 0.8228
goals: 0.4466 -> 0.5119
expectedGoals: 0.3594 -> 0.412
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
goals: 1.0 -> 0
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.50 (squad xG sum 1.5360, xG scale 0.9798, xA scale 1.3683, team xA 0.98 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.505
squad_xg_sum=1.536
squad_xa_sum=0.7149
team_expected_assists=0.9782
team_xa_to_xg_ratio=0.65
expected_goals: 0.412 -> 0.4036
expected_assists: 0.0304 -> 0.0416
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 74.0)match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.3321
goal_rate=0.5119
scorer_weight=0.4909
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0407
assist_rate=0.0
provider_weight=0.0333
-
Carlos SolerM8300.120.0935%10.96.963.230FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 0.9992, quality 0.482)market_value_eur=6600000
quality_factor=0.4818
boost_factor=0.9992
reference_quality=0.505
history_matches=41
history_shrink=0.1087
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0108)blend_weight=0.0108
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=0.9261
prior_reliability=0.1533
competition=La Liga
totalShots: 1.3162 -> 1.3063
wonTackle: 0.3337 -> 0.3432
fouls: 0.5346 -> 0.5288
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Rafa Garrido', 'matchup_zone': 'Left Mid vs Right Back — Wide Channel', 'duel_win_rate': 0.524, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.094, 'skill_edge': 0.024, 'height_edge': 0.04, 'attacker_skill': 0.4907, 'defender_skill': 0.4374, 'attacker_role': 'LM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Rafa Garrido', 'market_value': 1400000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.4374}], 'xg_override': 0.1248}
aerialWon: 0.1438 -> 1.1
totalShots: 1.3118 -> 1.4352
shotOffTarget: 0.9144 -> 1.0004
onTargetScoringAttempt: 0.3974 -> 0.4348
expectedGoalsOnTarget: 0.1518 -> 0.1661
goals: 0.1184 -> 0.1295
expectedGoals: 0.1141 -> 0.1248
bigChanceMissed: 0.086 -> 0.0941
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.50 (squad xG sum 1.5360, xG scale 0.9798, xA scale 1.3683, team xA 0.98 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.505
squad_xg_sum=1.536
squad_xa_sum=0.7149
team_expected_assists=0.9782
team_xa_to_xg_ratio=0.65
expected_assists: 0.1379 -> 0.1887
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 79.0)match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1151
goal_rate=0.1295
scorer_weight=0.1256
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.172
assist_rate=0.1242
provider_weight=0.1749
-
Jon GorrotxategiM7400.040.01435%10.26.950.524FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0071, quality 0.694)market_value_eur=27000000
quality_factor=0.6941
boost_factor=1.0071
reference_quality=0.505
history_matches=35
history_shrink=0.125
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0016)blend_weight=0.0016
history_matches=35
season_overlap_discount=1.0
per90_to_match_factor=0.8214
prior_reliability=0.02
competition=La Liga
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Carlos Dotor', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.564, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.1677, 'skill_edge': 0.1261, 'height_edge': -0.012, 'attacker_skill': 0.7176, 'defender_skill': 0.4374, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Carlos Dotor', 'market_value': 1200000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4374}], 'xg_override': 0.0404}
aerialWon: 1.1942 -> 1.0
totalShots: 0.5056 -> 0.5904
shotOffTarget: 0.3832 -> 0.4475
onTargetScoringAttempt: 0.1224 -> 0.1429
goals: 0.0463 -> 0.0541
expectedGoals: 0.0346 -> 0.0404
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.50 (squad xG sum 1.5360, xG scale 0.9798, xA scale 1.3683, team xA 0.98 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.505
squad_xg_sum=1.536
squad_xa_sum=0.7149
team_expected_assists=0.9782
team_xa_to_xg_ratio=0.65
expected_assists: 0.038 -> 0.052
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 79.0)match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0388
goal_rate=0.0541
scorer_weight=0.0456
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0507
assist_rate=0.0473
provider_weight=0.0575
-
Takefusa KuboF7000.160.05201%20.46.843.027FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0060, quality 0.641)market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.006
reference_quality=0.505
history_matches=29
history_shrink=0.1471
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0147)blend_weight=0.0147
history_matches=29
season_overlap_discount=1.0
per90_to_match_factor=0.7751
prior_reliability=0.1533
competition=La Liga
wasFouled: 2.2211 -> 2.2132
onTargetScoringAttempt: 0.4805 -> 0.4735
totalShots: 1.0987 -> 1.0927
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Ángel Recio, Fernando Calero', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.252, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.0757, 'skill_edge': 0.0915, 'height_edge': -0.04, 'attacker_skill': 0.6408, 'defender_skill': 0.4374, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Ángel Recio', 'market_value': 1000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'Fernando Calero', 'market_value': 2100000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.1615}
totalShots: 1.0927 -> 1.1754
shotOffTarget: 0.6182 -> 0.665
onTargetScoringAttempt: 0.4735 -> 0.5093
bigChanceMissed: 0.1989 -> 0.214
goals: 0.169 -> 0.1818
expectedGoals: 0.1501 -> 0.1615
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.50 (squad xG sum 1.5360, xG scale 0.9798, xA scale 1.3683, team xA 0.98 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.505
squad_xg_sum=1.536
squad_xa_sum=0.7149
team_expected_assists=0.9782
team_xa_to_xg_ratio=0.65
expected_assists: 0.0887 -> 0.1214
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 80.0)match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1463
goal_rate=0.1818
scorer_weight=0.1734
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1143
assist_rate=0.0967
provider_weight=0.1284
-
Sergio GómezD8600.020.02ok10.46.860.829FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0022, quality 0.575)market_value_eur=14600000
quality_factor=0.5748
boost_factor=1.0022
reference_quality=0.505
history_matches=43
history_shrink=0.1042
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0172)blend_weight=0.0172
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=0.9511
prior_reliability=0.2533
competition=La Liga
totalCross: 4.4367 -> 4.4593
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Adrián Niño', 'matchup_zone': 'Shape fallback'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.50 (squad xG sum 1.5360, xG scale 0.9798, xA scale 1.3683, team xA 0.98 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.505
squad_xg_sum=1.536
squad_xa_sum=0.7149
team_expected_assists=0.9782
team_xa_to_xg_ratio=0.65
expected_assists: 0.1155 -> 0.158
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 78.0)match_squad_rank=11
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0154
goal_rate=0.0
scorer_weight=0.0124
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1462
assist_rate=0.1365
provider_weight=0.1781
-
Jon MartinD9000.090.0638%10.46.853.829FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0066, quality 0.669)market_value_eur=24000000
quality_factor=0.6685
boost_factor=1.0066
reference_quality=0.505
history_matches=32
history_shrink=0.1351
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0234)blend_weight=0.0234
history_matches=32
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.2667
competition=La Liga
interceptionWon: 1.1107 -> 1.0905
wonTackle: 0.792 -> 0.8086
wasFouled: 0.4635 -> 0.4702
goals: 0.2568 -> 0.2508
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Pablo Martínez', 'matchup_zone': 'Left Mid vs Right Back — Wide Channel'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.50 (squad xG sum 1.5360, xG scale 0.9798, xA scale 1.3683, team xA 0.98 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.505
squad_xg_sum=1.536
squad_xa_sum=0.7149
team_expected_assists=0.9782
team_xa_to_xg_ratio=0.65
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 78.0)match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0844
goal_rate=0.2508
scorer_weight=0.1103
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0122
assist_rate=0.0
provider_weight=0.0104
-
Mamadou SarrD8500.080.02248%00.16.722.018FBref Prior D_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0223, quality 0.669)market_value_eur=24000000
quality_factor=0.6685
boost_factor=1.0223
reference_quality=0.505
history_matches=6
history_shrink=0.4545
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel 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_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.50 (squad xG sum 1.5360, xG scale 0.9798, xA scale 1.3683, team xA 0.98 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.505
squad_xg_sum=1.536
squad_xa_sum=0.7149
team_expected_assists=0.9782
team_xa_to_xg_ratio=0.65
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 16 by projected rating, fifa_overall 77.0)match_squad_rank=16
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0808
goal_rate=0.0
scorer_weight=0.0674
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0107
assist_rate=0.0
provider_weight=0.0093
-
Héctor FortD6300.060.001211%10.16.633.214FBref Prior D_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0050, quality 0.575)market_value_eur=14600000
quality_factor=0.5748
boost_factor=1.005
reference_quality=0.505
history_matches=16
history_shrink=0.2381
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel 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_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.50 (squad xG sum 1.5360, xG scale 0.9798, xA scale 1.3683, team xA 0.98 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.505
squad_xg_sum=1.536
squad_xa_sum=0.7149
team_expected_assists=0.9782
team_xa_to_xg_ratio=0.65
expected_assists: 0.0172 -> 0.0235
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 18 by projected rating, fifa_overall 72.0)match_squad_rank=18
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0627
goal_rate=0.3822
scorer_weight=0.0809
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0232
assist_rate=0.2726
provider_weight=0.0294
-
Álex RemiroG9000.00-n/a0.06.963.730FBref Prior G_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost G_service raw output over 3 target models--
market_value_boostMarket-value quality scaling (boost 1.0004, quality 0.518)market_value_eur=9600000
quality_factor=0.5177
boost_factor=1.0004
reference_quality=0.505
history_matches=44
history_shrink=0.102
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0177)blend_weight=0.0177
history_matches=44
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.2667
competition=La Liga
saves: 2.9674 -> 2.9901
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Chupete, Adrián Niño', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 0.6959}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.50 (squad xG sum 1.5360, xG scale 0.9798, xA scale 1.3683, team xA 0.98 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.505
squad_xg_sum=1.536
squad_xa_sum=0.7149
team_expected_assists=0.9782
team_xa_to_xg_ratio=0.65
shots_faced: 6.6 -> 6.2
expected_saves: 1.61 -> 1.52
high_pressure_saves: 0.56 -> 0.52
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 81.0)match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.678
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0
provider_weight=0.0
squad_weight_total=1.0475
-
Team totals11.50166.8
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Unai MarreroG4.4m10.9%Market-value substitute prior
Jon AramburuD14.1m22.7%Market-value substitute prior
Igor ZubeldiaD24.9m31.6%Market-value substitute prior
Luka SučićM26.7m41.6%Market-value substitute prior
Beñat TurrientesM20.5m41.1%Market-value substitute prior
Gonçalo GuedesF20.8m72.2%Market-value substitute prior
Antagonist / tactical summary
Away midfield dictates play with ~52% possession expected (Pablo Martínez vs Jon Gorrotxategi). Total antagonist xG — Home: 0.70, Away: 1.19. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Midfield — possession 47.5% / 52.5%, dominance ratio 0.44, key duel: Pablo Martínez vs Jon Gorrotxategi
Chupete xG 0.26Adrián Niño xG 0.19David Larrubia xG 0.08Carlos Soler xG 0.12Jon Gorrotxategi xG 0.04Mikel Oyarzabal xG 0.30

Summary

Antagonist matchup analysis for Málaga vs Real Sociedad. Most likely scoreline: 0-1. Lambdas derived from 6 home and 6 away individual player duels. Head-to-head: Málaga 4W-3D-3L vs Real Sociedad over 10 meetings.
Tactical parity between 4-1-4-1 and 4-4-2. Match outcome driven primarily by individual player quality. Away midfield dictates play with ~52% possession expected (Pablo Martínez vs Jon Gorrotxategi). Total antagonist xG — Home: 0.70, Away: 1.19. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.

Osasuna vs Racing Club

LaLiga · 20261018 · 4-3-3 vs 4-2-3-1
Predicted 1-1Winner: DrawWinning H 1-0 (8.7%)Winning A 0-1 (9.3%)Confidence 0.7λ home/away 1.30 / 1.39Most-likely P 12.4%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset Tracing
Antagonist + XGBoost match analysis for Osasuna vs Racing Club. Player statistics regressed using position-specific XGBoost models (G, D, M, F) with 2026-2027 FBref priors. Micro-duels resolved across 4-3-3 vs 4-2-3-1 (duel lambdas: Home 1.343, Away 1.351). Final calibrated Poisson lambdas: Home 1.305, Away 1.390 (most likely score 1-1).
Home Starters 11/11 XGBoost (9 FBref) Away Starters 11/11 XGBoost (8 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.34 / 1.35 Final λ (H/A) 1.30 / 1.39
Modeling Pipeline Stages (5 layers)
  1. 1. XGBoost player regressions for volume & event rates with market-value quality scaling
  2. 2. Multi-source prior blending (FBref 2026-2027 tables + Sofascore season history)
  3. 3. Antagonist formation duel matrix resolving 1v1 and zonal matchups
  4. 4. Team-level prior calibration (FBref possession and attack/defense efficiencies)
  5. 5. Bivariate Poisson matrix with Dixon-Coles low-score correction

Standing & form context

MetricOsasunaRacing Club
League position16.0015.00
Points per game1.161.16
Attack index0.861.02
Defense (concede) index1.341.18
Form multiplier1.001.00
Standing λ multiplier1.061.08

Lambda decomposition (how the goal rates were built)

StageOsasuna λRacing Club λ
Pre-competitive-floor1.3051.390
Pre-calibration (Micro-duels)1.3431.351
Final λ1.3051.390
competition calibration scale 1.0competition observed total goals 0.0quality gap applied Truemismatch score pressure applied Falsecompetitive underdog floor applied Falsestage discount 1.0

Scoreline distribution & markets

Top 5 scorelinesP
1-112.4%
0-19.3%
1-08.7%
1-28.5%
2-18.0%
Home win35.0%
Draw26.1%
Away win38.9%
Over 2.550.5%
BTTS yes54.9%
Pregame fair line — favorite Racing Club (38.9%), fair total 2.69, fair spread -0.09

Projected players vs season baseline

Proj = projected for this match · Season = this season's per-game average from match data · deviation badge compares projected xG to the player's season xG/game.

Osasuna — projected line vs season baseline (4-3-3)

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Aitor FernándezG9000.00-n/a0.06.911.531FBref Prior G_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost G_service raw output over 3 target models--
market_value_boostMarket-value quality scaling (boost 0.9899, quality 0.437)market_value_eur=375000
quality_factor=0.4374
boost_factor=0.9899
reference_quality=0.505
history_matches=5
history_shrink=0.5
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Yassir Zabiri, Pablo García', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.3505}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.30 (squad xG sum 0.8913, xG scale 1.4642, xA scale 1.4642, team xA 0.98 = 0.75 x lambda)scoreline_reset=true
team_lambda=1.305
squad_xg_sum=0.8913
squad_xa_sum=0.6669
team_expected_assists=0.9765
team_xa_to_xg_ratio=0.7482
shots_faced: 12.8 -> 13.2
expected_saves: 3.13 -> 3.23
high_pressure_saves: 1.08 -> 1.11
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 77.0)match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.3652
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0
provider_weight=0.0
squad_weight_total=0.9792
-
Moi GómezM7800.050.01850%10.17.145.429FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 0.9972, quality 0.437)market_value_eur=1600000
quality_factor=0.4374
boost_factor=0.9972
reference_quality=0.505
history_matches=31
history_shrink=0.1389
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0120)blend_weight=0.012
history_matches=31
season_overlap_discount=1.0
per90_to_match_factor=0.8721
prior_reliability=0.1333
competition=La Liga
totalCross: 1.6902 -> 1.6751
wonTackle: 0.6211 -> 0.6136
totalShots: 0.5816 -> 0.5746
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Íñigo Sáinz-Maza', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.41, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9412, 'skill_edge': 0.0, 'height_edge': -0.04, 'attacker_skill': 0.4374, 'defender_skill': 0.4374, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Íñigo Sáinz-Maza', 'market_value': 1000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4374}], 'xg_override': 0.0349}
aerialWon: 0.5907 -> 0.9
totalShots: 0.5799 -> 0.5458
shotOffTarget: 0.4371 -> 0.4114
onTargetScoringAttempt: 0.1428 -> 0.1344
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.30 (squad xG sum 0.8913, xG scale 1.4642, xA scale 1.4642, team xA 0.98 = 0.75 x lambda)scoreline_reset=true
team_lambda=1.305
squad_xg_sum=0.8913
squad_xa_sum=0.6669
team_expected_assists=0.9765
team_xa_to_xg_ratio=0.7482
expected_goals: 0.0349 -> 0.0511
expected_assists: 0.1097 -> 0.1606
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 76.0)match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0498
goal_rate=0.0456
scorer_weight=0.0575
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1484
assist_rate=0.0906
provider_weight=0.1414
-
Ante BudimirF8710.600.49ok32.76.865.531FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9980, quality 0.437)market_value_eur=2600000
quality_factor=0.4374
boost_factor=0.998
reference_quality=0.505
history_matches=45
history_shrink=0.1
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0095)blend_weight=0.0095
history_matches=45
season_overlap_discount=1.0
per90_to_match_factor=0.9619
prior_reliability=0.1467
competition=La Liga
totalShots: 2.7238 -> 2.7346
wasFouled: 1.5669 -> 1.577
onTargetScoringAttempt: 1.1767 -> 1.1859
wonTackle: 0.4576 -> 0.4657
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Jeanuël Belocian, Alvaro Mantilla', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.187, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 0.9806, 'skill_edge': -0.0372, 'height_edge': 0.024, 'attacker_skill': 0.4374, 'defender_skill': 0.52, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Jeanuël Belocian', 'market_value': 12900000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6027}, {'player': 'Alvaro Mantilla', 'market_value': 1200000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.4115}
totalShots: 2.7346 -> 2.6815
shotOffTarget: 1.5471 -> 1.5171
onTargetScoringAttempt: 1.1859 -> 1.1629
bigChanceMissed: 0.8206 -> 0.8047
expectedGoalsOnTarget: 0.659 -> 0.6462
goals: 0.4576 -> 0.4487
expectedGoals: 0.4196 -> 0.4115
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.30 (squad xG sum 0.8913, xG scale 1.4642, xA scale 1.4642, team xA 0.98 = 0.75 x lambda)scoreline_reset=true
team_lambda=1.305
squad_xg_sum=0.8913
squad_xa_sum=0.6669
team_expected_assists=0.9765
team_xa_to_xg_ratio=0.7482
expected_goals: 0.4115 -> 0.6025
expected_assists: 0.0331 -> 0.0485
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 82.0)match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.4526
goal_rate=0.4487
scorer_weight=0.6511
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0473
assist_rate=0.0
provider_weight=0.0388
-
Rubén GarcíaF7000.150.07125%10.86.857.440FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9979, quality 0.437)market_value_eur=1700000
quality_factor=0.4374
boost_factor=0.9979
reference_quality=0.505
history_matches=43
history_shrink=0.1042
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0077)blend_weight=0.0077
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=0.7731
prior_reliability=0.1133
competition=La Liga
totalCross: 4.1566 -> 4.1666
totalShots: 1.2032 -> 1.2083
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Pablo Ramón', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.42, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9118, 'skill_edge': 0.0, 'height_edge': -0.06, 'attacker_skill': 0.4374, 'defender_skill': 0.4374, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Pablo Ramón', 'market_value': 1500000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.4374}], 'xg_override': 0.1007}
totalShots: 1.2083 -> 1.1017
shotOffTarget: 0.8102 -> 0.7387
onTargetScoringAttempt: 0.3972 -> 0.3622
bigChanceMissed: 0.1599 -> 0.1458
goals: 0.1507 -> 0.1374
expectedGoals: 0.1104 -> 0.1007
expectedGoalsOnTarget: 0.0598 -> 0.0545
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.30 (squad xG sum 0.8913, xG scale 1.4642, xA scale 1.4642, team xA 0.98 = 0.75 x lambda)scoreline_reset=true
team_lambda=1.305
squad_xg_sum=0.8913
squad_xa_sum=0.6669
team_expected_assists=0.9765
team_xa_to_xg_ratio=0.7482
expected_goals: 0.1007 -> 0.1474
expected_assists: 0.0775 -> 0.1135
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 77.0)match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1371
goal_rate=0.1374
scorer_weight=0.1833
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1073
assist_rate=0.1602
provider_weight=0.1419
-
Iker MuñozM8300.050.01284%10.36.944.930FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 0.9967, quality 0.437)market_value_eur=1800000
quality_factor=0.4374
boost_factor=0.9967
reference_quality=0.505
history_matches=26
history_shrink=0.1613
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0161)blend_weight=0.0161
history_matches=26
season_overlap_discount=1.0
per90_to_match_factor=0.9236
prior_reliability=0.1533
competition=La Liga
totalCross: 0.4221 -> 0.4347
wasFouled: 1.4883 -> 1.4773
fouls: 1.4334 -> 1.4426
interceptionWon: 1.2159 -> 1.2093
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Íñigo Sáinz-Maza', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.4, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9706, 'skill_edge': 0.0, 'height_edge': -0.02, 'attacker_skill': 0.4374, 'defender_skill': 0.4374, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Íñigo Sáinz-Maza', 'market_value': 1000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4374}], 'xg_override': 0.0347}
aerialWon: 1.7725 -> 1.0
totalShots: 0.6132 -> 0.5952
shotOffTarget: 0.4576 -> 0.4441
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.30 (squad xG sum 0.8913, xG scale 1.4642, xA scale 1.4642, team xA 0.98 = 0.75 x lambda)scoreline_reset=true
team_lambda=1.305
squad_xg_sum=0.8913
squad_xa_sum=0.6669
team_expected_assists=0.9765
team_xa_to_xg_ratio=0.7482
expected_goals: 0.0347 -> 0.0508
expected_assists: 0.0413 -> 0.0605
rankings_attachedDisplay-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_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0495
goal_rate=0.0399
scorer_weight=0.0539
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0587
assist_rate=0.058
provider_weight=0.0716
-
Lucas TorróM7800.130.03277%10.76.848.430FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 0.9977, quality 0.437)market_value_eur=2700000
quality_factor=0.4374
boost_factor=0.9977
reference_quality=0.505
history_matches=40
history_shrink=0.1111
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0063)blend_weight=0.0063
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=0.8718
prior_reliability=0.0867
competition=La Liga
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Íñigo Sáinz-Maza', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.474, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0353, 'skill_edge': 0.0, 'height_edge': 0.024, 'attacker_skill': 0.4374, 'defender_skill': 0.4374, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Íñigo Sáinz-Maza', 'market_value': 1000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4374}], 'xg_override': 0.0879}
aerialWon: 3.2092 -> 1.3
totalShots: 0.9178 -> 0.9502
shotOffTarget: 0.5771 -> 0.5975
onTargetScoringAttempt: 0.3403 -> 0.3523
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.30 (squad xG sum 0.8913, xG scale 1.4642, xA scale 1.4642, team xA 0.98 = 0.75 x lambda)scoreline_reset=true
team_lambda=1.305
squad_xg_sum=0.8913
squad_xa_sum=0.6669
team_expected_assists=0.9765
team_xa_to_xg_ratio=0.7482
expected_goals: 0.0879 -> 0.1287
expected_assists: 0.0379 -> 0.0555
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 76.0)match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1208
goal_rate=0.0741
scorer_weight=0.1158
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.054
assist_rate=0.0486
provider_weight=0.0623
-
Jon MoncayolaM7800.060.05ok10.66.862.429FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 0.9995, quality 0.490)market_value_eur=7300000
quality_factor=0.4903
boost_factor=0.9995
reference_quality=0.505
history_matches=44
history_shrink=0.102
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0111)blend_weight=0.0111
history_matches=44
season_overlap_discount=1.0
per90_to_match_factor=0.8702
prior_reliability=0.1667
competition=La Liga
totalCross: 2.6467 -> 2.629
interceptionWon: 0.786 -> 0.7966
wonTackle: 1.2202 -> 1.226
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Íñigo Sáinz-Maza', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.47, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0296, 'skill_edge': 0.0282, 'height_edge': -0.008, 'attacker_skill': 0.5, 'defender_skill': 0.4374, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Íñigo Sáinz-Maza', 'market_value': 1000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4374}], 'xg_override': 0.0437}
aerialWon: 0.5966 -> 1.1
totalShots: 0.626 -> 0.6445
shotOffTarget: 0.4464 -> 0.4596
onTargetScoringAttempt: 0.1796 -> 0.1849
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.30 (squad xG sum 0.8913, xG scale 1.4642, xA scale 1.4642, team xA 0.98 = 0.75 x lambda)scoreline_reset=true
team_lambda=1.305
squad_xg_sum=0.8913
squad_xa_sum=0.6669
team_expected_assists=0.9765
team_xa_to_xg_ratio=0.7482
expected_goals: 0.0437 -> 0.064
expected_assists: 0.0798 -> 0.1168
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 81.0)match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.062
goal_rate=0.0494
scorer_weight=0.0679
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1102
assist_rate=0.0775
provider_weight=0.1147
-
Abel BretonesD8800.020.001989%00.16.645.230FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9977, quality 0.442)market_value_eur=3400000
quality_factor=0.4424
boost_factor=0.9977
reference_quality=0.505
history_matches=36
history_shrink=0.122
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0159)blend_weight=0.0159
history_matches=36
season_overlap_discount=1.0
per90_to_match_factor=0.9827
prior_reliability=0.2
competition=La Liga
wonTackle: 1.1419 -> 1.155
fouls: 1.1349 -> 1.1429
wasFouled: 0.8333 -> 0.8253
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Iñigo Vicente', 'matchup_zone': 'Shape fallback'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.30 (squad xG sum 0.8913, xG scale 1.4642, xA scale 1.4642, team xA 0.98 = 0.75 x lambda)scoreline_reset=true
team_lambda=1.305
squad_xg_sum=0.8913
squad_xa_sum=0.6669
team_expected_assists=0.9765
team_xa_to_xg_ratio=0.7482
expected_goals: 0.016 -> 0.0234
expected_assists: 0.0773 -> 0.1132
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 16 by projected rating, fifa_overall 76.0)match_squad_rank=16
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0231
goal_rate=0.0104
scorer_weight=0.0214
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.107
assist_rate=0.0484
provider_weight=0.0906
-
Enzo BoyomoD8500.050.03100%00.36.843.326FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0028, quality 0.575)market_value_eur=14600000
quality_factor=0.5748
boost_factor=1.0028
reference_quality=0.505
history_matches=33
history_shrink=0.1316
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0034)blend_weight=0.0034
history_matches=33
season_overlap_discount=1.0
per90_to_match_factor=0.9449
prior_reliability=0.04
competition=La Liga
wonTackle: 0.8913 -> 0.899
fouls: 1.1814 -> 1.1881
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Yassir Zabiri', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.30 (squad xG sum 0.8913, xG scale 1.4642, xA scale 1.4642, team xA 0.98 = 0.75 x lambda)scoreline_reset=true
team_lambda=1.305
squad_xg_sum=0.8913
squad_xa_sum=0.6669
team_expected_assists=0.9765
team_xa_to_xg_ratio=0.7482
expected_goals: 0.0366 -> 0.0536
expected_assists: 0.0116 -> 0.017
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 79.0)match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0522
goal_rate=0.0096
scorer_weight=0.0429
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0169
assist_rate=0.0927
provider_weight=0.0213
-
Alejandro CatenaD8900.020.03ok00.36.961.929XGBoost D_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9978, quality 0.437)market_value_eur=2700000
quality_factor=0.4374
boost_factor=0.9978
reference_quality=0.505
history_matches=42
history_shrink=0.1064
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Yassir Zabiri', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.30 (squad xG sum 0.8913, xG scale 1.4642, xA scale 1.4642, team xA 0.98 = 0.75 x lambda)scoreline_reset=true
team_lambda=1.305
squad_xg_sum=0.8913
squad_xa_sum=0.6669
team_expected_assists=0.9765
team_xa_to_xg_ratio=0.7482
expected_goals: 0.0166 -> 0.0243
expected_assists: 0.1309 -> 0.1917
rankings_attachedDisplay-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_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.024
goal_rate=0.0248
scorer_weight=0.0273
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=1
assist_probability=0.1744
assist_rate=0.1552
provider_weight=0.2174
-
Iñigo ArguibideD7800.020.00571%00.16.620.831FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9947, quality 0.437)market_value_eur=2700000
quality_factor=0.4374
boost_factor=0.9947
reference_quality=0.505
history_matches=14
history_shrink=0.2632
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0331)blend_weight=0.0331
history_matches=14
season_overlap_discount=1.0
per90_to_match_factor=0.8689
prior_reliability=0.1933
competition=La Liga
totalCross: 2.2688 -> 2.3028
wonTackle: 0.9588 -> 0.9865
wasFouled: 1.0779 -> 1.0522
fouls: 1.2714 -> 1.2492
totalShots: 0.4585 -> 0.4534
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Sergio Canales', 'matchup_zone': 'Shape fallback'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.30 (squad xG sum 0.8913, xG scale 1.4642, xA scale 1.4642, team xA 0.98 = 0.75 x lambda)scoreline_reset=true
team_lambda=1.305
squad_xg_sum=0.8913
squad_xa_sum=0.6669
team_expected_assists=0.9765
team_xa_to_xg_ratio=0.7482
expected_goals: 0.0122 -> 0.0179
expected_assists: 0.0242 -> 0.0354
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 18 by projected rating, fifa_overall 81.0)match_squad_rank=18
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0177
goal_rate=0.0
scorer_weight=0.0144
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0348
assist_rate=0.0
provider_weight=0.0283
-
Team totals11.30106.8
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Sergio HerreraG4.4m13.1%Market-value substitute prior
Jorge HerrandoD13.6m21.7%Market-value substitute prior
Valentin RosierD13.6m29.9%Market-value substitute prior
Aimar OrozM14.9m43.9%Market-value substitute prior
Mauro EchegoyenM22.0m49.9%Market-value substitute prior
Romain Del CastilloF25.5m56.6%Market-value substitute prior

Racing Club — projected line vs season baseline (4-2-3-1)

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Yassir ZabiriF8010.560.3656%31.56.752.511FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0168, quality 0.650)market_value_eur=22000000
quality_factor=0.6503
boost_factor=1.0168
reference_quality=0.505
history_matches=8
history_shrink=0.3846
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0217)blend_weight=0.0217
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=0.8863
prior_reliability=0.0867
competition=La Liga
goals: 0.5215 -> 0.5545
totalOffside: 0.3412 -> 0.3634
totalShots: 2.4976 -> 2.5174
onTargetScoringAttempt: 1.2298 -> 1.2475
wasFouled: 0.5995 -> 0.5865
wonTackle: 0.5348 -> 0.5232
interceptionWon: 0.2331 -> 0.228
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Enzo Boyomo, Alejandro Catena', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.23, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.0437, 'skill_edge': 0.0517, 'height_edge': -0.022, 'attacker_skill': 0.6503, 'defender_skill': 0.5353, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Enzo Boyomo', 'market_value': 14600000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6258}, {'player': 'Alejandro Catena', 'market_value': 2700000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4449}], 'xg_override': 0.4541}
totalShots: 2.5174 -> 2.6274
shotOffTarget: 1.2677 -> 1.3231
onTargetScoringAttempt: 1.2475 -> 1.302
expectedGoalsOnTarget: 0.7812 -> 0.8153
goals: 0.5545 -> 0.5787
expectedGoals: 0.4351 -> 0.4541
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
goals: 1.0 -> 0
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.39 (squad xG sum 1.1244, xG scale 1.2362, xA scale 1.2362, team xA 0.92 = 0.66 x lambda)scoreline_reset=true
team_lambda=1.39
squad_xg_sum=1.1244
squad_xa_sum=0.7429
team_expected_assists=0.9183
team_xa_to_xg_ratio=0.6607
expected_goals: 0.4541 -> 0.5614
expected_assists: 0.0369 -> 0.0456
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 66.0)match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.4296
goal_rate=0.5787
scorer_weight=0.7002
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0446
assist_rate=0.0
provider_weight=0.0365
-
Iñigo VicenteF8500.090.03201%10.47.048.521FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9973, quality 0.482)market_value_eur=6600000
quality_factor=0.4818
boost_factor=0.9973
reference_quality=0.505
history_matches=8
history_shrink=0.3846
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0467)blend_weight=0.0467
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=0.9461
prior_reliability=0.1867
competition=La Liga
totalCross: 4.945 -> 4.8404
wonTackle: 1.4141 -> 1.3796
totalShots: 1.0342 -> 1.0018
wasFouled: 2.6454 -> 2.6166
onTargetScoringAttempt: 0.3862 -> 0.3682
fouls: 1.2263 -> 1.2164
interceptionWon: 0.5206 -> 0.5121
goalAssist: 0.4942 -> 0.4869
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Enzo Boyomo, Alejandro Catena', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 0.9087, 'skill_edge': -0.0241, 'height_edge': -0.038, 'attacker_skill': 0.4818, 'defender_skill': 0.5353, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Enzo Boyomo', 'market_value': 14600000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6258}, {'player': 'Alejandro Catena', 'market_value': 2700000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4449}], 'xg_override': 0.0731}
totalShots: 1.0162 -> 0.9234
shotOffTarget: 0.648 -> 0.5888
onTargetScoringAttempt: 0.3682 -> 0.3346
goals: 0.1155 -> 0.105
expectedGoals: 0.0804 -> 0.0731
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.39 (squad xG sum 1.1244, xG scale 1.2362, xA scale 1.2362, team xA 0.92 = 0.66 x lambda)scoreline_reset=true
team_lambda=1.39
squad_xg_sum=1.1244
squad_xa_sum=0.7429
team_expected_assists=0.9183
team_xa_to_xg_ratio=0.6607
expected_goals: 0.0731 -> 0.0904
expected_assists: 0.184 -> 0.2273
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 77.0)match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0864
goal_rate=0.105
scorer_weight=0.113
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=1
assist_probability=0.2033
assist_rate=0.4869
provider_weight=0.2841
-
Pablo GarcíaF7400.180.06177%20.86.833.028FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9998, quality 0.501)market_value_eur=8199999
quality_factor=0.5011
boost_factor=0.9998
reference_quality=0.505
history_matches=22
history_shrink=0.1852
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0048)blend_weight=0.0048
history_matches=22
season_overlap_discount=1.0
per90_to_match_factor=0.8197
prior_reliability=0.04
competition=La Liga
wasFouled: 1.0313 -> 1.0526
fouls: 0.4718 -> 0.4893
totalShots: 1.909 -> 1.9195
goals: 0.2033 -> 0.2089
totalCross: 1.1399 -> 1.1344
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Enzo Boyomo, Alejandro Catena', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 0.9038, 'skill_edge': -0.0154, 'height_edge': -0.05, 'attacker_skill': 0.5011, 'defender_skill': 0.5353, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Enzo Boyomo', 'market_value': 14600000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6258}, {'player': 'Alejandro Catena', 'market_value': 2700000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4449}], 'xg_override': 0.1443}
totalShots: 1.9195 -> 1.7348
shotOffTarget: 1.2487 -> 1.1286
onTargetScoringAttempt: 0.6637 -> 0.5999
goals: 0.2089 -> 0.1888
bigChanceMissed: 0.1948 -> 0.1761
expectedGoalsOnTarget: 0.1786 -> 0.1614
expectedGoals: 0.1597 -> 0.1443
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.39 (squad xG sum 1.1244, xG scale 1.2362, xA scale 1.2362, team xA 0.92 = 0.66 x lambda)scoreline_reset=true
team_lambda=1.39
squad_xg_sum=1.1244
squad_xa_sum=0.7429
team_expected_assists=0.9183
team_xa_to_xg_ratio=0.6607
expected_goals: 0.1443 -> 0.1784
expected_assists: 0.0611 -> 0.0755
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 70.0)match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1634
goal_rate=0.1888
scorer_weight=0.2193
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0727
assist_rate=0.0
provider_weight=0.0604
-
Sergio CanalesF8000.130.1037%11.66.951.919FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9925, quality 0.440)market_value_eur=3200000
quality_factor=0.4399
boost_factor=0.9925
reference_quality=0.505
history_matches=8
history_shrink=0.3846
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0417)blend_weight=0.0417
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=0.8883
prior_reliability=0.1667
competition=La Liga
totalCross: 2.5581 -> 2.4663
totalShots: 1.4989 -> 1.5708
wonTackle: 0.7958 -> 0.7626
onTargetScoringAttempt: 0.5016 -> 0.5255
interceptionWon: 0.512 -> 0.4907
wasFouled: 1.4717 -> 1.4548
fouls: 0.5855 -> 0.5759
goals: 0.1244 -> 0.1192
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Enzo Boyomo, Alejandro Catena', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 0.8693, 'skill_edge': -0.0429, 'height_edge': -0.046, 'attacker_skill': 0.4399, 'defender_skill': 0.5353, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Enzo Boyomo', 'market_value': 14600000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6258}, {'player': 'Alejandro Catena', 'market_value': 2700000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4449}], 'xg_override': 0.1077}
totalShots: 1.5708 -> 1.3655
shotOffTarget: 0.9973 -> 0.867
onTargetScoringAttempt: 0.5255 -> 0.4568
expectedGoalsOnTarget: 0.2014 -> 0.1751
expectedGoals: 0.1239 -> 0.1077
goals: 0.1192 -> 0.1036
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.39 (squad xG sum 1.1244, xG scale 1.2362, xA scale 1.2362, team xA 0.92 = 0.66 x lambda)scoreline_reset=true
team_lambda=1.39
squad_xg_sum=1.1244
squad_xa_sum=0.7429
team_expected_assists=0.9183
team_xa_to_xg_ratio=0.6607
expected_goals: 0.1077 -> 0.1331
expected_assists: 0.0887 -> 0.1097
rankings_attachedDisplay-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_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1246
goal_rate=0.1036
scorer_weight=0.1296
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1039
assist_rate=0.0
provider_weight=0.0878
-
Íñigo Sáinz-MazaM8300.05-n/a10.06.711.711FBref Prior M_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 0.9855, quality 0.437)market_value_eur=1000000
quality_factor=0.4374
boost_factor=0.9855
reference_quality=0.505
history_matches=2
history_shrink=0.7143
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Moi Gómez', 'matchup_zone': 'Holding Mid vs Central Mid — Midfield Anchor Duel', 'duel_win_rate': 0.44, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0588, 'skill_edge': 0.0, 'height_edge': 0.04, 'attacker_skill': 0.4374, 'defender_skill': 0.4374, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Moi Gómez', 'market_value': 1600000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.4374}], 'xg_override': 0.0366}
aerialWon: 0.0 -> 1.1
totalShots: 0.5565 -> 0.5892
shotOffTarget: 0.4174 -> 0.4419
onTargetScoringAttempt: 0.1391 -> 0.1473
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.39 (squad xG sum 1.1244, xG scale 1.2362, xA scale 1.2362, team xA 0.92 = 0.66 x lambda)scoreline_reset=true
team_lambda=1.39
squad_xg_sum=1.1244
squad_xa_sum=0.7429
team_expected_assists=0.9183
team_xa_to_xg_ratio=0.6607
expected_goals: 0.0366 -> 0.0452
expected_assists: 0.0418 -> 0.0517
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 67.0)match_squad_rank=14
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0442
goal_rate=0.052
scorer_weight=0.0532
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0504
assist_rate=0.0488
provider_weight=0.0556
-
Iván MartínM8600.060.03113%10.47.057.831FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 0.9978, quality 0.437)market_value_eur=2700000
quality_factor=0.4374
boost_factor=0.9978
reference_quality=0.505
history_matches=41
history_shrink=0.1087
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0071)blend_weight=0.0071
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=0.9503
prior_reliability=0.1
competition=La Liga
wonTackle: 0.9642 -> 0.9753
totalCross: 0.3919 -> 0.3981
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Moi Gómez', 'matchup_zone': 'Holding Mid vs Central Mid — Midfield Anchor Duel', 'duel_win_rate': 0.417, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.025, 'skill_edge': 0.001, 'height_edge': 0.016, 'attacker_skill': 0.4396, 'defender_skill': 0.4374, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Moi Gómez', 'market_value': 1600000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.4374}], 'xg_override': 0.0487}
aerialWon: 1.0742 -> 1.0
totalShots: 0.6846 -> 0.7017
shotOffTarget: 0.4466 -> 0.4578
onTargetScoringAttempt: 0.2366 -> 0.2425
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.39 (squad xG sum 1.1244, xG scale 1.2362, xA scale 1.2362, team xA 0.92 = 0.66 x lambda)scoreline_reset=true
team_lambda=1.39
squad_xg_sum=1.1244
squad_xa_sum=0.7429
team_expected_assists=0.9183
team_xa_to_xg_ratio=0.6607
expected_goals: 0.0487 -> 0.0602
expected_assists: 0.0824 -> 0.1019
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 77.0)match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0584
goal_rate=0.082
scorer_weight=0.0752
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0969
assist_rate=0.067
provider_weight=0.09
-
Jorge SalinasD9000.070.03114%10.46.747.511FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0000, quality 0.505)market_value_eur=8500000
quality_factor=0.5047
boost_factor=1.0
reference_quality=0.505
history_matches=8
history_shrink=0.3846
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0500)blend_weight=0.05
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.2
competition=La Liga
wasFouled: 1.4307 -> 1.4092
totalCross: 1.3315 -> 1.3483
fouls: 0.9738 -> 0.9584
interceptionWon: 1.2391 -> 1.2271
totalShots: 0.5563 -> 0.545
goalAssist: 0.1595 -> 0.1515
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=true
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Rubén García', 'matchup_zone': 'Shape fallback'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.39 (squad xG sum 1.1244, xG scale 1.2362, xA scale 1.2362, team xA 0.92 = 0.66 x lambda)scoreline_reset=true
team_lambda=1.39
squad_xg_sum=1.1244
squad_xa_sum=0.7429
team_expected_assists=0.9183
team_xa_to_xg_ratio=0.6607
expected_goals: 0.0602 -> 0.0744
expected_assists: 0.1429 -> 0.1767
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 72.0)match_squad_rank=12
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0717
goal_rate=0.0
scorer_weight=0.0595
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.162
assist_rate=0.1515
provider_weight=0.1846
-
Jeanuël BelocianD9000.050.0297%10.46.732.98XGBoost D_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0085, quality 0.556)market_value_eur=12900000
quality_factor=0.5559
boost_factor=1.0085
reference_quality=0.505
history_matches=4
history_shrink=0.5556
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Ante Budimir', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.39 (squad xG sum 1.1244, xG scale 1.2362, xA scale 1.2362, team xA 0.92 = 0.66 x lambda)scoreline_reset=true
team_lambda=1.39
squad_xg_sum=1.1244
squad_xa_sum=0.7429
team_expected_assists=0.9183
team_xa_to_xg_ratio=0.6607
expected_goals: 0.0382 -> 0.0472
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 71.0)match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0461
goal_rate=0.0
scorer_weight=0.0378
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0146
assist_rate=0.0
provider_weight=0.0119
-
Pablo RamónD8300.010.00207%10.26.836.811FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9908, quality 0.437)market_value_eur=1500000
quality_factor=0.4374
boost_factor=0.9908
reference_quality=0.505
history_matches=6
history_shrink=0.4545
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0355)blend_weight=0.0355
history_matches=6
season_overlap_discount=1.0
per90_to_match_factor=0.9234
prior_reliability=0.12
competition=La Liga
wonTackle: 1.0723 -> 1.107
interceptionWon: 1.1453 -> 1.1775
totalShots: 0.538 -> 0.5189
onTargetScoringAttempt: 0.2271 -> 0.219
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Rubén García', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.39 (squad xG sum 1.1244, xG scale 1.2362, xA scale 1.2362, team xA 0.92 = 0.66 x lambda)scoreline_reset=true
team_lambda=1.39
squad_xg_sum=1.1244
squad_xa_sum=0.7429
team_expected_assists=0.9183
team_xa_to_xg_ratio=0.6607
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 69.0)match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0082
goal_rate=0.0
scorer_weight=0.0072
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0105
assist_rate=0.0
provider_weight=0.009
-
Alvaro MantillaD8600.020.02ok00.26.740.211XGBoost D_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9916, quality 0.437)market_value_eur=1200000
quality_factor=0.4374
boost_factor=0.9916
reference_quality=0.505
history_matches=7
history_shrink=0.4167
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Ante Budimir', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.39 (squad xG sum 1.1244, xG scale 1.2362, xA scale 1.2362, team xA 0.92 = 0.66 x lambda)scoreline_reset=true
team_lambda=1.39
squad_xg_sum=1.1244
squad_xa_sum=0.7429
team_expected_assists=0.9183
team_xa_to_xg_ratio=0.6607
expected_assists: 0.0231 -> 0.0286
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 15 by projected rating, fifa_overall 77.0)match_squad_rank=15
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0176
goal_rate=0.0
scorer_weight=0.0142
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0282
assist_rate=0.0
provider_weight=0.0229
-
Julen AgirrezabalaG9000.00-n/a0.06.937.316FBref Prior G_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost G_service raw output over 3 target models--
market_value_boostMarket-value quality scaling (boost 0.9988, quality 0.481)market_value_eur=6500000
quality_factor=0.4805
boost_factor=0.9988
reference_quality=0.505
history_matches=26
history_shrink=0.1613
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0210)blend_weight=0.021
history_matches=26
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.2
competition=La Liga
saves: 2.6138 -> 2.6289
wasFouled: 0.1259 -> 0.1372
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Ante Budimir, Rubén García', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.3425}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.39 (squad xG sum 1.1244, xG scale 1.2362, xA scale 1.2362, team xA 0.92 = 0.66 x lambda)scoreline_reset=true
team_lambda=1.39
squad_xg_sum=1.1244
squad_xa_sum=0.7429
team_expected_assists=0.9183
team_xa_to_xg_ratio=0.6607
shots_faced: 12.8 -> 12.4
expected_saves: 3.14 -> 3.04
high_pressure_saves: 1.07 -> 1.04
rankings_attachedDisplay-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_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.5727
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0
provider_weight=0.0
squad_weight_total=0.9036
-
Team totals11.39156.8
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Simon ErikssonG4.4m10.9%Market-value substitute prior
Facundo GonzálezD13.6m29.9%Market-value substitute prior
Pedro FelipeD13.6m29.9%Market-value substitute prior
Gustavo PuertaM22.7m32.2%Market-value substitute prior
André AlmeidaM22.1m50.6%Market-value substitute prior
Andrés MartínF25.5m57.0%Market-value substitute prior
Antagonist / tactical summary
Midfield is evenly contested — Jon Moncayola vs Iván Martín will be the pivotal duel. Total antagonist xG — Home: 0.71, Away: 0.86. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Midfield — possession 50.7% / 49.3%, dominance ratio 0.54, key duel: Jon Moncayola vs Iván Martín
Rubén García xG 0.10Ante Budimir xG 0.41Iker Muñoz xG 0.03Yassir Zabiri xG 0.45Iñigo Vicente xG 0.07Pablo García xG 0.14

Summary

Antagonist matchup analysis for Osasuna vs Racing Club. Most likely scoreline: 1-1. Lambdas derived from 6 home and 6 away individual player duels. Head-to-head: Osasuna 3W-0D-7L vs Racing Club over 10 meetings.
Tactical parity between 4-3-3 and 4-2-3-1. Match outcome driven primarily by individual player quality. Midfield is evenly contested — Jon Moncayola vs Iván Martín will be the pivotal duel. Total antagonist xG — Home: 0.71, Away: 0.86. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.

Real Madrid vs Sevilla

LaLiga · 20261018 · 4-2-3-1 vs 4-2-3-1
Predicted 3-1Winner: Real MadridWinning H 3-1 (7.6%)Winning A 1-2 (2.3%)Confidence 0.82λ home/away 3.57 / 1.30Most-likely P 7.6%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset Tracing
Antagonist + XGBoost match analysis for Real Madrid vs Sevilla. Player statistics regressed using position-specific XGBoost models (G, D, M, F) with 2026-2027 FBref priors. Micro-duels resolved across 4-2-3-1 vs 4-2-3-1 (duel lambdas: Home 3.272, Away 1.470). Final calibrated Poisson lambdas: Home 3.569, Away 1.300 (most likely score 3-1).
Home Starters 11/11 XGBoost (10 FBref) Away Starters 11/11 XGBoost (7 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 3.27 / 1.47 Final λ (H/A) 3.57 / 1.30
FBref Team Priors: Real Madrid (Gls/90: 3.0, GA/90: 3.33 → E[λ]: 3.5) vs Sevilla (Gls/90: 2.0, GA/90: 2.0 → E[λ]: 3.5) | Blend Weight: 0.228
Modeling Pipeline Stages (5 layers)
  1. 1. XGBoost player regressions for volume & event rates with market-value quality scaling
  2. 2. Multi-source prior blending (FBref 2026-2027 tables + Sofascore season history)
  3. 3. Antagonist formation duel matrix resolving 1v1 and zonal matchups
  4. 4. Team-level prior calibration (FBref possession and attack/defense efficiencies)
  5. 5. Bivariate Poisson matrix with Dixon-Coles low-score correction

Standing & form context

MetricReal MadridSevilla
League position4.005.00
Points per game1.871.59
Attack index1.221.02
Defense (concede) index0.990.86
Form multiplier1.020.98
Standing λ multiplier1.080.95

Lambda decomposition (how the goal rates were built)

StageReal Madrid λSevilla λ
FBref Squad Prior E[λ] (weight 0.228)3.5003.500
Pre-mismatch3.3331.536
Pre-calibration (Micro-duels)3.2721.470
Final λ3.5691.300
competition calibration scale 1.0competition observed total goals 0.0quality gap applied Truemismatch score pressure applied Truecompetitive underdog floor applied Falsestage discount 1.0

Scoreline distribution & markets

Top 5 scorelinesP
3-17.6%
4-16.8%
2-16.4%
3-05.8%
4-05.2%
Home win79.0%
Draw11.4%
Away win9.6%
Over 2.586.3%
BTTS yes70.7%
Pregame fair line — favorite Real Madrid (79.0%), fair total 4.87, fair spread 2.27

Projected players vs season baseline

Proj = projected for this match · Season = this season's per-game average from match data · deviation badge compares projected xG to the player's season xG/game.

Real Madrid — projected line vs season baseline (4-2-3-1)

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Kylian MbappéF8921.470.71107%54.27.464.524FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0135, quality 0.900)market_value_eur=212000000
quality_factor=0.9
boost_factor=1.0135
reference_quality=0.505
history_matches=39
history_shrink=0.1136
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0148)blend_weight=0.0148
history_matches=39
season_overlap_discount=1.0
per90_to_match_factor=0.9904
prior_reliability=0.2
competition=La Liga
totalShots: 4.028 -> 4.0855
onTargetScoringAttempt: 1.9465 -> 1.9861
totalOffside: 1.6717 -> 1.6519
goals: 0.6007 -> 0.6113
totalCross: 1.3619 -> 1.3515
wasFouled: 1.3699 -> 1.3643
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Andrés Castrin, Kike Salas', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.312, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.1648, 'skill_edge': 0.1401, 'height_edge': -0.028, 'attacker_skill': 0.9, 'defender_skill': 0.5887, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Andrés Castrin', 'market_value': 8700000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5411}, {'player': 'Kike Salas', 'market_value': 15400000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6363}], 'xg_override': 0.7852}
totalShots: 4.0855 -> 4.7588
shotOffTarget: 2.0814 -> 2.4244
onTargetScoringAttempt: 1.9861 -> 2.3134
bigChanceMissed: 1.3341 -> 1.554
expectedGoalsOnTarget: 0.8274 -> 0.9638
expectedGoals: 0.6741 -> 0.7852
goals: 0.6113 -> 0.712
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 3 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=3
goals: 1.0 -> 0
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 3.57 (squad xG sum 1.9113, xG scale 1.8673, xA scale 2.4094, team xA 2.32 = 0.65 x lambda)scoreline_reset=true
team_lambda=3.569
squad_xg_sum=1.9113
squad_xa_sum=0.9628
team_expected_assists=2.3199
team_xa_to_xg_ratio=0.65
expected_goals: 0.7852 -> 1.4662
expected_assists: 0.1626 -> 0.3918
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 91.0)match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 3 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=3
allocation_applied=true
goals_allocated=2
goal_probability=0.7692
goal_rate=0.712
scorer_weight=1.3378
-
integer_assist_projectionTeam scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=2
assists_allocated=1
assist_probability=0.3242
assist_rate=0.21
provider_weight=0.4792
-
Yan DiomandeF8200.320.06402%20.76.960.513FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0454, quality 0.899)market_value_eur=132000000
quality_factor=0.8986
boost_factor=1.0454
reference_quality=0.505
history_matches=8
history_shrink=0.3846
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0117)blend_weight=0.0117
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=0.9093
prior_reliability=0.0467
competition=La Liga
wasFouled: 2.3234 -> 2.2963
totalCross: 3.5425 -> 3.5618
wonTackle: 1.5717 -> 1.5534
totalShots: 1.4226 -> 1.406
fouls: 0.9845 -> 0.973
interceptionWon: 0.9326 -> 0.9217
onTargetScoringAttempt: 0.5418 -> 0.5355
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Andrés Castrin, Kike Salas', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.311, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.1639, 'skill_edge': 0.1395, 'height_edge': -0.028, 'attacker_skill': 0.8986, 'defender_skill': 0.5887, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Andrés Castrin', 'market_value': 8700000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5411}, {'player': 'Kike Salas', 'market_value': 15400000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6363}], 'xg_override': 0.1726}
totalShots: 1.4162 -> 1.6483
shotOffTarget: 0.8807 -> 1.025
onTargetScoringAttempt: 0.5355 -> 0.6233
expectedGoalsOnTarget: 0.3342 -> 0.389
goals: 0.1728 -> 0.2011
expectedGoals: 0.1483 -> 0.1726
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 3 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=3
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 3.57 (squad xG sum 1.9113, xG scale 1.8673, xA scale 2.4094, team xA 2.32 = 0.65 x lambda)scoreline_reset=true
team_lambda=3.569
squad_xg_sum=1.9113
squad_xa_sum=0.9628
team_expected_assists=2.3199
team_xa_to_xg_ratio=0.65
expected_goals: 0.1726 -> 0.3223
expected_assists: 0.1311 -> 0.3159
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 84.0)match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 3 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=3
allocation_applied=true
goals_allocated=0
goal_probability=0.2755
goal_rate=0.2011
scorer_weight=0.3636
-
integer_assist_projectionTeam scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=2
assists_allocated=0
assist_probability=0.2709
assist_rate=0.3414
provider_weight=0.3949
-
Jude BellinghamM8410.440.17159%31.67.166.824FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0144, quality 0.899)market_value_eur=151000000
quality_factor=0.8995
boost_factor=1.0144
reference_quality=0.505
history_matches=36
history_shrink=0.122
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0143)blend_weight=0.0143
history_matches=36
season_overlap_discount=1.0
per90_to_match_factor=0.9348
prior_reliability=0.18
competition=La Liga
totalShots: 1.9174 -> 1.9298
onTargetScoringAttempt: 0.7271 -> 0.7366
goalAssist: 0.1183 -> 0.1265
wasFouled: 2.9921 -> 2.984
goals: 0.1646 -> 0.1721
interceptionWon: 0.4962 -> 0.4891
fouls: 1.1313 -> 1.125
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Juan Iglesias', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.671, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.2805, 'skill_edge': 0.1788, 'height_edge': 0.012, 'attacker_skill': 0.8995, 'defender_skill': 0.5021, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Juan Iglesias', 'market_value': 5800000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.5021}], 'xg_override': 0.236}
totalShots: 1.9298 -> 2.4711
aerialWon: 0.6719 -> 1.2
shotOffTarget: 1.1903 -> 1.5242
onTargetScoringAttempt: 0.7366 -> 0.9432
expectedGoalsOnTarget: 0.2689 -> 0.3443
expectedGoals: 0.1843 -> 0.236
goals: 0.1721 -> 0.2204
bigChanceMissed: 0.1552 -> 0.1987
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 3 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=3
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 3.57 (squad xG sum 1.9113, xG scale 1.8673, xA scale 2.4094, team xA 2.32 = 0.65 x lambda)scoreline_reset=true
team_lambda=3.569
squad_xg_sum=1.9113
squad_xa_sum=0.9628
team_expected_assists=2.3199
team_xa_to_xg_ratio=0.65
expected_goals: 0.236 -> 0.4407
expected_assists: 0.1276 -> 0.3074
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 90.0)match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 3 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=3
allocation_applied=true
goals_allocated=1
goal_probability=0.3564
goal_rate=0.2204
scorer_weight=0.4167
-
integer_assist_projectionTeam scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=2
assists_allocated=0
assist_probability=0.2646
assist_rate=0.1265
provider_weight=0.3055
-
Arda GülerM7000.380.12217%21.27.167.425FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0126, quality 0.892)market_value_eur=97000000
quality_factor=0.8922
boost_factor=1.0126
reference_quality=0.505
history_matches=41
history_shrink=0.1087
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0075)blend_weight=0.0075
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=0.778
prior_reliability=0.1067
competition=La Liga
wasFouled: 1.8538 -> 1.8472
fouls: 0.8281 -> 0.8219
wonTackle: 0.6663 -> 0.6723
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Gabriel Suazo', 'matchup_zone': 'Right Wing vs Left Back — Flank Battle', 'duel_win_rate': 0.634, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.2262, 'skill_edge': 0.1619, 'height_edge': -0.008, 'attacker_skill': 0.8922, 'defender_skill': 0.5325, 'attacker_role': 'RW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Gabriel Suazo', 'market_value': 7600000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.5325}], 'xg_override': 0.205}
aerialWon: 0.2056 -> 0.9
totalShots: 1.7232 -> 2.113
shotOffTarget: 1.0984 -> 1.3469
onTargetScoringAttempt: 0.6248 -> 0.7661
expectedGoals: 0.1672 -> 0.205
goals: 0.1567 -> 0.1921
bigChanceMissed: 0.129 -> 0.1582
expectedGoalsOnTarget: 0.0427 -> 0.0524
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 3 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=3
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 3.57 (squad xG sum 1.9113, xG scale 1.8673, xA scale 2.4094, team xA 2.32 = 0.65 x lambda)scoreline_reset=true
team_lambda=3.569
squad_xg_sum=1.9113
squad_xa_sum=0.9628
team_expected_assists=2.3199
team_xa_to_xg_ratio=0.65
expected_goals: 0.205 -> 0.3828
expected_assists: 0.2089 -> 0.5034
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 83.0)match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 3 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=3
allocation_applied=true
goals_allocated=0
goal_probability=0.3181
goal_rate=0.1921
scorer_weight=0.3634
-
integer_assist_projectionTeam scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=2
assists_allocated=1
assist_probability=0.3955
assist_rate=0.2007
provider_weight=0.4874
-
Aurélien TchouaméniM8000.110.0770%11.37.063.124XGBoost M_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0132, quality 0.875)market_value_eur=73000000
quality_factor=0.8747
boost_factor=1.0132
reference_quality=0.505
history_matches=37
history_shrink=0.119
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Youssouf Fofana', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.551, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.192, 'skill_edge': 0.1186, 'height_edge': 0.012, 'attacker_skill': 0.8865, 'defender_skill': 0.6229, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Youssouf Fofana', 'market_value': 16300000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.6229}], 'xg_override': 0.0601}
aerialWon: 1.3959 -> 1.2
totalShots: 1.0191 -> 1.2148
shotOffTarget: 0.8209 -> 0.9785
onTargetScoringAttempt: 0.1982 -> 0.2363
goals: 0.0621 -> 0.074
expectedGoals: 0.0504 -> 0.0601
bigChanceMissed: 0.0485 -> 0.0578
expectedGoalsOnTarget: 0.0417 -> 0.0497
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 3 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=3
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 3.57 (squad xG sum 1.9113, xG scale 1.8673, xA scale 2.4094, team xA 2.32 = 0.65 x lambda)scoreline_reset=true
team_lambda=3.569
squad_xg_sum=1.9113
squad_xa_sum=0.9628
team_expected_assists=2.3199
team_xa_to_xg_ratio=0.65
expected_goals: 0.0601 -> 0.1122
expected_assists: 0.0472 -> 0.1137
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 84.0)match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 3 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=3
allocation_applied=true
goals_allocated=0
goal_probability=0.1061
goal_rate=0.074
scorer_weight=0.1264
-
integer_assist_projectionTeam scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=2
assists_allocated=0
assist_probability=0.1075
assist_rate=0.0525
provider_weight=0.1199
-
Federico ValverdeM8300.140.0888%11.37.168.626FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0125, quality 0.887)market_value_eur=87000000
quality_factor=0.8873
boost_factor=1.0125
reference_quality=0.505
history_matches=41
history_shrink=0.1087
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0132)blend_weight=0.0132
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=0.927
prior_reliability=0.1867
competition=La Liga
wonTackle: 0.7228 -> 0.7351
wasFouled: 0.6621 -> 0.6534
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Youssouf Fofana, Lucien Agoumé', 'matchup_zone': 'Attacking Mid vs Double Pivot — Tight Space Battle', 'duel_win_rate': 0.338, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.1447, 'skill_edge': 0.1145, 'height_edge': -0.016, 'attacker_skill': 0.8898, 'defender_skill': 0.6355, 'attacker_role': 'CAM', 'attacker_mv_price_index': 0.95, 'defender_adjusted_parts': [{'player': 'Youssouf Fofana', 'market_value': 16300000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.6229}, {'player': 'Lucien Agoumé', 'market_value': 18500000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.648}], 'xg_override': 0.0776}
aerialWon: 0.9303 -> 1.1
totalShots: 0.9324 -> 1.0673
shotOffTarget: 0.6469 -> 0.7405
onTargetScoringAttempt: 0.2855 -> 0.3268
goals: 0.0748 -> 0.0856
expectedGoalsOnTarget: 0.0705 -> 0.0807
expectedGoals: 0.0678 -> 0.0776
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 3 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=3
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 3.57 (squad xG sum 1.9113, xG scale 1.8673, xA scale 2.4094, team xA 2.32 = 0.65 x lambda)scoreline_reset=true
team_lambda=3.569
squad_xg_sum=1.9113
squad_xa_sum=0.9628
team_expected_assists=2.3199
team_xa_to_xg_ratio=0.65
expected_goals: 0.0776 -> 0.1449
expected_assists: 0.1008 -> 0.2429
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 87.0)match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 3 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=3
allocation_applied=true
goals_allocated=0
goal_probability=0.1349
goal_rate=0.0856
scorer_weight=0.154
-
integer_assist_projectionTeam scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=2
assists_allocated=0
assist_probability=0.2157
assist_rate=0.0922
provider_weight=0.2291
-
Marc CucurellaD8800.050.07ok00.36.858.226FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0112, quality 0.857)market_value_eur=62000000
quality_factor=0.8569
boost_factor=1.0112
reference_quality=0.505
history_matches=42
history_shrink=0.1064
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0083)blend_weight=0.0083
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.9801
prior_reliability=0.12
competition=La Liga
totalCross: 1.5097 -> 1.4972
wasFouled: 0.7827 -> 0.7762
fouls: 0.7316 -> 0.7255
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Chidera Ejuke', 'matchup_zone': 'Shape fallback'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 3 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=3
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 3.57 (squad xG sum 1.9113, xG scale 1.8673, xA scale 2.4094, team xA 2.32 = 0.65 x lambda)scoreline_reset=true
team_lambda=3.569
squad_xg_sum=1.9113
squad_xa_sum=0.9628
team_expected_assists=2.3199
team_xa_to_xg_ratio=0.65
expected_goals: 0.0273 -> 0.051
expected_assists: 0.037 -> 0.0891
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 85.0)match_squad_rank=14
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 3 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=3
allocation_applied=true
goals_allocated=0
goal_probability=0.0497
goal_rate=0.0
scorer_weight=0.0408
-
integer_assist_projectionTeam scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=2
assists_allocated=0
assist_probability=0.0852
assist_rate=0.0659
provider_weight=0.1114
-
Dean HuijsenD8200.170.06203%10.57.060.025FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0138, quality 0.864)market_value_eur=66000000
quality_factor=0.8644
boost_factor=1.0138
reference_quality=0.505
history_matches=34
history_shrink=0.1282
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0167)blend_weight=0.0167
history_matches=34
season_overlap_discount=1.0
per90_to_match_factor=0.9133
prior_reliability=0.2
competition=La Liga
fouls: 0.9422 -> 0.9366
totalShots: 0.5876 -> 0.593
onTargetScoringAttempt: 0.3172 -> 0.3119
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Robbie Ure', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 3 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=3
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 3.57 (squad xG sum 1.9113, xG scale 1.8673, xA scale 2.4094, team xA 2.32 = 0.65 x lambda)scoreline_reset=true
team_lambda=3.569
squad_xg_sum=1.9113
squad_xa_sum=0.9628
team_expected_assists=2.3199
team_xa_to_xg_ratio=0.65
expected_goals: 0.0895 -> 0.1671
expected_assists: 0.0363 -> 0.0875
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 81.0)match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 3 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=3
allocation_applied=true
goals_allocated=0
goal_probability=0.1539
goal_rate=0.0285
scorer_weight=0.1337
-
integer_assist_projectionTeam scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=2
assists_allocated=0
assist_probability=0.0838
assist_rate=0.0173
provider_weight=0.07
-
Ibrahima KonatéD8900.080.03218%10.36.861.329FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0095, quality 0.809)market_value_eur=46000000
quality_factor=0.8089
boost_factor=1.0095
reference_quality=0.505
history_matches=43
history_shrink=0.1042
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0090)blend_weight=0.009
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=0.9894
prior_reliability=0.1333
competition=La Liga
wonTackle: 0.7218 -> 0.7331
fouls: 1.1232 -> 1.1175
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Robbie Ure', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 3 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=3
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 3.57 (squad xG sum 1.9113, xG scale 1.8673, xA scale 2.4094, team xA 2.32 = 0.65 x lambda)scoreline_reset=true
team_lambda=3.569
squad_xg_sum=1.9113
squad_xa_sum=0.9628
team_expected_assists=2.3199
team_xa_to_xg_ratio=0.65
expected_goals: 0.0446 -> 0.0833
expected_assists: 0.0124 -> 0.0299
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 84.0)match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 3 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=3
allocation_applied=true
goals_allocated=0
goal_probability=0.0799
goal_rate=0.0059
scorer_weight=0.0666
-
integer_assist_projectionTeam scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=2
assists_allocated=0
assist_probability=0.0295
assist_rate=0.0
provider_weight=0.024
-
Denzel DumfriesM8400.180.04359%10.76.743.418FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0226, quality 0.686)market_value_eur=26000000
quality_factor=0.6858
boost_factor=1.0226
reference_quality=0.505
history_matches=7
history_shrink=0.4167
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0343)blend_weight=0.0343
history_matches=7
season_overlap_discount=1.0
per90_to_match_factor=0.9359
prior_reliability=0.1267
competition=La Liga
totalShots: 0.8275 -> 0.8845
fouls: 0.3132 -> 0.3363
wonTackle: 1.3871 -> 1.4071
interceptionWon: 0.5731 -> 0.5872
totalCross: 0.7723 -> 0.7796
onTargetScoringAttempt: 0.3026 -> 0.3092
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Youssouf Fofana', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.477, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0832, 'skill_edge': 0.0446, 'height_edge': 0.012, 'attacker_skill': 0.7219, 'defender_skill': 0.6229, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Youssouf Fofana', 'market_value': 16300000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.6229}], 'xg_override': 0.0967}
aerialWon: 1.0616 -> 1.2
totalShots: 0.8845 -> 0.9581
shotOffTarget: 0.5249 -> 0.5686
onTargetScoringAttempt: 0.3092 -> 0.3349
bigChanceMissed: 0.2344 -> 0.2539
expectedGoals: 0.0893 -> 0.0967
goals: 0.0739 -> 0.08
expectedGoalsOnTarget: 0.0652 -> 0.0706
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 3 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=3
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 3.57 (squad xG sum 1.9113, xG scale 1.8673, xA scale 2.4094, team xA 2.32 = 0.65 x lambda)scoreline_reset=true
team_lambda=3.569
squad_xg_sum=1.9113
squad_xa_sum=0.9628
team_expected_assists=2.3199
team_xa_to_xg_ratio=0.65
expected_goals: 0.0967 -> 0.1806
expected_assists: 0.0409 -> 0.0985
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 17 by projected rating, fifa_overall 83.0)match_squad_rank=17
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 3 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=3
allocation_applied=true
goals_allocated=0
goal_probability=0.1652
goal_rate=0.08
scorer_weight=0.16
-
integer_assist_projectionTeam scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=2
assists_allocated=0
assist_probability=0.0938
assist_rate=0.053
provider_weight=0.1116
-
Thibaut CourtoisG9000.00-n/a0.07.163.724FBref Prior G_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost G_service raw output over 3 target models--
market_value_boostMarket-value quality scaling (boost 1.0023, quality 0.574)market_value_eur=14500000
quality_factor=0.5737
boost_factor=1.0023
reference_quality=0.505
history_matches=40
history_shrink=0.1111
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0144)blend_weight=0.0144
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.2
competition=La Liga
saves: 2.8736 -> 2.8562
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Robbie Ure, Félix Correia', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.4696}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 3 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=3
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 3.57 (squad xG sum 1.9113, xG scale 1.8673, xA scale 2.4094, team xA 2.32 = 0.65 x lambda)scoreline_reset=true
team_lambda=3.569
squad_xg_sum=1.9113
squad_xa_sum=0.9628
team_expected_assists=2.3199
team_xa_to_xg_ratio=0.65
shots_faced: 14.0 -> 12.3
expected_saves: 3.43 -> 3.0
high_pressure_saves: 1.18 -> 1.04
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 90.0)match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 3 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=3
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=3.3733
-
integer_assist_projectionTeam scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=2
assists_allocated=0
assist_probability=0.0
provider_weight=0.0
squad_weight_total=2.4511
-
Team totals33.57197.0
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Andriy LuninG4.8m12.7%Market-value substitute prior
Trent Alexander-ArnoldD12.9m44.3%Market-value substitute prior
Álvaro CarrerasD15.1m24.9%Market-value substitute prior
Eduardo CamavingaM17.2m59.4%Market-value substitute prior
Franco MastantuonoM23.4m56.4%Market-value substitute prior
Vinícius JúniorF27.1m37.1%Market-value substitute prior

Sevilla — projected line vs season baseline (4-2-3-1)

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Robbie UreF7810.260.10158%21.16.947.010FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9976, quality 0.484)market_value_eur=6800000
quality_factor=0.4842
boost_factor=0.9976
reference_quality=0.505
history_matches=8
history_shrink=0.3846
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0417)blend_weight=0.0417
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=0.8656
prior_reliability=0.1667
competition=La Liga
totalShots: 2.2672 -> 2.2304
onTargetScoringAttempt: 0.7505 -> 0.7192
wasFouled: 2.3816 -> 2.3545
totalOffside: 0.6261 -> 0.6
goals: 0.2737 -> 0.2623
totalCross: 0.1943 -> 0.1862
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Dean Huijsen, Ibrahima Konaté', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.7084, 'skill_edge': -0.1744, 'height_edge': -0.024, 'attacker_skill': 0.4842, 'defender_skill': 0.8717, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Dean Huijsen', 'market_value': 66000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8879}, {'player': 'Ibrahima Konaté', 'market_value': 46000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8555}], 'xg_override': 0.1786}
totalShots: 2.2359 -> 1.5839
shotOffTarget: 1.5167 -> 1.0744
onTargetScoringAttempt: 0.7192 -> 0.5095
bigChanceMissed: 0.4342 -> 0.3076
goals: 0.2623 -> 0.1858
expectedGoalsOnTarget: 0.2607 -> 0.1847
expectedGoals: 0.2521 -> 0.1786
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.30 (squad xG sum 0.9026, xG scale 1.4403, xA scale 1.3766, team xA 1.04 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.3
squad_xg_sum=0.9026
squad_xa_sum=0.7555
team_expected_assists=1.04
team_xa_to_xg_ratio=0.8
expected_goals: 0.1786 -> 0.2572
expected_assists: 0.0874 -> 0.1203
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 71.0)match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.2268
goal_rate=0.1858
scorer_weight=0.2653
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1133
assist_rate=0.4305
provider_weight=0.1504
-
Félix CorreiaF7500.220.10128%10.56.836.713XGBoost F_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0023, quality 0.519)market_value_eur=9700000
quality_factor=0.5189
boost_factor=1.0023
reference_quality=0.505
history_matches=4
history_shrink=0.5556
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Dean Huijsen, Ibrahima Konaté', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.6785, 'skill_edge': -0.1587, 'height_edge': -0.06, 'attacker_skill': 0.5189, 'defender_skill': 0.8717, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Dean Huijsen', 'market_value': 66000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8879}, {'player': 'Ibrahima Konaté', 'market_value': 46000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8555}], 'xg_override': 0.1556}
totalShots: 1.5124 -> 1.0262
shotOffTarget: 0.8241 -> 0.5592
onTargetScoringAttempt: 0.6883 -> 0.467
bigChanceMissed: 0.3896 -> 0.2643
expectedGoalsOnTarget: 0.2885 -> 0.1957
expectedGoals: 0.2293 -> 0.1556
goals: 0.2234 -> 0.1516
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.30 (squad xG sum 0.9026, xG scale 1.4403, xA scale 1.3766, team xA 1.04 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.3
squad_xg_sum=0.9026
squad_xa_sum=0.7555
team_expected_assists=1.04
team_xa_to_xg_ratio=0.8
expected_goals: 0.1556 -> 0.2241
expected_assists: 0.0942 -> 0.1297
rankings_attachedDisplay-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_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.2008
goal_rate=0.1516
scorer_weight=0.2197
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1216
assist_rate=0.2673
provider_weight=0.1621
-
Youssouf FofanaM8400.140.0949%11.16.952.77XGBoost M_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0132, quality 0.593)market_value_eur=16300000
quality_factor=0.5932
boost_factor=1.0132
reference_quality=0.505
history_matches=5
history_shrink=0.5
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Aurélien Tchouaméni', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.289, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.808, 'skill_edge': -0.1186, 'height_edge': -0.012, 'attacker_skill': 0.6229, 'defender_skill': 0.8865, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Aurélien Tchouaméni', 'market_value': 73000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8865}], 'xg_override': 0.0981}
totalShots: 1.5808 -> 1.2773
shotOffTarget: 1.0591 -> 0.8558
aerialWon: 1.0537 -> 1.2
onTargetScoringAttempt: 0.5217 -> 0.4215
bigChanceMissed: 0.3938 -> 0.3182
expectedGoalsOnTarget: 0.2809 -> 0.227
goals: 0.1455 -> 0.1176
expectedGoals: 0.1214 -> 0.0981
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.30 (squad xG sum 0.9026, xG scale 1.4403, xA scale 1.3766, team xA 1.04 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.3
squad_xg_sum=0.9026
squad_xa_sum=0.7555
team_expected_assists=1.04
team_xa_to_xg_ratio=0.8
expected_goals: 0.0981 -> 0.1413
expected_assists: 0.1029 -> 0.1417
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 80.0)match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1318
goal_rate=0.1176
scorer_weight=0.1599
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1321
assist_rate=0.1197
provider_weight=0.1573
-
Chidera EjukeF7100.110.03220%10.56.749.329FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9977, quality 0.446)market_value_eur=3700000
quality_factor=0.4461
boost_factor=0.9977
reference_quality=0.505
history_matches=33
history_shrink=0.1316
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0057)blend_weight=0.0057
history_matches=33
season_overlap_discount=1.0
per90_to_match_factor=0.7914
prior_reliability=0.0667
competition=La Liga
interceptionWon: 0.87 -> 0.865
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Dean Huijsen, Ibrahima Konaté', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.6303, 'skill_edge': -0.1915, 'height_edge': -0.06, 'attacker_skill': 0.4461, 'defender_skill': 0.8717, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Dean Huijsen', 'market_value': 66000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8879}, {'player': 'Ibrahima Konaté', 'market_value': 46000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8555}], 'xg_override': 0.0731}
totalShots: 1.1324 -> 0.7138
shotOffTarget: 0.7507 -> 0.4732
onTargetScoringAttempt: 0.3817 -> 0.2406
bigChanceMissed: 0.1591 -> 0.1003
goals: 0.1262 -> 0.0795
expectedGoals: 0.116 -> 0.0731
expectedGoalsOnTarget: 0.0169 -> 0.0107
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.30 (squad xG sum 0.9026, xG scale 1.4403, xA scale 1.3766, team xA 1.04 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.3
squad_xg_sum=0.9026
squad_xa_sum=0.7555
team_expected_assists=1.04
team_xa_to_xg_ratio=0.8
expected_goals: 0.0731 -> 0.1053
expected_assists: 0.0691 -> 0.0951
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 17 by projected rating, fifa_overall 76.0)match_squad_rank=17
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0999
goal_rate=0.0795
scorer_weight=0.1108
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0907
assist_rate=0.0
provider_weight=0.0761
-
Lucien AgouméM8800.050.02148%10.56.963.630FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0035, quality 0.616)market_value_eur=18500000
quality_factor=0.6161
boost_factor=1.0035
reference_quality=0.505
history_matches=42
history_shrink=0.1064
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0138)blend_weight=0.0138
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.9771
prior_reliability=0.2
competition=La Liga
wonTackle: 1.7692 -> 1.7898
wasFouled: 0.58 -> 0.5945
totalCross: 0.2626 -> 0.277
interceptionWon: 1.3197 -> 1.3285
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Aurélien Tchouaméni', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.301, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.8246, 'skill_edge': -0.1073, 'height_edge': -0.012, 'attacker_skill': 0.648, 'defender_skill': 0.8865, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Aurélien Tchouaméni', 'market_value': 73000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8865}], 'xg_override': 0.035}
aerialWon: 0.5964 -> 1.2
totalShots: 0.674 -> 0.5558
shotOffTarget: 0.4969 -> 0.4097
onTargetScoringAttempt: 0.1748 -> 0.1441
goals: 0.0459 -> 0.0378
expectedGoals: 0.0424 -> 0.035
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.30 (squad xG sum 0.9026, xG scale 1.4403, xA scale 1.3766, team xA 1.04 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.3
squad_xg_sum=0.9026
squad_xa_sum=0.7555
team_expected_assists=1.04
team_xa_to_xg_ratio=0.8
expected_goals: 0.035 -> 0.0504
expected_assists: 0.0443 -> 0.061
rankings_attachedDisplay-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_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0492
goal_rate=0.0378
scorer_weight=0.0521
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0592
assist_rate=0.058
provider_weight=0.0699
-
Arouna SanganteD7600.00-n/a00.06.731.48FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9983, quality 0.495)market_value_eur=7700000
quality_factor=0.4951
boost_factor=0.9983
reference_quality=0.505
history_matches=4
history_shrink=0.5556
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0409)blend_weight=0.0409
history_matches=4
season_overlap_discount=1.0
per90_to_match_factor=0.8448
prior_reliability=0.1133
competition=La Liga
interceptionWon: 0.954 -> 0.976
totalShots: 0.4219 -> 0.4046
totalCross: 0.1924 -> 0.2049
wonTackle: 0.7847 -> 0.7729
fouls: 1.2246 -> 1.2355
wasFouled: 0.2662 -> 0.2553
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Kylian Mbappé', 'matchup_zone': 'Shape fallback'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.30 (squad xG sum 0.9026, xG scale 1.4403, xA scale 1.3766, team xA 1.04 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.3
squad_xg_sum=0.9026
squad_xa_sum=0.7555
team_expected_assists=1.04
team_xa_to_xg_ratio=0.8
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 16 by projected rating, fifa_overall 74.0)match_squad_rank=16
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam 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_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0033
assist_rate=0.0
provider_weight=0.0031
-
Gabriel SuazoD8800.000.01ok00.16.857.328FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9996, quality 0.494)market_value_eur=7600000
quality_factor=0.4939
boost_factor=0.9996
reference_quality=0.505
history_matches=37
history_shrink=0.119
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0155)blend_weight=0.0155
history_matches=37
season_overlap_discount=1.0
per90_to_match_factor=0.9741
prior_reliability=0.2
competition=La Liga
fouls: 1.8297 -> 1.8466
totalCross: 2.7379 -> 2.7508
wonTackle: 1.6567 -> 1.6512
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Arda Güler', 'matchup_zone': 'Right Wing vs Left Back — Flank Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.30 (squad xG sum 0.9026, xG scale 1.4403, xA scale 1.3766, team xA 1.04 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.3
squad_xg_sum=0.9026
squad_xa_sum=0.7555
team_expected_assists=1.04
team_xa_to_xg_ratio=0.8
expected_assists: 0.1715 -> 0.2362
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 74.0)match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0049
goal_rate=0.0
scorer_weight=0.0046
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=1
assist_probability=0.2104
assist_rate=0.0022
provider_weight=0.189
-
Kike SalasD9000.070.06ok10.86.964.928FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0032, quality 0.584)market_value_eur=15400000
quality_factor=0.5835
boost_factor=1.0032
reference_quality=0.505
history_matches=32
history_shrink=0.1351
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0117)blend_weight=0.0117
history_matches=32
season_overlap_discount=1.0
per90_to_match_factor=0.9983
prior_reliability=0.1333
competition=La Liga
wasFouled: 0.7602 -> 0.7688
totalShots: 0.9649 -> 0.9715
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Kylian Mbappé', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.30 (squad xG sum 0.9026, xG scale 1.4403, xA scale 1.3766, team xA 1.04 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.3
squad_xg_sum=0.9026
squad_xa_sum=0.7555
team_expected_assists=1.04
team_xa_to_xg_ratio=0.8
expected_goals: 0.0489 -> 0.0704
expected_assists: 0.0394 -> 0.0542
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 76.0)match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.068
goal_rate=0.0466
scorer_weight=0.0688
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0528
assist_rate=0.0
provider_weight=0.0434
-
Andrés CastrinD8900.040.01156%10.36.846.227XGBoost D_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0001, quality 0.507)market_value_eur=8700000
quality_factor=0.5071
boost_factor=1.0001
reference_quality=0.505
history_matches=26
history_shrink=0.1613
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Kylian Mbappé', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.30 (squad xG sum 0.9026, xG scale 1.4403, xA scale 1.3766, team xA 1.04 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.3
squad_xg_sum=0.9026
squad_xa_sum=0.7555
team_expected_assists=1.04
team_xa_to_xg_ratio=0.8
expected_goals: 0.026 -> 0.0374
rankings_attachedDisplay-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_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0367
goal_rate=0.0504
scorer_weight=0.0467
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0134
assist_rate=0.0
provider_weight=0.0113
-
Juan IglesiasD9000.070.03112%10.76.865.331XGBoost D_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9990, quality 0.472)market_value_eur=5800000
quality_factor=0.472
boost_factor=0.999
reference_quality=0.505
history_matches=45
history_shrink=0.1
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Jude Bellingham', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.30 (squad xG sum 0.9026, xG scale 1.4403, xA scale 1.3766, team xA 1.04 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.3
squad_xg_sum=0.9026
squad_xa_sum=0.7555
team_expected_assists=1.04
team_xa_to_xg_ratio=0.8
expected_goals: 0.0472 -> 0.068
expected_assists: 0.0678 -> 0.0933
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 76.0)match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0657
goal_rate=0.0966
scorer_weight=0.085
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0891
assist_rate=0.0068
provider_weight=0.0746
-
Odysseas VlachodimosG9000.00-n/a0.07.062.631FBref Prior G_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost G_service raw output over 3 target models--
market_value_boostMarket-value quality scaling (boost 0.9979, quality 0.440)market_value_eur=3200000
quality_factor=0.4399
boost_factor=0.9979
reference_quality=0.505
history_matches=41
history_shrink=0.1087
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0141)blend_weight=0.0141
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.2
competition=La Liga
saves: 2.934 -> 2.9396
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Kylian Mbappé, Jude Bellingham', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 3.2715}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.30 (squad xG sum 0.9026, xG scale 1.4403, xA scale 1.3766, team xA 1.04 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.3
squad_xg_sum=0.9026
squad_xa_sum=0.7555
team_expected_assists=1.04
team_xa_to_xg_ratio=0.8
shots_faced: 31.1 -> 33.9
expected_saves: 7.61 -> 8.3
high_pressure_saves: 2.62 -> 2.86
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 79.0)match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.4226
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0
provider_weight=0.0
squad_weight_total=1.0302
-
Team totals11.30136.8
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Fran GonzálezG4.4m10.9%Market-value substitute prior
José Ángel CarmonaD14.0m31.6%Market-value substitute prior
MarcãoD13.6m29.9%Market-value substitute prior
OsoM22.3m51.5%Market-value substitute prior
Djibril SowM22.2m50.8%Market-value substitute prior
Lucas StassinF25.9m58.6%Market-value substitute prior
Antagonist / tactical summary
Home midfield dominates with ~52% possession expected (Jude Bellingham vs Lucien Agoumé). Total antagonist xG — Home: 1.63, Away: 0.54. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Midfield — possession 52.3% / 47.7%, dominance ratio 0.61, key duel: Jude Bellingham vs Lucien Agoumé
Jude Bellingham xG 0.24Arda Güler xG 0.20Federico Valverde xG 0.08Robbie Ure xG 0.18Félix Correia xG 0.16Chidera Ejuke xG 0.07

Summary

Antagonist matchup analysis for Real Madrid vs Sevilla. Most likely scoreline: 3-1. Lambdas derived from 7 home and 5 away individual player duels. Head-to-head: Real Madrid 9W-1D-0L vs Sevilla over 10 meetings.
Tactical parity between 4-2-3-1 and 4-2-3-1. Match outcome driven primarily by individual player quality. Home midfield dominates with ~52% possession expected (Jude Bellingham vs Lucien Agoumé). Total antagonist xG — Home: 1.63, Away: 0.54. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.

Bournemouth vs Sunderland

Premier League · 20261018 · 4-2-3-1 vs 4-2-3-1
Predicted 1-1Winner: DrawWinning H 1-0 (13.2%)Winning A 0-1 (10.1%)Confidence 0.71λ home/away 1.28 / 0.99Most-likely P 13.2%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset Tracing
Antagonist + XGBoost match analysis for Bournemouth vs Sunderland. Player statistics regressed using position-specific XGBoost models (G, D, M, F) with 2026-2027 FBref priors. Micro-duels resolved across 4-2-3-1 vs 4-2-3-1 (duel lambdas: Home 1.279, Away 0.986). Final calibrated Poisson lambdas: Home 1.279, Away 0.986 (most likely score 1-1).
Home Starters 11/11 XGBoost (9 FBref) Away Starters 10/11 XGBoost (9 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.28 / 0.99 Final λ (H/A) 1.28 / 0.99
FBref Team Priors: Bournemouth (Gls/90: 1.0, GA/90: 1.0 → E[λ]: 0.69) vs Sunderland (Gls/90: 1.0, GA/90: 1.0 → E[λ]: 0.69) | Blend Weight: 0.192
Modeling Pipeline Stages (5 layers)
  1. 1. XGBoost player regressions for volume & event rates with market-value quality scaling
  2. 2. Multi-source prior blending (FBref 2026-2027 tables + Sofascore season history)
  3. 3. Antagonist formation duel matrix resolving 1v1 and zonal matchups
  4. 4. Team-level prior calibration (FBref possession and attack/defense efficiencies)
  5. 5. Bivariate Poisson matrix with Dixon-Coles low-score correction

Standing & form context

MetricBournemouthSunderland
League position18.0017.00
Points per game0.921.00
Attack index0.930.89
Defense (concede) index1.121.16
Form multiplier0.991.00
Standing λ multiplier1.021.01

Lambda decomposition (how the goal rates were built)

StageBournemouth λSunderland λ
FBref Squad Prior E[λ] (weight 0.192)0.6900.690
Pre-competitive-floor1.2790.986
Pre-calibration (Micro-duels)1.2790.986
Final λ1.2790.986
competition calibration scale 1.0competition observed total goals 0.0quality gap applied Truemismatch score pressure applied Falsecompetitive underdog floor applied Falsestage discount 1.0

Scoreline distribution & markets

Top 5 scorelinesP
1-113.2%
1-013.2%
0-010.5%
0-110.1%
2-08.5%
Home win43.0%
Draw28.5%
Away win28.5%
Over 2.539.5%
BTTS yes45.4%
Pregame fair line — favorite Bournemouth (43.0%), fair total 2.27, fair spread 0.29

Projected players vs season baseline

Proj = projected for this match · Season = this season's per-game average from match data · deviation badge compares projected xG to the player's season xG/game.

Bournemouth — projected line vs season baseline (4-2-3-1)

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
EvanilsonF8400.250.25ok21.66.855.530FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0075, quality 0.739)market_value_eur=33000000
quality_factor=0.7389
boost_factor=1.0075
reference_quality=0.505
history_matches=42
history_shrink=0.1064
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0078)blend_weight=0.0078
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.9303
prior_reliability=0.1133
competition=Premier League
fouls: 1.3208 -> 1.3319
wasFouled: 1.7877 -> 1.7951
interceptionWon: 0.7612 -> 0.7681
totalOffside: 0.8307 -> 0.8242
goalAssist: 0.2772 -> 0.2836
onTargetScoringAttempt: 0.7203 -> 0.7147
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Kevin Danso, Trai Hume', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.207, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 1.0101, 'skill_edge': 0.0229, 'height_edge': -0.016, 'attacker_skill': 0.7389, 'defender_skill': 0.6881, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Kevin Danso', 'market_value': 19400000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6847}, {'player': 'Trai Hume', 'market_value': 20000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6914}], 'xg_override': 0.2975}
totalShots: 1.9462 -> 1.9659
shotOffTarget: 1.2283 -> 1.2407
onTargetScoringAttempt: 0.7147 -> 0.7219
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.28 (squad xG sum 1.5028, xG scale 0.8511, xA scale 0.9726, team xA 0.83 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.279
squad_xg_sum=1.5028
squad_xa_sum=0.8548
team_expected_assists=0.8313
team_xa_to_xg_ratio=0.65
expected_goals: 0.2975 -> 0.2532
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 79.0)match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.2237
goal_rate=0.2691
scorer_weight=0.2325
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0655
assist_rate=0.2836
provider_weight=0.0846
-
Ben Gannon-DoakF8000.080.01616%10.26.818.525FBref Prior F_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0058, quality 0.575)market_value_eur=14600000
quality_factor=0.5748
boost_factor=1.0058
reference_quality=0.505
history_matches=13
history_shrink=0.2778
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Kevin Danso, Trai Hume', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 0.8604, 'skill_edge': -0.051, 'height_edge': -0.044, 'attacker_skill': 0.5748, 'defender_skill': 0.6881, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Kevin Danso', 'market_value': 19400000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6847}, {'player': 'Trai Hume', 'market_value': 20000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6914}], 'xg_override': 0.0976}
totalShots: 1.5117 -> 1.3007
shotOffTarget: 1.1471 -> 0.987
onTargetScoringAttempt: 0.3646 -> 0.3137
expectedGoals: 0.1134 -> 0.0976
goals: 0.0991 -> 0.0853
bigChanceMissed: 0.0784 -> 0.0675
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.28 (squad xG sum 1.5028, xG scale 0.8511, xA scale 0.9726, team xA 0.83 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.279
squad_xg_sum=1.5028
squad_xa_sum=0.8548
team_expected_assists=0.8313
team_xa_to_xg_ratio=0.65
expected_goals: 0.0976 -> 0.0831
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 71.0)match_squad_rank=12
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0797
goal_rate=0.0853
scorer_weight=0.0762
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0725
assist_rate=0.0288
provider_weight=0.0602
-
Marcus TavernierF8300.160.23ok21.67.151.637FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0063, quality 0.694)market_value_eur=27000000
quality_factor=0.6941
boost_factor=1.0063
reference_quality=0.505
history_matches=40
history_shrink=0.1111
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0096)blend_weight=0.0096
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=0.9254
prior_reliability=0.1333
competition=Premier League
wasFouled: 1.0397 -> 1.0475
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Kevin Danso, Trai Hume', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 0.9629, 'skill_edge': 0.0027, 'height_edge': -0.028, 'attacker_skill': 0.6941, 'defender_skill': 0.6881, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Kevin Danso', 'market_value': 19400000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6847}, {'player': 'Trai Hume', 'market_value': 20000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6914}], 'xg_override': 0.1911}
totalShots: 1.9718 -> 1.8986
shotOffTarget: 1.0878 -> 1.0474
onTargetScoringAttempt: 0.8811 -> 0.8484
expectedGoalsOnTarget: 0.3468 -> 0.3339
goals: 0.3044 -> 0.2931
expectedGoals: 0.1985 -> 0.1911
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.28 (squad xG sum 1.5028, xG scale 0.8511, xA scale 0.9726, team xA 0.83 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.279
squad_xg_sum=1.5028
squad_xa_sum=0.8548
team_expected_assists=0.8313
team_xa_to_xg_ratio=0.65
expected_goals: 0.1911 -> 0.1626
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 79.0)match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1501
goal_rate=0.2931
scorer_weight=0.2032
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=1
assist_probability=0.1452
assist_rate=0.024
provider_weight=0.1255
-
RayanF8510.280.1497%31.57.049.837FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0198, quality 0.848)market_value_eur=58000000
quality_factor=0.8478
boost_factor=1.0198
reference_quality=0.505
history_matches=21
history_shrink=0.1923
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0167)blend_weight=0.0167
history_matches=21
season_overlap_discount=1.0
per90_to_match_factor=0.9433
prior_reliability=0.1333
competition=Premier League
totalCross: 2.1999 -> 2.1632
wasFouled: 0.9051 -> 0.89
wonTackle: 0.7021 -> 0.6904
onTargetScoringAttempt: 0.8723 -> 0.8817
totalShots: 2.3856 -> 2.3935
fouls: 0.3359 -> 0.3303
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Kevin Danso, Trai Hume', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.272, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 1.1057, 'skill_edge': 0.0719, 'height_edge': 0.0, 'attacker_skill': 0.8478, 'defender_skill': 0.6881, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Kevin Danso', 'market_value': 19400000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6847}, {'player': 'Trai Hume', 'market_value': 20000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6914}], 'xg_override': 0.3234}
totalShots: 2.395 -> 2.6482
shotOffTarget: 1.5133 -> 1.6733
onTargetScoringAttempt: 0.8817 -> 0.9749
bigChanceMissed: 0.4434 -> 0.4903
expectedGoals: 0.2925 -> 0.3234
goals: 0.2606 -> 0.2881
expectedGoalsOnTarget: 0.1502 -> 0.1661
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.28 (squad xG sum 1.5028, xG scale 0.8511, xA scale 0.9726, team xA 0.83 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.279
squad_xg_sum=1.5028
squad_xa_sum=0.8548
team_expected_assists=0.8313
team_xa_to_xg_ratio=0.65
expected_goals: 0.3234 -> 0.2752
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 79.0)match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.2406
goal_rate=0.2881
scorer_weight=0.2492
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0818
assist_rate=0.031
provider_weight=0.0682
-
Ryan ChristieM7000.060.05ok10.86.851.025FBref Prior M_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0000, quality 0.506)market_value_eur=8600000
quality_factor=0.5059
boost_factor=1.0
reference_quality=0.505
history_matches=31
history_shrink=0.1389
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Noah Sadiki', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.306, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.8321, 'skill_edge': -0.1342, 'height_edge': 0.02, 'attacker_skill': 0.5238, 'defender_skill': 0.8221, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Noah Sadiki', 'market_value': 42000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8221}], 'xg_override': 0.0661}
totalShots: 1.0365 -> 0.8625
shotOffTarget: 0.748 -> 0.6224
aerialWon: 1.0894 -> 1.0
onTargetScoringAttempt: 0.2885 -> 0.2401
bigChanceMissed: 0.2638 -> 0.2195
expectedGoals: 0.0794 -> 0.0661
goals: 0.072 -> 0.0599
expectedGoalsOnTarget: 0.0633 -> 0.0527
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.28 (squad xG sum 1.5028, xG scale 0.8511, xA scale 0.9726, team xA 0.83 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.279
squad_xg_sum=1.5028
squad_xa_sum=0.8548
team_expected_assists=0.8313
team_xa_to_xg_ratio=0.65
expected_goals: 0.0661 -> 0.0563
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 78.0)match_squad_rank=11
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0547
goal_rate=0.0599
scorer_weight=0.0533
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0665
assist_rate=0.0639
provider_weight=0.0649
-
Tyler AdamsM8100.020.00403%00.16.848.622FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0092, quality 0.725)market_value_eur=31000000
quality_factor=0.7249
boost_factor=1.0092
reference_quality=0.505
history_matches=31
history_shrink=0.1389
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0024)blend_weight=0.0024
history_matches=31
season_overlap_discount=1.0
per90_to_match_factor=0.9028
prior_reliability=0.0267
competition=Premier League
interceptionWon: 1.6226 -> 1.6296
fouls: 2.3499 -> 2.3442
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Noah Sadiki', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.401, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9714, 'skill_edge': -0.0275, 'height_edge': 0.008, 'attacker_skill': 0.761, 'defender_skill': 0.8221, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Noah Sadiki', 'market_value': 42000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8221}], 'xg_override': 0.0268}
aerialWon: 0.9405 -> 0.9
totalShots: 0.477 -> 0.4634
shotOffTarget: 0.348 -> 0.338
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.28 (squad xG sum 1.5028, xG scale 0.8511, xA scale 0.9726, team xA 0.83 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.279
squad_xg_sum=1.5028
squad_xa_sum=0.8548
team_expected_assists=0.8313
team_xa_to_xg_ratio=0.65
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 79.0)match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0225
goal_rate=0.0376
scorer_weight=0.026
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0332
assist_rate=0.0496
provider_weight=0.0397
-
António SilvaD9000.210.1281%10.57.036.711FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0310, quality 0.732)market_value_eur=32000000
quality_factor=0.732
boost_factor=1.031
reference_quality=0.505
history_matches=6
history_shrink=0.4545
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0394)blend_weight=0.0394
history_matches=6
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League
onTargetScoringAttempt: 0.4007 -> 0.3849
totalShots: 0.8266 -> 0.8137
fouls: 0.7414 -> 0.7319
wonTackle: 0.7965 -> 0.8045
interceptionWon: 1.1753 -> 1.1684
wasFouled: 0.1525 -> 0.1465
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Nilson Angulo', 'matchup_zone': 'Shape fallback'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.28 (squad xG sum 1.5028, xG scale 0.8511, xA scale 0.9726, team xA 0.83 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.279
squad_xg_sum=1.5028
squad_xa_sum=0.8548
team_expected_assists=0.8313
team_xa_to_xg_ratio=0.65
expected_goals: 0.2513 -> 0.2139
rankings_attachedDisplay-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_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1926
goal_rate=0.0
scorer_weight=0.1711
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.054
assist_rate=0.0
provider_weight=0.0444
-
James HillD9000.010.0246%00.36.958.730FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0085, quality 0.732)market_value_eur=32000000
quality_factor=0.732
boost_factor=1.0085
reference_quality=0.505
history_matches=35
history_shrink=0.125
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0108)blend_weight=0.0108
history_matches=35
season_overlap_discount=1.0
per90_to_match_factor=0.9992
prior_reliability=0.1333
competition=Premier League
fouls: 0.9227 -> 0.9289
totalShots: 0.459 -> 0.454
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Nilson Angulo', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.28 (squad xG sum 1.5028, xG scale 0.8511, xA scale 0.9726, team xA 0.83 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.279
squad_xg_sum=1.5028
squad_xa_sum=0.8548
team_expected_assists=0.8313
team_xa_to_xg_ratio=0.65
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 78.0)match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0132
goal_rate=0.0
scorer_weight=0.0106
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0736
assist_rate=0.02
provider_weight=0.0611
-
Adam SmithD8200.000.00142%00.06.634.830FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9969, quality 0.437)market_value_eur=310000
quality_factor=0.4374
boost_factor=0.9969
reference_quality=0.505
history_matches=28
history_shrink=0.1515
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0131)blend_weight=0.0131
history_matches=28
season_overlap_discount=1.0
per90_to_match_factor=0.9122
prior_reliability=0.1333
competition=Premier League
interceptionWon: 0.7459 -> 0.7541
wonTackle: 0.8546 -> 0.8494
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Nilson Angulo', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.28 (squad xG sum 1.5028, xG scale 0.8511, xA scale 0.9726, team xA 0.83 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.279
squad_xg_sum=1.5028
squad_xa_sum=0.8548
team_expected_assists=0.8313
team_xa_to_xg_ratio=0.65
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 18 by projected rating, fifa_overall 73.0)match_squad_rank=18
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0012
goal_rate=0.0
scorer_weight=0.0012
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0229
assist_rate=0.0604
provider_weight=0.029
-
Đorđe PetrovićG9000.00-n/a0.06.957.330FBref Prior G_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost G_service raw output over 3 target models--
market_value_boostMarket-value quality scaling (boost 1.0063, quality 0.710)market_value_eur=29000000
quality_factor=0.71
boost_factor=1.0063
reference_quality=0.505
history_matches=44
history_shrink=0.102
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0088)blend_weight=0.0088
history_matches=44
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League
saves: 2.9235 -> 2.9374
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Enzo Le Fée, Timur Tuterov', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 0.9855}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.28 (squad xG sum 1.5028, xG scale 0.8511, xA scale 0.9726, team xA 0.83 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.279
squad_xg_sum=1.5028
squad_xa_sum=0.8548
team_expected_assists=0.8313
team_xa_to_xg_ratio=0.65
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 79.0)match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.2321
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0
provider_weight=0.0
squad_weight_total=0.7617
-
Adrien TruffertD8900.040.04ok10.46.857.430FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0072, quality 0.739)market_value_eur=33000000
quality_factor=0.7389
boost_factor=1.0072
reference_quality=0.505
history_matches=44
history_shrink=0.102
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0088)blend_weight=0.0088
history_matches=44
season_overlap_discount=1.0
per90_to_match_factor=0.9899
prior_reliability=0.1333
competition=Premier League
totalCross: 3.8209 -> 3.809
wonTackle: 1.4094 -> 1.4013
totalShots: 0.7423 -> 0.7357
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Granit Xhaka', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.28 (squad xG sum 1.5028, xG scale 0.8511, xA scale 0.9726, team xA 0.83 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.279
squad_xg_sum=1.5028
squad_xa_sum=0.8548
team_expected_assists=0.8313
team_xa_to_xg_ratio=0.65
expected_goals: 0.0428 -> 0.0364
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 80.0)match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0357
goal_rate=0.0262
scorer_weight=0.0299
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1059
assist_rate=0.131
provider_weight=0.1227
-
Team totals11.28146.9
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Michele Di GregorioG4.7m12.3%Market-value substitute prior
Bafodé DiakitéD14.4m33.9%Market-value substitute prior
Álex JiménezD14.3m33.3%Market-value substitute prior
Alex ScottM23.7m34.3%Market-value substitute prior
Justin KluivertM22.9m32.6%Market-value substitute prior
Eli Junior KroupiF27.0m63.7%Market-value substitute prior

Sunderland — projected line vs season baseline (4-2-3-1)

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Reinildo MandavaD8500.000.0048%00.06.749.323FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9977, quality 0.451)market_value_eur=4099999
quality_factor=0.4511
boost_factor=0.9977
reference_quality=0.505
history_matches=30
history_shrink=0.1429
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0124)blend_weight=0.0124
history_matches=30
season_overlap_discount=1.0
per90_to_match_factor=0.9463
prior_reliability=0.1333
competition=Premier League
fouls: 1.3077 -> 1.3208
interceptionWon: 1.185 -> 1.1938
totalCross: 0.7473 -> 0.7556
totalShots: 0.4281 -> 0.4228
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Rayan', 'matchup_zone': 'Shape fallback'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.99 (squad xG sum 1.1482, xG scale 0.8588, xA scale 0.8588, team xA 0.78 = 0.79 x lambda)scoreline_reset=true
team_lambda=0.986
squad_xg_sum=1.1482
squad_xa_sum=0.9056
team_expected_assists=0.7777
team_xa_to_xg_ratio=0.7887
expected_assists: 0.0396 -> 0.034
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 80.0)match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0015
goal_rate=0.0
scorer_weight=0.0014
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0334
assist_rate=0.0181
provider_weight=0.0272
-
Kevin DansoD8900.060.0385%10.56.838.426FBref Prior D_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0055, quality 0.625)market_value_eur=19400000
quality_factor=0.6251
boost_factor=1.0055
reference_quality=0.505
history_matches=28
history_shrink=0.1515
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Rayan', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.99 (squad xG sum 1.1482, xG scale 0.8588, xA scale 0.8588, team xA 0.78 = 0.79 x lambda)scoreline_reset=true
team_lambda=0.986
squad_xg_sum=1.1482
squad_xa_sum=0.9056
team_expected_assists=0.7777
team_xa_to_xg_ratio=0.7887
expected_goals: 0.0679 -> 0.0583
rankings_attachedDisplay-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_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0566
goal_rate=0.0
scorer_weight=0.0466
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0241
assist_rate=0.0
provider_weight=0.0195
-
Omar AldereteD7800.030.0251%10.46.842.931FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0009, quality 0.529)market_value_eur=10600000
quality_factor=0.5295
boost_factor=1.0009
reference_quality=0.505
history_matches=34
history_shrink=0.1282
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0017)blend_weight=0.0017
history_matches=34
season_overlap_discount=1.0
per90_to_match_factor=0.8679
prior_reliability=0.02
competition=Premier League
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Marcus Tavernier', 'matchup_zone': 'Shape fallback'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.99 (squad xG sum 1.1482, xG scale 0.8588, xA scale 0.8588, team xA 0.78 = 0.79 x lambda)scoreline_reset=true
team_lambda=0.986
squad_xg_sum=1.1482
squad_xa_sum=0.9056
team_expected_assists=0.7777
team_xa_to_xg_ratio=0.7887
expected_goals: 0.0363 -> 0.0312
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 81.0)match_squad_rank=11
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0307
goal_rate=0.0022
scorer_weight=0.025
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0115
assist_rate=0.0
provider_weight=0.0093
-
Nordi MukieleD8800.110.0751%10.96.851.528FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0035, quality 0.602)market_value_eur=17100000
quality_factor=0.6016
boost_factor=1.0035
reference_quality=0.505
history_matches=37
history_shrink=0.119
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0052)blend_weight=0.0052
history_matches=37
season_overlap_discount=1.0
per90_to_match_factor=0.9794
prior_reliability=0.0667
competition=Premier League
totalCross: 3.3363 -> 3.3241
fouls: 1.2518 -> 1.2453
wonTackle: 1.1837 -> 1.1776
totalShots: 1.1193 -> 1.1135
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Ben Gannon-Doak', 'matchup_zone': 'Shape fallback'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.99 (squad xG sum 1.1482, xG scale 0.8588, xA scale 0.8588, team xA 0.78 = 0.79 x lambda)scoreline_reset=true
team_lambda=0.986
squad_xg_sum=1.1482
squad_xa_sum=0.9056
team_expected_assists=0.7777
team_xa_to_xg_ratio=0.7887
expected_goals: 0.1261 -> 0.1083
expected_assists: 0.0862 -> 0.074
rankings_attachedDisplay-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_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1026
goal_rate=0.0715
scorer_weight=0.0866
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0713
assist_rate=0.0353
provider_weight=0.0592
-
Robin RoefsG9000.00-n/a0.07.054.228FBref Prior G_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost G_service raw output over 3 target models--
market_value_boostMarket-value quality scaling (boost 1.0072, quality 0.725)market_value_eur=31000000
quality_factor=0.7249
boost_factor=1.0072
reference_quality=0.505
history_matches=41
history_shrink=0.1087
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0094)blend_weight=0.0094
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League
saves: 2.882 -> 2.8596
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Rayan, Evanilson', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.279}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.99 (squad xG sum 1.1482, xG scale 0.8588, xA scale 0.8588, team xA 0.78 = 0.79 x lambda)scoreline_reset=true
team_lambda=0.986
squad_xg_sum=1.1482
squad_xa_sum=0.9056
team_expected_assists=0.7777
team_xa_to_xg_ratio=0.7887
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 81.0)match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=0.9086
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0
provider_weight=0.0
squad_weight_total=0.6875
-
Granit XhakaM9000.040.0287%10.67.360.127FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0000, quality 0.505)market_value_eur=8500000
quality_factor=0.5047
boost_factor=1.0
reference_quality=0.505
history_matches=40
history_shrink=0.1111
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0096)blend_weight=0.0096
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=0.9952
prior_reliability=0.1333
competition=Premier League
wasFouled: 1.6554 -> 1.673
totalShots: 0.9351 -> 0.9261
totalCross: 4.6646 -> 4.6724
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Adrien Truffert', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.377, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.8486, 'skill_edge': -0.139, 'height_edge': 0.036, 'attacker_skill': 0.5047, 'defender_skill': 0.8135, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Adrien Truffert', 'market_value': 33000000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.8135}], 'xg_override': 0.051}
aerialWon: 0.7882 -> 1.2
totalShots: 0.9324 -> 0.7912
shotOffTarget: 0.6672 -> 0.5662
onTargetScoringAttempt: 0.2652 -> 0.225
expectedGoalsOnTarget: 0.0706 -> 0.0599
goals: 0.0665 -> 0.0564
expectedGoals: 0.0601 -> 0.051
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.99 (squad xG sum 1.1482, xG scale 0.8588, xA scale 0.8588, team xA 0.78 = 0.79 x lambda)scoreline_reset=true
team_lambda=0.986
squad_xg_sum=1.1482
squad_xa_sum=0.9056
team_expected_assists=0.7777
team_xa_to_xg_ratio=0.7887
expected_goals: 0.051 -> 0.0438
expected_assists: 0.1935 -> 0.1661
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 85.0)match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0429
goal_rate=0.0564
scorer_weight=0.0461
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=1
assist_probability=0.153
assist_rate=0.1285
provider_weight=0.1329
-
Noah SadikiM8400.080.0635%10.76.855.628FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0097, quality 0.791)market_value_eur=42000000
quality_factor=0.7909
boost_factor=1.0097
reference_quality=0.505
history_matches=39
history_shrink=0.1136
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0098)blend_weight=0.0098
history_matches=39
season_overlap_discount=1.0
per90_to_match_factor=0.9373
prior_reliability=0.1333
competition=Premier League
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Ryan Christie', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.534, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.1679, 'skill_edge': 0.1342, 'height_edge': -0.02, 'attacker_skill': 0.8221, 'defender_skill': 0.5238, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Ryan Christie', 'market_value': 8600000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.5238}], 'xg_override': 0.091}
aerialWon: 0.7117 -> 0.9
totalShots: 0.9821 -> 1.147
shotOffTarget: 0.6548 -> 0.7647
onTargetScoringAttempt: 0.3273 -> 0.3823
bigChanceMissed: 0.2108 -> 0.2462
expectedGoals: 0.0779 -> 0.091
goals: 0.0747 -> 0.0872
expectedGoalsOnTarget: 0.0417 -> 0.0487
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.99 (squad xG sum 1.1482, xG scale 0.8588, xA scale 0.8588, team xA 0.78 = 0.79 x lambda)scoreline_reset=true
team_lambda=0.986
squad_xg_sum=1.1482
squad_xa_sum=0.9056
team_expected_assists=0.7777
team_xa_to_xg_ratio=0.7887
expected_goals: 0.091 -> 0.0781
expected_assists: 0.0899 -> 0.0772
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 80.0)match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0751
goal_rate=0.0872
scorer_weight=0.076
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0743
assist_rate=0.0768
provider_weight=0.07
-
Enzo Le FéeM8810.210.17ok21.16.958.730FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0063, quality 0.702)market_value_eur=28000000
quality_factor=0.7022
boost_factor=1.0063
reference_quality=0.505
history_matches=42
history_shrink=0.1064
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0088)blend_weight=0.0088
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.9743
prior_reliability=0.1267
competition=Premier League
totalCross: 3.2348 -> 3.2244
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Ryan Christie', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.497, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.1126, 'skill_edge': 0.0966, 'height_edge': -0.02, 'attacker_skill': 0.7385, 'defender_skill': 0.5238, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Ryan Christie', 'market_value': 8600000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.5238}], 'xg_override': 0.2473}
aerialWon: 0.4364 -> 0.9
totalShots: 1.7139 -> 1.9069
shotOffTarget: 1.1094 -> 1.2343
onTargetScoringAttempt: 0.6005 -> 0.6681
expectedGoalsOnTarget: 0.2293 -> 0.2551
expectedGoals: 0.2223 -> 0.2473
bigChanceMissed: 0.2029 -> 0.2257
goals: 0.193 -> 0.2147
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.99 (squad xG sum 1.1482, xG scale 0.8588, xA scale 0.8588, team xA 0.78 = 0.79 x lambda)scoreline_reset=true
team_lambda=0.986
squad_xg_sum=1.1482
squad_xa_sum=0.9056
team_expected_assists=0.7777
team_xa_to_xg_ratio=0.7887
expected_goals: 0.2473 -> 0.2124
expected_assists: 0.1617 -> 0.1389
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 80.0)match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.1914
goal_rate=0.2147
scorer_weight=0.1891
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1297
assist_rate=0.1307
provider_weight=0.1186
-
Trai HumeD8600.040.06ok10.96.754.833FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0039, quality 0.631)market_value_eur=20000000
quality_factor=0.6311
boost_factor=1.0039
reference_quality=0.505
history_matches=43
history_shrink=0.1042
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0086)blend_weight=0.0086
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=0.9548
prior_reliability=0.1267
competition=Premier League
wasFouled: 0.8761 -> 0.8686
wonTackle: 1.1474 -> 1.1548
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Rayan', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.99 (squad xG sum 1.1482, xG scale 0.8588, xA scale 0.8588, team xA 0.78 = 0.79 x lambda)scoreline_reset=true
team_lambda=0.986
squad_xg_sum=1.1482
squad_xa_sum=0.9056
team_expected_assists=0.7777
team_xa_to_xg_ratio=0.7887
expected_goals: 0.0515 -> 0.0442
expected_assists: 0.0903 -> 0.0775
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 17 by projected rating, fifa_overall 78.0)match_squad_rank=17
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0432
goal_rate=0.0996
scorer_weight=0.0553
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0746
assist_rate=0.0013
provider_weight=0.062
-
Timur TuterovF9000.17-n/a20.06.9-8Prior F_service
Step-by-step (8 steps)
StepDescriptionKey paramsChanges
market_value_priorMarket-value baseline for position F (quality 0.44)market_value_eur=280000
quality_factor=0.4374
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'James Hill, Adam Smith', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 0.8879, 'skill_edge': -0.0803, 'height_edge': 0.004, 'attacker_skill': 0.4374, 'defender_skill': 0.6158, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'James Hill', 'market_value': 32000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7941}, {'player': 'Adam Smith', 'market_value': 310000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.2007}
aerialWon: 1.4 -> 1.7
totalShots: 2.4 -> 2.131
onTargetScoringAttempt: 1.2 -> 1.0655
shotOffTarget: 0.8 -> 0.7103
expectedGoals: 0.226 -> 0.2007
expectedGoalsOnTarget: 0.171 -> 0.1518
goals: 0.14 -> 0.1243
bigChanceMissed: 0.14 -> 0.1243
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.99 (squad xG sum 1.1482, xG scale 0.8588, xA scale 0.8588, team xA 0.78 = 0.79 x lambda)scoreline_reset=true
team_lambda=0.986
squad_xg_sum=1.1482
squad_xa_sum=0.9056
team_expected_assists=0.7777
team_xa_to_xg_ratio=0.7887
expected_goals: 0.2007 -> 0.1724
expected_assists: 0.081 -> 0.0696
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall n/a)match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=missing_player_rankings_csv_row
ranking_status=missing
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1584
goal_rate=0.1243
scorer_weight=0.1379
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0672
assist_rate=0.07
provider_weight=0.0638
-
Nilson AnguloF7000.150.07127%20.56.743.430FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0095, quality 0.625)market_value_eur=19400000
quality_factor=0.6251
boost_factor=1.0095
reference_quality=0.505
history_matches=14
history_shrink=0.2632
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0160)blend_weight=0.016
history_matches=14
season_overlap_discount=1.0
per90_to_match_factor=0.7763
prior_reliability=0.0933
competition=Premier League
wasFouled: 0.6967 -> 0.721
totalCross: 1.1302 -> 1.1476
goals: 0.1801 -> 0.1861
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'James Hill, Adam Smith', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.204, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.0062, 'skill_edge': 0.0042, 'height_edge': 0.0, 'attacker_skill': 0.6251, 'defender_skill': 0.6158, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'James Hill', 'market_value': 32000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7941}, {'player': 'Adam Smith', 'market_value': 310000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.1743}
totalShots: 1.3031 -> 1.3112
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.99 (squad xG sum 1.1482, xG scale 0.8588, xA scale 0.8588, team xA 0.78 = 0.79 x lambda)scoreline_reset=true
team_lambda=0.986
squad_xg_sum=1.1482
squad_xa_sum=0.9056
team_expected_assists=0.7777
team_xa_to_xg_ratio=0.7887
expected_goals: 0.1743 -> 0.1497
expected_assists: 0.0618 -> 0.0531
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 73.0)match_squad_rank=12
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.139
goal_rate=0.1873
scorer_weight=0.1584
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0517
assist_rate=0.1521
provider_weight=0.0664
-
Team totals10.99146.9
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Melker EllborgG4.4m10.9%Market-value substitute prior
Daniel BallardD14.6m23.8%Market-value substitute prior
Lutsharel GeertruidaD14.4m33.7%Market-value substitute prior
Habib DiarraM18.7m71.8%Market-value substitute prior
Dayann MethalieM23.0m54.5%Market-value substitute prior
Brian BrobbeyF26.9m36.6%Market-value substitute prior
Antagonist / tactical summary
Midfield is evenly contested — Tyler Adams vs Noah Sadiki will be the pivotal duel. Total antagonist xG — Home: 1.00, Away: 0.76. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: CDM vs CDM.
Midfield — possession 48.7% / 51.3%, dominance ratio 0.47, key duel: Tyler Adams vs Noah Sadiki
Rayan xG 0.32Evanilson xG 0.30Ben Gannon-Doak xG 0.10Granit Xhaka xG 0.05Nilson Angulo xG 0.17Timur Tuterov xG 0.20

Summary

Antagonist matchup analysis for Bournemouth vs Sunderland. Most likely scoreline: 1-1. Lambdas derived from 6 home and 5 away individual player duels. Head-to-head: Bournemouth 2W-2D-2L vs Sunderland over 6 meetings.
Tactical parity between 4-2-3-1 and 4-2-3-1. Match outcome driven primarily by individual player quality. Midfield is evenly contested — Tyler Adams vs Noah Sadiki will be the pivotal duel. Total antagonist xG — Home: 1.00, Away: 0.76. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: CDM vs CDM.


Generated 2026-10-18 13:37:42 UTC · Soccer prediction reporting