Soccer predictions: actual data vs predicted data

Slate 20261108 · 10 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
Man Utd vs Aston Villa
Premier League
1-0Man Utd51.7% / 24.2% / 24.1%52.6%54.1%0.681.70 / 1.08-pending
Atlético Madrid vs Barcelona
LaLiga
1-2Barcelona27.6% / 21.0% / 51.4%70.4%68.8%0.691.52 / 2.12-pending
Elche vs Real Betis
LaLiga
2-1Elche41.4% / 24.5% / 34.2%57.3%60.0%0.651.57 / 1.41-pending
Ipswich vs Bournemouth
Premier League
1-1Draw36.3% / 25.6% / 38.1%52.6%56.5%0.641.37 / 1.41-pending
Brighton vs Brentford
Premier League
2-1Brighton41.9% / 23.8% / 34.3%60.3%62.3%0.661.65 / 1.47-pending
Sunderland vs Chelsea
Premier League
1-2Chelsea26.4% / 23.8% / 49.8%56.2%57.6%0.681.20 / 1.73-pending
Villarreal vs Getafe
LaLiga
2-0Villarreal67.3% / 19.3% / 13.5%57.3%50.2%0.732.14 / 0.84-pending
Celta vs Levante
LaLiga
2-1Celta50.1% / 23.5% / 26.4%57.3%58.5%0.681.76 / 1.22-pending
Crystal Palace vs Liverpool
Premier League
1-1Draw35.8% / 25.6% / 38.6%52.6%56.5%0.651.36 / 1.42-pending
Real Sociedad vs Rayo Vallecano
LaLiga
2-1Real Sociedad56.9% / 22.2% / 20.8%57.3%56.1%0.71.91 / 1.07-pending

Match detail

Man Utd vs Aston Villa

Premier League · 20261108 · 4-2-3-1 vs 4-2-3-1
Predicted 1-0Winner: Man UtdWinning H 1-0 (10.4%)Winning A 0-1 (6.6%)Confidence 0.68λ home/away 1.70 / 1.08Most-likely P 10.4%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset Tracing
Antagonist + XGBoost match analysis for Man Utd vs Aston Villa. 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.573, Away 1.085). Final calibrated Poisson lambdas: Home 1.698, Away 1.083 (most likely score 1-0).
Home Starters 11/11 XGBoost (9 FBref) Away Starters 11/11 XGBoost (9 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.57 / 1.08 Final λ (H/A) 1.70 / 1.08
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

MetricMan UtdAston Villa
League position17.009.00
Points per game1.011.34
Attack index0.960.88
Defense (concede) index0.981.15
Form multiplier0.981.02
Standing λ multiplier0.971.01

Lambda decomposition (how the goal rates were built)

StageMan Utd λAston Villa λ
Pre-competitive-floor1.7791.022
Pre-calibration (Micro-duels)1.5731.085
Final λ1.6981.083
competition calibration scale 0.993competition observed total goals 2.781quality gap applied Truemismatch score pressure applied Falsecompetitive underdog floor applied Falsestage discount 1.0

Scoreline distribution & markets

Top 5 scorelinesP
1-111.5%
1-010.4%
2-19.7%
2-08.9%
0-16.6%
Home win51.7%
Draw24.2%
Away win24.1%
Over 2.552.6%
BTTS yes54.1%
Pregame fair line — favorite Man Utd (51.7%), fair total 2.78, fair spread 0.61

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.

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.06.960.033FBref 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.0086, quality 0.770)market_value_eur=38000000
quality_factor=0.7699
boost_factor=1.0086
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
-
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': 'Nicolas Jackson, Johan Manzambi', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.085}
-
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.70 (squad xG sum 1.2053, xG scale 1.4087, xA scale 1.4087, team xA 1.16 = 0.68 x lambda)scoreline_reset=true
team_lambda=1.698
squad_xg_sum=1.2053
squad_xa_sum=0.8253
team_expected_assists=1.1626
team_xa_to_xg_ratio=0.6847
-
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.7229
-
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.1277
-
Matthijs de LigtD9000.19-n/a10.06.9-8XGBoost 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': 'Nicolas Jackson', '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.70 (squad xG sum 1.2053, xG scale 1.4087, xA scale 1.4087, team xA 1.16 = 0.68 x lambda)scoreline_reset=true
team_lambda=1.698
squad_xg_sum=1.2053
squad_xa_sum=0.8253
team_expected_assists=1.1626
team_xa_to_xg_ratio=0.6847
expected_goals: 0.1327 -> 0.1869
expected_assists: 0.0644 -> 0.0907
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 82.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.1705
goal_rate=0.1252
scorer_weight=0.1792
-
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.0867
assist_rate=0.0
provider_weight=0.0726
-
Harry MaguireD9000.050.04ok10.66.955.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.0000, quality 0.506)market_value_eur=8600000
quality_factor=0.5059
boost_factor=1.0
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.9944
prior_reliability=0.1333
competition=Premier League
totalShots: 0.5777 -> 0.5884
wonTackle: 0.7832 -> 0.774
totalCross: 0.3087 -> 0.3167
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': 'Nicolas Jackson', '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.70 (squad xG sum 1.2053, xG scale 1.4087, xA scale 1.4087, team xA 1.16 = 0.68 x lambda)scoreline_reset=true
team_lambda=1.698
squad_xg_sum=1.2053
squad_xa_sum=0.8253
team_expected_assists=1.1626
team_xa_to_xg_ratio=0.6847
expected_goals: 0.0339 -> 0.0478
expected_assists: 0.0385 -> 0.0542
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 82.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.0467
goal_rate=0.0027
scorer_weight=0.0382
-
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.02
provider_weight=0.0434
-
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': 'Lamare Bogarde', '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.70 (squad xG sum 1.2053, xG scale 1.4087, xA scale 1.4087, team xA 1.16 = 0.68 x lambda)scoreline_reset=true
team_lambda=1.698
squad_xg_sum=1.2053
squad_xa_sum=0.8253
team_expected_assists=1.1626
team_xa_to_xg_ratio=0.6847
expected_goals: 0.0175 -> 0.0247
expected_assists: 0.0837 -> 0.1179
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
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.0244
goal_rate=0.059
scorer_weight=0.0309
-
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.1112
assist_rate=0.1082
provider_weight=0.1395
-
Lisandro MartínezD8000.030.01133%10.56.953.325FBref 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.0151, quality 0.817)market_value_eur=48000000
quality_factor=0.8168
boost_factor=1.0151
reference_quality=0.505
history_matches=26
history_shrink=0.1613
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0070)blend_weight=0.007
history_matches=26
season_overlap_discount=1.0
per90_to_match_factor=0.8864
prior_reliability=0.0667
competition=Premier League
fouls: 1.0243 -> 1.0171
interceptionWon: 0.9449 -> 0.9383
wonTackle: 0.7598 -> 0.7545
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': 'Johan Manzambi', '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.70 (squad xG sum 1.2053, xG scale 1.4087, xA scale 1.4087, team xA 1.16 = 0.68 x lambda)scoreline_reset=true
team_lambda=1.698
squad_xg_sum=1.2053
squad_xa_sum=0.8253
team_expected_assists=1.1626
team_xa_to_xg_ratio=0.6847
expected_goals: 0.0248 -> 0.0349
expected_assists: 0.0271 -> 0.0382
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.0343
goal_rate=0.0
scorer_weight=0.0279
-
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.0375
assist_rate=0.0
provider_weight=0.0306
-
Bruno FernandesM9000.360.2168%32.07.260.832FBref 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.732)market_value_eur=32000000
quality_factor=0.732
boost_factor=1.0071
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.9959
prior_reliability=0.1333
competition=Premier League
totalShots: 2.0306 -> 2.0617
onTargetScoringAttempt: 0.6521 -> 0.6642
goals: 0.2543 -> 0.2655
wasFouled: 0.8104 -> 0.8031
wonTackle: 1.1007 -> 1.0953
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': 'Victor Lindelöf', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.559, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.1164, 'skill_edge': 0.1112, 'height_edge': -0.032, 'attacker_skill': 0.732, 'defender_skill': 0.4849, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Victor Lindelöf', 'market_value': 4800000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.4849}], 'xg_override': 0.2522}
aerialWon: 0.208 -> 1.0
totalShots: 2.0617 -> 2.3017
shotOffTarget: 1.3784 -> 1.5388
onTargetScoringAttempt: 0.6642 -> 0.7415
bigChanceMissed: 0.2721 -> 0.3038
goals: 0.2655 -> 0.2964
expectedGoals: 0.2259 -> 0.2522
expectedGoalsOnTarget: 0.1889 -> 0.2109
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.70 (squad xG sum 1.2053, xG scale 1.4087, xA scale 1.4087, team xA 1.16 = 0.68 x lambda)scoreline_reset=true
team_lambda=1.698
squad_xg_sum=1.2053
squad_xa_sum=0.8253
team_expected_assists=1.1626
team_xa_to_xg_ratio=0.6847
expected_goals: 0.2522 -> 0.3553
expected_assists: 0.1977 -> 0.2786
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 89.0)match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
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.299
goal_rate=0.2964
scorer_weight=0.4073
-
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.2432
assist_rate=0.2146
provider_weight=0.2976
-
Youri TielemansM7600.080.0490%10.77.155.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 1.0115, quality 0.796)market_value_eur=43000000
quality_factor=0.7957
boost_factor=1.0115
reference_quality=0.505
history_matches=33
history_shrink=0.1316
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0097)blend_weight=0.0097
history_matches=33
season_overlap_discount=1.0
per90_to_match_factor=0.8427
prior_reliability=0.1133
competition=Premier League
wasFouled: 1.9305 -> 1.9406
totalShots: 0.9137 -> 0.9237
totalCross: 1.4576 -> 1.4483
onTargetScoringAttempt: 0.2856 -> 0.2922
wonTackle: 1.1708 -> 1.1643
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': 'Ian Maatsen', 'matchup_zone': 'Right Wing vs Left Back — Flank Battle', 'duel_win_rate': 0.468, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9823, 'skill_edge': -0.008, 'height_edge': -0.004, 'attacker_skill': 0.7957, 'defender_skill': 0.8135, 'attacker_role': 'RW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Ian Maatsen', 'market_value': 33000000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.8135}], 'xg_override': 0.0592}
totalShots: 0.9237 -> 0.9074
aerialWon: 1.0115 -> 1.0
shotOffTarget: 0.6281 -> 0.617
onTargetScoringAttempt: 0.2922 -> 0.287
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.70 (squad xG sum 1.2053, xG scale 1.4087, xA scale 1.4087, team xA 1.16 = 0.68 x lambda)scoreline_reset=true
team_lambda=1.698
squad_xg_sum=1.2053
squad_xa_sum=0.8253
team_expected_assists=1.1626
team_xa_to_xg_ratio=0.6847
expected_goals: 0.0592 -> 0.0834
expected_assists: 0.1124 -> 0.1583
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 85.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.08
goal_rate=0.0586
scorer_weight=0.0829
-
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.1464
assist_rate=0.0831
provider_weight=0.1297
-
Carlos BalebaM7200.080.03222%10.66.946.526XGBoost 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.0133, quality 0.859)market_value_eur=63000000
quality_factor=0.8589
boost_factor=1.0133
reference_quality=0.505
history_matches=35
history_shrink=0.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': 'Boubacar Kamara, João Gomes', 'matchup_zone': 'Attacking Mid vs Double Pivot — Tight Space Battle', 'duel_win_rate': 0.256, 'pressing_faced': 'HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 1.024, 'skill_edge': 0.0203, 'height_edge': -0.004, 'attacker_skill': 0.865, 'defender_skill': 0.8198, 'attacker_role': 'CAM', 'attacker_mv_price_index': 0.95, 'defender_adjusted_parts': [{'player': 'Boubacar Kamara', 'market_value': 49000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.847}, {'player': 'João Gomes', 'market_value': 36000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.7926}], 'xg_override': 0.0591}
aerialWon: 1.2996 -> 1.0
totalShots: 0.9085 -> 0.9303
shotOffTarget: 0.6997 -> 0.7165
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.70 (squad xG sum 1.2053, xG scale 1.4087, xA scale 1.4087, team xA 1.16 = 0.68 x lambda)scoreline_reset=true
team_lambda=1.698
squad_xg_sum=1.2053
squad_xa_sum=0.8253
team_expected_assists=1.1626
team_xa_to_xg_ratio=0.6847
expected_goals: 0.0591 -> 0.0833
expected_assists: 0.0362 -> 0.051
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.0799
goal_rate=0.0622
scorer_weight=0.0857
-
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.0497
assist_rate=0.0571
provider_weight=0.0634
-
Kobbie MainooM8700.070.02202%10.67.158.929FBref 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.0140, quality 0.879)market_value_eur=77000000
quality_factor=0.8792
boost_factor=1.014
reference_quality=0.505
history_matches=35
history_shrink=0.125
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0060)blend_weight=0.006
history_matches=35
season_overlap_discount=1.0
per90_to_match_factor=0.966
prior_reliability=0.0733
competition=Premier League
totalShots: 0.7147 -> 0.7306
fouls: 0.9276 -> 0.9221
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': 'Boubacar Kamara', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.439, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 1.028, 'skill_edge': 0.0191, 'height_edge': 0.0, 'attacker_skill': 0.8893, 'defender_skill': 0.847, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Boubacar Kamara', 'market_value': 49000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.847}], 'xg_override': 0.0525}
aerialWon: 0.3665 -> 1.1
totalShots: 0.7306 -> 0.7511
shotOffTarget: 0.535 -> 0.55
onTargetScoringAttempt: 0.1786 -> 0.1836
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.70 (squad xG sum 1.2053, xG scale 1.4087, xA scale 1.4087, team xA 1.16 = 0.68 x lambda)scoreline_reset=true
team_lambda=1.698
squad_xg_sum=1.2053
squad_xa_sum=0.8253
team_expected_assists=1.1626
team_xa_to_xg_ratio=0.6847
expected_goals: 0.0525 -> 0.074
expected_assists: 0.0748 -> 0.1054
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.0713
goal_rate=0.0512
scorer_weight=0.0731
-
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.1
assist_rate=0.0675
provider_weight=0.0992
-
Andrey SantosM7800.080.0492%10.26.941.833FBref 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.800)market_value_eur=44000000
quality_factor=0.8002
boost_factor=1.0117
reference_quality=0.505
history_matches=33
history_shrink=0.1316
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0051)blend_weight=0.0051
history_matches=33
season_overlap_discount=1.0
per90_to_match_factor=0.8611
prior_reliability=0.06
competition=Premier League
interceptionWon: 1.2386 -> 1.2322
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': 'Boubacar Kamara', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.396, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9653, 'skill_edge': -0.0076, 'height_edge': -0.016, 'attacker_skill': 0.8301, 'defender_skill': 0.847, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Boubacar Kamara', 'market_value': 49000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.847}], 'xg_override': 0.0545}
aerialWon: 0.9972 -> 1.1
totalShots: 0.5928 -> 0.5722
shotOffTarget: 0.4315 -> 0.4165
onTargetScoringAttempt: 0.1613 -> 0.1557
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.70 (squad xG sum 1.2053, xG scale 1.4087, xA scale 1.4087, team xA 1.16 = 0.68 x lambda)scoreline_reset=true
team_lambda=1.698
squad_xg_sum=1.2053
squad_xa_sum=0.8253
team_expected_assists=1.1626
team_xa_to_xg_ratio=0.6847
expected_goals: 0.0545 -> 0.0768
expected_assists: 0.037 -> 0.0521
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 80.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.0739
goal_rate=0.0515
scorer_weight=0.0746
-
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.0508
assist_rate=0.0539
provider_weight=0.0622
-
Bryan MbeumoF8710.550.3941%32.16.958.436FBref 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.0118, quality 0.875)market_value_eur=73000000
quality_factor=0.8747
boost_factor=1.0118
reference_quality=0.505
history_matches=42
history_shrink=0.1064
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0092)blend_weight=0.0092
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.9671
prior_reliability=0.1333
competition=Premier League
totalCross: 2.1067 -> 2.1541
totalShots: 2.3987 -> 2.4167
wonTackle: 0.3357 -> 0.3415
wasFouled: 1.0741 -> 1.0687
interceptionWon: 0.5556 -> 0.5505
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': 'Matty Cash, Tyrone Mings', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.277, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.1126, 'skill_edge': 0.1366, 'height_edge': -0.06, 'attacker_skill': 0.8747, 'defender_skill': 0.5712, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Matty Cash', 'market_value': 19800000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6892}, {'player': 'Tyrone Mings', 'market_value': 3200000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4531}], 'xg_override': 0.3881}
totalShots: 2.4167 -> 2.6888
shotOffTarget: 1.4418 -> 1.6041
onTargetScoringAttempt: 0.9615 -> 1.0698
bigChanceMissed: 0.5462 -> 0.6077
expectedGoalsOnTarget: 0.422 -> 0.4695
expectedGoals: 0.3488 -> 0.3881
goals: 0.3367 -> 0.3746
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.70 (squad xG sum 1.2053, xG scale 1.4087, xA scale 1.4087, team xA 1.16 = 0.68 x lambda)scoreline_reset=true
team_lambda=1.698
squad_xg_sum=1.2053
squad_xa_sum=0.8253
team_expected_assists=1.1626
team_xa_to_xg_ratio=0.6847
expected_goals: 0.3881 -> 0.5466
expected_assists: 0.1128 -> 0.1589
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 84.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.4211
goal_rate=0.3746
scorer_weight=0.5298
-
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.1469
assist_rate=0.0157
provider_weight=0.1271
-
Team totals11.70167.0
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Dermot MeeG4.4m10.9%Market-value substitute prior
Leny YoroD16.1m63.1%Market-value substitute prior
Ayden HeavenD14.7m24.1%Market-value substitute prior
Patrick DorguM16.5m52.4%Market-value substitute prior
Mason MountM22.9m53.9%Market-value substitute prior
Matheus CunhaF27.1m37.0%Market-value substitute prior

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Zion SuzukiG9000.00-n/a0.07.342.814FBref 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.0254, quality 0.725)market_value_eur=31000000
quality_factor=0.7249
boost_factor=1.0254
reference_quality=0.505
history_matches=8
history_shrink=0.3846
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0167)blend_weight=0.0167
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.0667
competition=Premier League
saves: 3.162 -> 3.1259
wasFouled: 0.4561 -> 0.4485
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.573}
-
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 1.08 (squad xG sum 1.1472, xG scale 0.9440, xA scale 1.2035, team xA 0.70 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.083
squad_xg_sum=1.1472
squad_xa_sum=0.5849
team_expected_assists=0.7039
team_xa_to_xg_ratio=0.65
shots_faced: 14.9 -> 16.1
expected_saves: 3.64 -> 3.94
high_pressure_saves: 1.26 -> 1.36
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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.1046
-
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.722
-
Victor LindelöfD8800.030.0249%00.16.938.032FBref 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.9978, quality 0.460)market_value_eur=4800000
quality_factor=0.4597
boost_factor=0.9978
reference_quality=0.505
history_matches=26
history_shrink=0.1613
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0140)blend_weight=0.014
history_matches=26
season_overlap_discount=1.0
per90_to_match_factor=0.9756
prior_reliability=0.1333
competition=Premier League
interceptionWon: 0.7641 -> 0.7534
wonTackle: 0.575 -> 0.567
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': 'Left Wing vs Right Back — Flank 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 1.08 (squad xG sum 1.1472, xG scale 0.9440, xA scale 1.2035, team xA 0.70 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.083
squad_xg_sum=1.1472
squad_xa_sum=0.5849
team_expected_assists=0.7039
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 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.0328
goal_rate=0.0
scorer_weight=0.0266
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0158
assist_rate=0.007
provider_weight=0.0143
-
Ian MaatsenD8500.050.0437%10.76.750.130FBref 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.0086, quality 0.739)market_value_eur=33000000
quality_factor=0.7389
boost_factor=1.0086
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.9476
prior_reliability=0.1267
competition=Premier League
fouls: 0.9756 -> 0.9908
totalCross: 1.7818 -> 1.7689
wonTackle: 1.4636 -> 1.4539
interceptionWon: 1.1209 -> 1.1297
totalShots: 0.889 -> 0.8951
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': 'Youri Tielemans', 'matchup_zone': 'Right Wing vs Left Back — Flank 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 1.08 (squad xG sum 1.1472, xG scale 0.9440, xA scale 1.2035, team xA 0.70 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.083
squad_xg_sum=1.1472
squad_xa_sum=0.5849
team_expected_assists=0.7039
team_xa_to_xg_ratio=0.65
expected_assists: 0.0923 -> 0.1111
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 79.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.0516
goal_rate=0.0
scorer_weight=0.0424
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.1052
assist_rate=0.0355
provider_weight=0.0889
-
Matty CashD8800.020.02ok10.66.756.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 1.0039, quality 0.629)market_value_eur=19800000
quality_factor=0.6291
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.9749
prior_reliability=0.1267
competition=Premier League
totalCross: 2.2294 -> 2.2103
wonTackle: 1.4452 -> 1.4548
wasFouled: 1.1825 -> 1.19
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', '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 1.08 (squad xG sum 1.1472, xG scale 0.9440, xA scale 1.2035, team xA 0.70 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.083
squad_xg_sum=1.1472
squad_xa_sum=0.5849
team_expected_assists=0.7039
team_xa_to_xg_ratio=0.65
expected_assists: 0.052 -> 0.0626
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.0222
goal_rate=0.0038
scorer_weight=0.0179
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0607
assist_rate=0.0407
provider_weight=0.0557
-
Tyrone MingsD8900.050.04ok10.36.836.629FBref 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.9965, quality 0.440)market_value_eur=3200000
quality_factor=0.4399
boost_factor=0.9965
reference_quality=0.505
history_matches=23
history_shrink=0.1786
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0015)blend_weight=0.0015
history_matches=23
season_overlap_discount=1.0
per90_to_match_factor=0.9889
prior_reliability=0.0133
competition=Premier League
wonTackle: 0.5261 -> 0.5329
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', '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 1.08 (squad xG sum 1.1472, xG scale 0.9440, xA scale 1.2035, team xA 0.70 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.083
squad_xg_sum=1.1472
squad_xa_sum=0.5849
team_expected_assists=0.7039
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 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.0519
goal_rate=0.0
scorer_weight=0.0426
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0201
assist_rate=0.0
provider_weight=0.0162
-
Boubacar KamaraM8700.040.01173%00.26.948.416FBref 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.821)market_value_eur=49000000
quality_factor=0.8206
boost_factor=1.0148
reference_quality=0.505
history_matches=27
history_shrink=0.1562
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0135)blend_weight=0.0135
history_matches=27
season_overlap_discount=1.0
per90_to_match_factor=0.963
prior_reliability=0.1333
competition=Premier League
wasFouled: 2.4387 -> 2.4122
wonTackle: 1.7789 -> 1.7679
totalShots: 0.5149 -> 0.5079
fouls: 1.9986 -> 2.0041
interceptionWon: 0.8701 -> 0.8648
totalCross: 0.0988 -> 0.104
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': 'CDM vs CDM', 'duel_win_rate': 0.401, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.972, 'skill_edge': -0.0191, 'height_edge': 0.0, 'attacker_skill': 0.847, 'defender_skill': 0.8893, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Kobbie Mainoo', 'market_value': 77000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8893}], 'xg_override': 0.0417}
aerialWon: 1.2149 -> 1.1
totalShots: 0.5129 -> 0.4986
shotOffTarget: 0.3693 -> 0.359
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 1.08 (squad xG sum 1.1472, xG scale 0.9440, xA scale 1.2035, team xA 0.70 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.083
squad_xg_sum=1.1472
squad_xa_sum=0.5849
team_expected_assists=0.7039
team_xa_to_xg_ratio=0.65
expected_assists: 0.0333 -> 0.0401
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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0386
goal_rate=0.0502
scorer_weight=0.0431
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0393
assist_rate=0.0573
provider_weight=0.0501
-
Amadou OnanaM8500.080.08ok10.86.845.317XGBoost 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.0130, quality 0.764)market_value_eur=37000000
quality_factor=0.7641
boost_factor=1.013
reference_quality=0.505
history_matches=25
history_shrink=0.1667
-
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, Andrey Santos', 'matchup_zone': 'Attacking Mid vs Double Pivot — Tight Space Battle', 'duel_win_rate': 0.254, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 1.0205, 'skill_edge': -0.038, 'height_edge': 0.052, 'attacker_skill': 0.7752, 'defender_skill': 0.8597, 'attacker_role': 'CAM', 'attacker_mv_price_index': 0.95, 'defender_adjusted_parts': [{'player': 'Kobbie Mainoo', 'market_value': 77000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8893}, {'player': 'Andrey Santos', 'market_value': 44000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8301}], 'xg_override': 0.0844}
aerialWon: 1.9008 -> 1.4
totalShots: 1.0254 -> 1.0464
shotOffTarget: 0.7464 -> 0.7617
bigChanceMissed: 0.4305 -> 0.4393
onTargetScoringAttempt: 0.279 -> 0.2847
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 1.08 (squad xG sum 1.1472, xG scale 0.9440, xA scale 1.2035, team xA 0.70 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.083
squad_xg_sum=1.1472
squad_xa_sum=0.5849
team_expected_assists=0.7039
team_xa_to_xg_ratio=0.65
expected_assists: 0.0372 -> 0.0448
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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0766
goal_rate=0.0651
scorer_weight=0.0683
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0438
assist_rate=0.0542
provider_weight=0.0535
-
João GomesM8200.030.02ok00.46.853.929FBref 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.0083, quality 0.758)market_value_eur=36000000
quality_factor=0.7581
boost_factor=1.0083
reference_quality=0.505
history_matches=41
history_shrink=0.1087
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0019)blend_weight=0.0019
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=0.9076
prior_reliability=0.0267
competition=Premier League
wonTackle: 1.7996 -> 1.8048
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': 'CDM vs CDM', 'duel_win_rate': 0.344, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.889, 'skill_edge': -0.0435, 'height_edge': -0.032, 'attacker_skill': 0.7926, 'defender_skill': 0.8893, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Kobbie Mainoo', 'market_value': 77000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8893}], 'xg_override': 0.0274}
aerialWon: 0.5536 -> 0.9
totalShots: 0.5093 -> 0.4528
shotOffTarget: 0.3613 -> 0.3212
onTargetScoringAttempt: 0.148 -> 0.1316
goals: 0.0465 -> 0.0413
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 1.08 (squad xG sum 1.1472, xG scale 0.9440, xA scale 1.2035, team xA 0.70 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.083
squad_xg_sum=1.1472
squad_xa_sum=0.5849
team_expected_assists=0.7039
team_xa_to_xg_ratio=0.65
expected_assists: 0.05 -> 0.0602
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
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0256
goal_rate=0.0413
scorer_weight=0.0306
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0584
assist_rate=0.0576
provider_weight=0.0648
-
Johan ManzambiM7600.240.1565%31.57.039.311XGBoost 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.0501, quality 0.872)market_value_eur=71000000
quality_factor=0.8721
boost_factor=1.0501
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': 'Lisandro Martínez', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.51, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 1.0435, 'skill_edge': 0.0016, 'height_edge': 0.028, 'attacker_skill': 0.8721, 'defender_skill': 0.8686, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Lisandro Martínez', 'market_value': 48000000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.8686}], 'xg_override': 0.2546}
aerialWon: 0.0 -> 1.1
totalShots: 2.6802 -> 2.7968
shotOffTarget: 1.7668 -> 1.8437
onTargetScoringAttempt: 0.9133 -> 0.953
expectedGoalsOnTarget: 0.2916 -> 0.3043
goals: 0.2472 -> 0.258
expectedGoals: 0.244 -> 0.2546
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 1.08 (squad xG sum 1.1472, xG scale 0.9440, xA scale 1.2035, team xA 0.70 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.083
squad_xg_sum=1.1472
squad_xa_sum=0.5849
team_expected_assists=0.7039
team_xa_to_xg_ratio=0.65
expected_goals: 0.2546 -> 0.2403
expected_assists: 0.1173 -> 0.1411
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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.2136
goal_rate=0.258
scorer_weight=0.243
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.1316
assist_rate=0.1634
provider_weight=0.1764
-
Lamare BogardeM8000.04-n/a10.06.730.732FBref 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.0044, quality 0.606)market_value_eur=17500000
quality_factor=0.6058
boost_factor=1.0044
reference_quality=0.505
history_matches=29
history_shrink=0.1471
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0013)blend_weight=0.0013
history_matches=29
season_overlap_discount=1.0
per90_to_match_factor=0.8942
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': 'Luke Shaw', 'matchup_zone': 'Right Wing vs Left Back — Flank Battle', 'duel_win_rate': 0.534, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.079, 'skill_edge': 0.0337, 'height_edge': 0.02, 'attacker_skill': 0.6058, 'defender_skill': 0.5308, 'attacker_role': 'RW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Luke Shaw', 'market_value': 7500000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.5308}], 'xg_override': 0.0387}
aerialWon: 0.4989 -> 1.1
totalShots: 0.6079 -> 0.6559
shotOffTarget: 0.4272 -> 0.4609
onTargetScoringAttempt: 0.1807 -> 0.195
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 1.08 (squad xG sum 1.1472, xG scale 0.9440, xA scale 1.2035, team xA 0.70 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.083
squad_xg_sum=1.1472
squad_xa_sum=0.5849
team_expected_assists=0.7039
team_xa_to_xg_ratio=0.65
expected_assists: 0.0338 -> 0.0407
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 74.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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0358
goal_rate=0.0636
scorer_weight=0.0456
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0399
assist_rate=0.0455
provider_weight=0.0464
-
Nicolas JacksonF8200.370.17124%31.67.246.613FBref 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.0341, quality 0.800)market_value_eur=44000000
quality_factor=0.8002
boost_factor=1.0341
reference_quality=0.505
history_matches=8
history_shrink=0.3846
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0133)blend_weight=0.0133
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=0.9122
prior_reliability=0.0533
competition=Premier League
totalShots: 2.466 -> 2.4331
wasFouled: 1.2927 -> 1.2755
onTargetScoringAttempt: 0.9066 -> 0.8945
totalCross: 0.2601 -> 0.2718
totalOffside: 0.6975 -> 0.6882
goals: 0.4099 -> 0.4044
fouls: 0.3872 -> 0.382
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': 'Matthijs de Ligt, Harry Maguire', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.25, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.0735, 'skill_edge': 0.07, 'height_edge': -0.02, 'attacker_skill': 0.8002, 'defender_skill': 0.6447, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Matthijs de Ligt', 'market_value': 26000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7498}, {'player': 'Harry Maguire', 'market_value': 8600000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5395}], 'xg_override': 0.3933}
totalShots: 2.4539 -> 2.6343
shotOffTarget: 1.5594 -> 1.674
onTargetScoringAttempt: 0.8945 -> 0.9602
goals: 0.4044 -> 0.4341
expectedGoalsOnTarget: 0.3669 -> 0.3939
expectedGoals: 0.3664 -> 0.3933
bigChanceMissed: 0.2654 -> 0.2849
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 1.08 (squad xG sum 1.1472, xG scale 0.9440, xA scale 1.2035, team xA 0.70 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.083
squad_xg_sum=1.1472
squad_xa_sum=0.5849
team_expected_assists=0.7039
team_xa_to_xg_ratio=0.65
expected_goals: 0.3933 -> 0.3713
expected_assists: 0.0658 -> 0.0792
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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.3102
goal_rate=0.4341
scorer_weight=0.4055
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0761
assist_rate=0.0
provider_weight=0.0634
-
Team totals01.08146.9
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Marco BizotG4.4m13.1%Market-value substitute prior
Matteo RuggeriD11.5m62.3%Market-value substitute prior
Taylor Harwood-BellisD14.6m34.5%Market-value substitute prior
Leon GoretzkaM22.3m51.2%Market-value substitute prior
Ross BarkleyM22.0m30.8%Market-value substitute prior
Ibrahim MbayeF26.4m60.8%Market-value substitute prior
Antagonist / tactical summary
Midfield is evenly contested — Kobbie Mainoo vs Johan Manzambi will be the pivotal duel. Total antagonist xG — Home: 0.87, Away: 0.84. 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.1% / 49.9%, dominance ratio 0.52, key duel: Kobbie Mainoo vs Johan Manzambi
Bruno Fernandes xG 0.25Youri Tielemans xG 0.06Carlos Baleba xG 0.06Johan Manzambi xG 0.25Lamare Bogarde xG 0.04Amadou Onana xG 0.08

Summary

Antagonist matchup analysis for Man Utd vs Aston Villa. Most likely scoreline: 1-0. Lambdas derived from 6 home and 6 away individual player duels. Head-to-head: Man Utd 6W-2D-2L vs Aston Villa over 10 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 — Kobbie Mainoo vs Johan Manzambi will be the pivotal duel. Total antagonist xG — Home: 0.87, Away: 0.84. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.

Atlético Madrid vs Barcelona

LaLiga · 20261108 · 4-4-2 vs 4-3-3
Predicted 1-2Winner: BarcelonaWinning H 2-1 (6.4%)Winning A 1-2 (9.0%)Confidence 0.69λ home/away 1.52 / 2.12Most-likely P 9.0%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset Tracing
Antagonist + XGBoost match analysis for Atlético Madrid vs Barcelona. Player statistics regressed using position-specific XGBoost models (G, D, M, F) with 2026-2027 FBref priors. Micro-duels resolved across 4-4-2 vs 4-3-3 (duel lambdas: Home 1.585, Away 2.675). Final calibrated Poisson lambdas: Home 1.521, Away 2.119 (most likely score 1-2).
Home Starters 11/11 XGBoost (7 FBref) Away Starters 11/11 XGBoost (11 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.58 / 2.67 Final λ (H/A) 1.52 / 2.12
FBref Team Priors: Atlético Madrid (Gls/90: 2.3333333333333335, GA/90: 2.33 → E[λ]: 3.5) vs FC Barcelona (Gls/90: 3.6666666666666665, GA/90: 4.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

MetricAtlético MadridBarcelona
League position2.001.00
Points per game2.132.25
Attack index1.211.77
Defense (concede) index0.830.79
Form multiplier0.991.01
Standing λ multiplier1.001.15

Lambda decomposition (how the goal rates were built)

StageAtlético Madrid λBarcelona λ
FBref Squad Prior E[λ] (weight 0.228)3.5003.500
Pre-competitive-floor1.5512.732
Pre-calibration (Micro-duels)1.5852.675
Final λ1.5212.119
competition calibration scale 0.85competition observed total goals 2.984quality gap applied Truemismatch score pressure applied Falsecompetitive underdog floor applied Falsestage discount 1.0

Scoreline distribution & markets

Top 5 scorelinesP
1-29.0%
1-18.5%
2-26.8%
2-16.4%
1-36.3%
Home win27.6%
Draw21.0%
Away win51.4%
Over 2.570.4%
BTTS yes68.8%
Pregame fair line — favorite Barcelona (51.4%), fair total 3.64, fair spread -0.60

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.

Atlético Madrid — projected line vs season baseline (4-4-2)

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Jan OblakG9000.00-n/a0.07.059.229FBref 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.0028, quality 0.590)market_value_eur=16000000
quality_factor=0.59
boost_factor=1.0028
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
-
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': 'Raphinha, Lamine Yamal', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 2.6747}
-
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.0663, xG scale 1.4264, xA scale 1.1809, team xA 1.22 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.521
squad_xg_sum=1.0663
squad_xa_sum=1.0304
team_expected_assists=1.2168
team_xa_to_xg_ratio=0.8
shots_faced: 25.4 -> 20.1
expected_saves: 6.22 -> 4.92
high_pressure_saves: 2.14 -> 1.7
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 88.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.0
scorer_weight=0.0
squad_weight_total=1.6848
-
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.1637
-
Cristian RomeroD7900.170.08114%10.87.157.619FBref 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.0114, quality 0.764)market_value_eur=37000000
quality_factor=0.7641
boost_factor=1.0114
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': 'Raphinha', '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.52 (squad xG sum 1.0663, xG scale 1.4264, xA scale 1.1809, team xA 1.22 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.521
squad_xg_sum=1.0663
squad_xa_sum=1.0304
team_expected_assists=1.2168
team_xa_to_xg_ratio=0.8
expected_goals: 0.1169 -> 0.1667
expected_assists: 0.0609 -> 0.0719
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.1535
goal_rate=0.2199
scorer_weight=0.2084
-
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.0694
assist_rate=0.0036
provider_weight=0.0575
-
Marc PubillD8300.060.0476%00.47.051.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 1.0142, quality 0.817)market_value_eur=48000000
quality_factor=0.8168
boost_factor=1.0142
reference_quality=0.505
history_matches=28
history_shrink=0.1515
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0112)blend_weight=0.0112
history_matches=28
season_overlap_discount=1.0
per90_to_match_factor=0.9213
prior_reliability=0.1133
competition=La Liga
interceptionWon: 0.8736 -> 0.8639
totalShots: 0.4825 -> 0.489
totalCross: 0.5212 -> 0.5275
goals: 0.0924 -> 0.0974
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': 'Anthony Gordon', '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.52 (squad xG sum 1.0663, xG scale 1.4264, xA scale 1.1809, team xA 1.22 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.521
squad_xg_sum=1.0663
squad_xa_sum=1.0304
team_expected_assists=1.2168
team_xa_to_xg_ratio=0.8
expected_goals: 0.0455 -> 0.0649
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 87.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: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0628
goal_rate=0.0974
scorer_weight=0.0811
-
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.0214
assist_rate=0.006
provider_weight=0.0177
-
Marcos LlorenteD8500.060.0465%10.67.162.733FBref 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.0045, quality 0.641)market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.0045
reference_quality=0.505
history_matches=40
history_shrink=0.1111
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0072)blend_weight=0.0072
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=0.9429
prior_reliability=0.1
competition=La Liga
fouls: 0.9675 -> 0.9878
totalCross: 1.5559 -> 1.5447
interceptionWon: 1.0244 -> 1.0352
wasFouled: 0.1724 -> 0.1802
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': 'Lamine Yamal', '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.52 (squad xG sum 1.0663, xG scale 1.4264, xA scale 1.1809, team xA 1.22 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.521
squad_xg_sum=1.0663
squad_xa_sum=1.0304
team_expected_assists=1.2168
team_xa_to_xg_ratio=0.8
expected_goals: 0.0438 -> 0.0625
expected_assists: 0.0746 -> 0.0881
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 85.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.0606
goal_rate=0.0
scorer_weight=0.05
-
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.0843
assist_rate=0.079
provider_weight=0.0912
-
Dávid HanckoD8800.070.0557%10.77.056.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 1.0083, quality 0.758)market_value_eur=36000000
quality_factor=0.7581
boost_factor=1.0083
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=0.9832
prior_reliability=0.2
competition=La Liga
interceptionWon: 0.9477 -> 0.9621
wasFouled: 0.1548 -> 0.1665
wonTackle: 0.7045 -> 0.7131
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': 'Anthony Gordon', '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.52 (squad xG sum 1.0663, xG scale 1.4264, xA scale 1.1809, team xA 1.22 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.521
squad_xg_sum=1.0663
squad_xa_sum=1.0304
team_expected_assists=1.2168
team_xa_to_xg_ratio=0.8
expected_goals: 0.0521 -> 0.0743
expected_assists: 0.0397 -> 0.0469
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 83.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.0716
goal_rate=0.0
scorer_weight=0.0594
-
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.0458
assist_rate=0.1271
provider_weight=0.0586
-
Pablo BarriosM7100.090.04157%10.87.261.916FBref 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.0156, quality 0.879)market_value_eur=77000000
quality_factor=0.8792
boost_factor=1.0156
reference_quality=0.505
history_matches=31
history_shrink=0.1389
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0138)blend_weight=0.0138
history_matches=31
season_overlap_discount=1.0
per90_to_match_factor=0.7857
prior_reliability=0.1533
competition=La Liga
wasFouled: 0.7257 -> 0.7393
totalCross: 0.9926 -> 0.9836
totalShots: 0.919 -> 0.9111
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': 'Rodri, Pedri', 'matchup_zone': 'CM vs CDM + CM', 'duel_win_rate': 0.297, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.9954, 'skill_edge': 0.0029, 'height_edge': -0.006, 'attacker_skill': 0.8863, 'defender_skill': 0.8799, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Rodri', 'market_value': 54000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8599}, {'player': 'Pedri', 'market_value': 164000000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.8999}], 'xg_override': 0.0634}
aerialWon: 0.6727 -> 1.1
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.0663, xG scale 1.4264, xA scale 1.1809, team xA 1.22 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.521
squad_xg_sum=1.0663
squad_xa_sum=1.0304
team_expected_assists=1.2168
team_xa_to_xg_ratio=0.8
expected_goals: 0.0634 -> 0.0904
expected_assists: 0.1154 -> 0.1363
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.0864
goal_rate=0.062
scorer_weight=0.0893
-
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.1274
assist_rate=0.0942
provider_weight=0.1188
-
Alejandro GrimaldoM8900.190.18ok11.27.154.921XGBoost 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.0120, quality 0.625)market_value_eur=19400000
quality_factor=0.6251
boost_factor=1.012
reference_quality=0.505
history_matches=10
history_shrink=0.3333
-
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': 'Eric García', 'matchup_zone': 'Left Mid vs Right Back — Wide Channel', 'duel_win_rate': 0.32, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.7947, 'skill_edge': -0.0956, 'height_edge': -0.044, 'attacker_skill': 0.6461, 'defender_skill': 0.8586, 'attacker_role': 'LM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Eric García', 'market_value': 44000000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.8586}], 'xg_override': 0.1302}
aerialWon: 0.2793 -> 0.8
totalShots: 1.6114 -> 1.2806
shotOffTarget: 1.0006 -> 0.7952
onTargetScoringAttempt: 0.6108 -> 0.4854
expectedGoalsOnTarget: 0.3581 -> 0.2846
goals: 0.1664 -> 0.1322
expectedGoals: 0.1638 -> 0.1302
bigChanceMissed: 0.1314 -> 0.1044
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.0663, xG scale 1.4264, xA scale 1.1809, team xA 1.22 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.521
squad_xg_sum=1.0663
squad_xa_sum=1.0304
team_expected_assists=1.2168
team_xa_to_xg_ratio=0.8
expected_goals: 0.1302 -> 0.1857
expected_assists: 0.1628 -> 0.1922
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_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.1695
goal_rate=0.1322
scorer_weight=0.1878
-
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.1749
assist_rate=0.1625
provider_weight=0.1919
-
Obed VargasM8200.060.01741%00.26.834.524XGBoost 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.0008, quality 0.514)market_value_eur=9300000
quality_factor=0.5142
boost_factor=1.0008
reference_quality=0.505
history_matches=12
history_shrink=0.2941
-
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': 'Xavi Espart', 'matchup_zone': 'Right Mid vs Left Back — Wide Channel', 'duel_win_rate': 0.353, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 0.8422, 'skill_edge': -0.1074, 'height_edge': 0.0, 'attacker_skill': 0.5264, 'defender_skill': 0.765, 'attacker_role': 'RM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Xavi Espart', 'market_value': 26000000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.765}], 'xg_override': 0.0444}
aerialWon: 0.2407 -> 0.9
totalShots: 0.5864 -> 0.4939
shotOffTarget: 0.4147 -> 0.3493
onTargetScoringAttempt: 0.1717 -> 0.1446
goals: 0.0599 -> 0.0504
expectedGoals: 0.0527 -> 0.0444
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.0663, xG scale 1.4264, xA scale 1.1809, team xA 1.22 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.521
squad_xg_sum=1.0663
squad_xa_sum=1.0304
team_expected_assists=1.2168
team_xa_to_xg_ratio=0.8
expected_goals: 0.0444 -> 0.0633
expected_assists: 0.0459 -> 0.0542
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 72.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.0613
goal_rate=0.0504
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.0528
assist_rate=0.0643
provider_weight=0.0646
-
Giuliano SimeoneM8000.190.1174%21.07.161.332FBref 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.0094, quality 0.800)market_value_eur=44000000
quality_factor=0.8002
boost_factor=1.0094
reference_quality=0.505
history_matches=42
history_shrink=0.1064
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0111)blend_weight=0.0111
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.8879
prior_reliability=0.16
competition=La Liga
interceptionWon: 0.624 -> 0.6335
wonTackle: 1.3249 -> 1.3307
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': 'Rodri, Pedri', 'matchup_zone': 'CM vs CDM + CM', 'duel_win_rate': 0.235, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.9046, 'skill_edge': -0.0269, 'height_edge': -0.038, 'attacker_skill': 0.8202, 'defender_skill': 0.8799, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Rodri', 'market_value': 54000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8599}, {'player': 'Pedri', 'market_value': 164000000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.8999}], 'xg_override': 0.1365}
aerialWon: 1.7213 -> 0.9
totalShots: 1.5374 -> 1.3907
shotOffTarget: 0.9537 -> 0.8627
onTargetScoringAttempt: 0.5819 -> 0.5264
goals: 0.1738 -> 0.1572
expectedGoals: 0.1509 -> 0.1365
expectedGoalsOnTarget: 0.1238 -> 0.112
bigChanceMissed: 0.0705 -> 0.0638
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.0663, xG scale 1.4264, xA scale 1.1809, team xA 1.22 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.521
squad_xg_sum=1.0663
squad_xa_sum=1.0304
team_expected_assists=1.2168
team_xa_to_xg_ratio=0.8
expected_goals: 0.1365 -> 0.1947
expected_assists: 0.1244 -> 0.1469
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.1769
goal_rate=0.1572
scorer_weight=0.2163
-
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.1366
assist_rate=0.1045
provider_weight=0.1301
-
Kang-in LeeF7200.160.15ok22.17.156.717XGBoost 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.0243, quality 0.764)market_value_eur=37000000
quality_factor=0.7641
boost_factor=1.0243
reference_quality=0.505
history_matches=11
history_shrink=0.3125
-
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': 'Pau Cubarsí, Gerard Martín', '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.8677, 'skill_edge': -0.042, 'height_edge': -0.048, 'attacker_skill': 0.7641, 'defender_skill': 0.8575, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Pau Cubarsí', 'market_value': 94000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8981}, {'player': 'Gerard Martín', 'market_value': 36000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8168}], 'xg_override': 0.1111}
totalShots: 2.2502 -> 1.9525
shotOffTarget: 1.5687 -> 1.3612
onTargetScoringAttempt: 0.6815 -> 0.5913
goals: 0.1824 -> 0.1583
expectedGoalsOnTarget: 0.1657 -> 0.1438
expectedGoals: 0.128 -> 0.1111
bigChanceMissed: 0.1127 -> 0.0978
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.0663, xG scale 1.4264, xA scale 1.1809, team xA 1.22 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.521
squad_xg_sum=1.0663
squad_xa_sum=1.0304
team_expected_assists=1.2168
team_xa_to_xg_ratio=0.8
expected_goals: 0.1111 -> 0.1585
expected_assists: 0.185 -> 0.2185
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 80.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.1466
goal_rate=0.1583
scorer_weight=0.1981
-
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.1963
assist_rate=0.0641
provider_weight=0.1748
-
Ademola LookmanF6110.220.21ok21.46.859.728FBref 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.0158, quality 0.800)market_value_eur=44000000
quality_factor=0.8002
boost_factor=1.0158
reference_quality=0.505
history_matches=23
history_shrink=0.1786
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0201)blend_weight=0.0201
history_matches=23
season_overlap_discount=1.0
per90_to_match_factor=0.678
prior_reliability=0.1733
competition=La Liga
wasFouled: 0.6804 -> 0.6929
totalCross: 0.9711 -> 0.9621
interceptionWon: 0.012 -> 0.017
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': 'Pau Cubarsí, Gerard Martín', '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.8975, 'skill_edge': -0.0257, 'height_edge': -0.044, 'attacker_skill': 0.8002, 'defender_skill': 0.8575, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Pau Cubarsí', 'market_value': 94000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8981}, {'player': 'Gerard Martín', 'market_value': 36000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8168}], 'xg_override': 0.1574}
totalShots: 1.6412 -> 1.473
shotOffTarget: 1.0032 -> 0.9004
onTargetScoringAttempt: 0.638 -> 0.5726
bigChanceMissed: 0.3449 -> 0.3095
goals: 0.2191 -> 0.1966
expectedGoals: 0.1754 -> 0.1574
expectedGoalsOnTarget: 0.1115 -> 0.1001
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.0663, xG scale 1.4264, xA scale 1.1809, team xA 1.22 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.521
squad_xg_sum=1.0663
squad_xa_sum=1.0304
team_expected_assists=1.2168
team_xa_to_xg_ratio=0.8
expected_goals: 0.1574 -> 0.2246
expected_assists: 0.0766 -> 0.0905
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 15 by projected rating, fifa_overall 83.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: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.2012
goal_rate=0.1966
scorer_weight=0.267
-
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.0865
assist_rate=0.0
provider_weight=0.0724
-
Team totals11.52147.0
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Juan MussoG4.4m10.9%Market-value substitute prior
Robin Le NormandD14.2m23.0%Market-value substitute prior
Jorge DomínguezD13.8m22.2%Market-value substitute prior
Morten HjulmandM17.7m46.6%Market-value substitute prior
Rodrigo MendozaM13.6m45.2%Market-value substitute prior
Julián AlvarezF25.9m75.6%Market-value substitute prior

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Joan GarcíaG8700.00-n/a0.06.963.132FBref 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.0101, quality 0.809)market_value_eur=46000000
quality_factor=0.8089
boost_factor=1.0101
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=0.9627
prior_reliability=0.2
competition=La Liga
saves: 2.714 -> 2.698
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': 'Ademola Lookman, Giuliano Simeone', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.5854}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.12 (squad xG sum 2.2093, xG scale 0.9591, xA scale 0.9591, team xA 1.45 = 0.68 x lambda)scoreline_reset=true
team_lambda=2.119
squad_xg_sum=2.2093
squad_xa_sum=1.5111
team_expected_assists=1.4494
team_xa_to_xg_ratio=0.684
shots_faced: 15.1 -> 14.4
expected_saves: 3.7 -> 3.52
high_pressure_saves: 1.27 -> 1.22
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 86.0)match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=2.4716
-
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.6516
-
Pau CubarsíD8700.030.02ok00.27.255.733FBref 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.0132, quality 0.891)market_value_eur=94000000
quality_factor=0.891
boost_factor=1.0132
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.9674
prior_reliability=0.1333
competition=La Liga
interceptionWon: 1.1901 -> 1.1831
totalShots: 0.3374 -> 0.3436
wonTackle: 0.9014 -> 0.9068
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': 'Kang-in Lee', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.12 (squad xG sum 2.2093, xG scale 0.9591, xA scale 0.9591, team xA 1.45 = 0.68 x lambda)scoreline_reset=true
team_lambda=2.119
squad_xg_sum=2.2093
squad_xa_sum=1.5111
team_expected_assists=1.4494
team_xa_to_xg_ratio=0.684
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 86.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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0247
goal_rate=0.0069
scorer_weight=0.02
-
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.0778
assist_rate=0.2178
provider_weight=0.1013
-
Xavi EspartD7900.040.01176%10.46.931.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.0160, quality 0.686)market_value_eur=26000000
quality_factor=0.6858
boost_factor=1.016
reference_quality=0.505
history_matches=12
history_shrink=0.2941
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0382)blend_weight=0.0382
history_matches=12
season_overlap_discount=1.0
per90_to_match_factor=0.8827
prior_reliability=0.2
competition=La Liga
fouls: 1.6331 -> 1.6044
totalCross: 0.4689 -> 0.496
wasFouled: 1.004 -> 0.9769
goalAssist: 0.1516 -> 0.1683
interceptionWon: 1.0828 -> 1.0976
totalShots: 0.8839 -> 0.8727
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': 'Obed Vargas', 'matchup_zone': 'Right Mid vs Left Back — Wide Channel'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.12 (squad xG sum 2.2093, xG scale 0.9591, xA scale 0.9591, team xA 1.45 = 0.68 x lambda)scoreline_reset=true
team_lambda=2.119
squad_xg_sum=2.2093
squad_xa_sum=1.5111
team_expected_assists=1.4494
team_xa_to_xg_ratio=0.684
-
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0361
goal_rate=0.1171
scorer_weight=0.046
-
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.0645
assist_rate=0.1683
provider_weight=0.0834
-
Eric GarcíaD8200.030.0865%10.67.158.330FBref 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.0094, quality 0.800)market_value_eur=44000000
quality_factor=0.8002
boost_factor=1.0094
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.9074
prior_reliability=0.1267
competition=La Liga
wonTackle: 0.8947 -> 0.9078
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': 'Alejandro Grimaldo', 'matchup_zone': 'Left Mid vs Right Back — Wide Channel'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.12 (squad xG sum 2.2093, xG scale 0.9591, xA scale 0.9591, team xA 1.45 = 0.68 x lambda)scoreline_reset=true
team_lambda=2.119
squad_xg_sum=2.2093
squad_xa_sum=1.5111
team_expected_assists=1.4494
team_xa_to_xg_ratio=0.684
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 85.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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0265
goal_rate=0.0007
scorer_weight=0.0215
-
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.0684
assist_rate=0.0127
provider_weight=0.0567
-
Gerard MartínD8000.020.0188%00.27.157.832FBref 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.0081, quality 0.758)market_value_eur=36000000
quality_factor=0.7581
boost_factor=1.0081
reference_quality=0.505
history_matches=42
history_shrink=0.1064
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0092)blend_weight=0.0092
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.888
prior_reliability=0.1333
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': 'Kang-in Lee', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.12 (squad xG sum 2.2093, xG scale 0.9591, xA scale 0.9591, team xA 1.45 = 0.68 x lambda)scoreline_reset=true
team_lambda=2.119
squad_xg_sum=2.2093
squad_xa_sum=1.5111
team_expected_assists=1.4494
team_xa_to_xg_ratio=0.684
-
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0191
goal_rate=0.0
scorer_weight=0.0154
-
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.0
provider_weight=0.0353
-
RodriM8400.070.07ok10.77.470.427FBref 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.0138, quality 0.837)market_value_eur=54000000
quality_factor=0.837
boost_factor=1.0138
reference_quality=0.505
history_matches=31
history_shrink=0.1389
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0036)blend_weight=0.0036
history_matches=31
season_overlap_discount=1.0
per90_to_match_factor=0.9367
prior_reliability=0.04
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': 'Pablo Barrios', 'matchup_zone': 'Holding Mid vs Central Mid — Midfield Anchor Duel', 'duel_win_rate': 0.428, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 1.0414, 'skill_edge': -0.0119, 'height_edge': 0.04, 'attacker_skill': 0.8599, 'defender_skill': 0.8863, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Pablo Barrios', 'market_value': 77000000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.8863}], 'xg_override': 0.0726}
aerialWon: 1.4841 -> 1.3
totalShots: 0.7147 -> 0.7443
shotOffTarget: 0.4803 -> 0.5002
onTargetScoringAttempt: 0.2344 -> 0.2441
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.12 (squad xG sum 2.2093, xG scale 0.9591, xA scale 0.9591, team xA 1.45 = 0.68 x lambda)scoreline_reset=true
team_lambda=2.119
squad_xg_sum=2.2093
squad_xa_sum=1.5111
team_expected_assists=1.4494
team_xa_to_xg_ratio=0.684
-
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0672
goal_rate=0.088
scorer_weight=0.0783
-
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.11
assist_rate=0.247
provider_weight=0.1456
-
PedriM7700.060.0456%10.57.365.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.0132, quality 0.900)market_value_eur=164000000
quality_factor=0.8997
boost_factor=1.0132
reference_quality=0.505
history_matches=40
history_shrink=0.1111
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0111)blend_weight=0.0111
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=0.8581
prior_reliability=0.1533
competition=La Liga
wonTackle: 0.7808 -> 0.7887
interceptionWon: 0.5149 -> 0.5092
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 Barrios', 'matchup_zone': 'Central Mid vs Central Mid — Box-to-Box Midfield Contest', 'duel_win_rate': 0.398, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9678, 'skill_edge': 0.0061, 'height_edge': -0.028, 'attacker_skill': 0.8999, 'defender_skill': 0.8863, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Pablo Barrios', 'market_value': 77000000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.8863}], 'xg_override': 0.0675}
aerialWon: 0.1882 -> 0.9
totalShots: 0.7383 -> 0.7145
shotOffTarget: 0.5399 -> 0.5225
onTargetScoringAttempt: 0.1961 -> 0.1898
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.12 (squad xG sum 2.2093, xG scale 0.9591, xA scale 0.9591, team xA 1.45 = 0.68 x lambda)scoreline_reset=true
team_lambda=2.119
squad_xg_sum=2.2093
squad_xa_sum=1.5111
team_expected_assists=1.4494
team_xa_to_xg_ratio=0.684
expected_assists: 0.1897 -> 0.1819
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 90.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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0627
goal_rate=0.0846
scorer_weight=0.0741
-
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.1663
assist_rate=0.1621
provider_weight=0.161
-
Fermín LópezM7900.180.25ok21.97.165.231FBref 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.0130, quality 0.896)market_value_eur=113000000
quality_factor=0.8965
boost_factor=1.013
reference_quality=0.505
history_matches=40
history_shrink=0.1111
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0111)blend_weight=0.0111
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=0.8771
prior_reliability=0.1533
competition=La Liga
onTargetScoringAttempt: 0.7664 -> 0.779
goals: 0.2235 -> 0.2337
wasFouled: 0.7252 -> 0.7341
wonTackle: 0.5721 -> 0.5784
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 Barrios', 'matchup_zone': 'Central Mid vs Central Mid — Box-to-Box Midfield Contest', 'duel_win_rate': 0.405, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9784, 'skill_edge': 0.0053, 'height_edge': -0.02, 'attacker_skill': 0.8981, 'defender_skill': 0.8863, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Pablo Barrios', 'market_value': 77000000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.8863}], 'xg_override': 0.1871}
aerialWon: 0.4589 -> 0.9
totalShots: 2.1743 -> 2.1274
shotOffTarget: 1.3953 -> 1.3652
onTargetScoringAttempt: 0.779 -> 0.7622
expectedGoalsOnTarget: 0.4777 -> 0.4674
goals: 0.2337 -> 0.2287
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.12 (squad xG sum 2.2093, xG scale 0.9591, xA scale 0.9591, team xA 1.45 = 0.68 x lambda)scoreline_reset=true
team_lambda=2.119
squad_xg_sum=2.2093
squad_xa_sum=1.5111
team_expected_assists=1.4494
team_xa_to_xg_ratio=0.684
expected_goals: 0.1871 -> 0.1795
expected_assists: 0.1922 -> 0.1843
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 90.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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.1643
goal_rate=0.2287
scorer_weight=0.211
-
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.1683
assist_rate=0.2038
provider_weight=0.1931
-
Lamine YamalF8210.570.50ok63.88.469.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.0135, quality 0.900)market_value_eur=237000000
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.0133)blend_weight=0.0133
history_matches=39
season_overlap_discount=1.0
per90_to_match_factor=0.9064
prior_reliability=0.18
competition=La Liga
totalOffside: 0.6054 -> 0.6241
totalCross: 2.4648 -> 2.4811
goalAssist: 0.7137 -> 0.7042
fouls: 1.2605 -> 1.2527
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': 'Marcos Llorente', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.558, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 1.1148, 'skill_edge': 0.0821, 'height_edge': -0.004, 'attacker_skill': 0.9, 'defender_skill': 0.7176, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Marcos Llorente', 'market_value': 21000000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.7176}], 'xg_override': 0.5924}
totalShots: 5.0286 -> 5.6059
shotOffTarget: 3.5176 -> 3.9214
onTargetScoringAttempt: 1.511 -> 1.6845
goals: 0.8143 -> 0.9078
expectedGoalsOnTarget: 0.68 -> 0.7581
expectedGoals: 0.5314 -> 0.5924
bigChanceMissed: 0.5155 -> 0.5747
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
goals: 1.0 -> 0
assists: 1.0 -> 0
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.12 (squad xG sum 2.2093, xG scale 0.9591, xA scale 0.9591, team xA 1.45 = 0.68 x lambda)scoreline_reset=true
team_lambda=2.119
squad_xg_sum=2.2093
squad_xa_sum=1.5111
team_expected_assists=1.4494
team_xa_to_xg_ratio=0.684
expected_goals: 0.5924 -> 0.5682
expected_assists: 0.37 -> 0.355
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 90.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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=1
goal_probability=0.4335
goal_rate=0.9078
scorer_weight=0.7103
-
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.2988
assist_rate=0.7042
provider_weight=0.4437
-
RaphinhaF7610.620.59ok42.47.561.827FBref 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.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.0146)blend_weight=0.0146
history_matches=32
season_overlap_discount=1.0
per90_to_match_factor=0.8487
prior_reliability=0.1667
competition=La Liga
goals: 0.8049 -> 0.818
onTargetScoringAttempt: 1.6487 -> 1.6592
totalCross: 2.6884 -> 2.6987
fouls: 0.3963 -> 0.4054
totalOffside: 0.4905 -> 0.4982
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': 'Cristian Romero', 'matchup_zone': 'Right Wing vs Left Back — Flank Battle', 'duel_win_rate': 0.455, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9638, 'skill_edge': 0.0114, 'height_edge': -0.036, 'attacker_skill': 0.8589, 'defender_skill': 0.8336, 'attacker_role': 'RW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Cristian Romero', 'market_value': 37000000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.8336}], 'xg_override': 0.6492}
totalShots: 3.5302 -> 3.4024
shotOffTarget: 1.871 -> 1.8033
onTargetScoringAttempt: 1.6592 -> 1.5991
expectedGoalsOnTarget: 1.0861 -> 1.0468
goals: 0.818 -> 0.7884
bigChanceMissed: 0.6852 -> 0.6604
expectedGoals: 0.6736 -> 0.6492
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
goals: 1.0 -> 0
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.12 (squad xG sum 2.2093, xG scale 0.9591, xA scale 0.9591, team xA 1.45 = 0.68 x lambda)scoreline_reset=true
team_lambda=2.119
squad_xg_sum=2.2093
squad_xa_sum=1.5111
team_expected_assists=1.4494
team_xa_to_xg_ratio=0.684
expected_goals: 0.6492 -> 0.6227
expected_assists: 0.1267 -> 0.1215
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=1
goal_probability=0.4635
goal_rate=0.7884
scorer_weight=0.7467
-
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.1144
assist_rate=0.216
provider_weight=0.1519
-
Anthony GordonF7800.300.26ok31.77.354.930FBref 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.0139, quality 0.884)market_value_eur=82000000
quality_factor=0.8837
boost_factor=1.0139
reference_quality=0.505
history_matches=36
history_shrink=0.122
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0106)blend_weight=0.0106
history_matches=36
season_overlap_discount=1.0
per90_to_match_factor=0.8626
prior_reliability=0.1333
competition=La Liga
totalCross: 1.7488 -> 1.7349
goalAssist: 0.1713 -> 0.1832
totalOffside: 0.3281 -> 0.3337
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': 'Marc Pubill, Dávid Hancko', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.196, 'pressing_faced': 'HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.9944, 'skill_edge': 0.0202, 'height_edge': -0.024, 'attacker_skill': 0.8837, 'defender_skill': 0.8388, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Marc Pubill', 'market_value': 48000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8608}, {'player': 'Dávid Hancko', 'market_value': 36000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8168}], 'xg_override': 0.3118}
totalShots: 2.6382 -> 2.6234
shotOffTarget: 1.4009 -> 1.3931
onTargetScoringAttempt: 1.2339 -> 1.227
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.12 (squad xG sum 2.2093, xG scale 0.9591, xA scale 0.9591, team xA 1.45 = 0.68 x lambda)scoreline_reset=true
team_lambda=2.119
squad_xg_sum=2.2093
squad_xa_sum=1.5111
team_expected_assists=1.4494
team_xa_to_xg_ratio=0.684
expected_goals: 0.3118 -> 0.2991
expected_assists: 0.1326 -> 0.1272
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 82.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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.2585
goal_rate=0.3354
scorer_weight=0.3186
-
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.1194
assist_rate=0.1832
provider_weight=0.159
-
Team totals22.12227.3
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Dominik LivakovićG4.5m11.1%Market-value substitute prior
Jules KoundéD12.9m50.7%Market-value substitute prior
Alejandro BaldeD15.0m36.4%Market-value substitute prior
Dani OlmoM25.5m59.7%Market-value substitute prior
Marc BernalM23.3m33.4%Market-value substitute prior
Karim AdeyemiF19.1m61.9%Market-value substitute prior
Antagonist / tactical summary
Midfield is evenly contested — Pablo Barrios vs Pedri will be the pivotal duel. Total antagonist xG — Home: 0.64, Away: 1.88. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Right Wing vs Left Back — Flank Battle.
Midfield — possession 48.8% / 51.2%, dominance ratio 0.45, key duel: Pablo Barrios vs Pedri
Kang-in Lee xG 0.11Ademola Lookman xG 0.16Alejandro Grimaldo xG 0.13Lamine Yamal xG 0.59Raphinha xG 0.65Anthony Gordon xG 0.31

Summary

Antagonist matchup analysis for Atlético Madrid vs Barcelona. Most likely scoreline: 1-2. Lambdas derived from 6 home and 6 away individual player duels. Head-to-head: Atlético Madrid 3W-1D-6L vs Barcelona over 10 meetings.
Tactical parity between 4-4-2 and 4-3-3. Match outcome driven primarily by individual player quality. Midfield is evenly contested — Pablo Barrios vs Pedri will be the pivotal duel. Total antagonist xG — Home: 0.64, Away: 1.88. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Right Wing vs Left Back — Flank Battle.

Elche vs Real Betis

LaLiga · 20261108 · 4-3-3 vs 4-2-3-1
Predicted 2-1Winner: ElcheWinning H 2-1 (8.8%)Winning A 1-2 (7.9%)Confidence 0.65λ home/away 1.57 / 1.41Most-likely P 8.8%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset Tracing
Antagonist + XGBoost match analysis for Elche vs Real Betis. Player statistics regressed using position-specific XGBoost models (G, D, M, F) with 2026-2027 FBref priors. Micro-duels resolved across 4-3-3 vs 4-2-3-1 (duel lambdas: Home 1.171, Away 1.294). Final calibrated Poisson lambdas: Home 1.574, Away 1.410 (most likely score 2-1).
Home Starters 11/11 XGBoost (9 FBref) Away Starters 11/11 XGBoost (9 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.17 / 1.29 Final λ (H/A) 1.57 / 1.41
FBref Team Priors: Elche (Gls/90: 1.0, GA/90: 1.0 → E[λ]: 0.985) vs Real Betis (Gls/90: 1.3333333333333333, GA/90: 1.33 → E[λ]: 0.988) | 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

MetricElcheReal Betis
League position16.004.00
Points per game1.141.84
Attack index0.971.00
Defense (concede) index0.911.06
Form multiplier0.961.04
Standing λ multiplier0.941.03

Lambda decomposition (how the goal rates were built)

StageElche λReal Betis λ
FBref Squad Prior E[λ] (weight 0.228)0.9850.988
Pre-competitive-floor1.2511.291
Pre-calibration (Micro-duels)1.1711.294
Final λ1.5741.410
competition calibration scale 1.174competition observed total goals 2.984quality gap applied Truemismatch score pressure applied Falsecompetitive underdog floor applied Falsestage discount 1.0

Scoreline distribution & markets

Top 5 scorelinesP
1-111.3%
2-18.8%
1-27.9%
1-07.9%
0-17.0%
Home win41.4%
Draw24.5%
Away win34.2%
Over 2.557.3%
BTTS yes60.0%
Pregame fair line — favorite Elche (41.4%), fair total 2.98, fair spread 0.16

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.

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Matías DituroG9000.00-n/a0.07.354.934FBref 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.9973, quality 0.437)market_value_eur=105000
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.0176)blend_weight=0.0176
history_matches=32
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.2
competition=La Liga
saves: 2.9148 -> 2.9046
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': 'Abdessamad Ezzalzouli, Pablo Fornals', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.2935}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.57 (squad xG sum 0.9357, xG scale 1.6822, xA scale 1.6822, team xA 1.04 = 0.66 x lambda)scoreline_reset=true
team_lambda=1.574
squad_xg_sum=0.9357
squad_xa_sum=0.6189
team_expected_assists=1.0411
team_xa_to_xg_ratio=0.6615
shots_faced: 12.3 -> 13.4
expected_saves: 3.01 -> 3.28
high_pressure_saves: 1.03 -> 1.13
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.7598
-
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.0833
-
Buba SangaréD7700.010.01ok00.16.751.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 0.9975, quality 0.461)market_value_eur=4900000
quality_factor=0.4609
boost_factor=0.9975
reference_quality=0.505
history_matches=21
history_shrink=0.1923
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0242)blend_weight=0.0242
history_matches=21
season_overlap_discount=1.0
per90_to_match_factor=0.8517
prior_reliability=0.1933
competition=La Liga
wonTackle: 1.0755 -> 1.0921
interceptionWon: 0.712 -> 0.7019
totalCross: 0.9708 -> 0.9615
goals: 0.0602 -> 0.0658
onTargetScoringAttempt: 0.0602 -> 0.0657
fouls: 1.2586 -> 1.2637
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': 'Abdessamad Ezzalzouli', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.57 (squad xG sum 0.9357, xG scale 1.6822, xA scale 1.6822, team xA 1.04 = 0.66 x lambda)scoreline_reset=true
team_lambda=1.574
squad_xg_sum=0.9357
squad_xa_sum=0.6189
team_expected_assists=1.0411
team_xa_to_xg_ratio=0.6615
expected_assists: 0.014 -> 0.0236
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 17 by projected rating, fifa_overall 69.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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0062
goal_rate=0.0657
scorer_weight=0.0077
-
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.0233
assist_rate=0.0
provider_weight=0.0189
-
Víctor ChustD9000.050.02162%10.36.962.132FBref 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.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.0141)blend_weight=0.0141
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=0.9958
prior_reliability=0.2
competition=La Liga
totalCross: 0.9215 -> 0.9366
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 Fornals', 'matchup_zone': 'Right Wing vs Left Back — Flank Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.57 (squad xG sum 0.9357, xG scale 1.6822, xA scale 1.6822, team xA 1.04 = 0.66 x lambda)scoreline_reset=true
team_lambda=1.574
squad_xg_sum=0.9357
squad_xa_sum=0.6189
team_expected_assists=1.0411
team_xa_to_xg_ratio=0.6615
expected_goals: 0.0326 -> 0.0548
expected_assists: 0.0306 -> 0.0515
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 74.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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0533
goal_rate=0.033
scorer_weight=0.0551
-
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.0502
assist_rate=0.056
provider_weight=0.0644
-
Roy RevivoD8900.030.0257%10.36.848.310XGBoost 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.9940, quality 0.457)market_value_eur=4600000
quality_factor=0.4572
boost_factor=0.994
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': 'Abdessamad Ezzalzouli', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.57 (squad xG sum 0.9357, xG scale 1.6822, xA scale 1.6822, team xA 1.04 = 0.66 x lambda)scoreline_reset=true
team_lambda=1.574
squad_xg_sum=0.9357
squad_xa_sum=0.6189
team_expected_assists=1.0411
team_xa_to_xg_ratio=0.6615
expected_goals: 0.0199 -> 0.0335
expected_assists: 0.1244 -> 0.2092
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0329
goal_rate=0.0
scorer_weight=0.0268
-
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.1888
assist_rate=0.294
provider_weight=0.2615
-
Pedro BigasD8100.030.0248%00.36.844.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 0.9973, quality 0.437)market_value_eur=310000
quality_factor=0.4374
boost_factor=0.9973
reference_quality=0.505
history_matches=33
history_shrink=0.1316
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0046)blend_weight=0.0046
history_matches=33
season_overlap_discount=1.0
per90_to_match_factor=0.9043
prior_reliability=0.0533
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': 'Isco', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.57 (squad xG sum 0.9357, xG scale 1.6822, xA scale 1.6822, team xA 1.04 = 0.66 x lambda)scoreline_reset=true
team_lambda=1.574
squad_xg_sum=0.9357
squad_xa_sum=0.6189
team_expected_assists=1.0411
team_xa_to_xg_ratio=0.6615
expected_goals: 0.0163 -> 0.0274
expected_assists: 0.0373 -> 0.0627
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_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.027
goal_rate=0.0587
scorer_weight=0.0343
-
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.0608
assist_rate=0.1275
provider_weight=0.0784
-
Marc AguadoM6900.060.01487%00.26.856.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 0.9981, quality 0.446)market_value_eur=3700000
quality_factor=0.4461
boost_factor=0.9981
reference_quality=0.505
history_matches=41
history_shrink=0.1087
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0104)blend_weight=0.0104
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=0.7677
prior_reliability=0.1467
competition=La Liga
interceptionWon: 1.0397 -> 1.0289
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': 'Marc Roca', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.421, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9579, 'skill_edge': -0.0046, 'height_edge': -0.024, 'attacker_skill': 0.4512, 'defender_skill': 0.4615, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Marc Roca', 'market_value': 4200000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4615}], 'xg_override': 0.0331}
aerialWon: 0.1803 -> 1.0
totalShots: 0.5061 -> 0.4848
shotOffTarget: 0.3835 -> 0.3674
onTargetScoringAttempt: 0.1226 -> 0.1174
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.57 (squad xG sum 0.9357, xG scale 1.6822, xA scale 1.6822, team xA 1.04 = 0.66 x lambda)scoreline_reset=true
team_lambda=1.574
squad_xg_sum=0.9357
squad_xa_sum=0.6189
team_expected_assists=1.0411
team_xa_to_xg_ratio=0.6615
expected_goals: 0.0331 -> 0.0557
expected_assists: 0.027 -> 0.0454
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 74.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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0542
goal_rate=0.0477
scorer_weight=0.0655
-
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.0444
assist_rate=0.0489
provider_weight=0.0568
-
Gonzalo VillarM7600.120.03390%10.46.952.329FBref 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.9962, quality 0.437)market_value_eur=1700000
quality_factor=0.4374
boost_factor=0.9962
reference_quality=0.505
history_matches=22
history_shrink=0.1852
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0241)blend_weight=0.0241
history_matches=22
season_overlap_discount=1.0
per90_to_match_factor=0.8427
prior_reliability=0.2
competition=La Liga
wasFouled: 1.93 -> 1.9782
totalCross: 1.0878 -> 1.1225
fouls: 1.3978 -> 1.4182
onTargetScoringAttempt: 0.2613 -> 0.2753
totalShots: 0.8491 -> 0.8556
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': 'Marc Roca', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.427, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9665, 'skill_edge': -0.0108, 'height_edge': -0.012, 'attacker_skill': 0.4374, 'defender_skill': 0.4615, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Marc Roca', 'market_value': 4200000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4615}], 'xg_override': 0.0737}
aerialWon: 0.6516 -> 1.1
totalShots: 0.8631 -> 0.8342
shotOffTarget: 0.5878 -> 0.5681
onTargetScoringAttempt: 0.2753 -> 0.2661
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.57 (squad xG sum 0.9357, xG scale 1.6822, xA scale 1.6822, team xA 1.04 = 0.66 x lambda)scoreline_reset=true
team_lambda=1.574
squad_xg_sum=0.9357
squad_xa_sum=0.6189
team_expected_assists=1.0411
team_xa_to_xg_ratio=0.6615
expected_goals: 0.0737 -> 0.124
expected_assists: 0.0909 -> 0.1529
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.1166
goal_rate=0.067
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.1418
assist_rate=0.102
provider_weight=0.1649
-
Javi MorcilloM8700.060.02281%10.26.741.821FBref 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.9944, quality 0.437)market_value_eur=2100000
quality_factor=0.4374
boost_factor=0.9944
reference_quality=0.505
history_matches=13
history_shrink=0.2778
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0048)blend_weight=0.0048
history_matches=13
season_overlap_discount=1.0
per90_to_match_factor=0.9707
prior_reliability=0.0267
competition=La Liga
fouls: 0.725 -> 0.7332
wonTackle: 1.1344 -> 1.1406
interceptionWon: 1.0719 -> 1.0667
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': 'Marc Roca', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.405, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9782, 'skill_edge': -0.0108, 'height_edge': -0.004, 'attacker_skill': 0.4374, 'defender_skill': 0.4615, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Marc Roca', 'market_value': 4200000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4615}], 'xg_override': 0.0385}
aerialWon: 0.6603 -> 1.1
totalShots: 0.5542 -> 0.5422
shotOffTarget: 0.424 -> 0.4148
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.57 (squad xG sum 0.9357, xG scale 1.6822, xA scale 1.6822, team xA 1.04 = 0.66 x lambda)scoreline_reset=true
team_lambda=1.574
squad_xg_sum=0.9357
squad_xa_sum=0.6189
team_expected_assists=1.0411
team_xa_to_xg_ratio=0.6615
expected_goals: 0.0385 -> 0.0648
expected_assists: 0.0258 -> 0.0434
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 79.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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0627
goal_rate=0.0519
scorer_weight=0.0746
-
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.0425
assist_rate=0.044
provider_weight=0.0538
-
Germán ValeraF8600.220.05393%10.57.058.542XGBoost 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.9992, quality 0.477)market_value_eur=6200000
quality_factor=0.4769
boost_factor=0.9992
reference_quality=0.505
history_matches=46
history_shrink=0.098
-
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': 'Junior Firpo', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.431, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9286, 'skill_edge': 0.0074, 'height_edge': -0.056, 'attacker_skill': 0.4769, 'defender_skill': 0.4604, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Junior Firpo', 'market_value': 3400000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.4604}], 'xg_override': 0.1334}
totalShots: 1.1989 -> 1.1133
shotOffTarget: 0.7187 -> 0.6674
onTargetScoringAttempt: 0.4801 -> 0.4458
goals: 0.2152 -> 0.1998
expectedGoals: 0.1437 -> 0.1334
expectedGoalsOnTarget: 0.0807 -> 0.0749
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.57 (squad xG sum 0.9357, xG scale 1.6822, xA scale 1.6822, team xA 1.04 = 0.66 x lambda)scoreline_reset=true
team_lambda=1.574
squad_xg_sum=0.9357
squad_xa_sum=0.6189
team_expected_assists=1.0411
team_xa_to_xg_ratio=0.6615
expected_goals: 0.1334 -> 0.2244
expected_assists: 0.1162 -> 0.1955
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_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.201
goal_rate=0.1998
scorer_weight=0.2805
-
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.1776
assist_rate=0.0349
provider_weight=0.1564
-
Fernando NiñoF7310.570.3281%21.26.854.113FBref 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.9940, quality 0.445)market_value_eur=3600000
quality_factor=0.4449
boost_factor=0.994
reference_quality=0.505
history_matches=10
history_shrink=0.3333
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0361)blend_weight=0.0361
history_matches=10
season_overlap_discount=1.0
per90_to_match_factor=0.8061
prior_reliability=0.1667
competition=La Liga
totalShots: 2.1609 -> 2.1291
fouls: 1.0612 -> 1.0345
totalOffside: 0.3119 -> 0.3006
wasFouled: 1.354 -> 1.3633
wonTackle: 0.8152 -> 0.8207
interceptionWon: 0.1843 -> 0.1893
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': 'Natan, Diego Llorente', '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.9056, 'skill_edge': -0.0782, 'height_edge': 0.014, 'attacker_skill': 0.4449, 'defender_skill': 0.6187, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Natan', 'market_value': 32000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7941}, {'player': 'Diego Llorente', 'market_value': 2600000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4432}], 'xg_override': 0.3386}
totalShots: 2.1576 -> 1.9539
shotOffTarget: 1.1103 -> 1.0055
onTargetScoringAttempt: 1.0473 -> 0.9484
expectedGoalsOnTarget: 0.6831 -> 0.6186
goals: 0.4092 -> 0.3706
expectedGoals: 0.3739 -> 0.3386
bigChanceMissed: 0.1567 -> 0.1419
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.57 (squad xG sum 0.9357, xG scale 1.6822, xA scale 1.6822, team xA 1.04 = 0.66 x lambda)scoreline_reset=true
team_lambda=1.574
squad_xg_sum=0.9357
squad_xa_sum=0.6189
team_expected_assists=1.0411
team_xa_to_xg_ratio=0.6615
expected_goals: 0.3386 -> 0.5695
expected_assists: 0.0385 -> 0.0648
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=1
goal_probability=0.4342
goal_rate=0.3706
scorer_weight=0.6164
-
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.0627
assist_rate=0.0
provider_weight=0.0518
-
Ali HouaryF6710.230.1467%20.86.930.312FBref 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.9899, quality 0.437)market_value_eur=620000
quality_factor=0.4374
boost_factor=0.9899
reference_quality=0.505
history_matches=5
history_shrink=0.5
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0455)blend_weight=0.0455
history_matches=5
season_overlap_discount=1.0
per90_to_match_factor=0.7434
prior_reliability=0.14
competition=La Liga
fouls: 1.5921 -> 1.5519
totalShots: 1.4119 -> 1.4285
totalCross: 0.4197 -> 0.4328
wasFouled: 0.5947 -> 0.5837
goals: 0.2361 -> 0.2254
wonTackle: 0.4961 -> 0.4896
onTargetScoringAttempt: 0.5839 -> 0.5898
totalOffside: 0.2269 -> 0.2327
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': 'Fran García', 'matchup_zone': 'Right Wing vs Left Back — Flank Battle', 'duel_win_rate': 0.474, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9919, 'skill_edge': -0.0375, 'height_edge': 0.032, 'attacker_skill': 0.4374, 'defender_skill': 0.5208, 'attacker_role': 'RW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Fran García', 'market_value': 6900000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.5208}], 'xg_override': 0.1363}
totalShots: 1.4285 -> 1.4169
shotOffTarget: 0.828 -> 0.8213
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.57 (squad xG sum 0.9357, xG scale 1.6822, xA scale 1.6822, team xA 1.04 = 0.66 x lambda)scoreline_reset=true
team_lambda=1.574
squad_xg_sum=0.9357
squad_xa_sum=0.6189
team_expected_assists=1.0411
team_xa_to_xg_ratio=0.6615
expected_goals: 0.1363 -> 0.2293
expected_assists: 0.0701 -> 0.1179
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=1
goal_probability=0.2049
goal_rate=0.2236
scorer_weight=0.2866
-
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.1112
assist_rate=0.0
provider_weight=0.0943
-
Team totals21.57116.9
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Alejandro IturbeG4.4m10.9%Market-value substitute prior
Kevin LomónacoD13.7m30.4%Market-value substitute prior
Rubén SánchezD13.6m29.9%Market-value substitute prior
Martim NetoM24.8m50.0%Market-value substitute prior
Federico RedondoM22.0m30.7%Market-value substitute prior
Facundo BuonanotteF26.4m53.4%Market-value substitute prior

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Álvaro VallesG9000.00-n/a0.07.263.134FBref 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.0003, quality 0.514)market_value_eur=9300000
quality_factor=0.5142
boost_factor=1.0003
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=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': 'Fernando Niño, Ali Houary', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.1709}
-
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.41 (squad xG sum 1.0814, xG scale 1.3039, xA scale 1.1830, team xA 1.13 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.41
squad_xg_sum=1.0814
squad_xa_sum=0.9535
team_expected_assists=1.128
team_xa_to_xg_ratio=0.8
shots_faced: 11.1 -> 15.0
expected_saves: 2.71 -> 3.68
high_pressure_saves: 0.94 -> 1.26
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.0
scorer_weight=0.0
squad_weight_total=1.5061
-
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.0036
-
NatanD8900.080.02245%10.26.951.733FBref 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.732)market_value_eur=32000000
quality_factor=0.732
boost_factor=1.0072
reference_quality=0.505
history_matches=42
history_shrink=0.1064
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0092)blend_weight=0.0092
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.9929
prior_reliability=0.1333
competition=La Liga
wonTackle: 0.6913 -> 0.7032
interceptionWon: 0.8458 -> 0.838
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': 'Fernando Niño', '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.41 (squad xG sum 1.0814, xG scale 1.3039, xA scale 1.1830, team xA 1.13 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.41
squad_xg_sum=1.0814
squad_xa_sum=0.9535
team_expected_assists=1.128
team_xa_to_xg_ratio=0.8
expected_goals: 0.0619 -> 0.0807
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.0775
goal_rate=0.0667
scorer_weight=0.0842
-
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.013
assist_rate=0.0
provider_weight=0.0107
-
Diego LlorenteD8100.020.0167%00.16.849.828FBref 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.9964, quality 0.437)market_value_eur=2600000
quality_factor=0.4374
boost_factor=0.9964
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.8962
prior_reliability=0.0667
competition=La Liga
interceptionWon: 1.2469 -> 1.2719
wonTackle: 0.7347 -> 0.729
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': 'Fernando Niño', '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.41 (squad xG sum 1.0814, xG scale 1.3039, xA scale 1.1830, team xA 1.13 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.41
squad_xg_sum=1.0814
squad_xa_sum=0.9535
team_expected_assists=1.128
team_xa_to_xg_ratio=0.8
-
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
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.0174
goal_rate=0.0
scorer_weight=0.0141
-
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.004
assist_rate=0.0
provider_weight=0.0037
-
Fran GarcíaD8900.020.02ok10.26.733.133FBref 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.485)market_value_eur=6900000
quality_factor=0.4854
boost_factor=0.9989
reference_quality=0.505
history_matches=22
history_shrink=0.1852
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0193)blend_weight=0.0193
history_matches=22
season_overlap_discount=1.0
per90_to_match_factor=0.9883
prior_reliability=0.16
competition=La Liga
totalCross: 2.866 -> 2.898
totalShots: 0.5249 -> 0.5148
goalAssist: 0.0225 -> 0.03
wasFouled: 1.1303 -> 1.1244
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': 'Ali Houary', '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.41 (squad xG sum 1.0814, xG scale 1.3039, xA scale 1.1830, team xA 1.13 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.41
squad_xg_sum=1.0814
squad_xa_sum=0.9535
team_expected_assists=1.128
team_xa_to_xg_ratio=0.8
expected_assists: 0.0472 -> 0.0558
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 17 by projected rating, fifa_overall 77.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.0197
goal_rate=0.0
scorer_weight=0.0159
-
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.0543
assist_rate=0.03
provider_weight=0.0459
-
Junior FirpoD7900.030.00888%00.06.822.121FBref 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.9951, quality 0.442)market_value_eur=3400000
quality_factor=0.4424
boost_factor=0.9951
reference_quality=0.505
history_matches=14
history_shrink=0.2632
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0068)blend_weight=0.0068
history_matches=14
season_overlap_discount=1.0
per90_to_match_factor=0.8747
prior_reliability=0.04
competition=La Liga
totalCross: 1.4357 -> 1.4458
wonTackle: 1.2813 -> 1.2725
interceptionWon: 1.0311 -> 1.024
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': 'Germán Valera', '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.41 (squad xG sum 1.0814, xG scale 1.3039, xA scale 1.1830, team xA 1.13 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.41
squad_xg_sum=1.0814
squad_xa_sum=0.9535
team_expected_assists=1.128
team_xa_to_xg_ratio=0.8
expected_goals: 0.0194 -> 0.0253
expected_assists: 0.054 -> 0.0639
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 15 by projected rating, fifa_overall 74.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: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.025
goal_rate=0.0
scorer_weight=0.0202
-
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.0619
assist_rate=0.034
provider_weight=0.0516
-
Marc RocaM8600.060.02153%10.57.151.334FBref 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.9981, quality 0.452)market_value_eur=4200000
quality_factor=0.4523
boost_factor=0.9981
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.9579
prior_reliability=0.1133
competition=La Liga
totalShots: 0.5759 -> 0.5854
wonTackle: 0.8983 -> 0.9052
fouls: 1.6966 -> 1.6916
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': 'Marc Aguado', 'matchup_zone': 'Holding Mid vs Central Mid — Midfield Anchor Duel', 'duel_win_rate': 0.429, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0421, 'skill_edge': 0.0046, 'height_edge': 0.024, 'attacker_skill': 0.4615, 'defender_skill': 0.4512, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Marc Aguado', 'market_value': 3700000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.4512}], 'xg_override': 0.0447}
aerialWon: 0.5233 -> 1.1
totalShots: 0.5854 -> 0.61
shotOffTarget: 0.4365 -> 0.4549
onTargetScoringAttempt: 0.1382 -> 0.144
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.41 (squad xG sum 1.0814, xG scale 1.3039, xA scale 1.1830, team xA 1.13 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.41
squad_xg_sum=1.0814
squad_xa_sum=0.9535
team_expected_assists=1.128
team_xa_to_xg_ratio=0.8
expected_goals: 0.0447 -> 0.0583
expected_assists: 0.071 -> 0.084
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.0566
goal_rate=0.0469
scorer_weight=0.0597
-
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.0806
assist_rate=0.0653
provider_weight=0.08
-
IscoM6800.200.19ok21.27.258.920FBref 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.9961, quality 0.445)market_value_eur=3600000
quality_factor=0.4449
boost_factor=0.9961
reference_quality=0.505
history_matches=18
history_shrink=0.2174
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0123)blend_weight=0.0123
history_matches=18
season_overlap_discount=1.0
per90_to_match_factor=0.7518
prior_reliability=0.0867
competition=La Liga
fouls: 0.6204 -> 0.6411
onTargetScoringAttempt: 0.6292 -> 0.642
totalCross: 3.1144 -> 3.1258
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': 'Pedro Bigas', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.467, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9814, 'skill_edge': 0.0034, 'height_edge': -0.016, 'attacker_skill': 0.4449, 'defender_skill': 0.4374, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Pedro Bigas', 'market_value': 310000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.4374}], 'xg_override': 0.153}
aerialWon: 0.0 -> 0.9
totalShots: 1.8279 -> 1.7939
shotOffTarget: 1.1859 -> 1.1638
onTargetScoringAttempt: 0.642 -> 0.6301
expectedGoalsOnTarget: 0.4169 -> 0.4091
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.41 (squad xG sum 1.0814, xG scale 1.3039, xA scale 1.1830, team xA 1.13 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.41
squad_xg_sum=1.0814
squad_xa_sum=0.9535
team_expected_assists=1.128
team_xa_to_xg_ratio=0.8
expected_goals: 0.153 -> 0.1995
expected_assists: 0.1915 -> 0.2267
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 83.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.1809
goal_rate=0.1486
scorer_weight=0.1952
-
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.2028
assist_rate=0.1938
provider_weight=0.2289
-
Pablo FornalsM8000.210.09149%21.17.262.434FBref 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.503)market_value_eur=8400000
quality_factor=0.5035
boost_factor=1.0
reference_quality=0.505
history_matches=47
history_shrink=0.0962
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0092)blend_weight=0.0092
history_matches=47
season_overlap_discount=1.0
per90_to_match_factor=0.8914
prior_reliability=0.1467
competition=La Liga
totalShots: 1.5056 -> 1.5136
wasFouled: 0.8332 -> 0.8256
interceptionWon: 0.8785 -> 0.8853
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': 'Víctor Chust', 'matchup_zone': 'Right Wing vs Left Back — Flank Battle', 'duel_win_rate': 0.489, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0131, 'skill_edge': 0.0249, 'height_edge': -0.016, 'attacker_skill': 0.5035, 'defender_skill': 0.4481, 'attacker_role': 'RW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Víctor Chust', 'market_value': 2700000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.4481}], 'xg_override': 0.1632}
aerialWon: 0.2656 -> 1.0
totalShots: 1.5136 -> 1.5334
shotOffTarget: 1.0467 -> 1.0604
onTargetScoringAttempt: 0.4547 -> 0.4607
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.41 (squad xG sum 1.0814, xG scale 1.3039, xA scale 1.1830, team xA 1.13 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.41
squad_xg_sum=1.0814
squad_xa_sum=0.9535
team_expected_assists=1.128
team_xa_to_xg_ratio=0.8
expected_goals: 0.1632 -> 0.2128
expected_assists: 0.1885 -> 0.223
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.1917
goal_rate=0.1435
scorer_weight=0.1931
-
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.1999
assist_rate=0.1326
provider_weight=0.1784
-
Facundo BernalM7500.070.02299%10.56.848.411FBref 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.0016, quality 0.519)market_value_eur=9700000
quality_factor=0.5189
boost_factor=1.0016
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.8366
prior_reliability=0.16
competition=La Liga
wonTackle: 0.9687 -> 0.9439
fouls: 0.8657 -> 0.845
interceptionWon: 1.2349 -> 1.2552
totalShots: 0.7182 -> 0.7306
onTargetScoringAttempt: 0.1867 -> 0.193
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': 'Marc Aguado', 'matchup_zone': 'Holding Mid vs Central Mid — Midfield Anchor Duel', 'duel_win_rate': 0.475, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.1109, 'skill_edge': 0.0395, 'height_edge': 0.036, 'attacker_skill': 0.5389, 'defender_skill': 0.4512, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Marc Aguado', 'market_value': 3700000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.4512}], 'xg_override': 0.0545}
aerialWon: 0.3811 -> 1.2
totalShots: 0.7306 -> 0.8116
shotOffTarget: 0.5315 -> 0.5904
onTargetScoringAttempt: 0.193 -> 0.2144
goals: 0.0568 -> 0.0631
expectedGoals: 0.0491 -> 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.41 (squad xG sum 1.0814, xG scale 1.3039, xA scale 1.1830, team xA 1.13 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.41
squad_xg_sum=1.0814
squad_xa_sum=0.9535
team_expected_assists=1.128
team_xa_to_xg_ratio=0.8
expected_goals: 0.0545 -> 0.0711
expected_assists: 0.0278 -> 0.0329
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 74.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.0686
goal_rate=0.0631
scorer_weight=0.077
-
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.0324
assist_rate=0.0432
provider_weight=0.0394
-
Giovani Lo CelsoM6800.120.04182%10.56.943.920XGBoost 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.9990, quality 0.484)market_value_eur=6800000
quality_factor=0.4842
boost_factor=0.999
reference_quality=0.505
history_matches=27
history_shrink=0.1562
-
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': 'Javi Morcillo', 'matchup_zone': 'Attacking Mid vs Single Holding Mid — Space Creator Duel', 'duel_win_rate': 0.459, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9985, 'skill_edge': 0.023, 'height_edge': -0.024, 'attacker_skill': 0.4885, 'defender_skill': 0.4374, 'attacker_role': 'CAM', 'attacker_mv_price_index': 0.95, 'defender_adjusted_parts': [{'player': 'Javi Morcillo', 'market_value': 2100000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4374}], 'xg_override': 0.0904}
aerialWon: 0.3946 -> 1.0
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.41 (squad xG sum 1.0814, xG scale 1.3039, xA scale 1.1830, team xA 1.13 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.41
squad_xg_sum=1.0814
squad_xa_sum=0.9535
team_expected_assists=1.128
team_xa_to_xg_ratio=0.8
expected_goals: 0.0904 -> 0.1179
expected_assists: 0.1259 -> 0.1489
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 80.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.1112
goal_rate=0.0817
scorer_weight=0.1106
-
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.1383
assist_rate=0.1031
provider_weight=0.1296
-
Abdessamad EzzalzouliF8510.480.2499%32.07.262.133XGBoost 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.0104, quality 0.796)market_value_eur=43000000
quality_factor=0.7957
boost_factor=1.0104
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': 'Buba Sangaré, Roy Revivo', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.317, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.1716, 'skill_edge': 0.1427, 'height_edge': -0.026, 'attacker_skill': 0.7957, 'defender_skill': 0.4785, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Buba Sangaré', 'market_value': 4900000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4809}, {'player': 'Roy Revivo', 'market_value': 4600000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4761}], 'xg_override': 0.3716}
totalShots: 2.6976 -> 3.1605
shotOffTarget: 1.5849 -> 1.8569
onTargetScoringAttempt: 1.1127 -> 1.3036
goals: 0.4456 -> 0.5221
expectedGoalsOnTarget: 0.3696 -> 0.433
expectedGoals: 0.3172 -> 0.3716
bigChanceMissed: 0.3074 -> 0.3601
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.41 (squad xG sum 1.0814, xG scale 1.3039, xA scale 1.1830, team xA 1.13 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.41
squad_xg_sum=1.0814
squad_xa_sum=0.9535
team_expected_assists=1.128
team_xa_to_xg_ratio=0.8
expected_goals: 0.3716 -> 0.4845
expected_assists: 0.184 -> 0.2177
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 86.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=1
goal_probability=0.384
goal_rate=0.5221
scorer_weight=0.6056
-
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.1956
assist_rate=0.0808
provider_weight=0.1742
-
Team totals11.41147.0
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Diego CondeG4.4m10.9%Market-value substitute prior
Valentín GómezD14.0m22.5%Market-value substitute prior
Angel OrtizD13.8m22.1%Market-value substitute prior
Nelson DeossaM19.9m57.0%Market-value substitute prior
Dani CeballosM22.1m50.6%Market-value substitute prior
AntonyF26.6m36.0%Market-value substitute prior
Antagonist / tactical summary
Midfield is evenly contested — Marc Aguado vs Facundo Bernal will be the pivotal duel. Total antagonist xG — Home: 0.75, Away: 0.88. 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 48.9% / 51.1%, dominance ratio 0.45, key duel: Marc Aguado vs Facundo Bernal
Germán Valera xG 0.13Ali Houary xG 0.14Fernando Niño xG 0.34Isco xG 0.15Pablo Fornals xG 0.16Giovani Lo Celso xG 0.09

Summary

Antagonist matchup analysis for Elche vs Real Betis. Most likely scoreline: 2-1. Lambdas derived from 6 home and 6 away individual player duels. Head-to-head: Elche 2W-2D-6L vs Real Betis 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 — Marc Aguado vs Facundo Bernal will be the pivotal duel. Total antagonist xG — Home: 0.75, Away: 0.88. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.

Ipswich vs Bournemouth

Premier League · 20261108 · 4-2-3-1 vs 4-2-3-1
Predicted 1-1Winner: DrawWinning H 1-0 (8.4%)Winning A 0-1 (8.6%)Confidence 0.64λ home/away 1.37 / 1.41Most-likely P 12.1%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset Tracing
Antagonist + XGBoost match analysis for Ipswich vs Bournemouth. 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.210, Away 1.351). Final calibrated Poisson lambdas: Home 1.370, Away 1.411 (most likely score 1-1).
Home Starters 11/11 XGBoost (9 FBref) Away Starters 11/11 XGBoost (10 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.21 / 1.35 Final λ (H/A) 1.37 / 1.41
FBref Team Priors: Ipswich Town (Gls/90: 2.0, GA/90: 2.0 → E[λ]: 1.379) vs Bournemouth (Gls/90: 1.0, GA/90: 1.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

MetricIpswichBournemouth
League position13.007.00
Points per game1.281.34
Attack index1.111.01
Defense (concede) index0.981.26
Form multiplier1.001.00
Standing λ multiplier1.031.10

Lambda decomposition (how the goal rates were built)

StageIpswich λBournemouth λ
FBref Squad Prior E[λ] (weight 0.192)1.3791.379
Pre-competitive-floor1.2101.351
Pre-calibration (Micro-duels)1.2101.351
Final λ1.3701.411
competition calibration scale 1.086competition observed total goals 2.781quality gap applied Truemismatch score pressure applied Falsecompetitive underdog floor applied Falsestage discount 1.0

Scoreline distribution & markets

Top 5 scorelinesP
1-112.1%
0-18.6%
1-28.5%
1-08.4%
2-18.2%
Home win36.3%
Draw25.6%
Away win38.1%
Over 2.552.6%
BTTS yes56.5%
Pregame fair line — favorite Bournemouth (38.1%), fair total 2.78, fair spread -0.04

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.

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Christian WaltonG9000.00-n/a0.07.022.914FBref 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=2600000
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': 'Rayan, Justin Kluivert', '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.37 (squad xG sum 0.9028, xG scale 1.5176, xA scale 1.5176, team xA 0.98 = 0.72 x lambda)scoreline_reset=true
team_lambda=1.37
squad_xg_sum=0.9028
squad_xa_sum=0.6471
team_expected_assists=0.982
team_xa_to_xg_ratio=0.7168
shots_faced: 12.8 -> 13.4
expected_saves: 3.13 -> 3.28
high_pressure_saves: 1.08 -> 1.13
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.0
scorer_weight=0.0
squad_weight_total=1.4124
-
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.0631
-
Issa DiopD9000.060.03100%00.16.936.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.0012, quality 0.526)market_value_eur=10300000
quality_factor=0.526
boost_factor=1.0012
reference_quality=0.505
history_matches=22
history_shrink=0.1852
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0160)blend_weight=0.016
history_matches=22
season_overlap_discount=1.0
per90_to_match_factor=0.998
prior_reliability=0.1333
competition=Premier League
fouls: 0.8618 -> 0.872
interceptionWon: 1.0645 -> 1.0714
totalShots: 0.3714 -> 0.3654
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 1.37 (squad xG sum 0.9028, xG scale 1.5176, xA scale 1.5176, team xA 0.98 = 0.72 x lambda)scoreline_reset=true
team_lambda=1.37
squad_xg_sum=0.9028
squad_xa_sum=0.6471
team_expected_assists=0.982
team_xa_to_xg_ratio=0.7168
expected_goals: 0.0383 -> 0.0581
expected_assists: 0.0148 -> 0.0225
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 75.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.0564
goal_rate=0.0365
scorer_weight=0.0569
-
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.0222
assist_rate=0.0
provider_weight=0.018
-
Leif DavisD9000.210.1279%10.56.743.614FBref 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.0194, quality 0.686)market_value_eur=26000000
quality_factor=0.6858
boost_factor=1.0194
reference_quality=0.505
history_matches=9
history_shrink=0.3571
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0309)blend_weight=0.0309
history_matches=9
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League
totalCross: 2.7087 -> 2.6713
onTargetScoringAttempt: 0.2159 -> 0.2402
wonTackle: 0.7174 -> 0.6952
fouls: 0.7127 -> 0.6906
totalShots: 0.5185 -> 0.5334
goals: 0.1521 -> 0.1629
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': '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.37 (squad xG sum 0.9028, xG scale 1.5176, xA scale 1.5176, team xA 0.98 = 0.72 x lambda)scoreline_reset=true
team_lambda=1.37
squad_xg_sum=0.9028
squad_xa_sum=0.6471
team_expected_assists=0.982
team_xa_to_xg_ratio=0.7168
expected_goals: 0.1386 -> 0.2103
expected_assists: 0.0644 -> 0.0977
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 75.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.1897
goal_rate=0.1629
scorer_weight=0.2374
-
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.0931
assist_rate=0.0856
provider_weight=0.1158
-
Dara O'SheaD9000.050.02129%00.16.843.314FBref 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.0145, quality 0.641)market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.0145
reference_quality=0.505
history_matches=9
history_shrink=0.3571
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0309)blend_weight=0.0309
history_matches=9
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League
fouls: 0.5768 -> 0.6054
interceptionWon: 1.2112 -> 1.1892
wonTackle: 0.9626 -> 0.9483
totalCross: 0.6867 -> 0.6964
wasFouled: 0.784 -> 0.7907
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': 'Justin Kluivert', '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.37 (squad xG sum 0.9028, xG scale 1.5176, xA scale 1.5176, team xA 0.98 = 0.72 x lambda)scoreline_reset=true
team_lambda=1.37
squad_xg_sum=0.9028
squad_xa_sum=0.6471
team_expected_assists=0.982
team_xa_to_xg_ratio=0.7168
expected_goals: 0.033 -> 0.0501
expected_assists: 0.0264 -> 0.0401
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: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0489
goal_rate=0.1178
scorer_weight=0.0626
-
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.0393
assist_rate=0.0
provider_weight=0.0321
-
Jacob GreavesD8900.010.00484%00.16.822.414FBref 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.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
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0433)blend_weight=0.0433
history_matches=5
season_overlap_discount=1.0
per90_to_match_factor=0.9942
prior_reliability=0.1333
competition=Premier League
wasFouled: 1.0914 -> 1.1303
interceptionWon: 0.8577 -> 0.8205
wonTackle: 0.8215 -> 0.8505
totalShots: 0.3316 -> 0.3172
fouls: 0.8568 -> 0.8628
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 1.37 (squad xG sum 0.9028, xG scale 1.5176, xA scale 1.5176, team xA 0.98 = 0.72 x lambda)scoreline_reset=true
team_lambda=1.37
squad_xg_sum=0.9028
squad_xa_sum=0.6471
team_expected_assists=0.982
team_xa_to_xg_ratio=0.7168
expected_assists: 0.0162 -> 0.0246
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 74.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.0091
goal_rate=0.0
scorer_weight=0.0081
-
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.0243
assist_rate=0.0
provider_weight=0.0197
-
Saša LukićM8300.070.03157%10.47.047.324FBref 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.515)market_value_eur=9400000
quality_factor=0.5154
boost_factor=1.0004
reference_quality=0.505
history_matches=32
history_shrink=0.1351
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0105)blend_weight=0.0105
history_matches=32
season_overlap_discount=1.0
per90_to_match_factor=0.9228
prior_reliability=0.12
competition=Premier League
wonTackle: 0.9597 -> 0.9658
wasFouled: 0.4797 -> 0.4746
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 Smith', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.527, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0692, 'skill_edge': 0.0351, 'height_edge': 0.012, 'attacker_skill': 0.5154, 'defender_skill': 0.4374, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Adam Smith', 'market_value': 310000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.4374}], 'xg_override': 0.048}
aerialWon: 0.4507 -> 1.1
totalShots: 0.5189 -> 0.5548
shotOffTarget: 0.3529 -> 0.3773
onTargetScoringAttempt: 0.1642 -> 0.1756
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.37 (squad xG sum 0.9028, xG scale 1.5176, xA scale 1.5176, team xA 0.98 = 0.72 x lambda)scoreline_reset=true
team_lambda=1.37
squad_xg_sum=0.9028
squad_xa_sum=0.6471
team_expected_assists=0.982
team_xa_to_xg_ratio=0.7168
expected_goals: 0.048 -> 0.0728
expected_assists: 0.1042 -> 0.1581
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: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0702
goal_rate=0.0525
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.1462
assist_rate=0.1055
provider_weight=0.1594
-
Julio EncisoM8300.280.14106%32.07.045.814FBref 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.0211, quality 0.702)market_value_eur=28000000
quality_factor=0.7022
boost_factor=1.0211
reference_quality=0.505
history_matches=9
history_shrink=0.3571
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0279)blend_weight=0.0279
history_matches=9
season_overlap_discount=1.0
per90_to_match_factor=0.924
prior_reliability=0.12
competition=Premier League
totalCross: 1.0371 -> 1.0082
goalAssist: 0.1513 -> 0.1757
totalShots: 2.5288 -> 2.5454
wasFouled: 1.4724 -> 1.4886
wonTackle: 0.631 -> 0.642
interceptionWon: 0.3487 -> 0.339
onTargetScoringAttempt: 0.8267 -> 0.8181
goals: 0.1953 -> 0.1899
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': 'Right Wing vs Left Back — Flank Battle', 'duel_win_rate': 0.418, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9087, 'skill_edge': -0.0501, 'height_edge': -0.012, 'attacker_skill': 0.7022, 'defender_skill': 0.8135, 'attacker_role': 'RW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Adrien Truffert', 'market_value': 33000000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.8135}], 'xg_override': 0.1869}
aerialWon: 0.0884 -> 0.9
totalShots: 2.5454 -> 2.313
shotOffTarget: 1.7021 -> 1.5467
onTargetScoringAttempt: 0.8181 -> 0.7434
expectedGoalsOnTarget: 0.3533 -> 0.321
bigChanceMissed: 0.2842 -> 0.2583
expectedGoals: 0.2057 -> 0.1869
goals: 0.1899 -> 0.1726
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.37 (squad xG sum 0.9028, xG scale 1.5176, xA scale 1.5176, team xA 0.98 = 0.72 x lambda)scoreline_reset=true
team_lambda=1.37
squad_xg_sum=0.9028
squad_xa_sum=0.6471
team_expected_assists=0.982
team_xa_to_xg_ratio=0.7168
expected_goals: 0.1869 -> 0.2836
expected_assists: 0.152 -> 0.2306
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 78.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.2469
goal_rate=0.1726
scorer_weight=0.2665
-
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.2059
assist_rate=0.1757
provider_weight=0.2576
-
Florentino LuísM7600.070.01531%10.26.847.231XGBoost 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.0028, quality 0.585)market_value_eur=15500000
quality_factor=0.5846
boost_factor=1.0028
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': 'Tyler Adams', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.39, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9553, 'skill_edge': -0.0664, 'height_edge': 0.036, 'attacker_skill': 0.6134, 'defender_skill': 0.761, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Tyler Adams', 'market_value': 31000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.761}], 'xg_override': 0.0473}
aerialWon: 0.942 -> 1.1
totalShots: 0.612 -> 0.5846
shotOffTarget: 0.4331 -> 0.4137
onTargetScoringAttempt: 0.1788 -> 0.1708
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.37 (squad xG sum 0.9028, xG scale 1.5176, xA scale 1.5176, team xA 0.98 = 0.72 x lambda)scoreline_reset=true
team_lambda=1.37
squad_xg_sum=0.9028
squad_xa_sum=0.6471
team_expected_assists=0.982
team_xa_to_xg_ratio=0.7168
expected_goals: 0.0473 -> 0.0718
expected_assists: 0.0376 -> 0.0571
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_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.0693
goal_rate=0.0499
scorer_weight=0.0737
-
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.0555
assist_rate=0.0502
provider_weight=0.0653
-
Exequiel PalaciosM8700.05-n/a00.07.143.213FBref 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.0209, quality 0.686)market_value_eur=26000000
quality_factor=0.6858
boost_factor=1.0209
reference_quality=0.505
history_matches=8
history_shrink=0.3846
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0050)blend_weight=0.005
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=0.9671
prior_reliability=0.02
competition=Premier League
interceptionWon: 1.0987 -> 1.1254
fouls: 1.1861 -> 1.1963
wonTackle: 1.2394 -> 1.2493
wasFouled: 1.2881 -> 1.2978
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': 'Tyler Adams, Lewis Cook', 'matchup_zone': 'Attacking Mid vs Double Pivot — Tight Space Battle', 'duel_win_rate': 0.264, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 1.0346, 'skill_edge': 0.0155, 'height_edge': 0.008, 'attacker_skill': 0.6971, 'defender_skill': 0.6626, 'attacker_role': 'CAM', 'attacker_mv_price_index': 0.95, 'defender_adjusted_parts': [{'player': 'Tyler Adams', 'market_value': 31000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.761}, {'player': 'Lewis Cook', 'market_value': 11600000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.5643}], 'xg_override': 0.0347}
aerialWon: 0.2458 -> 1.0
totalShots: 0.4125 -> 0.4268
shotOffTarget: 0.307 -> 0.3176
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.37 (squad xG sum 0.9028, xG scale 1.5176, xA scale 1.5176, team xA 0.98 = 0.72 x lambda)scoreline_reset=true
team_lambda=1.37
squad_xg_sum=0.9028
squad_xa_sum=0.6471
team_expected_assists=0.982
team_xa_to_xg_ratio=0.7168
expected_goals: 0.0347 -> 0.0527
expected_assists: 0.059 -> 0.0895
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.0513
goal_rate=0.0441
scorer_weight=0.0585
-
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.0856
assist_rate=0.0553
provider_weight=0.0865
-
Abdoul OuattaraM8900.060.01544%10.26.948.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.0097, quality 0.595)market_value_eur=16500000
quality_factor=0.5953
boost_factor=1.0097
reference_quality=0.505
history_matches=9
history_shrink=0.3571
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0046)blend_weight=0.0046
history_matches=9
season_overlap_discount=1.0
per90_to_match_factor=0.9873
prior_reliability=0.02
competition=Premier League
totalCross: 1.9085 -> 1.8996
interceptionWon: 1.3234 -> 1.3173
wonTackle: 1.2916 -> 1.2856
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': 'Tyler Adams', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.379, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9396, 'skill_edge': -0.0611, 'height_edge': 0.02, 'attacker_skill': 0.6252, 'defender_skill': 0.761, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Tyler Adams', 'market_value': 31000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.761}], 'xg_override': 0.0415}
aerialWon: 0.3639 -> 1.1
totalShots: 0.5401 -> 0.5075
shotOffTarget: 0.3944 -> 0.3706
onTargetScoringAttempt: 0.1457 -> 0.1369
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.37 (squad xG sum 0.9028, xG scale 1.5176, xA scale 1.5176, team xA 0.98 = 0.72 x lambda)scoreline_reset=true
team_lambda=1.37
squad_xg_sum=0.9028
squad_xa_sum=0.6471
team_expected_assists=0.982
team_xa_to_xg_ratio=0.7168
expected_goals: 0.0415 -> 0.063
expected_assists: 0.0794 -> 0.1205
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 73.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.0611
goal_rate=0.0432
scorer_weight=0.0642
-
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.1135
assist_rate=0.0921
provider_weight=0.1323
-
EmersonnF7110.420.19118%21.16.743.414FBref 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.0175, quality 0.669)market_value_eur=24000000
quality_factor=0.6685
boost_factor=1.0175
reference_quality=0.505
history_matches=9
history_shrink=0.3571
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0186)blend_weight=0.0186
history_matches=9
season_overlap_discount=1.0
per90_to_match_factor=0.7926
prior_reliability=0.08
competition=Premier League
totalOffside: 0.8892 -> 0.8727
onTargetScoringAttempt: 0.6919 -> 0.7032
totalCross: 0.0541 -> 0.0654
wonTackle: 0.2327 -> 0.2406
goals: 0.2919 -> 0.2987
wasFouled: 1.6671 -> 1.6607
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, António Silva', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.9199, 'skill_edge': -0.0565, 'height_edge': 0.002, 'attacker_skill': 0.6685, 'defender_skill': 0.7941, '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': 'António Silva', 'market_value': 32000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7941}], 'xg_override': 0.2741}
totalShots: 2.111 -> 1.9419
shotOffTarget: 1.4078 -> 1.295
onTargetScoringAttempt: 0.7032 -> 0.6469
goals: 0.2987 -> 0.2748
expectedGoals: 0.298 -> 0.2741
bigChanceMissed: 0.2866 -> 0.2636
expectedGoalsOnTarget: 0.1338 -> 0.1231
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.37 (squad xG sum 0.9028, xG scale 1.5176, xA scale 1.5176, team xA 0.98 = 0.72 x lambda)scoreline_reset=true
team_lambda=1.37
squad_xg_sum=0.9028
squad_xa_sum=0.6471
team_expected_assists=0.982
team_xa_to_xg_ratio=0.7168
expected_goals: 0.2741 -> 0.416
expected_assists: 0.0435 -> 0.066
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 74.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.3403
goal_rate=0.2748
scorer_weight=0.4169
-
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.0639
assist_rate=0.0865
provider_weight=0.0825
-
Team totals11.37106.9
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Kjell ScherpenG4.8m14.0%Market-value substitute prior
Cédric KipréD13.6m29.9%Market-value substitute prior
Darnell FurlongD16.0m60.2%Market-value substitute prior
Marcelino NúñezM22.5m31.8%Market-value substitute prior
Azor MatusiwaM22.4m52.0%Market-value substitute prior
Abdul Fatawu IssahakuF26.2m35.3%Market-value substitute prior

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Đorđe PetrovićG9000.00-n/a0.06.958.533FBref 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.0059, quality 0.710)market_value_eur=29000000
quality_factor=0.71
boost_factor=1.0059
reference_quality=0.505
history_matches=47
history_shrink=0.0962
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0083)blend_weight=0.0083
history_matches=47
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League
saves: 2.7329 -> 2.7476
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': 'Emersonn, Julio Enciso', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.2104}
-
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.41 (squad xG sum 1.1126, xG scale 1.2682, xA scale 1.2682, team xA 1.12 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.411
squad_xg_sum=1.1126
squad_xa_sum=0.8871
team_expected_assists=1.125
team_xa_to_xg_ratio=0.7973
shots_faced: 11.5 -> 13.0
expected_saves: 2.81 -> 3.18
high_pressure_saves: 0.97 -> 1.1
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.0
scorer_weight=0.0
squad_weight_total=1.4986
-
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.1331
-
Adrien TruffertD8900.040.04ok10.46.958.533FBref 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.0067, quality 0.739)market_value_eur=33000000
quality_factor=0.7389
boost_factor=1.0067
reference_quality=0.505
history_matches=47
history_shrink=0.0962
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0083)blend_weight=0.0083
history_matches=47
season_overlap_discount=1.0
per90_to_match_factor=0.9938
prior_reliability=0.1333
competition=Premier League
totalCross: 3.6485 -> 3.6388
wonTackle: 1.3299 -> 1.323
totalShots: 0.6246 -> 0.6194
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': 'Julio Enciso', '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.41 (squad xG sum 1.1126, xG scale 1.2682, xA scale 1.2682, team xA 1.12 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.411
squad_xg_sum=1.1126
squad_xa_sum=0.8871
team_expected_assists=1.125
team_xa_to_xg_ratio=0.7973
expected_goals: 0.0309 -> 0.0392
expected_assists: 0.1253 -> 0.1589
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 80.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.0384
goal_rate=0.0158
scorer_weight=0.0319
-
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.1469
assist_rate=0.2079
provider_weight=0.1986
-
James HillD9000.020.02ok10.47.260.933FBref 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.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.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
totalShots: 0.6993 -> 0.6923
fouls: 0.8455 -> 0.8521
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': 'Emersonn', '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.41 (squad xG sum 1.1126, xG scale 1.2682, xA scale 1.2682, team xA 1.12 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.411
squad_xg_sum=1.1126
squad_xa_sum=0.8871
team_expected_assists=1.125
team_xa_to_xg_ratio=0.7973
expected_assists: 0.0603 -> 0.0765
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.0201
goal_rate=0.0
scorer_weight=0.0162
-
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.0123
provider_weight=0.0612
-
Adam SmithD8500.080.02357%00.16.737.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 0.9972, quality 0.437)market_value_eur=310000
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.9391
prior_reliability=0.1333
competition=Premier League
interceptionWon: 0.8741 -> 0.8805
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': 'Saša Lukić', '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.41 (squad xG sum 1.1126, xG scale 1.2682, xA scale 1.2682, team xA 1.12 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.411
squad_xg_sum=1.1126
squad_xa_sum=0.8871
team_expected_assists=1.125
team_xa_to_xg_ratio=0.7973
expected_goals: 0.0604 -> 0.0766
expected_assists: 0.0487 -> 0.0618
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 73.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.0737
goal_rate=0.0
scorer_weight=0.0613
-
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.0599
assist_rate=0.0366
provider_weight=0.0542
-
António SilvaD9000.160.0970%10.47.044.714FBref 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.0243, quality 0.732)market_value_eur=32000000
quality_factor=0.732
boost_factor=1.0243
reference_quality=0.505
history_matches=9
history_shrink=0.3571
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0309)blend_weight=0.0309
history_matches=9
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League
fouls: 0.8511 -> 0.8402
interceptionWon: 1.2634 -> 1.2552
totalShots: 0.7379 -> 0.7305
wonTackle: 0.7893 -> 0.7958
onTargetScoringAttempt: 0.1982 -> 0.1921
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': 'Emersonn', '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.41 (squad xG sum 1.1126, xG scale 1.2682, xA scale 1.2682, team xA 1.12 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.411
squad_xg_sum=1.1126
squad_xa_sum=0.8871
team_expected_assists=1.125
team_xa_to_xg_ratio=0.7973
expected_goals: 0.1242 -> 0.1575
expected_assists: 0.034 -> 0.0431
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.1457
goal_rate=0.0
scorer_weight=0.126
-
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
-
Alex ScottM8900.130.12ok11.17.260.028FBref 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.0119, quality 0.877)market_value_eur=75000000
quality_factor=0.877
boost_factor=1.0119
reference_quality=0.505
history_matches=42
history_shrink=0.1064
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0092)blend_weight=0.0092
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.9889
prior_reliability=0.1333
competition=Premier League
wonTackle: 1.0163 -> 1.0252
wasFouled: 2.7468 -> 2.7397
totalCross: 3.199 -> 3.206
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': 'Florentino Luís, Abdoul Ouattara', 'matchup_zone': 'Attacking Mid vs Double Pivot — Tight Space Battle', 'duel_win_rate': 0.342, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.1496, 'skill_edge': 0.1178, 'height_edge': -0.016, 'attacker_skill': 0.8811, 'defender_skill': 0.6193, 'attacker_role': 'CAM', 'attacker_mv_price_index': 0.95, 'defender_adjusted_parts': [{'player': 'Florentino Luís', 'market_value': 15500000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.6134}, {'player': 'Abdoul Ouattara', 'market_value': 16500000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.6252}], 'xg_override': 0.1004}
totalShots: 1.1684 -> 1.3432
aerialWon: 0.8709 -> 1.0
shotOffTarget: 0.8235 -> 0.9467
onTargetScoringAttempt: 0.3449 -> 0.3965
bigChanceMissed: 0.149 -> 0.1713
expectedGoalsOnTarget: 0.118 -> 0.1357
goals: 0.1115 -> 0.1282
expectedGoals: 0.0873 -> 0.1004
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.41 (squad xG sum 1.1126, xG scale 1.2682, xA scale 1.2682, team xA 1.12 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.411
squad_xg_sum=1.1126
squad_xa_sum=0.8871
team_expected_assists=1.125
team_xa_to_xg_ratio=0.7973
expected_goals: 0.1004 -> 0.1273
expected_assists: 0.1513 -> 0.1919
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.1195
goal_rate=0.1282
scorer_weight=0.1508
-
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.1746
assist_rate=0.0984
provider_weight=0.1535
-
Tyler AdamsM8400.060.01497%10.26.951.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.0085, quality 0.725)market_value_eur=31000000
quality_factor=0.7249
boost_factor=1.0085
reference_quality=0.505
history_matches=34
history_shrink=0.1282
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0022)blend_weight=0.0022
history_matches=34
season_overlap_discount=1.0
per90_to_match_factor=0.9381
prior_reliability=0.0267
competition=Premier League
interceptionWon: 1.3629 -> 1.3703
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': 'Florentino Luís', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.45, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0447, 'skill_edge': 0.0664, 'height_edge': -0.036, 'attacker_skill': 0.761, 'defender_skill': 0.6134, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Florentino Luís', 'market_value': 15500000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.6134}], 'xg_override': 0.0438}
aerialWon: 1.0965 -> 0.9
totalShots: 0.507 -> 0.5297
shotOffTarget: 0.3812 -> 0.3982
onTargetScoringAttempt: 0.1258 -> 0.1314
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.41 (squad xG sum 1.1126, xG scale 1.2682, xA scale 1.2682, team xA 1.12 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.411
squad_xg_sum=1.1126
squad_xa_sum=0.8871
team_expected_assists=1.125
team_xa_to_xg_ratio=0.7973
expected_goals: 0.0438 -> 0.0555
expected_assists: 0.0335 -> 0.0425
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.054
goal_rate=0.0545
scorer_weight=0.0618
-
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.0416
assist_rate=0.0481
provider_weight=0.0499
-
Justin KluivertM7300.210.10117%21.16.841.416FBref 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.0077, quality 0.669)market_value_eur=24000000
quality_factor=0.6685
boost_factor=1.0077
reference_quality=0.505
history_matches=27
history_shrink=0.1562
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0115)blend_weight=0.0115
history_matches=27
season_overlap_discount=1.0
per90_to_match_factor=0.8144
prior_reliability=0.1133
competition=Premier League
onTargetScoringAttempt: 0.5704 -> 0.5802
totalCross: 2.2455 -> 2.2362
fouls: 1.7088 -> 1.7002
totalShots: 1.718 -> 1.7256
wonTackle: 0.4093 -> 0.4156
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': "Dara O'Shea", 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.398, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 0.8794, 'skill_edge': -0.0221, 'height_edge': -0.06, 'attacker_skill': 0.6685, 'defender_skill': 0.7176, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': "Dara O'Shea", 'market_value': 21000000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.7176}], 'xg_override': 0.1626}
aerialWon: 0.4679 -> 0.8
totalShots: 1.7278 -> 1.5194
shotOffTarget: 1.1476 -> 1.0092
onTargetScoringAttempt: 0.5802 -> 0.5102
expectedGoalsOnTarget: 0.2487 -> 0.2187
goals: 0.1866 -> 0.1641
expectedGoals: 0.1849 -> 0.1626
bigChanceMissed: 0.0927 -> 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.41 (squad xG sum 1.1126, xG scale 1.2682, xA scale 1.2682, team xA 1.12 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.411
squad_xg_sum=1.1126
squad_xa_sum=0.8871
team_expected_assists=1.125
team_xa_to_xg_ratio=0.7973
expected_goals: 0.1626 -> 0.2062
expected_assists: 0.1067 -> 0.1353
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 79.0)match_squad_rank=12
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
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.1863
goal_rate=0.1641
scorer_weight=0.2077
-
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.1417
provider_weight=0.1655
-
Ryan ChristieM7300.090.0649%10.96.953.328FBref 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=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': 'Leif Davis', 'matchup_zone': 'Right Wing vs Left Back — Flank Battle', 'duel_win_rate': 0.347, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 0.8051, 'skill_edge': -0.1166, 'height_edge': -0.016, 'attacker_skill': 0.5059, 'defender_skill': 0.765, 'attacker_role': 'RW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Leif Davis', 'market_value': 26000000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.765}], 'xg_override': 0.0728}
totalShots: 1.1548 -> 0.9297
shotOffTarget: 0.8289 -> 0.6673
onTargetScoringAttempt: 0.3259 -> 0.2624
aerialWon: 1.0612 -> 1.0
bigChanceMissed: 0.1805 -> 0.1453
expectedGoals: 0.0904 -> 0.0728
goals: 0.0796 -> 0.0641
expectedGoalsOnTarget: 0.0433 -> 0.0349
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.41 (squad xG sum 1.1126, xG scale 1.2682, xA scale 1.2682, team xA 1.12 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.411
squad_xg_sum=1.1126
squad_xa_sum=0.8871
team_expected_assists=1.125
team_xa_to_xg_ratio=0.7973
expected_goals: 0.0728 -> 0.0923
expected_assists: 0.0852 -> 0.108
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.0882
goal_rate=0.0641
scorer_weight=0.0858
-
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.078
provider_weight=0.1022
-
Lewis CookM8000.040.001023%10.06.850.723FBref 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.0017, quality 0.541)market_value_eur=11600000
quality_factor=0.5411
boost_factor=1.0017
reference_quality=0.505
history_matches=27
history_shrink=0.1562
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0108)blend_weight=0.0108
history_matches=27
season_overlap_discount=1.0
per90_to_match_factor=0.8884
prior_reliability=0.1067
competition=Premier League
totalCross: 2.6407 -> 2.6121
wonTackle: 0.9905 -> 0.9798
fouls: 0.6912 -> 0.6837
totalShots: 0.6043 -> 0.5978
wasFouled: 0.5697 -> 0.5635
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': 'Florentino Luís', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.362, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9146, 'skill_edge': -0.0221, 'height_edge': -0.036, 'attacker_skill': 0.5643, 'defender_skill': 0.6134, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Florentino Luís', 'market_value': 15500000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.6134}], 'xg_override': 0.0325}
aerialWon: 0.8463 -> 0.9
totalShots: 0.6029 -> 0.5514
shotOffTarget: 0.4728 -> 0.4324
onTargetScoringAttempt: 0.1301 -> 0.119
goals: 0.0593 -> 0.0542
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.41 (squad xG sum 1.1126, xG scale 1.2682, xA scale 1.2682, team xA 1.12 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.411
squad_xg_sum=1.1126
squad_xa_sum=0.8871
team_expected_assists=1.125
team_xa_to_xg_ratio=0.7973
expected_goals: 0.0325 -> 0.0412
expected_assists: 0.0674 -> 0.0855
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
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.0404
goal_rate=0.0542
scorer_weight=0.0515
-
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.0819
assist_rate=0.0762
provider_weight=0.0919
-
RayanF8610.420.17142%31.87.150.641FBref 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.0177, quality 0.848)market_value_eur=58000000
quality_factor=0.8478
boost_factor=1.0177
reference_quality=0.505
history_matches=24
history_shrink=0.1724
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0149)blend_weight=0.0149
history_matches=24
season_overlap_discount=1.0
per90_to_match_factor=0.9583
prior_reliability=0.1333
competition=Premier League
totalCross: 1.5508 -> 1.5276
wasFouled: 1.1721 -> 1.1546
fouls: 1.1236 -> 1.1068
wonTackle: 0.7131 -> 0.7024
totalShots: 2.2305 -> 2.2406
interceptionWon: 1.1515 -> 1.1415
onTargetScoringAttempt: 0.8147 -> 0.8243
goals: 0.3817 -> 0.376
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': 'Issa Diop, Jacob Greaves', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.275, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.1097, 'skill_edge': 0.1086, 'height_edge': -0.034, 'attacker_skill': 0.8478, 'defender_skill': 0.6065, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Issa Diop', 'market_value': 10300000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5652}, {'player': 'Jacob Greaves', 'market_value': 16300000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6478}], 'xg_override': 0.3331}
totalShots: 2.2406 -> 2.4864
shotOffTarget: 1.4158 -> 1.5711
onTargetScoringAttempt: 0.8243 -> 0.9147
bigChanceMissed: 0.7808 -> 0.8665
goals: 0.376 -> 0.4172
expectedGoals: 0.3002 -> 0.3331
expectedGoalsOnTarget: 0.2802 -> 0.3109
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.41 (squad xG sum 1.1126, xG scale 1.2682, xA scale 1.2682, team xA 1.12 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.411
squad_xg_sum=1.1126
squad_xa_sum=0.8871
team_expected_assists=1.125
team_xa_to_xg_ratio=0.7973
expected_goals: 0.3331 -> 0.4225
expected_assists: 0.087 -> 0.1103
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.3446
goal_rate=0.4172
scorer_weight=0.5152
-
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.1044
assist_rate=0.0187
provider_weight=0.0882
-
Team totals11.41156.9
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Michele Di GregorioG4.6m11.9%Market-value substitute prior
Bafodé DiakitéD14.3m33.4%Market-value substitute prior
Veljko MilosavljevićD14.3m33.1%Market-value substitute prior
Alex TóthM18.9m70.2%Market-value substitute prior
Juanlu SánchezM22.3m51.3%Market-value substitute prior
Eli Junior KroupiF27.0m63.7%Market-value substitute prior
Antagonist / tactical summary
Midfield is evenly contested — Julio Enciso vs Alex Scott will be the pivotal duel. Total antagonist xG — Home: 0.63, Away: 0.75. 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.1% / 49.9%, dominance ratio 0.48, key duel: Julio Enciso vs Alex Scott
Saša Lukić xG 0.05Julio Enciso xG 0.19Exequiel Palacios xG 0.03Justin Kluivert xG 0.16Ryan Christie xG 0.07Alex Scott xG 0.10

Summary

Antagonist matchup analysis for Ipswich vs Bournemouth. Most likely scoreline: 1-1. Lambdas derived from 6 home and 6 away individual player duels. Head-to-head: Ipswich 1W-4D-1L vs Bournemouth 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 — Julio Enciso vs Alex Scott will be the pivotal duel. Total antagonist xG — Home: 0.63, Away: 0.75. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.

Brighton vs Brentford

Premier League · 20261108 · 4-2-3-1 vs 4-2-3-1
Predicted 2-1Winner: BrightonWinning H 2-1 (8.8%)Winning A 1-2 (7.9%)Confidence 0.66λ home/away 1.65 / 1.47Most-likely P 8.8%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset Tracing
Antagonist + XGBoost match analysis for Brighton vs Brentford. 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.878, Away 1.462). Final calibrated Poisson lambdas: Home 1.649, Away 1.472 (most likely score 2-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.88 / 1.46 Final λ (H/A) 1.65 / 1.47
FBref Team Priors: Brighton & Hove Albion (Gls/90: 2.5, GA/90: 3.5 → E[λ]: 3.448) vs Brentford (Gls/90: 2.0, GA/90: 2.0 → E[λ]: 3.5) | 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

MetricBrightonBrentford
League position3.006.00
Points per game1.811.48
Attack index1.481.08
Defense (concede) index0.840.86
Form multiplier1.020.98
Standing λ multiplier1.100.96

Lambda decomposition (how the goal rates were built)

StageBrighton λBrentford λ
FBref Squad Prior E[λ] (weight 0.192)3.4483.500
Pre-competitive-floor1.9301.742
Pre-calibration (Micro-duels)1.8781.462
Final λ1.6491.472
competition calibration scale 0.85competition observed total goals 2.781quality gap applied Falsemismatch score pressure applied Falsecompetitive underdog floor applied Falsestage discount 1.0

Scoreline distribution & markets

Top 5 scorelinesP
1-110.8%
2-18.8%
1-27.9%
1-07.2%
2-26.5%
Home win41.9%
Draw23.8%
Away win34.3%
Over 2.560.3%
BTTS yes62.3%
Pregame fair line — favorite Brighton (41.9%), fair total 3.12, fair spread 0.18

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
Bart VerbruggenG9000.00-n/a0.07.160.633FBref 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.0075, quality 0.764)market_value_eur=37000000
quality_factor=0.7641
boost_factor=1.0075
reference_quality=0.505
history_matches=47
history_shrink=0.0962
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0083)blend_weight=0.0083
history_matches=47
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League
saves: 3.076 -> 3.0545
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': 'Igor Thiago, Mikkel Damsgaard', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.4619}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.65 (squad xG sum 1.3905, xG scale 1.1859, xA scale 1.2086, team xA 1.07 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.649
squad_xg_sum=1.3905
squad_xa_sum=0.8869
team_expected_assists=1.0718
team_xa_to_xg_ratio=0.65
shots_faced: 13.9 -> 14.0
expected_saves: 3.4 -> 3.43
high_pressure_saves: 1.17 -> 1.18
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.6715
-
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.1039
-
Ferdi KadıoğluD7600.040.05ok10.76.855.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 1.0086, quality 0.786)market_value_eur=41000000
quality_factor=0.7859
boost_factor=1.0086
reference_quality=0.505
history_matches=44
history_shrink=0.102
-
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': 'Igor Thiago', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.65 (squad xG sum 1.3905, xG scale 1.1859, xA scale 1.2086, team xA 1.07 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.649
squad_xg_sum=1.3905
squad_xa_sum=0.8869
team_expected_assists=1.0718
team_xa_to_xg_ratio=0.65
expected_goals: 0.0311 -> 0.0369
expected_assists: 0.0536 -> 0.0648
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0362
goal_rate=0.0256
scorer_weight=0.0344
-
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.0627
assist_rate=0.0
provider_weight=0.0518
-
Maxim De CuyperD8000.170.1067%10.76.850.139FBref 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.0070, quality 0.710)market_value_eur=29000000
quality_factor=0.71
boost_factor=1.007
reference_quality=0.505
history_matches=39
history_shrink=0.1136
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0094)blend_weight=0.0094
history_matches=39
season_overlap_discount=1.0
per90_to_match_factor=0.8934
prior_reliability=0.1267
competition=Premier League
totalCross: 3.938 -> 3.9584
totalShots: 0.7959 -> 0.8109
wasFouled: 1.3743 -> 1.3614
fouls: 1.2782 -> 1.2838
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': 'Mikkel Damsgaard', 'matchup_zone': 'Right Wing vs Left Back — Flank Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.65 (squad xG sum 1.3905, xG scale 1.1859, xA scale 1.2086, team xA 1.07 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.649
squad_xg_sum=1.3905
squad_xa_sum=0.8869
team_expected_assists=1.0718
team_xa_to_xg_ratio=0.65
expected_goals: 0.1468 -> 0.1741
expected_assists: 0.1577 -> 0.1906
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.1598
goal_rate=0.1463
scorer_weight=0.1737
-
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.1735
assist_rate=0.3273
provider_weight=0.2382
-
Olivier BoscagliD7700.020.01138%10.26.839.134FBref 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.616)market_value_eur=18500000
quality_factor=0.6161
boost_factor=1.0064
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.8527
prior_reliability=0.1333
competition=Premier League
fouls: 0.8919 -> 0.9055
onTargetScoringAttempt: 0.0511 -> 0.0574
wasFouled: 0.8992 -> 0.9055
totalCross: 2.4376 -> 2.4325
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': 'Mathias Jensen', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.65 (squad xG sum 1.3905, xG scale 1.1859, xA scale 1.2086, team xA 1.07 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.649
squad_xg_sum=1.3905
squad_xa_sum=0.8869
team_expected_assists=1.0718
team_xa_to_xg_ratio=0.65
expected_assists: 0.0666 -> 0.0805
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0158
goal_rate=0.0
scorer_weight=0.0127
-
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.0773
assist_rate=0.127
provider_weight=0.1006
-
Luka VuškovićD8900.170.0995%11.17.047.414FBref 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.0390, quality 0.869)market_value_eur=69000000
quality_factor=0.8692
boost_factor=1.039
reference_quality=0.505
history_matches=9
history_shrink=0.3571
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0309)blend_weight=0.0309
history_matches=9
season_overlap_discount=1.0
per90_to_match_factor=0.9906
prior_reliability=0.1333
competition=Premier League
interceptionWon: 1.33 -> 1.2888
wasFouled: 0.8317 -> 0.806
totalShots: 1.2364 -> 1.2594
totalCross: 0.3254 -> 0.3153
fouls: 1.2324 -> 1.2249
wonTackle: 0.7207 -> 0.7137
onTargetScoringAttempt: 0.2231 -> 0.2162
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': 'Igor Thiago', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.65 (squad xG sum 1.3905, xG scale 1.1859, xA scale 1.2086, team xA 1.07 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.649
squad_xg_sum=1.3905
squad_xa_sum=0.8869
team_expected_assists=1.0718
team_xa_to_xg_ratio=0.65
expected_goals: 0.1463 -> 0.1735
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.1593
goal_rate=0.0741
scorer_weight=0.1388
-
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.0263
assist_rate=0.0
provider_weight=0.0214
-
Diego GómezM8410.200.1356%21.47.056.529FBref 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.0090)blend_weight=0.009
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=0.9312
prior_reliability=0.1267
competition=Premier League
totalShots: 1.8663 -> 1.8839
wonTackle: 1.1319 -> 1.1393
onTargetScoringAttempt: 0.6873 -> 0.694
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': 'Michael Kayode', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.455, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9626, 'skill_edge': -0.0494, 'height_edge': 0.024, 'attacker_skill': 0.732, 'defender_skill': 0.8419, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Michael Kayode', 'market_value': 39000000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.8419}], 'xg_override': 0.1698}
aerialWon: 3.4181 -> 1.2
totalShots: 1.8839 -> 1.8134
shotOffTarget: 1.179 -> 1.1349
onTargetScoringAttempt: 0.694 -> 0.668
bigChanceMissed: 0.3824 -> 0.3681
goals: 0.222 -> 0.2137
expectedGoals: 0.1764 -> 0.1698
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.65 (squad xG sum 1.3905, xG scale 1.1859, xA scale 1.2086, team xA 1.07 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.649
squad_xg_sum=1.3905
squad_xa_sum=0.8869
team_expected_assists=1.0718
team_xa_to_xg_ratio=0.65
expected_goals: 0.1698 -> 0.2014
expected_assists: 0.1099 -> 0.1328
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=1
goal_probability=0.1824
goal_rate=0.2137
scorer_weight=0.2416
-
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.1244
assist_rate=0.114
provider_weight=0.1362
-
Pascal GroßM8800.140.1132%10.97.160.133FBref 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.9969, quality 0.437)market_value_eur=2300000
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.9752
prior_reliability=0.1333
competition=Premier League
totalCross: 5.9665 -> 6.0034
totalShots: 1.2941 -> 1.2835
interceptionWon: 0.3873 -> 0.3822
wonTackle: 0.5949 -> 0.5999
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': 'Keane Lewis-Potter', 'matchup_zone': 'Right Wing vs Left Back — Flank Battle', 'duel_win_rate': 0.366, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 0.8327, 'skill_edge': -0.1578, 'height_edge': 0.044, 'attacker_skill': 0.4374, 'defender_skill': 0.7881, 'attacker_role': 'RW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Keane Lewis-Potter', 'market_value': 29000000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.7881}], 'xg_override': 0.1218}
aerialWon: 0.6008 -> 1.1
totalShots: 1.2936 -> 1.0772
shotOffTarget: 0.7666 -> 0.6383
onTargetScoringAttempt: 0.527 -> 0.4388
goals: 0.1727 -> 0.1438
expectedGoals: 0.1463 -> 0.1218
expectedGoalsOnTarget: 0.09 -> 0.0749
bigChanceMissed: 0.0596 -> 0.0496
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.65 (squad xG sum 1.3905, xG scale 1.1859, xA scale 1.2086, team xA 1.07 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.649
squad_xg_sum=1.3905
squad_xa_sum=0.8869
team_expected_assists=1.0718
team_xa_to_xg_ratio=0.65
expected_goals: 0.1218 -> 0.1444
expected_assists: 0.191 -> 0.2308
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.1345
goal_rate=0.1438
scorer_weight=0.1629
-
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.2061
assist_rate=0.1392
provider_weight=0.1846
-
Yasin AyariM8500.190.09116%21.06.951.327FBref 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.0100, quality 0.786)market_value_eur=41000000
quality_factor=0.7859
boost_factor=1.01
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.9446
prior_reliability=0.0467
competition=Premier League
fouls: 0.4628 -> 0.4709
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': 'Vitaly Janelt', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.436, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 1.024, 'skill_edge': 0.0643, 'height_edge': -0.048, 'attacker_skill': 0.8177, 'defender_skill': 0.6747, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Vitaly Janelt', 'market_value': 21000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.6747}], 'xg_override': 0.1606}
aerialWon: 0.4093 -> 0.8
totalShots: 1.6406 -> 1.68
shotOffTarget: 1.1141 -> 1.1408
onTargetScoringAttempt: 0.5208 -> 0.5333
expectedGoalsOnTarget: 0.3026 -> 0.3099
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.65 (squad xG sum 1.3905, xG scale 1.1859, xA scale 1.2086, team xA 1.07 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.649
squad_xg_sum=1.3905
squad_xa_sum=0.8869
team_expected_assists=1.0718
team_xa_to_xg_ratio=0.65
expected_goals: 0.1606 -> 0.1905
expected_assists: 0.0644 -> 0.0778
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.1735
goal_rate=0.1502
scorer_weight=0.1811
-
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.0749
assist_rate=0.0722
provider_weight=0.0831
-
Chema AndrésM7700.080.0468%10.36.835.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 1.0211, quality 0.660)market_value_eur=23000000
quality_factor=0.6595
boost_factor=1.0211
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': 'Vitaly Janelt', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.453, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 1.0484, 'skill_edge': 0.0089, 'height_edge': 0.024, 'attacker_skill': 0.6946, 'defender_skill': 0.6747, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Vitaly Janelt', 'market_value': 21000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.6747}], 'xg_override': 0.0636}
aerialWon: 0.9176 -> 1.3
totalShots: 0.6162 -> 0.646
shotOffTarget: 0.4349 -> 0.4559
onTargetScoringAttempt: 0.1813 -> 0.1901
expectedGoalsOnTarget: 0.1336 -> 0.1401
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.65 (squad xG sum 1.3905, xG scale 1.1859, xA scale 1.2086, team xA 1.07 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.649
squad_xg_sum=1.3905
squad_xa_sum=0.8869
team_expected_assists=1.0718
team_xa_to_xg_ratio=0.65
expected_goals: 0.0636 -> 0.0754
expected_assists: 0.0308 -> 0.0372
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0726
goal_rate=0.0746
scorer_weight=0.0827
-
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.0365
assist_rate=0.0466
provider_weight=0.0445
-
Jack HinshelwoodM7900.220.26ok21.36.850.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 1.0100, quality 0.746)market_value_eur=34000000
quality_factor=0.7455
boost_factor=1.01
reference_quality=0.505
history_matches=31
history_shrink=0.1389
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0042)blend_weight=0.0042
history_matches=31
season_overlap_discount=1.0
per90_to_match_factor=0.8776
prior_reliability=0.0467
competition=Premier League
goals: 0.1583 -> 0.1682
totalShots: 1.8318 -> 1.8399
onTargetScoringAttempt: 0.6814 -> 0.6891
wonTackle: 0.7615 -> 0.7689
wasFouled: 0.9029 -> 0.9097
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': 'Vitaly Janelt, Mamadou Sangare', 'matchup_zone': 'Attacking Mid vs Double Pivot — Tight Space Battle', 'duel_win_rate': 0.236, 'pressing_faced': 'HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.9944, 'skill_edge': -0.0018, 'height_edge': -0.002, 'attacker_skill': 0.7569, 'defender_skill': 0.7609, 'attacker_role': 'CAM', 'attacker_mv_price_index': 0.95, 'defender_adjusted_parts': [{'player': 'Vitaly Janelt', 'market_value': 21000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.6747}, {'player': 'Mamadou Sangare', 'market_value': 49000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.847}], 'xg_override': 0.1839}
aerialWon: 0.5215 -> 1.1
totalShots: 1.8399 -> 1.8296
shotOffTarget: 1.1504 -> 1.144
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.65 (squad xG sum 1.3905, xG scale 1.1859, xA scale 1.2086, team xA 1.07 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.649
squad_xg_sum=1.3905
squad_xa_sum=0.8869
team_expected_assists=1.0718
team_xa_to_xg_ratio=0.65
expected_goals: 0.1839 -> 0.2181
expected_assists: 0.0653 -> 0.0789
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 77.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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.196
goal_rate=0.1673
scorer_weight=0.2026
-
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.0759
assist_rate=0.0646
provider_weight=0.0784
-
Charalampos KostoulasF7710.310.13148%21.16.845.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.0125, quality 0.796)market_value_eur=43000000
quality_factor=0.7957
boost_factor=1.0125
reference_quality=0.505
history_matches=30
history_shrink=0.1429
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0074)blend_weight=0.0074
history_matches=30
season_overlap_discount=1.0
per90_to_match_factor=0.8606
prior_reliability=0.08
competition=Premier League
wasFouled: 1.3645 -> 1.3544
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': 'Nathan Collins, Kristoffer Ajer', '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.9638, 'skill_edge': 0.0134, 'height_edge': -0.038, 'attacker_skill': 0.7957, 'defender_skill': 0.7659, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Nathan Collins', 'market_value': 29000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7736}, {'player': 'Kristoffer Ajer', 'market_value': 27000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7581}], 'xg_override': 0.2654}
totalShots: 2.0809 -> 2.0056
shotOffTarget: 1.3439 -> 1.2953
onTargetScoringAttempt: 0.7362 -> 0.7095
goals: 0.2895 -> 0.279
expectedGoals: 0.2754 -> 0.2654
expectedGoalsOnTarget: 0.269 -> 0.2593
bigChanceMissed: 0.2596 -> 0.2502
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.65 (squad xG sum 1.3905, xG scale 1.1859, xA scale 1.2086, team xA 1.07 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.649
squad_xg_sum=1.3905
squad_xa_sum=0.8869
team_expected_assists=1.0718
team_xa_to_xg_ratio=0.65
expected_goals: 0.2654 -> 0.3147
expected_assists: 0.0622 -> 0.0752
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=1
goal_probability=0.27
goal_rate=0.279
scorer_weight=0.3283
-
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.0724
assist_rate=0.277
provider_weight=0.094
-
Team totals21.65166.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
Malick YalcouyéM13.0m51.7%Market-value substitute prior
Matt O'RileyM22.6m52.7%Market-value substitute prior
Yankuba MintehF26.8m62.9%Market-value substitute prior

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Caoimhin KelleherG9000.00-n/a0.06.859.433FBref 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.0060, quality 0.710)market_value_eur=29000000
quality_factor=0.71
boost_factor=1.006
reference_quality=0.505
history_matches=46
history_shrink=0.098
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0085)blend_weight=0.0085
history_matches=46
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': 'Charalampos Kostoulas, Jack Hinshelwood', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.8777}
-
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.47 (squad xG sum 1.0237, xG scale 1.4379, xA scale 1.4069, team xA 1.18 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.472
squad_xg_sum=1.0237
squad_xa_sum=0.837
team_expected_assists=1.1776
team_xa_to_xg_ratio=0.8
shots_faced: 17.8 -> 15.7
expected_saves: 4.35 -> 3.85
high_pressure_saves: 1.5 -> 1.32
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.0
scorer_weight=0.0
squad_weight_total=1.6042
-
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.0952
-
Keane Lewis-PotterD8200.150.1049%11.06.757.034FBref 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.0061, quality 0.710)market_value_eur=29000000
quality_factor=0.71
boost_factor=1.0061
reference_quality=0.505
history_matches=45
history_shrink=0.1
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0087)blend_weight=0.0087
history_matches=45
season_overlap_discount=1.0
per90_to_match_factor=0.9078
prior_reliability=0.1333
competition=Premier League
totalCross: 2.9299 -> 2.9438
wasFouled: 1.2226 -> 1.212
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': '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.47 (squad xG sum 1.0237, xG scale 1.4379, xA scale 1.4069, team xA 1.18 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.472
squad_xg_sum=1.0237
squad_xa_sum=0.837
team_expected_assists=1.1776
team_xa_to_xg_ratio=0.8
expected_goals: 0.1063 -> 0.1528
expected_assists: 0.0832 -> 0.1171
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.1417
goal_rate=0.1719
scorer_weight=0.191
-
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.1105
assist_rate=0.0831
provider_weight=0.117
-
Nathan CollinsD8000.140.06149%10.56.843.731FBref 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.710)market_value_eur=29000000
quality_factor=0.71
boost_factor=1.0072
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.8846
prior_reliability=0.1333
competition=Premier League
totalShots: 0.8522 -> 0.8659
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.47 (squad xG sum 1.0237, xG scale 1.4379, xA scale 1.4069, team xA 1.18 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.472
squad_xg_sum=1.0237
squad_xa_sum=0.837
team_expected_assists=1.1776
team_xa_to_xg_ratio=0.8
expected_goals: 0.0956 -> 0.1375
expected_assists: 0.0466 -> 0.0656
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
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.1285
goal_rate=0.0124
scorer_weight=0.11
-
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.0635
assist_rate=0.0243
provider_weight=0.0525
-
Kristoffer AjerD8900.040.01241%00.26.849.333FBref 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.0069, quality 0.694)market_value_eur=27000000
quality_factor=0.6941
boost_factor=1.0069
reference_quality=0.505
history_matches=36
history_shrink=0.122
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0106)blend_weight=0.0106
history_matches=36
season_overlap_discount=1.0
per90_to_match_factor=0.9866
prior_reliability=0.1333
competition=Premier League
wonTackle: 0.9715 -> 0.9664
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.47 (squad xG sum 1.0237, xG scale 1.4379, xA scale 1.4069, team xA 1.18 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.472
squad_xg_sum=1.0237
squad_xa_sum=0.837
team_expected_assists=1.1776
team_xa_to_xg_ratio=0.8
expected_goals: 0.0266 -> 0.0382
expected_assists: 0.0312 -> 0.0439
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 77.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.0375
goal_rate=0.0931
scorer_weight=0.0478
-
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.043
assist_rate=0.0
provider_weight=0.0351
-
Michael KayodeD8500.070.0545%10.36.758.333FBref 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.0080, quality 0.775)market_value_eur=39000000
quality_factor=0.7754
boost_factor=1.008
reference_quality=0.505
history_matches=46
history_shrink=0.098
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0076)blend_weight=0.0076
history_matches=46
season_overlap_discount=1.0
per90_to_match_factor=0.9412
prior_reliability=0.12
competition=Premier League
totalShots: 0.5697 -> 0.5854
wasFouled: 0.9025 -> 0.9116
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': 'Diego Gómez', '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.47 (squad xG sum 1.0237, xG scale 1.4379, xA scale 1.4069, team xA 1.18 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.472
squad_xg_sum=1.0237
squad_xa_sum=0.837
team_expected_assists=1.1776
team_xa_to_xg_ratio=0.8
expected_goals: 0.0485 -> 0.0697
expected_assists: 0.0679 -> 0.0955
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 81.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.0673
goal_rate=0.0659
scorer_weight=0.082
-
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.0911
assist_rate=0.0154
provider_weight=0.0764
-
Vitaly JaneltM8700.070.0452%10.47.055.026FBref 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.0054, quality 0.641)market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.0054
reference_quality=0.505
history_matches=33
history_shrink=0.1316
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0114)blend_weight=0.0114
history_matches=33
season_overlap_discount=1.0
per90_to_match_factor=0.9709
prior_reliability=0.1333
competition=Premier League
totalCross: 2.1767 -> 2.2017
fouls: 1.3028 -> 1.3156
interceptionWon: 2.891 -> 2.9023
wonTackle: 1.3832 -> 1.3896
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': 'CDM vs CDM', 'duel_win_rate': 0.404, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.976, 'skill_edge': -0.0643, 'height_edge': 0.048, 'attacker_skill': 0.6747, 'defender_skill': 0.8177, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Yasin Ayari', 'market_value': 41000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8177}], 'xg_override': 0.0464}
aerialWon: 0.7577 -> 1.1
totalShots: 0.5908 -> 0.5766
shotOffTarget: 0.4326 -> 0.4222
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.47 (squad xG sum 1.0237, xG scale 1.4379, xA scale 1.4069, team xA 1.18 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.472
squad_xg_sum=1.0237
squad_xa_sum=0.837
team_expected_assists=1.1776
team_xa_to_xg_ratio=0.8
expected_goals: 0.0464 -> 0.0667
expected_assists: 0.0744 -> 0.1047
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: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0645
goal_rate=0.0918
scorer_weight=0.0834
-
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.0994
assist_rate=0.0605
provider_weight=0.093
-
Mathias JensenM7600.100.0665%10.96.958.830FBref 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.9999, quality 0.502)market_value_eur=8300000
quality_factor=0.5023
boost_factor=0.9999
reference_quality=0.505
history_matches=41
history_shrink=0.1087
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0033)blend_weight=0.0033
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=0.8488
prior_reliability=0.0467
competition=Premier League
fouls: 0.7784 -> 0.7878
totalCross: 4.0992 -> 4.1057
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 Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.392, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.8703, 'skill_edge': -0.0842, 'height_edge': -0.004, 'attacker_skill': 0.5023, 'defender_skill': 0.6894, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Olivier Boscagli', 'market_value': 18500000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.6894}], 'xg_override': 0.0678}
aerialWon: 0.1476 -> 1.1
totalShots: 1.0992 -> 0.9566
shotOffTarget: 0.7398 -> 0.6438
onTargetScoringAttempt: 0.358 -> 0.3116
bigChanceMissed: 0.111 -> 0.0966
expectedGoals: 0.0779 -> 0.0678
goals: 0.0774 -> 0.0674
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.47 (squad xG sum 1.0237, xG scale 1.4379, xA scale 1.4069, team xA 1.18 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.472
squad_xg_sum=1.0237
squad_xa_sum=0.837
team_expected_assists=1.1776
team_xa_to_xg_ratio=0.8
expected_goals: 0.0678 -> 0.0975
expected_assists: 0.1377 -> 0.1937
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.0929
goal_rate=0.0674
scorer_weight=0.0972
-
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.1761
assist_rate=0.1071
provider_weight=0.1621
-
Yehor YarmoliukM7500.070.03134%10.36.856.531FBref 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.0065, quality 0.718)market_value_eur=30000000
quality_factor=0.7176
boost_factor=1.0065
reference_quality=0.505
history_matches=44
history_shrink=0.102
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0022)blend_weight=0.0022
history_matches=44
season_overlap_discount=1.0
per90_to_match_factor=0.8307
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': 'Yasin Ayari, Chema Andrés', 'matchup_zone': 'Attacking Mid vs Double Pivot — Tight Space Battle', 'duel_win_rate': 0.224, 'pressing_faced': 'HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.9762, 'skill_edge': -0.0122, 'height_edge': -0.004, 'attacker_skill': 0.7291, 'defender_skill': 0.7562, 'attacker_role': 'CAM', 'attacker_mv_price_index': 0.95, 'defender_adjusted_parts': [{'player': 'Yasin Ayari', 'market_value': 41000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8177}, {'player': 'Chema Andrés', 'market_value': 23000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.6946}], 'xg_override': 0.0483}
aerialWon: 1.1343 -> 1.1
totalShots: 0.7063 -> 0.6895
shotOffTarget: 0.4951 -> 0.4833
onTargetScoringAttempt: 0.2087 -> 0.2037
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.47 (squad xG sum 1.0237, xG scale 1.4379, xA scale 1.4069, team xA 1.18 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.472
squad_xg_sum=1.0237
squad_xa_sum=0.837
team_expected_assists=1.1776
team_xa_to_xg_ratio=0.8
expected_goals: 0.0483 -> 0.0694
expected_assists: 0.0686 -> 0.0965
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.067
goal_rate=0.0557
scorer_weight=0.0746
-
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.092
assist_rate=0.067
provider_weight=0.0952
-
Mamadou SangareM7800.090.03159%10.66.944.614FBref 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.0338, quality 0.821)market_value_eur=49000000
quality_factor=0.8206
boost_factor=1.0338
reference_quality=0.505
history_matches=9
history_shrink=0.3571
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0279)blend_weight=0.0279
history_matches=9
season_overlap_discount=1.0
per90_to_match_factor=0.8648
prior_reliability=0.12
competition=Premier League
totalShots: 0.8625 -> 0.891
interceptionWon: 1.9338 -> 1.9602
totalCross: 0.2405 -> 0.2606
wasFouled: 0.7333 -> 0.753
goalAssist: 0.0543 -> 0.0662
wonTackle: 1.7547 -> 1.746
onTargetScoringAttempt: 0.2075 -> 0.215
fouls: 1.1889 -> 1.1959
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': 'CDM vs CDM', 'duel_win_rate': 0.469, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 1.0723, 'skill_edge': 0.0132, 'height_edge': 0.036, 'attacker_skill': 0.847, 'defender_skill': 0.8177, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Yasin Ayari', 'market_value': 41000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8177}], 'xg_override': 0.0618}
aerialWon: 1.4109 -> 1.1
totalShots: 0.891 -> 0.9554
shotOffTarget: 0.655 -> 0.7024
onTargetScoringAttempt: 0.215 -> 0.2305
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.47 (squad xG sum 1.0237, xG scale 1.4379, xA scale 1.4069, team xA 1.18 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.472
squad_xg_sum=1.0237
squad_xa_sum=0.837
team_expected_assists=1.1776
team_xa_to_xg_ratio=0.8
expected_goals: 0.0618 -> 0.0889
expected_assists: 0.0477 -> 0.0671
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.0851
goal_rate=0.0661
scorer_weight=0.0923
-
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.0649
assist_rate=0.0662
provider_weight=0.0798
-
Mikkel DamsgaardM8000.120.06105%10.87.055.532FBref 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.0067, quality 0.710)market_value_eur=29000000
quality_factor=0.71
boost_factor=1.0067
reference_quality=0.505
history_matches=41
history_shrink=0.1087
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0042)blend_weight=0.0042
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=0.8942
prior_reliability=0.06
competition=Premier League
totalCross: 3.3114 -> 3.3311
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 Wing vs Left Back — Flank Battle', 'duel_win_rate': 0.433, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 0.9307, 'skill_edge': -0.0351, 'height_edge': -0.012, 'attacker_skill': 0.71, 'defender_skill': 0.7881, 'attacker_role': 'RW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Maxim De Cuyper', 'market_value': 29000000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.7881}], 'xg_override': 0.0855}
aerialWon: 0.8051 -> 1.1
totalShots: 1.2208 -> 1.1362
shotOffTarget: 0.822 -> 0.765
onTargetScoringAttempt: 0.3981 -> 0.3705
goals: 0.0998 -> 0.0929
expectedGoals: 0.0919 -> 0.0855
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.47 (squad xG sum 1.0237, xG scale 1.4379, xA scale 1.4069, team xA 1.18 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.472
squad_xg_sum=1.0237
squad_xa_sum=0.837
team_expected_assists=1.1776
team_xa_to_xg_ratio=0.8
expected_goals: 0.0855 -> 0.1229
expected_assists: 0.1427 -> 0.2008
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.1156
goal_rate=0.0929
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=1
assist_probability=0.1819
assist_rate=0.1073
provider_weight=0.1639
-
Igor ThiagoF8910.470.46ok22.07.058.034FBref 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.0105, quality 0.868)market_value_eur=68000000
quality_factor=0.8677
boost_factor=1.0105
reference_quality=0.505
history_matches=47
history_shrink=0.0962
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0079)blend_weight=0.0079
history_matches=47
season_overlap_discount=1.0
per90_to_match_factor=0.992
prior_reliability=0.1267
competition=Premier League
totalShots: 2.0495 -> 2.062
fouls: 2.0664 -> 2.0542
wasFouled: 1.2622 -> 1.2522
wonTackle: 0.7118 -> 0.7062
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': 'Ferdi Kadıoğlu, Luka Vušković', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.231, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 1.0462, 'skill_edge': 0.0014, 'height_edge': 0.03, 'attacker_skill': 0.8677, 'defender_skill': 0.8645, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Ferdi Kadıoğlu', 'market_value': 41000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.839}, {'player': 'Luka Vušković', 'market_value': 69000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.89}], 'xg_override': 0.324}
totalShots: 2.062 -> 2.1573
shotOffTarget: 1.3359 -> 1.3976
onTargetScoringAttempt: 0.7162 -> 0.7493
bigChanceMissed: 0.5143 -> 0.5381
goals: 0.3501 -> 0.3663
expectedGoals: 0.3097 -> 0.324
expectedGoalsOnTarget: 0.291 -> 0.3044
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.47 (squad xG sum 1.0237, xG scale 1.4379, xA scale 1.4069, team xA 1.18 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.472
squad_xg_sum=1.0237
squad_xa_sum=0.837
team_expected_assists=1.1776
team_xa_to_xg_ratio=0.8
expected_goals: 0.324 -> 0.466
expected_assists: 0.0814 -> 0.1145
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 82.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.3725
goal_rate=0.3663
scorer_weight=0.5187
-
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.238
provider_weight=0.1431
-
Team totals11.47126.9
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Hákon Rafn ValdimarssonG4.4m10.9%Market-value substitute prior
El Hadji Malick DioufD14.8m35.6%Market-value substitute prior
Sepp van den BergD14.8m35.3%Market-value substitute prior
Antoni MilamboM22.6m52.5%Market-value substitute prior
Josh DasilvaM22.0m49.9%Market-value substitute prior
Kevin SchadeF26.9m36.6%Market-value substitute prior
Antagonist / tactical summary
Midfield is evenly contested — Yasin Ayari vs Mamadou Sangare will be the pivotal duel. Total antagonist xG — Home: 0.97, Away: 0.63. 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 49.6% / 50.4%, dominance ratio 0.50, key duel: Yasin Ayari vs Mamadou Sangare
Diego Gómez xG 0.17Pascal Groß xG 0.12Jack Hinshelwood xG 0.18Mathias Jensen xG 0.07Mikkel Damsgaard xG 0.09Yehor Yarmoliuk xG 0.05

Summary

Antagonist matchup analysis for Brighton vs Brentford. Most likely scoreline: 2-1. Lambdas derived from 6 home and 6 away individual player duels. Head-to-head: Brighton 4W-3D-3L vs Brentford over 10 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 — Yasin Ayari vs Mamadou Sangare will be the pivotal duel. Total antagonist xG — Home: 0.97, Away: 0.63. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.

Sunderland vs Chelsea

Premier League · 20261108 · 4-2-3-1 vs 4-2-3-1
Predicted 1-2Winner: ChelseaWinning H 2-1 (6.7%)Winning A 1-2 (9.6%)Confidence 0.68λ home/away 1.20 / 1.73Most-likely P 9.6%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset Tracing
Antagonist + XGBoost match analysis for Sunderland vs Chelsea. 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.388, Away 1.919). Final calibrated Poisson lambdas: Home 1.201, Away 1.733 (most likely score 1-2).
Home Starters 11/11 XGBoost (9 FBref) Away Starters 11/11 XGBoost (10 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.39 / 1.92 Final λ (H/A) 1.20 / 1.73
FBref Team Priors: Sunderland (Gls/90: 1.0, GA/90: 1.0 → E[λ]: 2.414) vs Chelsea (Gls/90: 3.5, GA/90: 3.5 → E[λ]: 2.414) | 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

MetricSunderlandChelsea
League position20.004.00
Points per game0.881.61
Attack index0.861.18
Defense (concede) index1.041.22
Form multiplier0.961.04
Standing λ multiplier0.951.17

Lambda decomposition (how the goal rates were built)

StageSunderland λChelsea λ
FBref Squad Prior E[λ] (weight 0.192)2.4142.414
Pre-mismatch1.3562.096
Pre-competitive-floor1.3272.268
Pre-calibration (Micro-duels)1.3881.919
Final λ1.2011.733
competition calibration scale 0.85competition observed total goals 2.781quality gap applied Truemismatch score pressure applied Truecompetitive underdog floor applied Falsestage discount 1.0

Scoreline distribution & markets

Top 5 scorelinesP
1-111.1%
1-29.6%
0-19.1%
0-28.0%
2-16.7%
Home win26.4%
Draw23.8%
Away win49.8%
Over 2.556.2%
BTTS yes57.6%
Pregame fair line — favorite Chelsea (49.8%), fair total 2.93, fair spread -0.53

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.

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Robin RoefsG9000.00-n/a0.07.055.731FBref 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.0067, quality 0.725)market_value_eur=31000000
quality_factor=0.7249
boost_factor=1.0067
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.7914 -> 2.7711
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': 'João Pedro, Cole Palmer', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.9191}
-
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.20 (squad xG sum 1.1254, xG scale 1.0672, xA scale 1.0672, team xA 0.82 = 0.68 x lambda)scoreline_reset=true
team_lambda=1.201
squad_xg_sum=1.1254
squad_xa_sum=0.7648
team_expected_assists=0.8162
team_xa_to_xg_ratio=0.6796
shots_faced: 18.2 -> 16.5
expected_saves: 4.45 -> 4.04
high_pressure_saves: 1.54 -> 1.39
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=1.165
-
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.7435
-
Kevin DansoD7900.070.03121%10.56.636.728XGBoost 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.0053, quality 0.625)market_value_eur=19400000
quality_factor=0.6251
boost_factor=1.0053
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': 'João Pedro', '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.20 (squad xG sum 1.1254, xG scale 1.0672, xA scale 1.0672, team xA 0.82 = 0.68 x lambda)scoreline_reset=true
team_lambda=1.201
squad_xg_sum=1.1254
squad_xa_sum=0.7648
team_expected_assists=0.8162
team_xa_to_xg_ratio=0.6796
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 18 by projected rating, fifa_overall 79.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.0656
goal_rate=0.0
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.0255
assist_rate=0.0
provider_weight=0.0206
-
Nordi MukieleD8300.100.0753%10.86.951.431FBref 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.0033, quality 0.602)market_value_eur=17100000
quality_factor=0.6016
boost_factor=1.0033
reference_quality=0.505
history_matches=39
history_shrink=0.1136
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0049)blend_weight=0.0049
history_matches=39
season_overlap_discount=1.0
per90_to_match_factor=0.9248
prior_reliability=0.0667
competition=Premier League
totalCross: 2.6647 -> 2.6561
wonTackle: 1.2388 -> 1.2327
totalShots: 1.1747 -> 1.1689
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': 'Jordan Henderson', '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.20 (squad xG sum 1.1254, xG scale 1.0672, xA scale 1.0672, team xA 0.82 = 0.68 x lambda)scoreline_reset=true
team_lambda=1.201
squad_xg_sum=1.1254
squad_xa_sum=0.7648
team_expected_assists=0.8162
team_xa_to_xg_ratio=0.6796
expected_goals: 0.0937 -> 0.1
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 81.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.0952
goal_rate=0.0506
scorer_weight=0.08
-
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.0255
provider_weight=0.0557
-
Reinildo MandavaD8700.010.0061%00.16.750.826FBref 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.451)market_value_eur=4099999
quality_factor=0.4511
boost_factor=0.9979
reference_quality=0.505
history_matches=33
history_shrink=0.1316
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0114)blend_weight=0.0114
history_matches=33
season_overlap_discount=1.0
per90_to_match_factor=0.967
prior_reliability=0.1333
competition=Premier League
fouls: 1.0369 -> 1.0526
interceptionWon: 1.1636 -> 1.1724
totalCross: 0.8673 -> 0.8739
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': 'Cole Palmer', '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.20 (squad xG sum 1.1254, xG scale 1.0672, xA scale 1.0672, team xA 0.82 = 0.68 x lambda)scoreline_reset=true
team_lambda=1.201
squad_xg_sum=1.1254
squad_xa_sum=0.7648
team_expected_assists=0.8162
team_xa_to_xg_ratio=0.6796
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 80.0)match_squad_rank=12
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_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.0059
goal_rate=0.0
scorer_weight=0.0053
-
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.0317
assist_rate=0.0111
provider_weight=0.0258
-
Daniel BallardD8400.070.06ok10.66.852.324FBref 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.0073, quality 0.694)market_value_eur=27000000
quality_factor=0.6941
boost_factor=1.0073
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.938
prior_reliability=0.1333
competition=Premier League
interceptionWon: 1.073 -> 1.0663
wonTackle: 0.9431 -> 0.9378
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': 'João Pedro', '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.20 (squad xG sum 1.1254, xG scale 1.0672, xA scale 1.0672, team xA 0.82 = 0.68 x lambda)scoreline_reset=true
team_lambda=1.201
squad_xg_sum=1.1254
squad_xa_sum=0.7648
team_expected_assists=0.8162
team_xa_to_xg_ratio=0.6796
-
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.0709
goal_rate=0.0052
scorer_weight=0.0588
-
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.0284
assist_rate=0.0
provider_weight=0.023
-
Noah SadikiM8400.060.05ok10.66.856.631FBref 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.0091, quality 0.791)market_value_eur=42000000
quality_factor=0.7909
boost_factor=1.0091
reference_quality=0.505
history_matches=42
history_shrink=0.1064
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0092)blend_weight=0.0092
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.9368
prior_reliability=0.1333
competition=Premier League
wonTackle: 0.5861 -> 0.5936
wasFouled: 1.3029 -> 1.3082
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': 'Moisés Caicedo', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.366, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9205, 'skill_edge': -0.0341, 'height_edge': -0.02, 'attacker_skill': 0.8221, 'defender_skill': 0.8978, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Moisés Caicedo', 'market_value': 104000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8978}], 'xg_override': 0.0607}
aerialWon: 0.4365 -> 0.9
totalShots: 0.6433 -> 0.5922
shotOffTarget: 0.38 -> 0.3498
onTargetScoringAttempt: 0.2625 -> 0.2416
bigChanceMissed: 0.1271 -> 0.117
goals: 0.0684 -> 0.063
expectedGoals: 0.0659 -> 0.0607
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.20 (squad xG sum 1.1254, xG scale 1.0672, xA scale 1.0672, team xA 0.82 = 0.68 x lambda)scoreline_reset=true
team_lambda=1.201
squad_xg_sum=1.1254
squad_xa_sum=0.7648
team_expected_assists=0.8162
team_xa_to_xg_ratio=0.6796
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 80.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.0627
goal_rate=0.063
scorer_weight=0.0661
-
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.0695
assist_rate=0.0874
provider_weight=0.0842
-
Enzo Le FéeM8700.180.18ok11.26.959.533FBref 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.702)market_value_eur=28000000
quality_factor=0.7022
boost_factor=1.0059
reference_quality=0.505
history_matches=45
history_shrink=0.1
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0082)blend_weight=0.0082
history_matches=45
season_overlap_discount=1.0
per90_to_match_factor=0.9687
prior_reliability=0.1267
competition=Premier League
totalCross: 2.7197 -> 2.7141
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': 'Moisés Caicedo, Roméo Lavia', 'matchup_zone': 'Attacking Mid vs Double Pivot — Tight Space Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.9071, 'skill_edge': -0.0372, 'height_edge': -0.026, 'attacker_skill': 0.7136, 'defender_skill': 0.7962, 'attacker_role': 'CAM', 'attacker_mv_price_index': 0.95, 'defender_adjusted_parts': [{'player': 'Moisés Caicedo', 'market_value': 104000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8978}, {'player': 'Roméo Lavia', 'market_value': 23000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.6946}], 'xg_override': 0.1645}
aerialWon: 0.3769 -> 0.9
totalShots: 1.5349 -> 1.3923
shotOffTarget: 1.0651 -> 0.9662
onTargetScoringAttempt: 0.4657 -> 0.4224
expectedGoalsOnTarget: 0.2686 -> 0.2436
expectedGoals: 0.1814 -> 0.1645
goals: 0.1439 -> 0.1305
bigChanceMissed: 0.1221 -> 0.1108
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.20 (squad xG sum 1.1254, xG scale 1.0672, xA scale 1.0672, team xA 0.82 = 0.68 x lambda)scoreline_reset=true
team_lambda=1.201
squad_xg_sum=1.1254
squad_xa_sum=0.7648
team_expected_assists=0.8162
team_xa_to_xg_ratio=0.6796
expected_goals: 0.1645 -> 0.1756
expected_assists: 0.1506 -> 0.1607
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 80.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.161
goal_rate=0.1305
scorer_weight=0.1478
-
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.1485
assist_rate=0.1176
provider_weight=0.1343
-
Granit XhakaM9000.040.0269%10.57.361.530FBref 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=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.9963
prior_reliability=0.1333
competition=Premier League
wasFouled: 1.6575 -> 1.674
totalShots: 0.651 -> 0.6451
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': 'Wesley Fofana', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.337, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.7898, 'skill_edge': -0.139, 'height_edge': -0.004, 'attacker_skill': 0.5047, 'defender_skill': 0.8135, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Wesley Fofana', 'market_value': 33000000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.8135}], 'xg_override': 0.0334}
aerialWon: 0.7615 -> 1.2
totalShots: 0.6492 -> 0.5127
shotOffTarget: 0.4519 -> 0.3569
onTargetScoringAttempt: 0.1973 -> 0.1558
goals: 0.0487 -> 0.0385
expectedGoalsOnTarget: 0.0433 -> 0.0342
expectedGoals: 0.0423 -> 0.0334
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.20 (squad xG sum 1.1254, xG scale 1.0672, xA scale 1.0672, team xA 0.82 = 0.68 x lambda)scoreline_reset=true
team_lambda=1.201
squad_xg_sum=1.1254
squad_xa_sum=0.7648
team_expected_assists=0.8162
team_xa_to_xg_ratio=0.6796
expected_assists: 0.16 -> 0.1709
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.035
goal_rate=0.0385
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=1
assist_probability=0.1571
assist_rate=0.0916
provider_weight=0.1367
-
Chris RiggM7000.100.02341%10.46.827.434FBref 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.0088, quality 0.669)market_value_eur=24000000
quality_factor=0.6685
boost_factor=1.0088
reference_quality=0.505
history_matches=23
history_shrink=0.1786
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0015)blend_weight=0.0015
history_matches=23
season_overlap_discount=1.0
per90_to_match_factor=0.783
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': 'Moisés Caicedo', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.329, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.8659, 'skill_edge': -0.0872, 'height_edge': -0.004, 'attacker_skill': 0.704, 'defender_skill': 0.8978, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Moisés Caicedo', 'market_value': 104000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8978}], 'xg_override': 0.094}
aerialWon: 0.5704 -> 1.0
totalShots: 1.2769 -> 1.1057
shotOffTarget: 0.837 -> 0.7248
onTargetScoringAttempt: 0.4399 -> 0.3809
expectedGoals: 0.1085 -> 0.094
goals: 0.0965 -> 0.0836
expectedGoalsOnTarget: 0.0883 -> 0.0765
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.20 (squad xG sum 1.1254, xG scale 1.0672, xA scale 1.0672, team xA 0.82 = 0.68 x lambda)scoreline_reset=true
team_lambda=1.201
squad_xg_sum=1.1254
squad_xa_sum=0.7648
team_expected_assists=0.8162
team_xa_to_xg_ratio=0.6796
expected_goals: 0.094 -> 0.1003
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 74.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.0954
goal_rate=0.0836
scorer_weight=0.0931
-
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.067
assist_rate=0.0712
provider_weight=0.0731
-
Dayann MethalieM8700.050.001266%00.16.811.515XGBoost 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.0405, quality 0.694)market_value_eur=27000000
quality_factor=0.6941
boost_factor=1.0405
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=true
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Levi Colwill', 'matchup_zone': 'Right Wing vs Left Back — Flank Battle', 'duel_win_rate': 0.392, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.8707, 'skill_edge': -0.084, 'height_edge': -0.004, 'attacker_skill': 0.6941, 'defender_skill': 0.8807, 'attacker_role': 'RW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Levi Colwill', 'market_value': 55000000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.8807}], 'xg_override': 0.0459}
aerialWon: 0.9561 -> 1.2
totalShots: 0.5176 -> 0.4507
shotOffTarget: 0.3663 -> 0.3189
onTargetScoringAttempt: 0.1513 -> 0.1317
expectedGoals: 0.0527 -> 0.0459
goals: 0.0459 -> 0.04
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.20 (squad xG sum 1.1254, xG scale 1.0672, xA scale 1.0672, team xA 0.82 = 0.68 x lambda)scoreline_reset=true
team_lambda=1.201
squad_xg_sum=1.1254
squad_xa_sum=0.7648
team_expected_assists=0.8162
team_xa_to_xg_ratio=0.6796
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 75.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.0478
goal_rate=0.04
scorer_weight=0.046
-
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.0546
assist_rate=0.071
provider_weight=0.0662
-
Brian BrobbeyF8010.390.2837%21.46.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.0115, quality 0.834)market_value_eur=53000000
quality_factor=0.834
boost_factor=1.0115
reference_quality=0.505
history_matches=38
history_shrink=0.1163
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0071)blend_weight=0.0071
history_matches=38
season_overlap_discount=1.0
per90_to_match_factor=0.8918
prior_reliability=0.0933
competition=Premier League
wasFouled: 1.9355 -> 1.9263
totalOffside: 0.6403 -> 0.6493
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': 'Jorrel Hato, Maxence Lacroix', '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.9336, 'skill_edge': -0.0172, 'height_edge': -0.028, 'attacker_skill': 0.834, 'defender_skill': 0.8722, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Jorrel Hato', 'market_value': 47000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8582}, {'player': 'Maxence Lacroix', 'market_value': 64000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8862}], 'xg_override': 0.3615}
totalShots: 2.4402 -> 2.2782
shotOffTarget: 1.2774 -> 1.1926
onTargetScoringAttempt: 1.1628 -> 1.0856
expectedGoalsOnTarget: 0.4491 -> 0.4193
goals: 0.4331 -> 0.4043
bigChanceMissed: 0.4081 -> 0.381
expectedGoals: 0.3872 -> 0.3615
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.20 (squad xG sum 1.1254, xG scale 1.0672, xA scale 1.0672, team xA 0.82 = 0.68 x lambda)scoreline_reset=true
team_lambda=1.201
squad_xg_sum=1.1254
squad_xa_sum=0.7648
team_expected_assists=0.8162
team_xa_to_xg_ratio=0.6796
expected_goals: 0.3615 -> 0.3857
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=1
goal_probability=0.32
goal_rate=0.4043
scorer_weight=0.4258
-
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.0408
assist_rate=0.0
provider_weight=0.0334
-
Team totals11.20126.9
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Melker EllborgG4.4m10.9%Market-value substitute prior
Trai HumeD14.3m23.3%Market-value substitute prior
Omar AldereteD19.5m60.9%Market-value substitute prior
Habib DiarraM18.7m71.8%Market-value substitute prior
Jules AhokaM22.2m50.7%Market-value substitute prior
Malick FofanaF26.4m60.8%Market-value substitute prior

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Emiliano MartínezG8800.00-n/a0.07.058.828FBref 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=38
history_shrink=0.1163
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0050)blend_weight=0.005
history_matches=38
season_overlap_discount=1.0
per90_to_match_factor=0.9739
prior_reliability=0.0667
competition=Premier League
wasFouled: 0.5351 -> 0.5422
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': 'Brian Brobbey, Enzo Le Fée', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.3881}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.73 (squad xG sum 1.3618, xG scale 1.2726, xA scale 1.5089, team xA 1.13 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.733
squad_xg_sum=1.3618
squad_xa_sum=0.7465
team_expected_assists=1.1265
team_xa_to_xg_ratio=0.65
shots_faced: 13.2 -> 11.4
expected_saves: 3.23 -> 2.79
high_pressure_saves: 1.11 -> 0.96
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 85.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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.8217
-
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.1285
-
Levi ColwillD8900.000.00ok00.16.843.817FBref 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.0314, quality 0.840)market_value_eur=55000000
quality_factor=0.8399
boost_factor=1.0314
reference_quality=0.505
history_matches=11
history_shrink=0.3125
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0244)blend_weight=0.0244
history_matches=11
season_overlap_discount=1.0
per90_to_match_factor=0.9882
prior_reliability=0.12
competition=Premier League
wonTackle: 0.7511 -> 0.7729
fouls: 1.1945 -> 1.1788
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': 'Dayann Methalie', 'matchup_zone': 'Right Wing vs Left Back — Flank Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.73 (squad xG sum 1.3618, xG scale 1.2726, xA scale 1.5089, team xA 1.13 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.733
squad_xg_sum=1.3618
squad_xa_sum=0.7465
team_expected_assists=1.1265
team_xa_to_xg_ratio=0.65
expected_assists: 0.0541 -> 0.0816
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 80.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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.001
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.0784
assist_rate=0.0
provider_weight=0.0653
-
Jorrel HatoD7400.000.0176%00.26.851.135FBref 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.0140, quality 0.813)market_value_eur=47000000
quality_factor=0.8129
boost_factor=1.014
reference_quality=0.505
history_matches=28
history_shrink=0.1515
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0112)blend_weight=0.0112
history_matches=28
season_overlap_discount=1.0
per90_to_match_factor=0.8236
prior_reliability=0.1133
competition=Premier League
wasFouled: 0.1883 -> 0.197
wonTackle: 1.2483 -> 1.2398
fouls: 0.6436 -> 0.6364
interceptionWon: 1.0013 -> 0.9955
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': 'Brian Brobbey', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.73 (squad xG sum 1.3618, xG scale 1.2726, xA scale 1.5089, team xA 1.13 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.733
squad_xg_sum=1.3618
squad_xa_sum=0.7465
team_expected_assists=1.1265
team_xa_to_xg_ratio=0.65
expected_assists: 0.0336 -> 0.0507
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 78.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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0023
goal_rate=0.0
scorer_weight=0.0022
-
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.0494
assist_rate=0.186
provider_weight=0.0634
-
Wesley FofanaD8100.040.02110%10.37.045.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.0100, quality 0.739)market_value_eur=33000000
quality_factor=0.7389
boost_factor=1.01
reference_quality=0.505
history_matches=30
history_shrink=0.1429
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0043)blend_weight=0.0043
history_matches=30
season_overlap_discount=1.0
per90_to_match_factor=0.8954
prior_reliability=0.0467
competition=Premier League
wasFouled: 1.3271 -> 1.3213
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 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.73 (squad xG sum 1.3618, xG scale 1.2726, xA scale 1.5089, team xA 1.13 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.733
squad_xg_sum=1.3618
squad_xa_sum=0.7465
team_expected_assists=1.1265
team_xa_to_xg_ratio=0.65
expected_goals: 0.0335 -> 0.0426
expected_assists: 0.0133 -> 0.0201
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0417
goal_rate=0.0
scorer_weight=0.0341
-
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.0199
assist_rate=0.0
provider_weight=0.0161
-
Maxence LacroixD8800.090.0730%10.66.855.131FBref 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.0111, quality 0.861)market_value_eur=64000000
quality_factor=0.8608
boost_factor=1.0111
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.9804
prior_reliability=0.1333
competition=Premier League
wonTackle: 0.9113 -> 0.9208
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': 'Brian Brobbey', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.73 (squad xG sum 1.3618, xG scale 1.2726, xA scale 1.5089, team xA 1.13 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.733
squad_xg_sum=1.3618
squad_xa_sum=0.7465
team_expected_assists=1.1265
team_xa_to_xg_ratio=0.65
expected_goals: 0.0686 -> 0.0873
expected_assists: 0.0204 -> 0.0308
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0836
goal_rate=0.0138
scorer_weight=0.0698
-
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.0303
assist_rate=0.0625
provider_weight=0.0385
-
Morgan RogersM8800.350.2256%32.37.161.037FBref 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.0115, quality 0.897)market_value_eur=115000000
quality_factor=0.8968
boost_factor=1.0115
reference_quality=0.505
history_matches=46
history_shrink=0.098
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0081)blend_weight=0.0081
history_matches=46
season_overlap_discount=1.0
per90_to_match_factor=0.983
prior_reliability=0.1267
competition=Premier League
totalShots: 2.2659 -> 2.2727
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, Chris Rigg', 'matchup_zone': 'Attacking Mid vs Double Pivot — Tight Space Battle', 'duel_win_rate': 0.349, 'pressing_faced': 'HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 1.1596, 'skill_edge': 0.0606, 'height_edge': 0.048, 'attacker_skill': 0.8977, 'defender_skill': 0.763, 'attacker_role': 'CAM', 'attacker_mv_price_index': 0.95, 'defender_adjusted_parts': [{'player': 'Noah Sadiki', 'market_value': 42000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8221}, {'player': 'Chris Rigg', 'market_value': 24000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.704}], 'xg_override': 0.2718}
totalShots: 2.2727 -> 2.6354
shotOffTarget: 1.4058 -> 1.6302
onTargetScoringAttempt: 0.8574 -> 0.9942
aerialWon: 1.0662 -> 1.2
goals: 0.2564 -> 0.2973
expectedGoals: 0.2344 -> 0.2718
expectedGoalsOnTarget: 0.2125 -> 0.2464
bigChanceMissed: 0.2096 -> 0.2431
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.73 (squad xG sum 1.3618, xG scale 1.2726, xA scale 1.5089, team xA 1.13 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.733
squad_xg_sum=1.3618
squad_xa_sum=0.7465
team_expected_assists=1.1265
team_xa_to_xg_ratio=0.65
expected_goals: 0.2718 -> 0.3459
expected_assists: 0.1388 -> 0.2094
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 84.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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.2924
goal_rate=0.2973
scorer_weight=0.3733
-
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.1889
assist_rate=0.1262
provider_weight=0.1954
-
Cole PalmerM8710.360.34ok32.57.061.735FBref 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.0146, quality 0.894)market_value_eur=101000000
quality_factor=0.8936
boost_factor=1.0146
reference_quality=0.505
history_matches=35
history_shrink=0.125
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0103)blend_weight=0.0103
history_matches=35
season_overlap_discount=1.0
per90_to_match_factor=0.9706
prior_reliability=0.1267
competition=Premier League
totalShots: 2.4641 -> 2.4858
goals: 0.2482 -> 0.2562
onTargetScoringAttempt: 0.8618 -> 0.8686
fouls: 1.1314 -> 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': 'Reinildo Mandava', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.689, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.3078, 'skill_edge': 0.1894, 'height_edge': 0.02, 'attacker_skill': 0.8936, 'defender_skill': 0.4727, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Reinildo Mandava', 'market_value': 4099999, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.4727}], 'xg_override': 0.2864}
aerialWon: 0.3319 -> 1.2
totalShots: 2.4858 -> 3.2509
shotOffTarget: 1.6023 -> 2.0955
onTargetScoringAttempt: 0.8686 -> 1.136
goals: 0.2562 -> 0.3351
expectedGoalsOnTarget: 0.2559 -> 0.3347
expectedGoals: 0.219 -> 0.2864
bigChanceMissed: 0.1256 -> 0.1643
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.73 (squad xG sum 1.3618, xG scale 1.2726, xA scale 1.5089, team xA 1.13 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.733
squad_xg_sum=1.3618
squad_xa_sum=0.7465
team_expected_assists=1.1265
team_xa_to_xg_ratio=0.65
expected_goals: 0.2864 -> 0.3645
expected_assists: 0.1631 -> 0.2462
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 85.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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=1
goal_probability=0.3055
goal_rate=0.3351
scorer_weight=0.4173
-
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.2182
assist_rate=0.1615
provider_weight=0.2444
-
Moisés CaicedoM8600.050.0366%10.67.058.028FBref 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.0136, quality 0.895)market_value_eur=104000000
quality_factor=0.8945
boost_factor=1.0136
reference_quality=0.505
history_matches=38
history_shrink=0.1163
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0010)blend_weight=0.001
history_matches=38
season_overlap_discount=1.0
per90_to_match_factor=0.9553
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': 'Noah Sadiki', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.474, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 1.0795, 'skill_edge': 0.0341, 'height_edge': 0.02, 'attacker_skill': 0.8978, '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.0388}
aerialWon: 0.4661 -> 1.0
totalShots: 0.5108 -> 0.5514
shotOffTarget: 0.3937 -> 0.425
onTargetScoringAttempt: 0.1171 -> 0.1264
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.73 (squad xG sum 1.3618, xG scale 1.2726, xA scale 1.5089, team xA 1.13 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.733
squad_xg_sum=1.3618
squad_xa_sum=0.7465
team_expected_assists=1.1265
team_xa_to_xg_ratio=0.65
expected_goals: 0.0388 -> 0.0494
expected_assists: 0.0359 -> 0.0542
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 86.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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0482
goal_rate=0.0481
scorer_weight=0.0546
-
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.051
provider_weight=0.0637
-
Jordan HendersonM8300.080.02339%10.27.052.225XGBoost 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.9975, quality 0.437)market_value_eur=1300000
quality_factor=0.4374
boost_factor=0.9975
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': 'Nordi Mukiele', 'matchup_zone': 'Right Wing vs Left Back — Flank Battle', 'duel_win_rate': 0.366, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.8329, 'skill_edge': -0.1057, 'height_edge': -0.008, 'attacker_skill': 0.4374, 'defender_skill': 0.6723, 'attacker_role': 'RW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Nordi Mukiele', 'market_value': 17100000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.6723}], 'xg_override': 0.0667}
aerialWon: 0.6958 -> 1.1
totalShots: 0.9953 -> 0.829
shotOffTarget: 0.6619 -> 0.5513
onTargetScoringAttempt: 0.3334 -> 0.2777
goals: 0.103 -> 0.0858
expectedGoals: 0.0801 -> 0.0667
expectedGoalsOnTarget: 0.0772 -> 0.0643
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.73 (squad xG sum 1.3618, xG scale 1.2726, xA scale 1.5089, team xA 1.13 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.733
squad_xg_sum=1.3618
squad_xa_sum=0.7465
team_expected_assists=1.1265
team_xa_to_xg_ratio=0.65
expected_goals: 0.0667 -> 0.0849
expected_assists: 0.1205 -> 0.1818
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0814
goal_rate=0.0858
scorer_weight=0.0988
-
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.1662
assist_rate=0.1012
provider_weight=0.1612
-
Roméo LaviaM7200.060.0450%10.26.840.224FBref 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.660)market_value_eur=23000000
quality_factor=0.6595
boost_factor=1.0097
reference_quality=0.505
history_matches=19
history_shrink=0.2083
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0135)blend_weight=0.0135
history_matches=19
season_overlap_discount=1.0
per90_to_match_factor=0.7976
prior_reliability=0.1
competition=Premier League
onTargetScoringAttempt: 0.14 -> 0.1529
interceptionWon: 1.7743 -> 1.7647
totalShots: 0.5631 -> 0.5703
goals: 0.058 -> 0.0644
fouls: 0.9228 -> 0.9175
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.395, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9627, 'skill_edge': -0.0573, 'height_edge': 0.032, 'attacker_skill': 0.6946, '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.047}
aerialWon: 0.2299 -> 1.1
totalShots: 0.576 -> 0.5545
shotOffTarget: 0.4231 -> 0.4073
onTargetScoringAttempt: 0.1529 -> 0.1472
expectedGoalsOnTarget: 0.1518 -> 0.1461
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.73 (squad xG sum 1.3618, xG scale 1.2726, xA scale 1.5089, team xA 1.13 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.733
squad_xg_sum=1.3618
squad_xa_sum=0.7465
team_expected_assists=1.1265
team_xa_to_xg_ratio=0.65
expected_goals: 0.047 -> 0.0598
expected_assists: 0.0388 -> 0.0585
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.058
goal_rate=0.062
scorer_weight=0.069
-
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.0568
assist_rate=0.0555
provider_weight=0.0695
-
João PedroF8510.560.4331%32.17.160.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.0126, quality 0.890)market_value_eur=92000000
quality_factor=0.89
boost_factor=1.0126
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.9492
prior_reliability=0.1333
competition=Premier League
totalShots: 2.6388 -> 2.6542
goalAssist: 0.2805 -> 0.2868
goals: 0.3926 -> 0.3978
totalCross: 0.5376 -> 0.5325
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, Daniel Ballard', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.266, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 1.0968, 'skill_edge': 0.0759, 'height_edge': -0.01, 'attacker_skill': 0.89, 'defender_skill': 0.7214, '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': 'Daniel Ballard', 'market_value': 27000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7581}], 'xg_override': 0.4394}
totalShots: 2.6542 -> 2.9111
shotOffTarget: 1.5459 -> 1.6955
onTargetScoringAttempt: 1.0959 -> 1.202
expectedGoalsOnTarget: 0.5532 -> 0.6067
bigChanceMissed: 0.4122 -> 0.4521
expectedGoals: 0.4006 -> 0.4394
goals: 0.3978 -> 0.4363
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.73 (squad xG sum 1.3618, xG scale 1.2726, xA scale 1.5089, team xA 1.13 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.733
squad_xg_sum=1.3618
squad_xa_sum=0.7465
team_expected_assists=1.1265
team_xa_to_xg_ratio=0.65
expected_goals: 0.4394 -> 0.5592
expected_assists: 0.0612 -> 0.0923
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=1
goal_probability=0.4283
goal_rate=0.4363
scorer_weight=0.5557
-
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.0882
assist_rate=0.2868
provider_weight=0.1154
-
Team totals21.73157.0
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Mike PendersG5.3m15.0%Market-value substitute prior
Reece JamesD19.5m44.4%Market-value substitute prior
Malo GustoD14.8m24.3%Market-value substitute prior
Marco PalestraM23.5m56.6%Market-value substitute prior
Valentín BarcoM15.5m72.1%Market-value substitute prior
EstêvãoF27.1m63.9%Market-value substitute prior
Antagonist / tactical summary
Midfield is evenly contested — Noah Sadiki vs Morgan Rogers will be the pivotal duel. Total antagonist xG — Home: 0.76, Away: 1.15. 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 49.3% / 50.7%, dominance ratio 0.47, key duel: Noah Sadiki vs Morgan Rogers
Granit Xhaka xG 0.03Dayann Methalie xG 0.05Enzo Le Fée xG 0.16Cole Palmer xG 0.29Jordan Henderson xG 0.07Morgan Rogers xG 0.27

Summary

Antagonist matchup analysis for Sunderland vs Chelsea. Most likely scoreline: 1-2. Lambdas derived from 6 home and 6 away individual player duels. Head-to-head: Sunderland 5W-1D-4L vs Chelsea over 10 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 — Noah Sadiki vs Morgan Rogers will be the pivotal duel. Total antagonist xG — Home: 0.76, Away: 1.15. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.

Villarreal vs Getafe

LaLiga · 20261108 · 4-4-2 vs 5-4-1
Predicted 2-0Winner: VillarrealWinning H 2-0 (11.6%)Winning A 0-1 (4.2%)Confidence 0.73λ home/away 2.14 / 0.84Most-likely P 11.6%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset Tracing
Antagonist + XGBoost match analysis for Villarreal vs Getafe. Player statistics regressed using position-specific XGBoost models (G, D, M, F) with 2026-2027 FBref priors. Micro-duels resolved across 4-4-2 vs 5-4-1 (duel lambdas: Home 1.604, Away 0.740). Final calibrated Poisson lambdas: Home 2.143, Away 0.840 (most likely score 2-0).
Home Starters 11/11 XGBoost (8 FBref) Away Starters 11/11 XGBoost (11 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.60 / 0.74 Final λ (H/A) 2.14 / 0.84
FBref Team Priors: Villarreal (Gls/90: 1.3333333333333333, GA/90: 1.33 → E[λ]: 0.326) vs Getafe (Gls/90: 0.3333333333333333, GA/90: 0.33 → E[λ]: 0.328) | 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

MetricVillarrealGetafe
League position8.0018.00
Points per game1.191.08
Attack index1.000.70
Defense (concede) index1.001.00
Form multiplier1.010.99
Standing λ multiplier1.000.87

Lambda decomposition (how the goal rates were built)

StageVillarreal λGetafe λ
FBref Squad Prior E[λ] (weight 0.228)0.3260.328
Pre-mismatch1.8150.698
Pre-calibration (Micro-duels)1.6040.740
Final λ2.1430.840
competition calibration scale 1.187competition observed total goals 2.984quality gap applied Truemismatch score pressure applied Truecompetitive underdog floor applied Falsestage discount 1.0

Scoreline distribution & markets

Top 5 scorelinesP
2-011.6%
1-010.8%
2-19.8%
1-19.2%
3-08.3%
Home win67.3%
Draw19.3%
Away win13.5%
Over 2.557.3%
BTTS yes50.2%
Pregame fair line — favorite Villarreal (67.3%), fair total 2.98, fair spread 1.30

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.

Villarreal — projected line vs season baseline (4-4-2)

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Luiz JúniorG9000.00-n/a0.07.036.535XGBoost 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 1.0018, quality 0.550)market_value_eur=12400000
quality_factor=0.5502
boost_factor=1.0018
reference_quality=0.505
history_matches=32
history_shrink=0.1351
-
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': 'Martín Satriano, Ramón Terrats', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 0.7396}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.14 (squad xG sum 1.0517, xG scale 2.0376, xA scale 1.7540, team xA 1.71 = 0.80 x lambda)scoreline_reset=true
team_lambda=2.143
squad_xg_sum=1.0517
squad_xa_sum=0.9774
team_expected_assists=1.7144
team_xa_to_xg_ratio=0.8
shots_faced: 7.0 -> 8.0
expected_saves: 1.71 -> 1.96
high_pressure_saves: 0.59 -> 0.67
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=2.3628
-
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=1.701
-
Renato VeigaD9000.030.01200%10.27.158.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.0065, quality 0.710)market_value_eur=29000000
quality_factor=0.71
boost_factor=1.0065
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.9988
prior_reliability=0.2
competition=La Liga
wonTackle: 0.6117 -> 0.6032
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': 'Martín Satriano', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.14 (squad xG sum 1.0517, xG scale 2.0376, xA scale 1.7540, team xA 1.71 = 0.80 x lambda)scoreline_reset=true
team_lambda=2.143
squad_xg_sum=1.0517
squad_xa_sum=0.9774
team_expected_assists=1.7144
team_xa_to_xg_ratio=0.8
expected_goals: 0.0135 -> 0.0275
expected_assists: 0.0994 -> 0.1743
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0271
goal_rate=0.0
scorer_weight=0.022
-
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.16
assist_rate=0.0662
provider_weight=0.1394
-
Juan FoythD7800.070.02176%10.37.053.913FBref 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.0001, quality 0.506)market_value_eur=8600000
quality_factor=0.5059
boost_factor=1.0001
reference_quality=0.505
history_matches=19
history_shrink=0.2083
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0271)blend_weight=0.0271
history_matches=19
season_overlap_discount=1.0
per90_to_match_factor=0.8703
prior_reliability=0.2
competition=La Liga
interceptionWon: 1.1421 -> 1.1662
totalShots: 0.5069 -> 0.5245
wonTackle: 0.9478 -> 0.9614
fouls: 0.6301 -> 0.6209
onTargetScoringAttempt: 0.0973 -> 0.1024
wasFouled: 0.3964 -> 0.4014
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': 'Francho Serrano', 'matchup_zone': 'Right Mid vs Left Back — Wide Channel'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.14 (squad xG sum 1.0517, xG scale 2.0376, xA scale 1.7540, team xA 1.71 = 0.80 x lambda)scoreline_reset=true
team_lambda=2.143
squad_xg_sum=1.0517
squad_xa_sum=0.9774
team_expected_assists=1.7144
team_xa_to_xg_ratio=0.8
expected_goals: 0.0334 -> 0.0681
expected_assists: 0.0391 -> 0.0686
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0658
goal_rate=0.0
scorer_weight=0.0545
-
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.0663
assist_rate=0.0
provider_weight=0.0549
-
Pau NavarroD8500.010.00319%00.06.844.335FBref 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.0031, quality 0.575)market_value_eur=14600000
quality_factor=0.5748
boost_factor=1.0031
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': 'Martín Satriano', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.14 (squad xG sum 1.0517, xG scale 2.0376, xA scale 1.7540, team xA 1.71 = 0.80 x lambda)scoreline_reset=true
team_lambda=2.143
squad_xg_sum=1.0517
squad_xa_sum=0.9774
team_expected_assists=1.7144
team_xa_to_xg_ratio=0.8
expected_assists: 0.0079 -> 0.0139
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 74.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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0061
goal_rate=0.0
scorer_weight=0.0058
-
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.0138
assist_rate=0.0
provider_weight=0.012
-
Sergi CardonaD8200.070.01406%10.46.848.335FBref 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.0000, quality 0.506)market_value_eur=8600000
quality_factor=0.5059
boost_factor=1.0
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=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Ramón Terrats', 'matchup_zone': 'Left Mid vs Right Back — Wide Channel'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.14 (squad xG sum 1.0517, xG scale 2.0376, xA scale 1.7540, team xA 1.71 = 0.80 x lambda)scoreline_reset=true
team_lambda=2.143
squad_xg_sum=1.0517
squad_xa_sum=0.9774
team_expected_assists=1.7144
team_xa_to_xg_ratio=0.8
expected_goals: 0.0367 -> 0.0748
expected_assists: 0.1071 -> 0.1879
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 79.0)match_squad_rank=12
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0721
goal_rate=0.0405
scorer_weight=0.0781
-
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.1713
assist_rate=0.0081
provider_weight=0.1503
-
Tajon BuchananM7410.380.09330%21.16.958.434FBref 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.0016, quality 0.557)market_value_eur=13000000
quality_factor=0.557
boost_factor=1.0016
reference_quality=0.505
history_matches=43
history_shrink=0.1042
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0063)blend_weight=0.0063
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=0.8183
prior_reliability=0.0933
competition=La Liga
totalCross: 2.7078 -> 2.7239
wasFouled: 1.6067 -> 1.6187
fouls: 0.9082 -> 0.9135
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': 'Djené', 'matchup_zone': 'LM vs CB', 'duel_win_rate': 0.501, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.1191, 'skill_edge': 0.061, 'height_edge': 0.02, 'attacker_skill': 0.5731, 'defender_skill': 0.4374, 'attacker_role': 'LM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Djené', 'market_value': 1500000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.1852}
aerialWon: 0.5398 -> 1.1
totalShots: 2.0298 -> 2.2715
shotOffTarget: 1.3395 -> 1.499
onTargetScoringAttempt: 0.6903 -> 0.7725
goals: 0.1989 -> 0.2226
expectedGoals: 0.1655 -> 0.1852
bigChanceMissed: 0.1241 -> 0.1389
expectedGoalsOnTarget: 0.0834 -> 0.0933
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.14 (squad xG sum 1.0517, xG scale 2.0376, xA scale 1.7540, team xA 1.71 = 0.80 x lambda)scoreline_reset=true
team_lambda=2.143
squad_xg_sum=1.0517
squad_xa_sum=0.9774
team_expected_assists=1.7144
team_xa_to_xg_ratio=0.8
expected_goals: 0.1852 -> 0.3774
expected_assists: 0.1523 -> 0.2671
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=1
goal_probability=0.3144
goal_rate=0.2226
scorer_weight=0.4374
-
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.2344
assist_rate=0.1231
provider_weight=0.2286
-
Santi ComesañaM7300.110.0759%10.46.963.231FBref 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.503)market_value_eur=8400000
quality_factor=0.5035
boost_factor=1.0
reference_quality=0.505
history_matches=44
history_shrink=0.102
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0097)blend_weight=0.0097
history_matches=44
season_overlap_discount=1.0
per90_to_match_factor=0.8117
prior_reliability=0.1467
competition=La Liga
wasFouled: 1.2021 -> 1.194
wonTackle: 0.6616 -> 0.6695
totalShots: 0.6804 -> 0.6738
totalCross: 0.5438 -> 0.5385
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': 'Djené', 'matchup_zone': 'RM vs CB', 'duel_win_rate': 0.491, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.104, 'skill_edge': 0.0347, 'height_edge': 0.036, 'attacker_skill': 0.5146, 'defender_skill': 0.4374, 'attacker_role': 'RM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Djené', 'market_value': 1500000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.0562}
aerialWon: 0.4888 -> 1.2
totalShots: 0.6787 -> 0.7493
shotOffTarget: 0.51 -> 0.563
onTargetScoringAttempt: 0.1687 -> 0.1862
bigChanceMissed: 0.1141 -> 0.126
expectedGoalsOnTarget: 0.0741 -> 0.0818
goals: 0.052 -> 0.0574
expectedGoals: 0.0509 -> 0.0562
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.14 (squad xG sum 1.0517, xG scale 2.0376, xA scale 1.7540, team xA 1.71 = 0.80 x lambda)scoreline_reset=true
team_lambda=2.143
squad_xg_sum=1.0517
squad_xa_sum=0.9774
team_expected_assists=1.7144
team_xa_to_xg_ratio=0.8
expected_goals: 0.0562 -> 0.1145
expected_assists: 0.0782 -> 0.1372
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.1082
goal_rate=0.0574
scorer_weight=0.1158
-
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.1282
assist_rate=0.0654
provider_weight=0.1235
-
Pape GueyeM7900.400.15171%31.47.162.231FBref 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.0090, quality 0.775)market_value_eur=39000000
quality_factor=0.7754
boost_factor=1.009
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=0.8823
prior_reliability=0.2
competition=La Liga
totalShots: 1.7229 -> 1.7108
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': 'Mario Martín', 'matchup_zone': 'Central Mid vs Central Mid — Box-to-Box Midfield Contest', 'duel_win_rate': 0.574, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.226, 'skill_edge': 0.1138, 'height_edge': 0.04, 'attacker_skill': 0.7972, 'defender_skill': 0.5444, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Mario Martín', 'market_value': 10700000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.5444}], 'xg_override': 0.197}
aerialWon: 0.3346 -> 1.2
totalShots: 1.7201 -> 2.1089
shotOffTarget: 1.2406 -> 1.521
onTargetScoringAttempt: 0.4795 -> 0.5879
expectedGoals: 0.1607 -> 0.197
goals: 0.1556 -> 0.1908
expectedGoalsOnTarget: 0.0716 -> 0.0878
bigChanceMissed: 0.0471 -> 0.0577
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.14 (squad xG sum 1.0517, xG scale 2.0376, xA scale 1.7540, team xA 1.71 = 0.80 x lambda)scoreline_reset=true
team_lambda=2.143
squad_xg_sum=1.0517
squad_xa_sum=0.9774
team_expected_assists=1.7144
team_xa_to_xg_ratio=0.8
expected_goals: 0.197 -> 0.4014
expected_assists: 0.1078 -> 0.1891
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 80.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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.3306
goal_rate=0.1908
scorer_weight=0.3913
-
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.1723
assist_rate=0.0916
provider_weight=0.1697
-
Carlos MaciáM8400.100.011250%10.16.932.219FBref 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.0061, quality 0.574)market_value_eur=14500000
quality_factor=0.5737
boost_factor=1.0061
reference_quality=0.505
history_matches=12
history_shrink=0.2941
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0064)blend_weight=0.0064
history_matches=12
season_overlap_discount=1.0
per90_to_match_factor=0.9373
prior_reliability=0.0333
competition=La Liga
wonTackle: 2.2948 -> 2.316
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': 'Mario Martín', 'matchup_zone': 'Central Mid vs Central Mid — Box-to-Box Midfield Contest', 'duel_win_rate': 0.501, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.1191, 'skill_edge': 0.021, 'height_edge': 0.06, 'attacker_skill': 0.5912, 'defender_skill': 0.5444, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Mario Martín', 'market_value': 10700000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.5444}], 'xg_override': 0.0496}
aerialWon: 1.056 -> 1.4
totalShots: 0.5626 -> 0.6296
shotOffTarget: 0.4307 -> 0.482
onTargetScoringAttempt: 0.1319 -> 0.1476
goals: 0.0555 -> 0.0621
expectedGoals: 0.0443 -> 0.0496
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.14 (squad xG sum 1.0517, xG scale 2.0376, xA scale 1.7540, team xA 1.71 = 0.80 x lambda)scoreline_reset=true
team_lambda=2.143
squad_xg_sum=1.0517
squad_xa_sum=0.9774
team_expected_assists=1.7144
team_xa_to_xg_ratio=0.8
expected_goals: 0.0496 -> 0.1011
expected_assists: 0.034 -> 0.0596
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 65.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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0962
goal_rate=0.0621
scorer_weight=0.1138
-
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.0579
assist_rate=0.0499
provider_weight=0.0709
-
Ilias AkhomachF7200.230.07238%21.17.054.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.0013, quality 0.535)market_value_eur=11100000
quality_factor=0.5353
boost_factor=1.0013
reference_quality=0.505
history_matches=29
history_shrink=0.1471
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0032)blend_weight=0.0032
history_matches=29
season_overlap_discount=1.0
per90_to_match_factor=0.7984
prior_reliability=0.0333
competition=La Liga
totalCross: 3.4019 -> 3.4317
totalShots: 1.77 -> 1.7644
wasFouled: 1.5983 -> 1.6034
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': 'Djené, Nemanja Gudelj', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.214, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.0206, 'skill_edge': 0.044, 'height_edge': -0.03, 'attacker_skill': 0.5353, 'defender_skill': 0.4374, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Djené', 'market_value': 1500000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'Nemanja Gudelj', 'market_value': 1900000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.1125}
totalShots: 1.7682 -> 1.8046
shotOffTarget: 1.206 -> 1.2308
onTargetScoringAttempt: 0.5622 -> 0.5738
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.14 (squad xG sum 1.0517, xG scale 2.0376, xA scale 1.7540, team xA 1.71 = 0.80 x lambda)scoreline_reset=true
team_lambda=2.143
squad_xg_sum=1.0517
squad_xa_sum=0.9774
team_expected_assists=1.7144
team_xa_to_xg_ratio=0.8
expected_goals: 0.1125 -> 0.2292
expected_assists: 0.1352 -> 0.2371
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.2048
goal_rate=0.1578
scorer_weight=0.2865
-
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.2111
assist_rate=0.1895
provider_weight=0.2964
-
Alberto MoleiroF7710.600.16279%31.17.161.845FBref 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.0094, quality 0.837)market_value_eur=54000000
quality_factor=0.837
boost_factor=1.0094
reference_quality=0.505
history_matches=48
history_shrink=0.0943
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0065)blend_weight=0.0065
history_matches=48
season_overlap_discount=1.0
per90_to_match_factor=0.8587
prior_reliability=0.1067
competition=La Liga
totalShots: 2.1428 -> 2.1288
wonTackle: 0.5379 -> 0.5449
onTargetScoringAttempt: 0.9432 -> 0.937
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': 'Djené, Nemanja Gudelj', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.338, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.2026, 'skill_edge': 0.1798, 'height_edge': -0.042, 'attacker_skill': 0.837, 'defender_skill': 0.4374, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Djené', 'market_value': 1500000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'Nemanja Gudelj', 'market_value': 1900000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.2922}
totalShots: 2.1366 -> 2.5695
shotOffTarget: 1.1996 -> 1.4426
onTargetScoringAttempt: 0.937 -> 1.1268
bigChanceMissed: 0.4984 -> 0.5994
expectedGoalsOnTarget: 0.3206 -> 0.3856
goals: 0.2865 -> 0.3445
expectedGoals: 0.243 -> 0.2922
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.14 (squad xG sum 1.0517, xG scale 2.0376, xA scale 1.7540, team xA 1.71 = 0.80 x lambda)scoreline_reset=true
team_lambda=2.143
squad_xg_sum=1.0517
squad_xa_sum=0.9774
team_expected_assists=1.7144
team_xa_to_xg_ratio=0.8
expected_goals: 0.2922 -> 0.5953
expected_assists: 0.183 -> 0.321
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_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=1
goal_probability=0.4486
goal_rate=0.3445
scorer_weight=0.6863
-
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.2746
assist_rate=0.2791
provider_weight=0.4012
-
Team totals22.14167.0
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Péter GulácsiG4.4m10.9%Market-value substitute prior
Carlos RomeroD14.5m23.6%Market-value substitute prior
Santiago MouriñoD14.3m23.2%Market-value substitute prior
Nathan-Dylan SalibaM22.5m52.2%Market-value substitute prior
Alassane DiattaM22.1m50.3%Market-value substitute prior
Georges MikautadzeF26.7m36.3%Market-value substitute prior

Getafe — projected line vs season baseline (5-4-1)

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
David SoriaG8400.00-n/a0.06.966.034FBref 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.9981, quality 0.437)market_value_eur=2700000
quality_factor=0.4374
boost_factor=0.9981
reference_quality=0.505
history_matches=48
history_shrink=0.0943
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0123)blend_weight=0.0123
history_matches=48
season_overlap_discount=1.0
per90_to_match_factor=0.9328
prior_reliability=0.2
competition=La Liga
saves: 2.9518 -> 2.9461
wasFouled: 0.2123 -> 0.2173
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': 'Alberto Moleiro, Pape Gueye', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.6044}
-
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.84 (squad xG sum 0.7867, xG scale 1.0678, xA scale 1.0678, team xA 0.60 = 0.71 x lambda)scoreline_reset=true
team_lambda=0.84
squad_xg_sum=0.7867
squad_xa_sum=0.5598
team_expected_assists=0.5978
team_xa_to_xg_ratio=0.7116
shots_faced: 15.2 -> 20.4
expected_saves: 3.72 -> 5.0
high_pressure_saves: 1.28 -> 1.71
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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=0.8513
-
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.6041
-
Zaid RomeroD8000.020.0437%10.56.863.424FBref 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.460)market_value_eur=4800000
quality_factor=0.4597
boost_factor=0.9975
reference_quality=0.505
history_matches=22
history_shrink=0.1852
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0241)blend_weight=0.0241
history_matches=22
season_overlap_discount=1.0
per90_to_match_factor=0.8944
prior_reliability=0.2
competition=La Liga
totalCross: 0.3339 -> 0.3546
totalShots: 0.5349 -> 0.522
fouls: 0.7487 -> 0.7379
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': 'Ilias Akhomach', '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.84 (squad xG sum 0.7867, xG scale 1.0678, xA scale 1.0678, team xA 0.60 = 0.71 x lambda)scoreline_reset=true
team_lambda=0.84
squad_xg_sum=0.7867
squad_xa_sum=0.5598
team_expected_assists=0.5978
team_xa_to_xg_ratio=0.7116
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 77.0)match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0246
goal_rate=0.0361
scorer_weight=0.0292
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0112
assist_rate=0.0
provider_weight=0.0093
-
DjenéD7500.00-n/a00.06.658.129FBref 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.437)market_value_eur=1500000
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.0131)blend_weight=0.0131
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=0.8328
prior_reliability=0.1933
competition=La Liga
fouls: 0.9704 -> 0.9765
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': 'Tajon Buchanan', 'matchup_zone': 'LM 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.84 (squad xG sum 0.7867, xG scale 1.0678, xA scale 1.0678, team xA 0.60 = 0.71 x lambda)scoreline_reset=true
team_lambda=0.84
squad_xg_sum=0.7867
squad_xa_sum=0.5598
team_expected_assists=0.5978
team_xa_to_xg_ratio=0.7116
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 17 by projected rating, fifa_overall 79.0)match_squad_rank=17
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.0003
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.01
assist_rate=0.0
provider_weight=0.0085
-
Kiko FemeníaD6200.020.02ok00.26.556.125FBref 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.9974, quality 0.437)market_value_eur=525000
quality_factor=0.4374
boost_factor=0.9974
reference_quality=0.505
history_matches=34
history_shrink=0.1282
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0083)blend_weight=0.0083
history_matches=34
season_overlap_discount=1.0
per90_to_match_factor=0.689
prior_reliability=0.1
competition=La Liga
interceptionWon: 0.7846 -> 0.7781
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': 'Alberto Moleiro', '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.84 (squad xG sum 0.7867, xG scale 1.0678, xA scale 1.0678, team xA 0.60 = 0.71 x lambda)scoreline_reset=true
team_lambda=0.84
squad_xg_sum=0.7867
squad_xa_sum=0.5598
team_expected_assists=0.5978
team_xa_to_xg_ratio=0.7116
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 18 by projected rating, fifa_overall 74.0)match_squad_rank=18
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0189
goal_rate=0.0266
scorer_weight=0.0215
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0532
assist_rate=0.0036
provider_weight=0.0438
-
Johan MojicaD8000.020.0144%10.46.759.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 0.9979, quality 0.437)market_value_eur=1400000
quality_factor=0.4374
boost_factor=0.9979
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.8896
prior_reliability=0.1333
competition=La Liga
totalCross: 6.4211 -> 6.443
wasFouled: 1.174 -> 1.1872
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': 'Alberto Moleiro', '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.84 (squad xG sum 0.7867, xG scale 1.0678, xA scale 1.0678, team xA 0.60 = 0.71 x lambda)scoreline_reset=true
team_lambda=0.84
squad_xg_sum=0.7867
squad_xa_sum=0.5598
team_expected_assists=0.5978
team_xa_to_xg_ratio=0.7116
expected_assists: 0.0925 -> 0.0988
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.0212
goal_rate=0.0
scorer_weight=0.0171
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0941
assist_rate=0.0315
provider_weight=0.079
-
Nemanja GudeljD8100.040.0340%10.86.756.342FBref 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.9978, quality 0.437)market_value_eur=1900000
quality_factor=0.4374
boost_factor=0.9978
reference_quality=0.505
history_matches=42
history_shrink=0.1064
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0009)blend_weight=0.0009
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.9048
prior_reliability=0.0133
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': 'Ilias Akhomach', '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.84 (squad xG sum 0.7867, xG scale 1.0678, xA scale 1.0678, team xA 0.60 = 0.71 x lambda)scoreline_reset=true
team_lambda=0.84
squad_xg_sum=0.7867
squad_xa_sum=0.5598
team_expected_assists=0.5978
team_xa_to_xg_ratio=0.7116
-
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_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0406
goal_rate=0.027
scorer_weight=0.0359
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0231
assist_rate=0.0
provider_weight=0.0187
-
Mario MartínM7200.080.08ok10.76.759.928FBref 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.531)market_value_eur=10700000
quality_factor=0.5306
boost_factor=1.0008
reference_quality=0.505
history_matches=42
history_shrink=0.1064
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0032)blend_weight=0.0032
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.804
prior_reliability=0.0467
competition=La Liga
wasFouled: 1.2657 -> 1.2764
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': 'Pape Gueye', 'matchup_zone': 'Central Mid vs Central Mid — Box-to-Box Midfield Contest', 'duel_win_rate': 0.266, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.774, 'skill_edge': -0.1138, 'height_edge': -0.04, 'attacker_skill': 0.5444, 'defender_skill': 0.7972, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Pape Gueye', 'market_value': 39000000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.7972}], 'xg_override': 0.0774}
aerialWon: 1.4382 -> 1.0
totalShots: 1.1238 -> 0.8698
shotOffTarget: 0.735 -> 0.5689
onTargetScoringAttempt: 0.3888 -> 0.3009
bigChanceMissed: 0.1342 -> 0.1039
expectedGoals: 0.1 -> 0.0774
goals: 0.0896 -> 0.0694
expectedGoalsOnTarget: 0.0249 -> 0.0193
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.84 (squad xG sum 0.7867, xG scale 1.0678, xA scale 1.0678, team xA 0.60 = 0.71 x lambda)scoreline_reset=true
team_lambda=0.84
squad_xg_sum=0.7867
squad_xa_sum=0.5598
team_expected_assists=0.5978
team_xa_to_xg_ratio=0.7116
expected_goals: 0.0774 -> 0.0826
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 74.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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0793
goal_rate=0.0694
scorer_weight=0.0774
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0487
assist_rate=0.0645
provider_weight=0.0591
-
Ramón TerratsM7100.150.07103%11.06.859.232FBref 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.440)market_value_eur=3200000
quality_factor=0.4399
boost_factor=0.9977
reference_quality=0.505
history_matches=38
history_shrink=0.1163
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0151)blend_weight=0.0151
history_matches=38
season_overlap_discount=1.0
per90_to_match_factor=0.7922
prior_reliability=0.2
competition=La Liga
totalCross: 1.4756 -> 1.5052
totalShots: 1.6682 -> 1.6831
wasFouled: 2.0806 -> 2.0891
fouls: 0.8907 -> 0.8972
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': 'Sergi Cardona', 'matchup_zone': 'Left Mid vs Right Back — Wide Channel', 'duel_win_rate': 0.385, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.8897, 'skill_edge': -0.0471, 'height_edge': -0.028, 'attacker_skill': 0.4443, 'defender_skill': 0.5489, 'attacker_role': 'LM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Sergi Cardona', 'market_value': 8600000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.5489}], 'xg_override': 0.1394}
aerialWon: 0.7146 -> 1.0
totalShots: 1.6831 -> 1.4975
shotOffTarget: 1.1314 -> 1.0066
onTargetScoringAttempt: 0.5367 -> 0.4775
bigChanceMissed: 0.1694 -> 0.1507
expectedGoals: 0.1567 -> 0.1394
goals: 0.1482 -> 0.1319
expectedGoalsOnTarget: 0.141 -> 0.1254
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.84 (squad xG sum 0.7867, xG scale 1.0678, xA scale 1.0678, team xA 0.60 = 0.71 x lambda)scoreline_reset=true
team_lambda=0.84
squad_xg_sum=0.7867
squad_xa_sum=0.5598
team_expected_assists=0.5978
team_xa_to_xg_ratio=0.7116
expected_goals: 0.1394 -> 0.1488
expected_assists: 0.1046 -> 0.1116
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 82.0)match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.1383
goal_rate=0.1319
scorer_weight=0.1429
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.1056
assist_rate=0.1106
provider_weight=0.1159
-
Francho SerranoM7900.060.01395%10.36.844.712FBref 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.9923, quality 0.439)market_value_eur=3100000
quality_factor=0.4387
boost_factor=0.9923
reference_quality=0.505
history_matches=8
history_shrink=0.3846
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0300)blend_weight=0.03
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=0.8789
prior_reliability=0.12
competition=La Liga
totalCross: 1.3016 -> 1.3358
totalShots: 0.8835 -> 0.857
interceptionWon: 0.6562 -> 0.6805
wonTackle: 0.1061 -> 0.1176
onTargetScoringAttempt: 0.2622 -> 0.2543
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 Foyth', 'matchup_zone': 'Right Mid vs Left Back — Wide Channel', 'duel_win_rate': 0.372, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.8711, 'skill_edge': -0.0477, 'height_edge': -0.04, 'attacker_skill': 0.4429, 'defender_skill': 0.5489, 'attacker_role': 'RM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Juan Foyth', 'market_value': 8600000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.5489}], 'xg_override': 0.0524}
aerialWon: 0.1727 -> 1.0
totalShots: 0.8756 -> 0.7627
shotOffTarget: 0.6213 -> 0.5412
onTargetScoringAttempt: 0.2543 -> 0.2215
goals: 0.0641 -> 0.0558
expectedGoals: 0.0602 -> 0.0524
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.84 (squad xG sum 0.7867, xG scale 1.0678, xA scale 1.0678, team xA 0.60 = 0.71 x lambda)scoreline_reset=true
team_lambda=0.84
squad_xg_sum=0.7867
squad_xa_sum=0.5598
team_expected_assists=0.5978
team_xa_to_xg_ratio=0.7116
-
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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0545
goal_rate=0.0558
scorer_weight=0.0579
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0732
assist_rate=0.0712
provider_weight=0.076
-
Orel MangalaM8700.040.02124%10.36.846.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 1.0001, quality 0.506)market_value_eur=8600000
quality_factor=0.5059
boost_factor=1.0001
reference_quality=0.505
history_matches=7
history_shrink=0.4167
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0542)blend_weight=0.0542
history_matches=7
season_overlap_discount=1.0
per90_to_match_factor=0.9683
prior_reliability=0.2
competition=La Liga
interceptionWon: 2.4551 -> 2.4095
wasFouled: 0.9361 -> 0.9728
totalCross: 0.4455 -> 0.4214
wonTackle: 0.2326 -> 0.255
totalShots: 0.6792 -> 0.6949
onTargetScoringAttempt: 0.18 -> 0.1702
fouls: 2.091 -> 2.1001
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': 'Pape Gueye', 'matchup_zone': 'Central Mid vs Central Mid — Box-to-Box Midfield Contest', 'duel_win_rate': 0.258, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.7619, 'skill_edge': -0.126, 'height_edge': -0.036, 'attacker_skill': 0.5172, 'defender_skill': 0.7972, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Pape Gueye', 'market_value': 39000000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.7972}], 'xg_override': 0.0347}
aerialWon: 0.3877 -> 1.0
totalShots: 0.6949 -> 0.5294
shotOffTarget: 0.4992 -> 0.3803
onTargetScoringAttempt: 0.1702 -> 0.1297
expectedGoals: 0.0456 -> 0.0347
goals: 0.044 -> 0.0335
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.84 (squad xG sum 0.7867, xG scale 1.0678, xA scale 1.0678, team xA 0.60 = 0.71 x lambda)scoreline_reset=true
team_lambda=0.84
squad_xg_sum=0.7867
squad_xa_sum=0.5598
team_expected_assists=0.5978
team_xa_to_xg_ratio=0.7116
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 75.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.0364
goal_rate=0.0335
scorer_weight=0.0366
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0445
assist_rate=0.0585
provider_weight=0.0533
-
Martín SatrianoF7700.200.16ok21.76.861.834FBref 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.0011, quality 0.529)market_value_eur=10600000
quality_factor=0.5295
boost_factor=1.0011
reference_quality=0.505
history_matches=28
history_shrink=0.1515
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0177)blend_weight=0.0177
history_matches=28
season_overlap_discount=1.0
per90_to_match_factor=0.8584
prior_reliability=0.18
competition=La Liga
wasFouled: 1.9834 -> 1.9933
interceptionWon: 0.5072 -> 0.4982
onTargetScoringAttempt: 0.6281 -> 0.6226
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': 'Renato Veiga, Pau Navarro', '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.8845, 'skill_edge': -0.0766, 'height_edge': -0.002, 'attacker_skill': 0.5295, 'defender_skill': 0.6997, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Renato Veiga', 'market_value': 29000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7736}, {'player': 'Pau Navarro', 'market_value': 14600000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6258}], 'xg_override': 0.1888}
totalShots: 1.869 -> 1.6531
shotOffTarget: 1.2405 -> 1.0972
onTargetScoringAttempt: 0.6226 -> 0.5507
expectedGoalsOnTarget: 0.2644 -> 0.2339
goals: 0.2254 -> 0.1994
expectedGoals: 0.2135 -> 0.1888
bigChanceMissed: 0.0938 -> 0.083
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.84 (squad xG sum 0.7867, xG scale 1.0678, xA scale 1.0678, team xA 0.60 = 0.71 x lambda)scoreline_reset=true
team_lambda=0.84
squad_xg_sum=0.7867
squad_xa_sum=0.5598
team_expected_assists=0.5978
team_xa_to_xg_ratio=0.7116
expected_goals: 0.1888 -> 0.2016
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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.1826
goal_rate=0.1994
scorer_weight=0.2106
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0577
assist_rate=0.119
provider_weight=0.0742
-
Team totals00.84116.7
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Jiří LetáčekG4.4m10.9%Market-value substitute prior
Andrés GarcíaD13.8m22.2%Market-value substitute prior
Dani CarvajalD13.6m30.0%Market-value substitute prior
Alberto RiscoM19.2m69.2%Market-value substitute prior
Oscar LopezM22.0m49.9%Market-value substitute prior
Christantus UcheF25.6m57.4%Market-value substitute prior
Antagonist / tactical summary
Midfield is evenly contested — Pape Gueye vs Mario Martín will be the pivotal duel. Total antagonist xG — Home: 0.89, Away: 0.49. 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 51.8% / 48.2%, dominance ratio 0.56, key duel: Pape Gueye vs Mario Martín
Tajon Buchanan xG 0.19Pape Gueye xG 0.20Carlos Maciá xG 0.05Martín Satriano xG 0.19Ramón Terrats xG 0.14Francho Serrano xG 0.05

Summary

Antagonist matchup analysis for Villarreal vs Getafe. Most likely scoreline: 2-0. Lambdas derived from 6 home and 5 away individual player duels. Head-to-head: Villarreal 5W-4D-1L vs Getafe over 10 meetings.
Tactical parity between 4-4-2 and 5-4-1. Match outcome driven primarily by individual player quality. Midfield is evenly contested — Pape Gueye vs Mario Martín will be the pivotal duel. Total antagonist xG — Home: 0.89, Away: 0.49. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.

Celta vs Levante

LaLiga · 20261108 · 3-4-3 vs 4-4-2
Predicted 2-1Winner: CeltaWinning H 2-1 (9.6%)Winning A 1-2 (6.6%)Confidence 0.68λ home/away 1.76 / 1.22Most-likely P 9.6%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset Tracing
Antagonist + XGBoost match analysis for Celta vs Levante. 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 4-4-2 (duel lambdas: Home 1.366, Away 0.838). Final calibrated Poisson lambdas: Home 1.764, Away 1.220 (most likely score 2-1).
Home Starters 11/11 XGBoost (10 FBref) Away Starters 11/11 XGBoost (0 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.37 / 0.84 Final λ (H/A) 1.76 / 1.22
FBref Team Priors: Celta Vigo (Gls/90: 0.25, GA/90: 0.25 → E[λ]: 0.309) vs Levante UD (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

MetricCeltaLevante
League position9.0017.00
Points per game1.191.07
Attack index0.850.94
Defense (concede) index1.080.85
Form multiplier1.010.99
Standing λ multiplier0.970.91

Lambda decomposition (how the goal rates were built)

StageCelta λLevante λ
FBref Squad Prior E[λ] (weight 0.228)0.3090.309
Pre-competitive-floor1.3250.922
Pre-calibration (Micro-duels)1.3660.838
Final λ1.7641.220
competition calibration scale 1.328competition observed total goals 2.984quality gap applied Truemismatch score pressure applied Falsecompetitive underdog floor applied Falsestage discount 1.0

Scoreline distribution & markets

Top 5 scorelinesP
1-111.0%
2-19.6%
1-08.8%
2-07.9%
1-26.6%
Home win50.1%
Draw23.5%
Away win26.4%
Over 2.557.3%
BTTS yes58.5%
Pregame fair line — favorite Celta (50.1%), fair total 2.98, fair spread 0.54

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
Ionuț RaduG9000.00-n/a0.06.965.934FBref 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=49
history_shrink=0.0926
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0161)blend_weight=0.0161
history_matches=49
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.2667
competition=La Liga
saves: 3.0356 -> 3.0431
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': 'Roger Brugué, Iván Romero', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 0.838}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.76 (squad xG sum 0.9840, xG scale 1.7928, xA scale 1.7928, team xA 1.31 = 0.74 x lambda)scoreline_reset=true
team_lambda=1.764
squad_xg_sum=0.984
squad_xa_sum=0.7314
team_expected_assists=1.3112
team_xa_to_xg_ratio=0.7433
shots_faced: 8.0 -> 11.6
expected_saves: 1.96 -> 2.84
high_pressure_saves: 0.67 -> 0.98
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.8097
-
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.4371
-
Yoel LagoD9000.030.01363%00.16.944.929FBref 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.9990, quality 0.487)market_value_eur=7000000
quality_factor=0.4866
boost_factor=0.999
reference_quality=0.505
history_matches=23
history_shrink=0.1786
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0271)blend_weight=0.0271
history_matches=23
season_overlap_discount=1.0
per90_to_match_factor=0.9947
prior_reliability=0.2333
competition=La Liga
totalShots: 0.3835 -> 0.3731
wasFouled: 1.4375 -> 1.4294
totalCross: 0.0 -> 0.0077
interceptionWon: 1.1603 -> 1.1674
fouls: 1.4484 -> 1.4554
wonTackle: 0.8274 -> 0.8204
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 Ander Olasagasti', 'matchup_zone': 'LM vs CB'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.76 (squad xG sum 0.9840, xG scale 1.7928, xA scale 1.7928, team xA 1.31 = 0.74 x lambda)scoreline_reset=true
team_lambda=1.764
squad_xg_sum=0.984
squad_xa_sum=0.7314
team_expected_assists=1.3112
team_xa_to_xg_ratio=0.7433
expected_goals: 0.0151 -> 0.0271
expected_assists: 0.0111 -> 0.0199
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 71.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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0267
goal_rate=0.0
scorer_weight=0.0217
-
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.0197
assist_rate=0.0
provider_weight=0.0163
-
Álvaro NúñezD8100.030.01332%10.36.933.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 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.8183 -> 0.8256
totalCross: 1.49 -> 1.4835
wonTackle: 0.9029 -> 0.8977
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': 'Roger Brugué', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.76 (squad xG sum 0.9840, xG scale 1.7928, xA scale 1.7928, team xA 1.31 = 0.74 x lambda)scoreline_reset=true
team_lambda=1.764
squad_xg_sum=0.984
squad_xa_sum=0.7314
team_expected_assists=1.3112
team_xa_to_xg_ratio=0.7433
expected_goals: 0.014 -> 0.0251
expected_assists: 0.0588 -> 0.1054
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 76.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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0248
goal_rate=0.0
scorer_weight=0.0201
-
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.1
assist_rate=0.0204
provider_weight=0.0843
-
Javi RodríguezD8500.030.0279%00.37.054.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.606)market_value_eur=17500000
quality_factor=0.6058
boost_factor=1.0034
reference_quality=0.505
history_matches=40
history_shrink=0.1111
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0125)blend_weight=0.0125
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=0.9456
prior_reliability=0.1733
competition=La Liga
wasFouled: 1.0938 -> 1.0847
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': 'Iván Romero', 'matchup_zone': 'Shape fallback'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.76 (squad xG sum 0.9840, xG scale 1.7928, xA scale 1.7928, team xA 1.31 = 0.74 x lambda)scoreline_reset=true
team_lambda=1.764
squad_xg_sum=0.984
squad_xa_sum=0.7314
team_expected_assists=1.3112
team_xa_to_xg_ratio=0.7433
expected_goals: 0.0168 -> 0.0301
expected_assists: 0.0817 -> 0.1465
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 76.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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0297
goal_rate=0.1162
scorer_weight=0.0376
-
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.1363
assist_rate=0.1231
provider_weight=0.1831
-
Ilaix MoribaM8200.070.03130%10.46.963.932FBref 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.0017, quality 0.565)market_value_eur=13700000
quality_factor=0.5649
boost_factor=1.0017
reference_quality=0.505
history_matches=47
history_shrink=0.0962
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0112)blend_weight=0.0112
history_matches=47
season_overlap_discount=1.0
per90_to_match_factor=0.913
prior_reliability=0.18
competition=La Liga
fouls: 1.8036 -> 1.7833
interceptionWon: 1.4066 -> 1.3984
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': 'Daniel Requena', 'matchup_zone': 'Central Mid vs Central Mid — Box-to-Box Midfield Contest', 'duel_win_rate': 0.473, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0777, 'skill_edge': 0.0649, 'height_edge': -0.012, 'attacker_skill': 0.5816, 'defender_skill': 0.4374, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Daniel Requena', 'market_value': 1500000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.4374}], 'xg_override': 0.04}
aerialWon: 0.1643 -> 1.1
totalShots: 0.5356 -> 0.5772
shotOffTarget: 0.3895 -> 0.4198
onTargetScoringAttempt: 0.1428 -> 0.1539
expectedGoalsOnTarget: 0.0729 -> 0.0786
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.76 (squad xG sum 0.9840, xG scale 1.7928, xA scale 1.7928, team xA 1.31 = 0.74 x lambda)scoreline_reset=true
team_lambda=1.764
squad_xg_sum=0.984
squad_xa_sum=0.7314
team_expected_assists=1.3112
team_xa_to_xg_ratio=0.7433
expected_goals: 0.04 -> 0.0717
expected_assists: 0.0409 -> 0.0733
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0692
goal_rate=0.0464
scorer_weight=0.0768
-
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.0707
assist_rate=0.0491
provider_weight=0.0799
-
Miguel RománM8800.110.01980%10.47.164.019FBref 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.0033, quality 0.573)market_value_eur=14400000
quality_factor=0.5726
boost_factor=1.0033
reference_quality=0.505
history_matches=26
history_shrink=0.1613
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0245)blend_weight=0.0245
history_matches=26
season_overlap_discount=1.0
per90_to_match_factor=0.9833
prior_reliability=0.2333
competition=La Liga
totalCross: 1.6349 -> 1.6842
totalShots: 0.979 -> 0.9551
wonTackle: 0.9445 -> 0.9214
wasFouled: 0.5078 -> 0.516
onTargetScoringAttempt: 0.3311 -> 0.323
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': 'Daniel Requena', 'matchup_zone': 'Central Mid vs Central Mid — Box-to-Box Midfield Contest', 'duel_win_rate': 0.457, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0539, 'skill_edge': 0.0686, 'height_edge': -0.032, 'attacker_skill': 0.59, 'defender_skill': 0.4374, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Daniel Requena', 'market_value': 1500000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.4374}], 'xg_override': 0.0624}
aerialWon: 0.6671 -> 1.0
totalShots: 0.9709 -> 1.0232
shotOffTarget: 0.6479 -> 0.6828
onTargetScoringAttempt: 0.323 -> 0.3404
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.76 (squad xG sum 0.9840, xG scale 1.7928, xA scale 1.7928, team xA 1.31 = 0.74 x lambda)scoreline_reset=true
team_lambda=1.764
squad_xg_sum=0.984
squad_xa_sum=0.7314
team_expected_assists=1.3112
team_xa_to_xg_ratio=0.7433
expected_goals: 0.0624 -> 0.1119
expected_assists: 0.1156 -> 0.2073
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 74.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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.1059
goal_rate=0.0799
scorer_weight=0.1293
-
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.1872
assist_rate=0.1168
provider_weight=0.2088
-
Aleix FebasM8500.070.03117%10.46.960.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 0.9987, quality 0.465)market_value_eur=5200000
quality_factor=0.4646
boost_factor=0.9987
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.9444
prior_reliability=0.12
competition=La Liga
fouls: 1.5384 -> 1.5474
wasFouled: 2.8447 -> 2.8516
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 de la Fuente', 'matchup_zone': 'Left Wingback vs Right Back — Overlapping Run', 'duel_win_rate': 0.36, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9412, 'skill_edge': 0.0, 'height_edge': -0.04, 'attacker_skill': 0.4918, 'defender_skill': 0.4918, 'attacker_role': 'LWB', 'attacker_mv_price_index': 0.7, 'defender_adjusted_parts': [{'player': 'Adrián de la Fuente', 'market_value': 5200000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.4918}], 'xg_override': 0.0392}
aerialWon: 0.0787 -> 0.8
totalShots: 0.5903 -> 0.5556
shotOffTarget: 0.3897 -> 0.3668
onTargetScoringAttempt: 0.2006 -> 0.1888
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.76 (squad xG sum 0.9840, xG scale 1.7928, xA scale 1.7928, team xA 1.31 = 0.74 x lambda)scoreline_reset=true
team_lambda=1.764
squad_xg_sum=0.984
squad_xa_sum=0.7314
team_expected_assists=1.3112
team_xa_to_xg_ratio=0.7433
expected_goals: 0.0392 -> 0.0703
expected_assists: 0.0437 -> 0.0783
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0679
goal_rate=0.0492
scorer_weight=0.0782
-
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.0753
assist_rate=0.0605
provider_weight=0.0923
-
Javier RuedaM7600.150.03450%10.36.852.036XGBoost 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.9990, quality 0.477)market_value_eur=6200000
quality_factor=0.4769
boost_factor=0.999
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': 'Manuel Sánchez', 'matchup_zone': 'Right Wingback vs Left Back — Overlapping Run', 'duel_win_rate': 0.386, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9801, 'skill_edge': -0.0015, 'height_edge': -0.012, 'attacker_skill': 0.5089, 'defender_skill': 0.5123, 'attacker_role': 'RWB', 'attacker_mv_price_index': 0.7, 'defender_adjusted_parts': [{'player': 'Manuel Sánchez', 'market_value': 6400000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.5123}], 'xg_override': 0.0849}
aerialWon: 0.6499 -> 0.9
totalShots: 0.93 -> 0.9115
shotOffTarget: 0.6663 -> 0.653
onTargetScoringAttempt: 0.2636 -> 0.2584
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.76 (squad xG sum 0.9840, xG scale 1.7928, xA scale 1.7928, team xA 1.31 = 0.74 x lambda)scoreline_reset=true
team_lambda=1.764
squad_xg_sum=0.984
squad_xa_sum=0.7314
team_expected_assists=1.3112
team_xa_to_xg_ratio=0.7433
expected_goals: 0.0849 -> 0.1522
expected_assists: 0.111 -> 0.199
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.1412
goal_rate=0.0738
scorer_weight=0.1397
-
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.1805
assist_rate=0.1096
provider_weight=0.1973
-
Hugo ÁlvarezF7300.250.09193%10.46.853.242FBref 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=37
history_shrink=0.119
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0067)blend_weight=0.0067
history_matches=37
season_overlap_discount=1.0
per90_to_match_factor=0.8111
prior_reliability=0.0867
competition=La Liga
totalCross: 1.2226 -> 1.2395
totalShots: 1.256 -> 1.2476
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': 'Aïssa Mandi', 'matchup_zone': 'Shadow Striker vs Centre Back — Half-Space Threat', 'duel_win_rate': 0.436, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9801, 'skill_edge': 0.0265, 'height_edge': -0.04, 'attacker_skill': 0.4963, 'defender_skill': 0.4374, 'attacker_role': 'SS', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Aïssa Mandi', 'market_value': 1100000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.1397}
totalShots: 1.2527 -> 1.2278
shotOffTarget: 0.7641 -> 0.7489
onTargetScoringAttempt: 0.4886 -> 0.4789
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.76 (squad xG sum 0.9840, xG scale 1.7928, xA scale 1.7928, team xA 1.31 = 0.74 x lambda)scoreline_reset=true
team_lambda=1.764
squad_xg_sum=0.984
squad_xa_sum=0.7314
team_expected_assists=1.3112
team_xa_to_xg_ratio=0.7433
expected_goals: 0.1397 -> 0.2504
expected_assists: 0.0925 -> 0.1658
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 75.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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.2215
goal_rate=0.1676
scorer_weight=0.2872
-
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.1528
assist_rate=0.2173
provider_weight=0.2072
-
Hugo GonzálezF6110.400.07457%20.66.824.020FBref 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.9917, quality 0.439)market_value_eur=3100000
quality_factor=0.4387
boost_factor=0.9917
reference_quality=0.505
history_matches=7
history_shrink=0.4167
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0090)blend_weight=0.009
history_matches=7
season_overlap_discount=1.0
per90_to_match_factor=0.6761
prior_reliability=0.0333
competition=La Liga
totalShots: 1.9412 -> 1.9237
fouls: 0.3773 -> 0.3861
wasFouled: 0.48 -> 0.4879
onTargetScoringAttempt: 0.7047 -> 0.6983
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': 'Aïssa Mandi, Jeremy Toljan', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.189, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 0.9832, 'skill_edge': 0.0006, 'height_edge': -0.012, 'attacker_skill': 0.4387, 'defender_skill': 0.4374, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Aïssa Mandi', 'market_value': 1100000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'Jeremy Toljan', 'market_value': 1900000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.2207}
totalShots: 1.9348 -> 1.9023
shotOffTarget: 1.2365 -> 1.2157
onTargetScoringAttempt: 0.6983 -> 0.6866
expectedGoalsOnTarget: 0.3637 -> 0.3576
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.76 (squad xG sum 0.9840, xG scale 1.7928, xA scale 1.7928, team xA 1.31 = 0.74 x lambda)scoreline_reset=true
team_lambda=1.764
squad_xg_sum=0.984
squad_xa_sum=0.7314
team_expected_assists=1.3112
team_xa_to_xg_ratio=0.7433
expected_goals: 0.2207 -> 0.3957
expected_assists: 0.1001 -> 0.1795
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 70.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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=1
goal_probability=0.3268
goal_rate=0.2303
scorer_weight=0.4097
-
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.1643
assist_rate=0.2689
provider_weight=0.2244
-
Ferrán JutglàF7310.500.18174%21.26.760.131FBref 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.0008, quality 0.531)market_value_eur=10700000
quality_factor=0.5306
boost_factor=1.0008
reference_quality=0.505
history_matches=41
history_shrink=0.1087
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0122)blend_weight=0.0122
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=0.8148
prior_reliability=0.1733
competition=La Liga
totalShots: 1.8121 -> 1.7938
onTargetScoringAttempt: 0.6918 -> 0.6833
wasFouled: 1.5249 -> 1.5331
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': 'Aïssa Mandi', 'matchup_zone': 'Shadow Striker vs Centre Back — Half-Space Threat', 'duel_win_rate': 0.448, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.997, 'skill_edge': 0.0419, 'height_edge': -0.044, 'attacker_skill': 0.5306, 'defender_skill': 0.4374, 'attacker_role': 'SS', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Aïssa Mandi', 'market_value': 1100000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.2787}
totalShots: 1.8036 -> 1.7982
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.76 (squad xG sum 0.9840, xG scale 1.7928, xA scale 1.7928, team xA 1.31 = 0.74 x lambda)scoreline_reset=true
team_lambda=1.764
squad_xg_sum=0.984
squad_xa_sum=0.7314
team_expected_assists=1.3112
team_xa_to_xg_ratio=0.7433
expected_goals: 0.2787 -> 0.4995
expected_assists: 0.046 -> 0.0825
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 75.0)match_squad_rank=14
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=1
goal_probability=0.3932
goal_rate=0.2701
scorer_weight=0.4864
-
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.0792
assist_rate=0.0524
provider_weight=0.088
-
Team totals21.76126.9
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Altay BayındırG4.4m11.0%Market-value substitute prior
Abdoulaye FayeD13.6m21.8%Market-value substitute prior
Sebastián CáceresD13.6m30.1%Market-value substitute prior
Sergio CarreiraM24.4m41.1%Market-value substitute prior
Andrés AntañónM22.0m30.7%Market-value substitute prior
Williot SwedbergF30.4m44.5%Market-value substitute prior

Levante — projected line vs season baseline (4-4-2)

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Mathew RyanG8600.000.00100%0.16.967.835XGBoost 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.9981, quality 0.437)market_value_eur=1700000
quality_factor=0.4374
boost_factor=0.9981
reference_quality=0.505
history_matches=47
history_shrink=0.0962
-
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à, Hugo González', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.3662}
-
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.1283, xG scale 1.0813, xA scale 1.1158, team xA 0.79 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.22
squad_xg_sum=1.1283
squad_xa_sum=0.7107
team_expected_assists=0.793
team_xa_to_xg_ratio=0.65
shots_faced: 13.0 -> 16.8
expected_saves: 3.18 -> 4.12
high_pressure_saves: 1.09 -> 1.41
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.0
scorer_weight=0.0
squad_weight_total=1.2934
-
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.798
-
Manuel SánchezD8400.010.01ok00.26.854.934XGBoost 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.9992, quality 0.479)market_value_eur=6400000
quality_factor=0.4793
boost_factor=0.9992
reference_quality=0.505
history_matches=43
history_shrink=0.1042
-
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': 'Javier Rueda', '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.22 (squad xG sum 1.1283, xG scale 1.0813, xA scale 1.1158, team xA 0.79 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.22
squad_xg_sum=1.1283
squad_xa_sum=0.7107
team_expected_assists=0.793
team_xa_to_xg_ratio=0.65
expected_assists: 0.0501 -> 0.0559
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 78.0)match_squad_rank=12
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_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.0084
goal_rate=0.0015
scorer_weight=0.0075
-
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.0544
assist_rate=0.0154
provider_weight=0.0447
-
Aïssa MandiD8700.000.00ok00.16.847.413XGBoost 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.9928, quality 0.437)market_value_eur=1100000
quality_factor=0.4374
boost_factor=0.9928
reference_quality=0.505
history_matches=9
history_shrink=0.3571
-
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 Álvarez', 'matchup_zone': 'Shadow Striker vs Centre Back — Half-Space Threat'}
-
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.1283, xG scale 1.0813, xA scale 1.1158, team xA 0.79 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.22
squad_xg_sum=1.1283
squad_xa_sum=0.7107
team_expected_assists=0.793
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 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.0027
goal_rate=0.0
scorer_weight=0.0026
-
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.0133
assist_rate=0.0
provider_weight=0.0108
-
Adrián de la FuenteD8200.140.13ok21.56.966.931XGBoost 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.9987, quality 0.465)market_value_eur=5200000
quality_factor=0.4646
boost_factor=0.9987
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': 'Aleix Febas', '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.22 (squad xG sum 1.1283, xG scale 1.0813, xA scale 1.1158, team xA 0.79 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.22
squad_xg_sum=1.1283
squad_xa_sum=0.7107
team_expected_assists=0.793
team_xa_to_xg_ratio=0.65
expected_goals: 0.1291 -> 0.1396
expected_assists: 0.0945 -> 0.1054
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 86.0)match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_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.1303
goal_rate=0.3312
scorer_weight=0.1745
-
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.1
assist_rate=0.0026
provider_weight=0.0843
-
Jeremy ToljanD8300.030.01139%00.26.657.534XGBoost 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.9980, quality 0.437)market_value_eur=1900000
quality_factor=0.4374
boost_factor=0.998
reference_quality=0.505
history_matches=46
history_shrink=0.098
-
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 González', '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.1283, xG scale 1.0813, xA scale 1.1158, team xA 0.79 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.22
squad_xg_sum=1.1283
squad_xa_sum=0.7107
team_expected_assists=0.793
team_xa_to_xg_ratio=0.65
expected_assists: 0.0962 -> 0.1073
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 17 by projected rating, fifa_overall 74.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.0313
goal_rate=0.0002
scorer_weight=0.0254
-
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.1017
assist_rate=0.1449
provider_weight=0.1341
-
Jon Ander OlasagastiM8600.080.09ok11.06.962.834XGBoost 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.9979, quality 0.437)market_value_eur=2700000
quality_factor=0.4374
boost_factor=0.9979
reference_quality=0.505
history_matches=43
history_shrink=0.1042
-
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', 'matchup_zone': 'LM vs CB', 'duel_win_rate': 0.349, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.896, 'skill_edge': -0.0347, 'height_edge': -0.036, 'attacker_skill': 0.4374, 'defender_skill': 0.5146, 'attacker_role': 'LM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Yoel Lago', 'market_value': 7000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5146}], 'xg_override': 0.0777}
aerialWon: 0.5268 -> 0.9
totalShots: 1.1332 -> 1.0154
shotOffTarget: 0.7453 -> 0.6678
onTargetScoringAttempt: 0.3879 -> 0.3476
expectedGoalsOnTarget: 0.1005 -> 0.09
goals: 0.0977 -> 0.0875
expectedGoals: 0.0867 -> 0.0777
bigChanceMissed: 0.0476 -> 0.0426
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.1283, xG scale 1.0813, xA scale 1.1158, team xA 0.79 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.22
squad_xg_sum=1.1283
squad_xa_sum=0.7107
team_expected_assists=0.793
team_xa_to_xg_ratio=0.65
expected_goals: 0.0777 -> 0.084
expected_assists: 0.1316 -> 0.147
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 84.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.0806
goal_rate=0.0875
scorer_weight=0.0904
-
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.1367
assist_rate=0.0995
provider_weight=0.121
-
Daniel RequenaM7800.080.0579%10.56.846.113XGBoost 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.9922, quality 0.437)market_value_eur=1500000
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': 'Miguel Román', 'matchup_zone': 'Central Mid vs Central Mid — Box-to-Box Midfield Contest', 'duel_win_rate': 0.383, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9461, 'skill_edge': -0.0686, 'height_edge': 0.032, 'attacker_skill': 0.4374, 'defender_skill': 0.59, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Miguel Román', 'market_value': 14400000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.59}], 'xg_override': 0.0764}
aerialWon: 0.6252 -> 1.2
totalShots: 1.145 -> 1.0833
shotOffTarget: 0.8356 -> 0.7906
onTargetScoringAttempt: 0.3093 -> 0.2926
bigChanceMissed: 0.2317 -> 0.2192
expectedGoalsOnTarget: 0.226 -> 0.2138
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.1283, xG scale 1.0813, xA scale 1.1158, team xA 0.79 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.22
squad_xg_sum=1.1283
squad_xa_sum=0.7107
team_expected_assists=0.793
team_xa_to_xg_ratio=0.65
expected_goals: 0.0764 -> 0.0826
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_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.0793
goal_rate=0.0739
scorer_weight=0.081
-
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.0376
assist_rate=0.0479
provider_weight=0.0445
-
Enzo BardeliM7300.080.02265%10.36.746.510XGBoost 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.9959, quality 0.472)market_value_eur=5800000
quality_factor=0.472
boost_factor=0.9959
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': 'Yoel Lago', 'matchup_zone': 'RM vs CB', 'duel_win_rate': 0.352, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9006, 'skill_edge': -0.0156, 'height_edge': -0.052, 'attacker_skill': 0.4799, 'defender_skill': 0.5146, 'attacker_role': 'RM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Yoel Lago', 'market_value': 7000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5146}], 'xg_override': 0.0745}
aerialWon: 0.0 -> 0.8
totalShots: 0.8747 -> 0.7878
shotOffTarget: 0.6243 -> 0.5622
onTargetScoringAttempt: 0.2504 -> 0.2255
expectedGoals: 0.0827 -> 0.0745
goals: 0.0689 -> 0.0621
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.1283, xG scale 1.0813, xA scale 1.1158, team xA 0.79 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.22
squad_xg_sum=1.1283
squad_xa_sum=0.7107
team_expected_assists=0.793
team_xa_to_xg_ratio=0.65
expected_goals: 0.0745 -> 0.0806
expected_assists: 0.0951 -> 0.1061
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 73.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.0774
goal_rate=0.0621
scorer_weight=0.0726
-
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.1007
assist_rate=0.1185
provider_weight=0.1232
-
Oriol ReyM7800.040.01442%00.26.937.732XGBoost 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.9971, quality 0.437)market_value_eur=1700000
quality_factor=0.4374
boost_factor=0.9971
reference_quality=0.505
history_matches=30
history_shrink=0.1429
-
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': 'Miguel Román', 'matchup_zone': 'Central Mid vs Central Mid — Box-to-Box Midfield Contest', 'duel_win_rate': 0.339, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.8815, 'skill_edge': -0.0686, 'height_edge': -0.012, 'attacker_skill': 0.4374, 'defender_skill': 0.59, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Miguel Román', 'market_value': 14400000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.59}], 'xg_override': 0.0353}
totalShots: 0.5627 -> 0.496
aerialWon: 0.8459 -> 0.9
shotOffTarget: 0.4057 -> 0.3576
onTargetScoringAttempt: 0.1569 -> 0.1383
goals: 0.0544 -> 0.048
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.1283, xG scale 1.0813, xA scale 1.1158, team xA 0.79 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.22
squad_xg_sum=1.1283
squad_xa_sum=0.7107
team_expected_assists=0.793
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 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.0375
goal_rate=0.048
scorer_weight=0.0439
-
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.0397
assist_rate=0.0518
provider_weight=0.0478
-
Roger BruguéF7510.310.33ok21.96.852.925XGBoost 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.9970, quality 0.437)market_value_eur=2800000
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': 'Yoel Lago, Álvaro Núñez', '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.9273, 'skill_edge': -0.0235, 'height_edge': -0.026, 'attacker_skill': 0.4374, 'defender_skill': 0.4896, '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': 'Álvaro Núñez', 'market_value': 3900000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4646}], 'xg_override': 0.2865}
totalShots: 2.2304 -> 2.0682
shotOffTarget: 1.3327 -> 1.2358
onTargetScoringAttempt: 0.8977 -> 0.8324
expectedGoalsOnTarget: 0.353 -> 0.3273
goals: 0.3209 -> 0.2976
expectedGoals: 0.309 -> 0.2865
bigChanceMissed: 0.1675 -> 0.1553
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.1283, xG scale 1.0813, xA scale 1.1158, team xA 0.79 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.22
squad_xg_sum=1.1283
squad_xa_sum=0.7107
team_expected_assists=0.793
team_xa_to_xg_ratio=0.65
expected_goals: 0.2865 -> 0.3098
expected_assists: 0.0546 -> 0.0609
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 88.0)match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_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.2664
goal_rate=0.2976
scorer_weight=0.32
-
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.0591
assist_rate=0.1049
provider_weight=0.0761
-
Iván RomeroF7300.260.23ok21.66.861.134XGBoost 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.9996, quality 0.491)market_value_eur=7400000
quality_factor=0.4915
boost_factor=0.9996
reference_quality=0.505
history_matches=43
history_shrink=0.1042
-
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, Álvaro Núñez', '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.9571, 'skill_edge': 0.0008, 'height_edge': -0.03, 'attacker_skill': 0.4915, 'defender_skill': 0.4896, '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': 'Álvaro Núñez', 'market_value': 3900000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4646}], 'xg_override': 0.2363}
totalShots: 1.9325 -> 1.8496
shotOffTarget: 1.1748 -> 1.1244
onTargetScoringAttempt: 0.7577 -> 0.7252
goals: 0.2916 -> 0.2791
expectedGoals: 0.2469 -> 0.2363
bigChanceMissed: 0.24 -> 0.2297
expectedGoalsOnTarget: 0.2253 -> 0.2156
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.1283, xG scale 1.0813, xA scale 1.1158, team xA 0.79 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.22
squad_xg_sum=1.1283
squad_xa_sum=0.7107
team_expected_assists=0.793
team_xa_to_xg_ratio=0.65
expected_goals: 0.2363 -> 0.2555
expected_assists: 0.0624 -> 0.0696
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 75.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.2255
goal_rate=0.2791
scorer_weight=0.2937
-
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.0028
provider_weight=0.0557
-
Team totals11.22116.8
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Pablo CuñatG4.4m10.9%Market-value substitute prior
Axel TapeD13.8m31.1%Market-value substitute prior
Ifeanyi NdukweD13.6m29.9%Market-value substitute prior
Hugo SoteloM22.1m50.3%Market-value substitute prior
Manel Usedo DomingoM22.0m49.9%Market-value substitute prior
Etta EyongF25.6m57.3%Market-value substitute prior
Antagonist / tactical summary
Midfield is evenly contested — Miguel Román vs Enzo Bardeli will be the pivotal duel. Total antagonist xG — Home: 0.87, Away: 0.79. 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 50.8% / 49.2%, dominance ratio 0.54, key duel: Miguel Román vs Enzo Bardeli
Aleix Febas xG 0.04Miguel Román xG 0.06Ilaix Moriba xG 0.04Jon Ander Olasagasti xG 0.08Daniel Requena xG 0.08Oriol Rey xG 0.04

Summary

Antagonist matchup analysis for Celta vs Levante. Most likely scoreline: 2-1. Lambdas derived from 7 home and 6 away individual player duels. Head-to-head: Celta 4W-2D-4L vs Levante over 10 meetings.
3-4-3 creates structural superiority against 4-4-2. Home team should exploit wider spaces and numerical advantages in transition. Midfield is evenly contested — Miguel Román vs Enzo Bardeli will be the pivotal duel. Total antagonist xG — Home: 0.87, Away: 0.79. Home danger zone: Shadow Striker vs Centre Back — Half-Space Threat. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.

Crystal Palace vs Liverpool

Premier League · 20261108 · 3-4-2-1 vs 4-2-3-1
Predicted 1-1Winner: DrawWinning H 1-0 (8.3%)Winning A 0-1 (8.7%)Confidence 0.65λ home/away 1.36 / 1.42Most-likely P 12.1%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset Tracing
Antagonist + XGBoost match analysis for Crystal Palace vs Liverpool. 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.209, Away 1.646). Final calibrated Poisson lambdas: Home 1.359, Away 1.422 (most likely score 1-1).
Home Starters 11/11 XGBoost (11 FBref) Away Starters 11/11 XGBoost (0 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.21 / 1.65 Final λ (H/A) 1.36 / 1.42
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

MetricCrystal PalaceLiverpool
League position18.005.00
Points per game1.011.65
Attack index0.931.00
Defense (concede) index0.891.37
Form multiplier0.971.03
Standing λ multiplier0.921.14

Lambda decomposition (how the goal rates were built)

StageCrystal Palace λLiverpool λ
Pre-competitive-floor1.4611.667
Pre-calibration (Micro-duels)1.2091.646
Final λ1.3591.422
competition calibration scale 0.889competition observed total goals 2.781quality gap applied Truemismatch score pressure applied Falsecompetitive underdog floor applied Falsestage discount 1.0

Scoreline distribution & markets

Top 5 scorelinesP
1-112.1%
0-18.7%
1-28.5%
1-08.3%
2-18.1%
Home win35.8%
Draw25.6%
Away win38.6%
Over 2.552.6%
BTTS yes56.5%
Pregame fair line — favorite Liverpool (38.6%), fair total 2.78, fair spread -0.06

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.

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Dean HendersonG9000.00-n/a0.06.856.628FBref 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.0067, quality 0.710)market_value_eur=29000000
quality_factor=0.71
boost_factor=1.0067
reference_quality=0.505
history_matches=41
history_shrink=0.1087
-
fbref_prior_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
-
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': 'Alexander Isak, Dominik Szoboszlai', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.646}
-
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.36 (squad xG sum 1.1097, xG scale 1.2247, xA scale 1.3679, team xA 0.88 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.359
squad_xg_sum=1.1097
squad_xa_sum=0.6458
team_expected_assists=0.8833
team_xa_to_xg_ratio=0.65
shots_faced: 15.6 -> 13.5
expected_saves: 3.81 -> 3.3
high_pressure_saves: 1.32 -> 1.14
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.0
scorer_weight=0.0
squad_weight_total=1.3646
-
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.8034
-
Jaydee CanvotD9000.030.0534%00.26.748.232FBref 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.0103, quality 0.732)market_value_eur=32000000
quality_factor=0.732
boost_factor=1.0103
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.9969
prior_reliability=0.1333
competition=Premier League
wonTackle: 1.069 -> 1.0811
fouls: 0.8068 -> 0.7962
interceptionWon: 1.2283 -> 1.2187
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': 'Dominik Szoboszlai', '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.36 (squad xG sum 1.1097, xG scale 1.2247, xA scale 1.3679, team xA 0.88 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.359
squad_xg_sum=1.1097
squad_xa_sum=0.6458
team_expected_assists=0.8833
team_xa_to_xg_ratio=0.65
expected_goals: 0.0252 -> 0.0309
expected_assists: 0.0203 -> 0.0278
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 76.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.0304
goal_rate=0.0
scorer_weight=0.0247
-
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.0274
assist_rate=0.0
provider_weight=0.0222
-
Chris RichardsD9000.060.07ok10.56.854.731FBref 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.0055, quality 0.677)market_value_eur=25000000
quality_factor=0.6773
boost_factor=1.0055
reference_quality=0.505
history_matches=42
history_shrink=0.1064
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0092)blend_weight=0.0092
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.9999
prior_reliability=0.1333
competition=Premier League
interceptionWon: 1.1996 -> 1.207
fouls: 0.5849 -> 0.5795
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': 'Alexander Isak', '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.36 (squad xG sum 1.1097, xG scale 1.2247, xA scale 1.3679, team xA 0.88 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.359
squad_xg_sum=1.1097
squad_xa_sum=0.6458
team_expected_assists=0.8833
team_xa_to_xg_ratio=0.65
expected_goals: 0.0526 -> 0.0644
expected_assists: 0.0162 -> 0.0222
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.0624
goal_rate=0.0055
scorer_weight=0.0515
-
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.022
assist_rate=0.0
provider_weight=0.0178
-
Axel DisasiD8400.070.0635%00.46.753.124FBref 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.0050, quality 0.585)market_value_eur=15500000
quality_factor=0.5846
boost_factor=1.005
reference_quality=0.505
history_matches=19
history_shrink=0.2083
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0018)blend_weight=0.0018
history_matches=19
season_overlap_discount=1.0
per90_to_match_factor=0.9329
prior_reliability=0.0133
competition=Premier League
fouls: 0.7435 -> 0.7506
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': 'Alexander Isak', '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.36 (squad xG sum 1.1097, xG scale 1.2247, xA scale 1.3679, team xA 0.88 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.359
squad_xg_sum=1.1097
squad_xa_sum=0.6458
team_expected_assists=0.8833
team_xa_to_xg_ratio=0.65
expected_goals: 0.0612 -> 0.075
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.0723
goal_rate=0.0
scorer_weight=0.06
-
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.0098
assist_rate=0.0
provider_weight=0.0086
-
Daichi KamadaM8500.080.07ok10.56.957.431FBref 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.0007, quality 0.526)market_value_eur=10300000
quality_factor=0.526
boost_factor=1.0007
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.9441
prior_reliability=0.1333
competition=Premier League
wonTackle: 1.2953 -> 1.316
totalCross: 0.699 -> 0.7113
interceptionWon: 0.3306 -> 0.3369
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': 'Miloš Kerkez', 'matchup_zone': 'Left Wingback vs Right Back — Overlapping Run', 'duel_win_rate': 0.302, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.8562, 'skill_edge': -0.1138, 'height_edge': 0.016, 'attacker_skill': 0.5761, 'defender_skill': 0.829, 'attacker_role': 'LWB', 'attacker_mv_price_index': 0.7, 'defender_adjusted_parts': [{'player': 'Miloš Kerkez', 'market_value': 36000000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.829}], 'xg_override': 0.0658}
aerialWon: 0.2922 -> 1.1
totalShots: 0.9386 -> 0.8036
shotOffTarget: 0.5749 -> 0.4922
onTargetScoringAttempt: 0.3637 -> 0.3114
bigChanceMissed: 0.0915 -> 0.0783
expectedGoalsOnTarget: 0.0898 -> 0.0769
goals: 0.0888 -> 0.076
expectedGoals: 0.0769 -> 0.0658
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.36 (squad xG sum 1.1097, xG scale 1.2247, xA scale 1.3679, team xA 0.88 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.359
squad_xg_sum=1.1097
squad_xa_sum=0.6458
team_expected_assists=0.8833
team_xa_to_xg_ratio=0.65
expected_goals: 0.0658 -> 0.0806
expected_assists: 0.0704 -> 0.0963
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.0774
goal_rate=0.076
scorer_weight=0.0877
-
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.0918
assist_rate=0.0825
provider_weight=0.106
-
Adam WhartonM8800.060.03135%10.76.958.132FBref 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.0118, quality 0.881)market_value_eur=79000000
quality_factor=0.8811
boost_factor=1.0118
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.9748
prior_reliability=0.1333
competition=Premier League
totalCross: 2.7116 -> 2.6915
wasFouled: 1.0977 -> 1.1054
interceptionWon: 1.1201 -> 1.1276
totalShots: 0.7797 -> 0.7727
fouls: 0.5997 -> 0.5943
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': 'Alexis Mac Allister', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.473, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 1.0342, 'skill_edge': -0.0007, 'height_edge': 0.024, 'attacker_skill': 0.8877, 'defender_skill': 0.8893, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Alexis Mac Allister', 'market_value': 77000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8893}], 'xg_override': 0.0502}
totalShots: 0.7777 -> 0.8043
shotOffTarget: 0.5654 -> 0.5847
aerialWon: 1.0851 -> 1.1
onTargetScoringAttempt: 0.2123 -> 0.2196
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.36 (squad xG sum 1.1097, xG scale 1.2247, xA scale 1.3679, team xA 0.88 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.359
squad_xg_sum=1.1097
squad_xa_sum=0.6458
team_expected_assists=0.8833
team_xa_to_xg_ratio=0.65
expected_goals: 0.0502 -> 0.0615
expected_assists: 0.1074 -> 0.1468
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 82.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.0596
goal_rate=0.0426
scorer_weight=0.0568
-
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.1365
assist_rate=0.0884
provider_weight=0.1291
-
Tyrick MitchellM8700.080.0640%10.66.858.834FBref 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.0045, quality 0.660)market_value_eur=23000000
quality_factor=0.6595
boost_factor=1.0045
reference_quality=0.505
history_matches=47
history_shrink=0.0962
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0083)blend_weight=0.0083
history_matches=47
season_overlap_discount=1.0
per90_to_match_factor=0.9677
prior_reliability=0.1333
competition=Premier League
wonTackle: 1.9337 -> 1.9257
wasFouled: 0.7116 -> 0.7057
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': 'Conor Bradley', 'matchup_zone': 'Right Wingback vs Left Back — Overlapping Run', 'duel_win_rate': 0.376, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 0.9654, 'skill_edge': 0.0045, 'height_edge': -0.028, 'attacker_skill': 0.7379, 'defender_skill': 0.728, 'attacker_role': 'RWB', 'attacker_mv_price_index': 0.7, 'defender_adjusted_parts': [{'player': 'Conor Bradley', 'market_value': 22000000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.728}], 'xg_override': 0.0658}
aerialWon: 0.7792 -> 0.9
totalShots: 0.8957 -> 0.8647
shotOffTarget: 0.6754 -> 0.652
onTargetScoringAttempt: 0.2178 -> 0.2103
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.36 (squad xG sum 1.1097, xG scale 1.2247, xA scale 1.3679, team xA 0.88 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.359
squad_xg_sum=1.1097
squad_xa_sum=0.6458
team_expected_assists=0.8833
team_xa_to_xg_ratio=0.65
expected_goals: 0.0658 -> 0.0806
expected_assists: 0.0597 -> 0.0817
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.0774
goal_rate=0.0572
scorer_weight=0.0746
-
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.0785
assist_rate=0.0678
provider_weight=0.0877
-
Anan KhalailiM8800.100.08ok10.76.843.916FBref 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.0175, quality 0.669)market_value_eur=24000000
quality_factor=0.6685
boost_factor=1.0175
reference_quality=0.505
history_matches=9
history_shrink=0.3571
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0186)blend_weight=0.0186
history_matches=9
season_overlap_discount=1.0
per90_to_match_factor=0.9793
prior_reliability=0.08
competition=Premier League
wonTackle: 1.5706 -> 1.6778
totalCross: 3.2523 -> 3.298
interceptionWon: 1.5339 -> 1.5509
wasFouled: 0.5003 -> 0.5062
fouls: 1.3334 -> 1.3389
onTargetScoringAttempt: 0.2956 -> 0.2901
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': 'Alexis Mac Allister', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.389, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9102, 'skill_edge': -0.0891, 'height_edge': 0.028, 'attacker_skill': 0.6914, 'defender_skill': 0.8893, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Alexis Mac Allister', 'market_value': 77000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8893}], 'xg_override': 0.0805}
aerialWon: 1.2411 -> 1.1
totalShots: 0.9885 -> 0.8997
shotOffTarget: 0.6964 -> 0.6339
onTargetScoringAttempt: 0.2901 -> 0.264
bigChanceMissed: 0.2169 -> 0.1974
goals: 0.1242 -> 0.113
expectedGoals: 0.0884 -> 0.0805
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.36 (squad xG sum 1.1097, xG scale 1.2247, xA scale 1.3679, team xA 0.88 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.359
squad_xg_sum=1.1097
squad_xa_sum=0.6458
team_expected_assists=0.8833
team_xa_to_xg_ratio=0.65
expected_goals: 0.0805 -> 0.0986
expected_assists: 0.0817 -> 0.1118
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.0939
goal_rate=0.113
scorer_weight=0.1232
-
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.1058
assist_rate=0.0673
provider_weight=0.0996
-
Yéremy PinoF7000.140.0889%10.96.954.435FBref 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.0057, quality 0.694)market_value_eur=27000000
quality_factor=0.6941
boost_factor=1.0057
reference_quality=0.505
history_matches=45
history_shrink=0.1
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0048)blend_weight=0.0048
history_matches=45
season_overlap_discount=1.0
per90_to_match_factor=0.7821
prior_reliability=0.0733
competition=Premier League
totalCross: 2.6757 -> 2.6934
fouls: 0.5386 -> 0.5462
totalOffside: 0.2506 -> 0.2562
wasFouled: 1.0128 -> 1.0181
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': 'Alexis Mac Allister, Virgil van Dijk', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle', 'duel_win_rate': 0.185, 'pressing_faced': 'HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.8748, 'skill_edge': -0.0312, 'height_edge': -0.054, 'attacker_skill': 0.6941, 'defender_skill': 0.7634, 'attacker_role': 'SS', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Alexis Mac Allister', 'market_value': 77000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8893}, {'player': 'Virgil van Dijk', 'market_value': 15500000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6376}], 'xg_override': 0.1177}
totalShots: 1.2307 -> 1.0766
shotOffTarget: 0.7651 -> 0.6693
onTargetScoringAttempt: 0.4594 -> 0.4019
goals: 0.1825 -> 0.1597
expectedGoalsOnTarget: 0.1627 -> 0.1423
expectedGoals: 0.1345 -> 0.1177
bigChanceMissed: 0.0687 -> 0.0601
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.36 (squad xG sum 1.1097, xG scale 1.2247, xA scale 1.3679, team xA 0.88 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.359
squad_xg_sum=1.1097
squad_xa_sum=0.6458
team_expected_assists=0.8833
team_xa_to_xg_ratio=0.65
expected_goals: 0.1177 -> 0.1441
expected_assists: 0.0874 -> 0.1196
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.1342
goal_rate=0.1597
scorer_weight=0.1801
-
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.0042
provider_weight=0.0957
-
Jørgen Strand LarsenF7310.410.13208%21.26.754.931FBref 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.0088, quality 0.786)market_value_eur=41000000
quality_factor=0.7859
boost_factor=1.0088
reference_quality=0.505
history_matches=43
history_shrink=0.1042
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0045)blend_weight=0.0045
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=0.8119
prior_reliability=0.0667
competition=Premier League
fouls: 1.0912 -> 1.0973
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': 'Virgil van Dijk, Jérémy Jacquet', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.21, 'pressing_faced': 'HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 1.0151, 'skill_edge': 0.0103, 'height_edge': 0.0, 'attacker_skill': 0.7859, 'defender_skill': 0.7631, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Virgil van Dijk', 'market_value': 15500000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6376}, {'player': 'Jérémy Jacquet', 'market_value': 67000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8886}], 'xg_override': 0.3325}
totalShots: 1.788 -> 1.815
shotOffTarget: 1.0725 -> 1.0887
onTargetScoringAttempt: 0.7155 -> 0.7263
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.36 (squad xG sum 1.1097, xG scale 1.2247, xA scale 1.3679, team xA 0.88 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.359
squad_xg_sum=1.1097
squad_xa_sum=0.6458
team_expected_assists=0.8833
team_xa_to_xg_ratio=0.65
expected_goals: 0.3325 -> 0.4072
expected_assists: 0.0524 -> 0.0717
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=1
goal_probability=0.3345
goal_rate=0.2823
scorer_weight=0.3538
-
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.0692
assist_rate=0.0
provider_weight=0.0574
-
Dwight McNeilF7400.160.03376%10.66.732.535FBref 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.0070, quality 0.660)market_value_eur=23000000
quality_factor=0.6595
boost_factor=1.007
reference_quality=0.505
history_matches=28
history_shrink=0.1515
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0059)blend_weight=0.0059
history_matches=28
season_overlap_discount=1.0
per90_to_match_factor=0.8173
prior_reliability=0.06
competition=Premier League
totalCross: 1.5333 -> 1.5242
wonTackle: 1.1651 -> 1.1582
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': 'Alexis Mac Allister, Virgil van Dijk', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle', 'duel_win_rate': 0.213, 'pressing_faced': 'HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.9165, 'skill_edge': -0.0468, 'height_edge': -0.01, 'attacker_skill': 0.6595, 'defender_skill': 0.7634, 'attacker_role': 'SS', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Alexis Mac Allister', 'market_value': 77000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8893}, {'player': 'Virgil van Dijk', 'market_value': 15500000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6376}], 'xg_override': 0.1339}
totalShots: 1.2442 -> 1.1403
shotOffTarget: 0.8498 -> 0.7788
onTargetScoringAttempt: 0.3943 -> 0.3614
goals: 0.1522 -> 0.1395
expectedGoals: 0.1461 -> 0.1339
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.36 (squad xG sum 1.1097, xG scale 1.2247, xA scale 1.3679, team xA 0.88 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.359
squad_xg_sum=1.1097
squad_xa_sum=0.6458
team_expected_assists=0.8833
team_xa_to_xg_ratio=0.65
expected_goals: 0.1339 -> 0.164
expected_assists: 0.0776 -> 0.1061
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 15 by projected rating, fifa_overall 76.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: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1513
goal_rate=0.1395
scorer_weight=0.169
-
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.1007
assist_rate=0.0165
provider_weight=0.0849
-
Team totals11.36116.8
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Walter BenítezG4.4m11.0%Market-value substitute prior
Honest AhanorD14.9m36.1%Market-value substitute prior
Chadi RiadD14.1m22.8%Market-value substitute prior
Quinten TimberM22.9m54.0%Market-value substitute prior
Óscar MinguezaM18.9m70.4%Market-value substitute prior
Ismaïla SarrF26.7m62.3%Market-value substitute prior

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Giorgi MamardashviliG8600.00-n/a0.07.011.231XGBoost 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 1.0205, quality 0.710)market_value_eur=29000000
quality_factor=0.71
boost_factor=1.0205
reference_quality=0.505
history_matches=10
history_shrink=0.3333
-
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, Dwight McNeil', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.2087}
-
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.42 (squad xG sum 1.4199, xG scale 1.0015, xA scale 1.1218, team xA 0.92 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.422
squad_xg_sum=1.4199
squad_xa_sum=0.8239
team_expected_assists=0.9243
team_xa_to_xg_ratio=0.65
shots_faced: 11.5 -> 12.9
expected_saves: 2.82 -> 3.16
high_pressure_saves: 0.97 -> 1.09
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 83.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.5473
-
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.8798
-
Virgil van DijkD9000.060.1034%10.77.159.534XGBoost 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.0023, quality 0.585)market_value_eur=15500000
quality_factor=0.5846
boost_factor=1.0023
reference_quality=0.505
history_matches=46
history_shrink=0.098
-
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': '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.42 (squad xG sum 1.4199, xG scale 1.0015, xA scale 1.1218, team xA 0.92 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.422
squad_xg_sum=1.4199
squad_xa_sum=0.8239
team_expected_assists=0.9243
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 88.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.0619
goal_rate=0.1149
scorer_weight=0.0799
-
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.0254
assist_rate=0.0
provider_weight=0.0206
-
Jérémy JacquetD8800.050.02121%10.17.043.314XGBoost 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.0417, quality 0.866)market_value_eur=67000000
quality_factor=0.8661
boost_factor=1.0417
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': 'Jørgen Strand Larsen', '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.42 (squad xG sum 1.4199, xG scale 1.0015, xA scale 1.1218, team xA 0.92 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.422
squad_xg_sum=1.4199
squad_xa_sum=0.8239
team_expected_assists=0.9243
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 77.0)match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_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.0465
goal_rate=0.0
scorer_weight=0.0381
-
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.0252
assist_rate=0.0
provider_weight=0.0204
-
Conor BradleyD7700.020.02ok10.46.824.68XGBoost 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.0109, quality 0.650)market_value_eur=22000000
quality_factor=0.6503
boost_factor=1.0109
reference_quality=0.505
history_matches=15
history_shrink=0.25
-
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': '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.42 (squad xG sum 1.4199, xG scale 1.0015, xA scale 1.1218, team xA 0.92 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.422
squad_xg_sum=1.4199
squad_xa_sum=0.8239
team_expected_assists=0.9243
team_xa_to_xg_ratio=0.65
expected_assists: 0.0769 -> 0.0863
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
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.0
scorer_weight=0.0194
-
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.0827
assist_rate=0.1502
provider_weight=0.1079
-
Miloš KerkezD8600.030.0244%00.26.748.534XGBoost 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.0081, quality 0.758)market_value_eur=36000000
quality_factor=0.7581
boost_factor=1.0081
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': 'Daichi Kamada', '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.42 (squad xG sum 1.4199, xG scale 1.0015, xA scale 1.1218, team xA 0.92 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.422
squad_xg_sum=1.4199
squad_xa_sum=0.8239
team_expected_assists=0.9243
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 81.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.0263
goal_rate=0.0381
scorer_weight=0.0307
-
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.0199
assist_rate=0.0156
provider_weight=0.0194
-
Dominik SzoboszlaiM8000.190.1434%21.87.160.030XGBoost 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.0123, quality 0.890)market_value_eur=91000000
quality_factor=0.8895
boost_factor=1.0123
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': 'Jaydee Canvot', 'matchup_zone': 'LW vs CB', 'duel_win_rate': 0.459, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 1.0573, 'skill_edge': 0.0429, 'height_edge': -0.004, 'attacker_skill': 0.8895, '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.1859}
aerialWon: 0.6485 -> 1.2
totalShots: 1.8512 -> 1.9573
shotOffTarget: 1.232 -> 1.3026
onTargetScoringAttempt: 0.6192 -> 0.6547
expectedGoalsOnTarget: 0.2487 -> 0.263
goals: 0.1883 -> 0.1991
expectedGoals: 0.1758 -> 0.1859
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.42 (squad xG sum 1.4199, xG scale 1.0015, xA scale 1.1218, team xA 0.92 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.422
squad_xg_sum=1.4199
squad_xa_sum=0.8239
team_expected_assists=0.9243
team_xa_to_xg_ratio=0.65
expected_assists: 0.1899 -> 0.213
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 86.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.1699
goal_rate=0.1991
scorer_weight=0.1966
-
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.1918
assist_rate=0.1244
provider_weight=0.1704
-
Florian WirtzM7900.160.17ok21.57.054.830XGBoost 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.0123, quality 0.883)market_value_eur=81000000
quality_factor=0.8829
boost_factor=1.0123
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=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.391, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9578, 'skill_edge': -0.0007, 'height_edge': -0.028, 'attacker_skill': 0.8861, '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.1585}
aerialWon: 0.3131 -> 0.9
totalShots: 1.7368 -> 1.6635
shotOffTarget: 1.1296 -> 1.0819
onTargetScoringAttempt: 0.6071 -> 0.5815
expectedGoals: 0.1655 -> 0.1585
goals: 0.1634 -> 0.1565
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.42 (squad xG sum 1.4199, xG scale 1.0015, xA scale 1.1218, team xA 0.92 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.422
squad_xg_sum=1.4199
squad_xa_sum=0.8239
team_expected_assists=0.9243
team_xa_to_xg_ratio=0.65
expected_assists: 0.1688 -> 0.1894
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 86.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.1467
goal_rate=0.1565
scorer_weight=0.1572
-
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.1725
assist_rate=0.1493
provider_weight=0.1725
-
Alexis Mac AllisterM8800.140.0865%21.27.156.434XGBoost 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.0112, quality 0.879)market_value_eur=77000000
quality_factor=0.8792
boost_factor=1.0112
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': 'Yéremy Pino, Dwight McNeil, 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.42 (squad xG sum 1.4199, xG scale 1.0015, xA scale 1.1218, team xA 0.92 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.422
squad_xg_sum=1.4199
squad_xa_sum=0.8239
team_expected_assists=0.9243
team_xa_to_xg_ratio=0.65
expected_assists: 0.1153 -> 0.1293
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 84.0)match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_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.1285
goal_rate=0.1418
scorer_weight=0.1408
-
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.1213
assist_rate=0.0876
provider_weight=0.1076
-
Ryan GravenberchM7900.070.03102%10.86.956.233XGBoost 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.0118, quality 0.883)market_value_eur=81000000
quality_factor=0.8829
boost_factor=1.0118
reference_quality=0.505
history_matches=43
history_shrink=0.1042
-
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': '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.42 (squad xG sum 1.4199, xG scale 1.0015, xA scale 1.1218, team xA 0.92 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.422
squad_xg_sum=1.4199
squad_xa_sum=0.8239
team_expected_assists=0.9243
team_xa_to_xg_ratio=0.65
expected_assists: 0.0445 -> 0.0499
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 85.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.0659
goal_rate=0.0742
scorer_weight=0.0717
-
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.0487
assist_rate=0.0757
provider_weight=0.0624
-
Wataru EndoM8000.030.001355%00.16.811.418XGBoost 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.9922, quality 0.437)market_value_eur=2700000
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=true
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Jaydee Canvot', 'matchup_zone': 'RW vs CB', 'duel_win_rate': 0.219, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.7053, 'skill_edge': -0.1605, 'height_edge': -0.04, 'attacker_skill': 0.4374, 'defender_skill': 0.7941, 'attacker_role': 'RW', '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.0312}
aerialWon: 1.2863 -> 1.0
totalShots: 0.6426 -> 0.4532
shotOffTarget: 0.491 -> 0.3463
onTargetScoringAttempt: 0.1516 -> 0.1069
goals: 0.0701 -> 0.0494
expectedGoals: 0.0442 -> 0.0312
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.42 (squad xG sum 1.4199, xG scale 1.0015, xA scale 1.1218, team xA 0.92 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.422
squad_xg_sum=1.4199
squad_xa_sum=0.8239
team_expected_assists=0.9243
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 78.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.0307
goal_rate=0.0494
scorer_weight=0.0382
-
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.0371
assist_rate=0.0604
provider_weight=0.0473
-
Alexander IsakF7910.500.2787%31.26.943.418XGBoost 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.0222, quality 0.891)market_value_eur=93000000
quality_factor=0.8905
boost_factor=1.0222
reference_quality=0.505
history_matches=21
history_shrink=0.1923
-
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.275, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 1.1107, 'skill_edge': 0.0553, 'height_edge': 0.02, 'attacker_skill': 0.8905, '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.4985}
totalShots: 2.7489 -> 3.0532
shotOffTarget: 1.622 -> 1.8016
onTargetScoringAttempt: 1.1269 -> 1.2516
expectedGoalsOnTarget: 0.6991 -> 0.7765
goals: 0.54 -> 0.5998
expectedGoals: 0.4488 -> 0.4985
bigChanceMissed: 0.3738 -> 0.4152
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.42 (squad xG sum 1.4199, xG scale 1.0015, xA scale 1.1218, team xA 0.92 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.422
squad_xg_sum=1.4199
squad_xa_sum=0.8239
team_expected_assists=0.9243
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 86.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.3931
goal_rate=0.5998
scorer_weight=0.5916
-
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.0426
assist_rate=0.0203
provider_weight=0.0348
-
Team totals11.42156.9
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
AlissonG5.0m13.7%Market-value substitute prior
Jeremie FrimpongD14.7m35.0%Market-value substitute prior
Ronald AraújoD14.6m34.5%Market-value substitute prior
Trey NyoniM22.7m53.2%Market-value substitute prior
James McConnellM22.0m49.9%Market-value substitute prior
Bradley BarcolaF27.1m64.1%Market-value substitute prior
Antagonist / tactical summary
Midfield is evenly contested — Adam Wharton vs Dominik Szoboszlai will be the pivotal duel. Total antagonist xG — Home: 0.85, Away: 0.87. 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 49.5% / 50.5%, dominance ratio 0.46, key duel: Adam Wharton vs Dominik Szoboszlai
Jørgen Strand Larsen xG 0.33Yéremy Pino xG 0.12Dwight McNeil xG 0.13Dominik Szoboszlai xG 0.19Florian Wirtz xG 0.16Wataru Endo xG 0.03

Summary

Antagonist matchup analysis for Crystal Palace vs Liverpool. Most likely scoreline: 1-1. Lambdas derived from 7 home and 4 away individual player duels. Head-to-head: Crystal Palace 4W-3D-3L vs Liverpool 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 — Adam Wharton vs Dominik Szoboszlai will be the pivotal duel. Total antagonist xG — Home: 0.85, Away: 0.87. 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 Sociedad vs Rayo Vallecano

LaLiga · 20261108 · 4-4-2 vs 4-3-3
Predicted 2-1Winner: Real SociedadWinning H 2-1 (9.9%)Winning A 1-2 (5.5%)Confidence 0.7λ home/away 1.91 / 1.07Most-likely P 9.9%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset Tracing
Antagonist + XGBoost match analysis for Real Sociedad vs Rayo Vallecano. Player statistics regressed using position-specific XGBoost models (G, D, M, F) with 2026-2027 FBref priors. Micro-duels resolved across 4-4-2 vs 4-3-3 (duel lambdas: Home 1.874, Away 1.003). Final calibrated Poisson lambdas: Home 1.913, Away 1.071 (most likely score 2-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.87 / 1.00 Final λ (H/A) 1.91 / 1.07
FBref Team Priors: Real Sociedad (Gls/90: 0.75, GA/90: 0.75 → E[λ]: 0.739) vs Rayo Vallecano (Gls/90: 1.3333333333333333, GA/90: 1.33 → E[λ]: 0.741) | 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 SociedadRayo Vallecano
League position5.0011.00
Points per game1.701.26
Attack index1.121.00
Defense (concede) index1.151.09
Form multiplier1.020.97
Standing λ multiplier1.111.03

Lambda decomposition (how the goal rates were built)

StageReal Sociedad λRayo Vallecano λ
FBref Squad Prior E[λ] (weight 0.228)0.7390.741
Pre-competitive-floor1.8870.996
Pre-calibration (Micro-duels)1.8741.003
Final λ1.9131.071
competition calibration scale 1.035competition observed total goals 2.984quality gap applied Truemismatch score pressure applied Falsecompetitive underdog floor applied Falsestage discount 1.0

Scoreline distribution & markets

Top 5 scorelinesP
1-110.4%
2-19.9%
1-09.6%
2-09.3%
3-16.3%
Home win56.9%
Draw22.2%
Away win20.8%
Over 2.557.3%
BTTS yes56.1%
Pregame fair line — favorite Real Sociedad (56.9%), fair total 2.98, fair spread 0.84

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 Sociedad — projected line vs season baseline (4-4-2)

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Álex RemiroG9000.00-n/a0.07.162.233FBref 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=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.978 -> 2.9996
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 Camello, Álvaro García', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.0034}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.91 (squad xG sum 1.3935, xG scale 1.3728, xA scale 1.7141, team xA 1.24 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.913
squad_xg_sum=1.3935
squad_xa_sum=0.7254
team_expected_assists=1.2435
team_xa_to_xg_ratio=0.65
shots_faced: 9.5 -> 10.2
expected_saves: 2.32 -> 2.5
high_pressure_saves: 0.8 -> 0.86
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=2.1341
-
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.2255
-
Jon MartinD9000.100.0668%10.47.053.232FBref 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.0063, quality 0.669)market_value_eur=24000000
quality_factor=0.6685
boost_factor=1.0063
reference_quality=0.505
history_matches=34
history_shrink=0.1282
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0222)blend_weight=0.0222
history_matches=34
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.2667
competition=La Liga
interceptionWon: 1.2874 -> 1.2643
wonTackle: 0.8433 -> 0.8579
fouls: 1.411 -> 1.4019
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 Camello', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.91 (squad xG sum 1.3935, xG scale 1.3728, xA scale 1.7141, team xA 1.24 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.913
squad_xg_sum=1.3935
squad_xa_sum=0.7254
team_expected_assists=1.2435
team_xa_to_xg_ratio=0.65
expected_goals: 0.0734 -> 0.1008
expected_assists: 0.0088 -> 0.0151
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0959
goal_rate=0.1736
scorer_weight=0.126
-
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.015
assist_rate=0.126
provider_weight=0.0189
-
Sergio GómezD8600.020.02ok10.46.859.332FBref 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.0021, quality 0.575)market_value_eur=14600000
quality_factor=0.5748
boost_factor=1.0021
reference_quality=0.505
history_matches=45
history_shrink=0.1
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0165)blend_weight=0.0165
history_matches=45
season_overlap_discount=1.0
per90_to_match_factor=0.9584
prior_reliability=0.2533
competition=La Liga
totalCross: 4.2214 -> 4.2474
wasFouled: 0.339 -> 0.3334
fouls: 0.4172 -> 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': 'Jorge de Frutos', 'matchup_zone': 'Right Wing vs Left Back — Flank Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.91 (squad xG sum 1.3935, xG scale 1.3728, xA scale 1.7141, team xA 1.24 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.913
squad_xg_sum=1.3935
squad_xa_sum=0.7254
team_expected_assists=1.2435
team_xa_to_xg_ratio=0.65
expected_assists: 0.1029 -> 0.1764
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0182
goal_rate=0.0
scorer_weight=0.0147
-
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.1617
assist_rate=0.116
provider_weight=0.1915
-
Jon AramburuD8600.020.0447%10.46.759.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.0019, quality 0.567)market_value_eur=13900000
quality_factor=0.5671
boost_factor=1.0019
reference_quality=0.505
history_matches=43
history_shrink=0.1042
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0163)blend_weight=0.0163
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=0.9573
prior_reliability=0.24
competition=La Liga
fouls: 2.793 -> 2.8254
interceptionWon: 1.2068 -> 1.239
wonTackle: 1.6201 -> 1.6283
wasFouled: 1.6968 -> 1.7038
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': 'Álvaro García', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.91 (squad xG sum 1.3935, xG scale 1.3728, xA scale 1.7141, team xA 1.24 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.913
squad_xg_sum=1.3935
squad_xa_sum=0.7254
team_expected_assists=1.2435
team_xa_to_xg_ratio=0.65
expected_goals: 0.0143 -> 0.0196
expected_assists: 0.0243 -> 0.0417
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 77.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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0194
goal_rate=0.0045
scorer_weight=0.0166
-
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.0408
assist_rate=0.0
provider_weight=0.0334
-
Mamadou SarrD8700.090.03269%00.16.825.121FBref 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.0189, quality 0.669)market_value_eur=24000000
quality_factor=0.6685
boost_factor=1.0189
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': 'Sergio Camello', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.91 (squad xG sum 1.3935, xG scale 1.3728, xA scale 1.7141, team xA 1.24 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.913
squad_xg_sum=1.3935
squad_xa_sum=0.7254
team_expected_assists=1.2435
team_xa_to_xg_ratio=0.65
expected_goals: 0.0688 -> 0.0945
expected_assists: 0.008 -> 0.0137
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 77.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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0902
goal_rate=0.0
scorer_weight=0.0756
-
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.0136
assist_rate=0.0
provider_weight=0.0118
-
Luka SučićM8100.240.09156%21.26.955.434FBref 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.0037, quality 0.593)market_value_eur=16300000
quality_factor=0.5932
boost_factor=1.0037
reference_quality=0.505
history_matches=31
history_shrink=0.1389
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0187)blend_weight=0.0187
history_matches=31
season_overlap_discount=1.0
per90_to_match_factor=0.9029
prior_reliability=0.2067
competition=La Liga
totalCross: 1.0135 -> 1.0272
interceptionWon: 0.6075 -> 0.5962
totalShots: 1.671 -> 1.6774
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à Pedrosa', 'matchup_zone': 'Left Mid vs Right Back — Wide Channel', 'duel_win_rate': 0.57, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.1614, 'skill_edge': 0.0738, 'height_edge': 0.036, 'attacker_skill': 0.6121, 'defender_skill': 0.4481, 'attacker_role': 'LM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Adrià Pedrosa', 'market_value': 2700000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.4481}], 'xg_override': 0.1715}
aerialWon: 0.4427 -> 1.2
totalShots: 1.6774 -> 1.9481
shotOffTarget: 1.1072 -> 1.2859
onTargetScoringAttempt: 0.5641 -> 0.6551
expectedGoalsOnTarget: 0.2826 -> 0.3282
bigChanceMissed: 0.1874 -> 0.2176
goals: 0.1523 -> 0.1769
expectedGoals: 0.1477 -> 0.1715
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.91 (squad xG sum 1.3935, xG scale 1.3728, xA scale 1.7141, team xA 1.24 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.913
squad_xg_sum=1.3935
squad_xa_sum=0.7254
team_expected_assists=1.2435
team_xa_to_xg_ratio=0.65
expected_goals: 0.1715 -> 0.2354
expected_assists: 0.1243 -> 0.2131
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.2097
goal_rate=0.1769
scorer_weight=0.2411
-
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.1919
assist_rate=0.1376
provider_weight=0.2294
-
Carlos SolerM8400.150.0978%10.87.159.633FBref 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.9993, quality 0.482)market_value_eur=6600000
quality_factor=0.4818
boost_factor=0.9993
reference_quality=0.505
history_matches=42
history_shrink=0.1064
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0106)blend_weight=0.0106
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.9369
prior_reliability=0.1533
competition=La Liga
totalShots: 1.4607 -> 1.4495
wonTackle: 0.2835 -> 0.2934
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': 'Andrei Rațiu', 'matchup_zone': 'Right Mid vs Left Back — Wide Channel', 'duel_win_rate': 0.341, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 0.8254, 'skill_edge': -0.1068, 'height_edge': -0.012, 'attacker_skill': 0.4907, 'defender_skill': 0.728, 'attacker_role': 'RM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Andrei Rațiu', 'market_value': 22000000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.728}], 'xg_override': 0.1109}
aerialWon: 0.1221 -> 1.1
totalShots: 1.456 -> 1.2018
shotOffTarget: 1.0179 -> 0.8402
onTargetScoringAttempt: 0.4381 -> 0.3616
expectedGoalsOnTarget: 0.1844 -> 0.1522
goals: 0.1438 -> 0.1187
expectedGoals: 0.1343 -> 0.1109
bigChanceMissed: 0.0728 -> 0.0601
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.91 (squad xG sum 1.3935, xG scale 1.3728, xA scale 1.7141, team xA 1.24 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.913
squad_xg_sum=1.3935
squad_xa_sum=0.7254
team_expected_assists=1.2435
team_xa_to_xg_ratio=0.65
expected_goals: 0.1109 -> 0.1522
expected_assists: 0.1665 -> 0.2853
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.1412
goal_rate=0.1187
scorer_weight=0.1596
-
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.2482
assist_rate=0.1262
provider_weight=0.2322
-
Beñat TurrientesM7800.120.03355%10.66.949.733FBref 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.0010, quality 0.529)market_value_eur=10600000
quality_factor=0.5295
boost_factor=1.001
reference_quality=0.505
history_matches=32
history_shrink=0.1351
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0170)blend_weight=0.017
history_matches=32
season_overlap_discount=1.0
per90_to_match_factor=0.8618
prior_reliability=0.1933
competition=La Liga
fouls: 0.6634 -> 0.6521
wasFouled: 0.9162 -> 0.9057
onTargetScoringAttempt: 0.3734 -> 0.3824
interceptionWon: 0.435 -> 0.4276
wonTackle: 0.8128 -> 0.8192
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': 'Pathé Ismaël Ciss, Unai López', 'matchup_zone': 'CM vs CDM + CM', 'duel_win_rate': 0.36, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.0875, 'skill_edge': 0.0476, 'height_edge': 0.012, 'attacker_skill': 0.5431, 'defender_skill': 0.4374, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Pathé Ismaël Ciss', 'market_value': 1600000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4374}, {'player': 'Unai López', 'market_value': 2600000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.4374}], 'xg_override': 0.0838}
aerialWon: 0.2815 -> 1.0
totalShots: 1.0695 -> 1.1631
shotOffTarget: 0.6871 -> 0.7472
onTargetScoringAttempt: 0.3824 -> 0.4159
expectedGoalsOnTarget: 0.1996 -> 0.2171
goals: 0.0873 -> 0.0949
expectedGoals: 0.0771 -> 0.0838
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.91 (squad xG sum 1.3935, xG scale 1.3728, xA scale 1.7141, team xA 1.24 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.913
squad_xg_sum=1.3935
squad_xa_sum=0.7254
team_expected_assists=1.2435
team_xa_to_xg_ratio=0.65
expected_goals: 0.0838 -> 0.115
expected_assists: 0.0756 -> 0.1296
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.1086
goal_rate=0.0949
scorer_weight=0.1245
-
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.0667
provider_weight=0.1204
-
Jon GorrotxategiM7800.050.01705%10.16.950.027FBref 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.0068, quality 0.694)market_value_eur=27000000
quality_factor=0.6941
boost_factor=1.0068
reference_quality=0.505
history_matches=37
history_shrink=0.119
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0015)blend_weight=0.0015
history_matches=37
season_overlap_discount=1.0
per90_to_match_factor=0.8701
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': 'Pathé Ismaël Ciss, Unai López', 'matchup_zone': 'CM vs CDM + CM', 'duel_win_rate': 0.43, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.1912, 'skill_edge': 0.1261, 'height_edge': 0.004, 'attacker_skill': 0.7176, 'defender_skill': 0.4374, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Pathé Ismaël Ciss', 'market_value': 1600000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4374}, {'player': 'Unai López', 'market_value': 2600000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.4374}], 'xg_override': 0.0385}
totalShots: 0.4635 -> 0.5521
shotOffTarget: 0.3515 -> 0.4187
onTargetScoringAttempt: 0.112 -> 0.1334
aerialWon: 0.9891 -> 1.0
goals: 0.0451 -> 0.0537
expectedGoals: 0.0323 -> 0.0385
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.91 (squad xG sum 1.3935, xG scale 1.3728, xA scale 1.7141, team xA 1.24 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.913
squad_xg_sum=1.3935
squad_xa_sum=0.7254
team_expected_assists=1.2435
team_xa_to_xg_ratio=0.65
expected_goals: 0.0385 -> 0.0529
expected_assists: 0.0361 -> 0.0619
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_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0515
goal_rate=0.0537
scorer_weight=0.062
-
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.0453
provider_weight=0.0685
-
Mikel OyarzabalF8210.440.3238%31.67.162.835FBref 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.0058, quality 0.694)market_value_eur=27000000
quality_factor=0.6941
boost_factor=1.0058
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.9091
prior_reliability=0.2
competition=La Liga
wasFouled: 1.2792 -> 1.2904
wonTackle: 0.7353 -> 0.7255
goalAssist: 0.119 -> 0.1255
goals: 0.4055 -> 0.4001
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': 'Florian Lejeune, Mujaid Sadick', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.28, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.1183, 'skill_edge': 0.1065, 'height_edge': -0.026, 'attacker_skill': 0.6941, 'defender_skill': 0.4576, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Florian Lejeune', 'market_value': 1700000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'Mujaid Sadick', 'market_value': 4700000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4777}], 'xg_override': 0.3206}
totalShots: 2.2955 -> 2.5671
shotOffTarget: 1.3968 -> 1.562
onTargetScoringAttempt: 0.8987 -> 1.005
bigChanceMissed: 0.4844 -> 0.5417
goals: 0.4001 -> 0.4474
expectedGoals: 0.2867 -> 0.3206
expectedGoalsOnTarget: 0.2834 -> 0.3169
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.91 (squad xG sum 1.3935, xG scale 1.3728, xA scale 1.7141, team xA 1.24 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.913
squad_xg_sum=1.3935
squad_xa_sum=0.7254
team_expected_assists=1.2435
team_xa_to_xg_ratio=0.65
expected_goals: 0.3206 -> 0.4401
expected_assists: 0.1132 -> 0.194
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 90.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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=1
goal_probability=0.356
goal_rate=0.4474
scorer_weight=0.5501
-
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.1763
assist_rate=0.1255
provider_weight=0.2086
-
Orri ÓskarssonF7910.630.3390%31.56.854.730XGBoost 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.0062, quality 0.641)market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.0062
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=true
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Florian Lejeune, Mujaid Sadick', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.276, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.1124, 'skill_edge': 0.0824, 'height_edge': -0.006, 'attacker_skill': 0.6408, 'defender_skill': 0.4576, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Florian Lejeune', 'market_value': 1700000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'Mujaid Sadick', 'market_value': 4700000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4777}], 'xg_override': 0.4588}
totalShots: 2.4492 -> 2.7245
shotOffTarget: 1.3664 -> 1.52
bigChanceMissed: 1.1294 -> 1.2563
onTargetScoringAttempt: 1.0828 -> 1.2045
expectedGoalsOnTarget: 0.7421 -> 0.8255
goals: 0.4678 -> 0.5204
expectedGoals: 0.4124 -> 0.4588
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
goals: 1.0 -> 0
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.91 (squad xG sum 1.3935, xG scale 1.3728, xA scale 1.7141, team xA 1.24 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.913
squad_xg_sum=1.3935
squad_xa_sum=0.7254
team_expected_assists=1.2435
team_xa_to_xg_ratio=0.65
expected_goals: 0.4588 -> 0.6299
expected_assists: 0.0323 -> 0.0554
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 74.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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=1
goal_probability=0.4674
goal_rate=0.5204
scorer_weight=0.7062
-
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.0539
assist_rate=0.0
provider_weight=0.0443
-
Team totals21.91146.9
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Unai MarreroG4.4m10.9%Market-value substitute prior
Héctor FortD14.1m32.3%Market-value substitute prior
Igor ZubeldiaD24.9m31.6%Market-value substitute prior
Pablo MarínM22.2m50.8%Market-value substitute prior
Arsen ZakharyanM12.2m69.6%Market-value substitute prior
Takefusa KuboF18.9m44.7%Market-value substitute prior

Rayo Vallecano — projected line vs season baseline (4-3-3)

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Augusto BatallaG8600.00-n/a0.06.954.224FBref 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.472)market_value_eur=5800000
quality_factor=0.472
boost_factor=0.9988
reference_quality=0.505
history_matches=36
history_shrink=0.122
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0090)blend_weight=0.009
history_matches=36
season_overlap_discount=1.0
per90_to_match_factor=0.9524
prior_reliability=0.1133
competition=La Liga
saves: 2.851 -> 2.8405
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.8736}
-
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.07 (squad xG sum 1.2060, xG scale 0.8881, xA scale 0.8881, team xA 0.75 = 0.70 x lambda)scoreline_reset=true
team_lambda=1.071
squad_xg_sum=1.206
squad_xa_sum=0.8443
team_expected_assists=0.7498
team_xa_to_xg_ratio=0.7001
shots_faced: 17.8 -> 18.2
expected_saves: 4.36 -> 4.46
high_pressure_saves: 1.5 -> 1.53
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.0
scorer_weight=0.0
squad_weight_total=1.1385
-
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.7951
-
Florian LejeuneD9000.060.06ok11.47.061.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 0.9980, quality 0.437)market_value_eur=1700000
quality_factor=0.4374
boost_factor=0.998
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
interceptionWon: 1.2522 -> 1.2702
wonTackle: 0.9032 -> 0.9172
totalShots: 1.1275 -> 1.1344
fouls: 1.4091 -> 1.4039
wasFouled: 1.0765 -> 1.0713
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 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.07 (squad xG sum 1.2060, xG scale 0.8881, xA scale 0.8881, team xA 0.75 = 0.70 x lambda)scoreline_reset=true
team_lambda=1.071
squad_xg_sum=1.206
squad_xa_sum=0.8443
team_expected_assists=0.7498
team_xa_to_xg_ratio=0.7001
expected_goals: 0.063 -> 0.0559
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.0544
goal_rate=0.04
scorer_weight=0.0447
-
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.0136
assist_rate=0.008
provider_weight=0.0122
-
Andrei RațiuD9000.070.05ok10.86.960.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 1.0046, quality 0.650)market_value_eur=22000000
quality_factor=0.6503
boost_factor=1.0046
reference_quality=0.505
history_matches=42
history_shrink=0.1064
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0092)blend_weight=0.0092
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.9968
prior_reliability=0.1333
competition=La Liga
fouls: 0.5562 -> 0.5511
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': 'Right Mid vs Left 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.07 (squad xG sum 1.2060, xG scale 0.8881, xA scale 0.8881, team xA 0.75 = 0.70 x lambda)scoreline_reset=true
team_lambda=1.071
squad_xg_sum=1.206
squad_xa_sum=0.8443
team_expected_assists=0.7498
team_xa_to_xg_ratio=0.7001
expected_goals: 0.0736 -> 0.0654
expected_assists: 0.0832 -> 0.0739
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.0633
goal_rate=0.0789
scorer_weight=0.0682
-
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.0712
assist_rate=0.2162
provider_weight=0.0924
-
Adrià PedrosaD7900.030.0177%10.46.746.932FBref 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.437)market_value_eur=2700000
quality_factor=0.4374
boost_factor=0.9975
reference_quality=0.505
history_matches=35
history_shrink=0.125
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0038)blend_weight=0.0038
history_matches=35
season_overlap_discount=1.0
per90_to_match_factor=0.8797
prior_reliability=0.0467
competition=La Liga
fouls: 1.09 -> 1.0954
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': 'Luka Sučić', '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.07 (squad xG sum 1.2060, xG scale 0.8881, xA scale 0.8881, team xA 0.75 = 0.70 x lambda)scoreline_reset=true
team_lambda=1.071
squad_xg_sum=1.206
squad_xa_sum=0.8443
team_expected_assists=0.7498
team_xa_to_xg_ratio=0.7001
expected_assists: 0.1159 -> 0.1029
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.026
goal_rate=0.0853
scorer_weight=0.0329
-
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.0978
assist_rate=0.1002
provider_weight=0.0932
-
Mujaid SadickD8700.020.01101%00.16.840.310XGBoost 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.9937, quality 0.458)market_value_eur=4700000
quality_factor=0.4585
boost_factor=0.9937
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': '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 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.07 (squad xG sum 1.2060, xG scale 0.8881, xA scale 0.8881, team xA 0.75 = 0.70 x lambda)scoreline_reset=true
team_lambda=1.071
squad_xg_sum=1.206
squad_xa_sum=0.8443
team_expected_assists=0.7498
team_xa_to_xg_ratio=0.7001
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 84.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.0216
goal_rate=0.0
scorer_weight=0.0174
-
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.0042
assist_rate=0.0
provider_weight=0.0038
-
Unai LópezM8100.060.03108%10.67.253.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.9976, quality 0.437)market_value_eur=2600000
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.0136)blend_weight=0.0136
history_matches=38
season_overlap_discount=1.0
per90_to_match_factor=0.9012
prior_reliability=0.18
competition=La Liga
totalShots: 1.1845 -> 1.1729
fouls: 0.955 -> 0.9647
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': 'Beñat Turrientes', 'matchup_zone': 'Central Mid vs Central Mid — Box-to-Box Midfield Contest', 'duel_win_rate': 0.332, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.8713, 'skill_edge': -0.0476, 'height_edge': -0.04, 'attacker_skill': 0.4374, 'defender_skill': 0.5431, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Beñat Turrientes', 'market_value': 10600000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.5431}], 'xg_override': 0.0637}
aerialWon: 0.5488 -> 0.8
totalShots: 1.1846 -> 1.0322
shotOffTarget: 0.861 -> 0.7502
onTargetScoringAttempt: 0.3236 -> 0.282
goals: 0.102 -> 0.0889
expectedGoalsOnTarget: 0.0893 -> 0.0778
expectedGoals: 0.0731 -> 0.0637
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.07 (squad xG sum 1.2060, xG scale 0.8881, xA scale 0.8881, team xA 0.75 = 0.70 x lambda)scoreline_reset=true
team_lambda=1.071
squad_xg_sum=1.206
squad_xa_sum=0.8443
team_expected_assists=0.7498
team_xa_to_xg_ratio=0.7001
expected_goals: 0.0637 -> 0.0566
expected_assists: 0.151 -> 0.134
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 76.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.055
goal_rate=0.0889
scorer_weight=0.0691
-
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.1254
assist_rate=0.0986
provider_weight=0.1072
-
Pathé Ismaël CissM9000.060.1047%10.56.962.231XGBoost 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.9976, quality 0.437)market_value_eur=1600000
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': 'Beñat Turrientes', 'matchup_zone': 'Holding Mid vs Central Mid — Midfield Anchor Duel', 'duel_win_rate': 0.368, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9536, 'skill_edge': -0.0476, 'height_edge': 0.016, 'attacker_skill': 0.4374, 'defender_skill': 0.5431, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Beñat Turrientes', 'market_value': 10600000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.5431}], 'xg_override': 0.0627}
aerialWon: 1.4438 -> 1.1
totalShots: 0.6737 -> 0.6425
shotOffTarget: 0.5027 -> 0.4794
bigChanceMissed: 0.2374 -> 0.2264
onTargetScoringAttempt: 0.171 -> 0.1631
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.07 (squad xG sum 1.2060, xG scale 0.8881, xA scale 0.8881, team xA 0.75 = 0.70 x lambda)scoreline_reset=true
team_lambda=1.071
squad_xg_sum=1.206
squad_xa_sum=0.8443
team_expected_assists=0.7498
team_xa_to_xg_ratio=0.7001
expected_goals: 0.0627 -> 0.0557
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.0542
goal_rate=0.0691
scorer_weight=0.0589
-
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.0288
assist_rate=0.0608
provider_weight=0.0365
-
Pedro DíazM8000.110.0685%21.46.958.033FBref 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.9979, quality 0.437)market_value_eur=2900000
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.0023)blend_weight=0.0023
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=0.8847
prior_reliability=0.0333
competition=La Liga
totalCross: 0.9842 -> 0.9979
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': 'Beñat Turrientes', 'matchup_zone': 'Central Mid vs Central Mid — Box-to-Box Midfield Contest', 'duel_win_rate': 0.378, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9378, 'skill_edge': -0.0463, 'height_edge': 0.004, 'attacker_skill': 0.4402, 'defender_skill': 0.5431, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Beñat Turrientes', 'market_value': 10600000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.5431}], 'xg_override': 0.1245}
aerialWon: 0.11 -> 1.1
totalShots: 1.9991 -> 1.8748
shotOffTarget: 1.3477 -> 1.2639
onTargetScoringAttempt: 0.6514 -> 0.6109
goals: 0.1398 -> 0.1311
expectedGoals: 0.1328 -> 0.1245
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.07 (squad xG sum 1.2060, xG scale 0.8881, xA scale 0.8881, team xA 0.75 = 0.70 x lambda)scoreline_reset=true
team_lambda=1.071
squad_xg_sum=1.206
squad_xa_sum=0.8443
team_expected_assists=0.7498
team_xa_to_xg_ratio=0.7001
expected_goals: 0.1245 -> 0.1106
expected_assists: 0.1153 -> 0.1024
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 75.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.1047
goal_rate=0.1311
scorer_weight=0.1148
-
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.0973
assist_rate=0.1085
provider_weight=0.0982
-
Sergio CamelloF7010.220.18ok21.57.249.231FBref 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.0011, quality 0.533)market_value_eur=10900000
quality_factor=0.533
boost_factor=1.0011
reference_quality=0.505
history_matches=32
history_shrink=0.1351
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0123)blend_weight=0.0123
history_matches=32
season_overlap_discount=1.0
per90_to_match_factor=0.7779
prior_reliability=0.14
competition=La Liga
wasFouled: 1.2804 -> 1.292
goals: 0.3215 -> 0.3312
totalCross: 0.1353 -> 0.1427
onTargetScoringAttempt: 0.9342 -> 0.9407
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, Mamadou Sarr', '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.7948, 'skill_edge': -0.0896, 'height_edge': -0.05, 'attacker_skill': 0.533, 'defender_skill': 0.732, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Jon Martin', 'market_value': 24000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.732}, {'player': 'Mamadou Sarr', 'market_value': 24000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.732}], 'xg_override': 0.2498}
totalShots: 2.2732 -> 1.8068
shotOffTarget: 1.3325 -> 1.0591
onTargetScoringAttempt: 0.9407 -> 0.7477
expectedGoalsOnTarget: 0.375 -> 0.298
bigChanceMissed: 0.3646 -> 0.2898
goals: 0.3312 -> 0.2632
expectedGoals: 0.3143 -> 0.2498
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.07 (squad xG sum 1.2060, xG scale 0.8881, xA scale 0.8881, team xA 0.75 = 0.70 x lambda)scoreline_reset=true
team_lambda=1.071
squad_xg_sum=1.206
squad_xa_sum=0.8443
team_expected_assists=0.7498
team_xa_to_xg_ratio=0.7001
expected_goals: 0.2498 -> 0.2219
expected_assists: 0.1251 -> 0.1111
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 74.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=1
goal_probability=0.199
goal_rate=0.2632
scorer_weight=0.2318
-
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.1052
assist_rate=0.218
provider_weight=0.1389
-
Jorge de FrutosF7200.160.20ok21.26.862.536XGBoost 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.0009, quality 0.533)market_value_eur=10900000
quality_factor=0.533
boost_factor=1.0009
reference_quality=0.505
history_matches=44
history_shrink=0.102
-
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 Gómez', 'matchup_zone': 'Right Wing vs Left Back — Flank Battle', 'duel_win_rate': 0.44, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9414, 'skill_edge': -0.0479, 'height_edge': 0.008, 'attacker_skill': 0.533, 'defender_skill': 0.6394, 'attacker_role': 'RW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Sergio Gómez', 'market_value': 14600000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.6394}], 'xg_override': 0.1812}
totalShots: 1.5184 -> 1.4294
shotOffTarget: 0.8093 -> 0.7619
onTargetScoringAttempt: 0.7091 -> 0.6675
expectedGoalsOnTarget: 0.3493 -> 0.3288
goals: 0.2819 -> 0.2654
expectedGoals: 0.1925 -> 0.1812
bigChanceMissed: 0.088 -> 0.0828
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.07 (squad xG sum 1.2060, xG scale 0.8881, xA scale 0.8881, team xA 0.75 = 0.70 x lambda)scoreline_reset=true
team_lambda=1.071
squad_xg_sum=1.206
squad_xa_sum=0.8443
team_expected_assists=0.7498
team_xa_to_xg_ratio=0.7001
expected_goals: 0.1812 -> 0.1609
expected_assists: 0.0565 -> 0.0502
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 81.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: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1486
goal_rate=0.2654
scorer_weight=0.2011
-
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.049
assist_rate=0.1657
provider_weight=0.0628
-
Álvaro GarcíaF7700.180.16ok11.06.955.238FBref 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.9978, quality 0.437)market_value_eur=1500000
quality_factor=0.4374
boost_factor=0.9978
reference_quality=0.505
history_matches=42
history_shrink=0.1064
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0101)blend_weight=0.0101
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.8508
prior_reliability=0.1467
competition=La Liga
totalCross: 3.5776 -> 3.5648
totalShots: 1.6597 -> 1.6508
fouls: 0.4655 -> 0.4725
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': 'Jon Aramburu', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.362, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.8258, 'skill_edge': -0.0865, 'height_edge': -0.032, 'attacker_skill': 0.4374, 'defender_skill': 0.6297, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Jon Aramburu', 'market_value': 13900000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.6297}], 'xg_override': 0.2028}
totalShots: 1.6581 -> 1.3693
shotOffTarget: 1.1059 -> 0.9133
onTargetScoringAttempt: 0.5522 -> 0.456
goals: 0.252 -> 0.2081
expectedGoals: 0.2456 -> 0.2028
expectedGoalsOnTarget: 0.2418 -> 0.1997
bigChanceMissed: 0.2102 -> 0.1736
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.07 (squad xG sum 1.2060, xG scale 0.8881, xA scale 0.8881, team xA 0.75 = 0.70 x lambda)scoreline_reset=true
team_lambda=1.071
squad_xg_sum=1.206
squad_xa_sum=0.8443
team_expected_assists=0.7498
team_xa_to_xg_ratio=0.7001
expected_goals: 0.2028 -> 0.1801
expected_assists: 0.0996 -> 0.0885
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.1648
goal_rate=0.2081
scorer_weight=0.1839
-
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.0847
assist_rate=0.1809
provider_weight=0.1106
-
Team totals11.07156.9
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Emil AuderoG4.4m10.9%Market-value substitute prior
Marash KumbullaD13.6m29.9%Market-value substitute prior
Luiz FelipeD13.6m29.9%Market-value substitute prior
Isi PalazónM22.0m49.9%Market-value substitute prior
Óscar ValentínM29.7m43.5%Market-value substitute prior
AlemãoF25.4m56.2%Market-value substitute prior
Antagonist / tactical summary
Home midfield dominates with ~52% possession expected (Jon Gorrotxategi vs Pedro Díaz). Total antagonist xG — Home: 1.18, Away: 0.88. 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.4% / 47.6%, dominance ratio 0.58, key duel: Jon Gorrotxategi vs Pedro Díaz
Mikel Oyarzabal xG 0.32Orri Óskarsson xG 0.46Luka Sučić xG 0.17Álvaro García xG 0.20Jorge de Frutos xG 0.18Sergio Camello xG 0.25

Summary

Antagonist matchup analysis for Real Sociedad vs Rayo Vallecano. Most likely scoreline: 2-1. Lambdas derived from 6 home and 6 away individual player duels. Head-to-head: Real Sociedad 3W-5D-2L vs Rayo Vallecano over 10 meetings.
Tactical parity between 4-4-2 and 4-3-3. Match outcome driven primarily by individual player quality. Home midfield dominates with ~52% possession expected (Jon Gorrotxategi vs Pedro Díaz). Total antagonist xG — Home: 1.18, Away: 0.88. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.


Generated 2026-11-03 14:38:27 UTC · Soccer prediction reporting