Soccer predictions: actual data vs predicted data

Slate 20261031 · 12 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
Barcelona vs Alavés
LaLiga
3-1Barcelona82.3% / 9.9% / 7.8%88.7%70.9%0.833.86 / 1.29-pending
Levante vs Atlético Madrid
LaLiga
1-2Atlético Madrid18.9% / 19.5% / 61.5%67.1%62.4%0.771.19 / 2.27-pending
Man City vs Brighton
Premier League
2-1Man City68.6% / 16.7% / 14.6%72.6%63.5%0.792.62 / 1.15-pending
Rayo Vallecano vs Celta
LaLiga
2-1Rayo Vallecano47.3% / 23.9% / 28.7%57.3%59.1%0.731.70 / 1.28-pending
Tottenham vs Crystal Palace
Premier League
1-0Tottenham43.6% / 25.3% / 31.1%52.6%56.0%0.721.53 / 1.25-pending
Aston Villa vs Fulham
Premier League
1-0Aston Villa55.4% / 23.4% / 21.2%52.6%52.7%0.751.78 / 1.00-pending
Hull vs Ipswich
Premier League
1-1Draw38.0% / 25.6% / 36.4%52.6%56.5%0.71.41 / 1.37-pending
Bournemouth vs Leeds
Premier League
1-0Bournemouth45.4% / 25.1% / 29.5%52.6%55.7%0.731.57 / 1.22-pending
Real Betis vs Málaga
LaLiga
2-0Real Betis67.7% / 19.1% / 13.2%57.3%49.9%0.792.15 / 0.83-pending
Chelsea vs Man Utd
Premier League
2-1Chelsea43.2% / 23.9% / 32.9%59.5%61.5%0.711.66 / 1.42-pending
Brentford vs Forest
Premier League
1-0Brentford51.4% / 24.3% / 24.3%52.6%54.2%0.751.69 / 1.09-pending
Coventry vs Sunderland
Premier League
1-1Draw37.1% / 25.6% / 37.3%52.6%56.5%0.691.39 / 1.39-pending

Match detail

Barcelona vs Alavés

LaLiga · 20261031 · 4-3-3 vs 4-4-2
Predicted 3-1Winner: BarcelonaWinning H 3-1 (7.2%)Winning A 1-2 (1.9%)Confidence 0.83λ home/away 3.86 / 1.29Most-likely P 7.2%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset Tracing
Antagonist + XGBoost match analysis for Barcelona vs Alavés. 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-4-2 (duel lambdas: Home 4.442, Away 1.429). Final calibrated Poisson lambdas: Home 3.863, Away 1.288 (most likely score 3-1).
Home Starters 10/11 XGBoost (9 FBref) Away Starters 11/11 XGBoost (8 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 4.44 / 1.43 Final λ (H/A) 3.86 / 1.29
FBref Team Priors: FC Barcelona (Gls/90: 3.6666666666666665, GA/90: 4.0 → E[λ]: 3.5) vs Deportivo Alavés (Gls/90: 1.6666666666666667, GA/90: 1.67 → 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

MetricBarcelonaAlavés
League position1.007.00
Points per game2.201.26
Attack index1.760.97
Defense (concede) index0.880.88
Form multiplier1.040.96
Standing λ multiplier1.200.93

Lambda decomposition (how the goal rates were built)

StageBarcelona λAlavés λ
FBref Squad Prior E[λ] (weight 0.228)3.5003.500
Pre-mismatch5.0961.327
Pre-calibration (Micro-duels)4.4421.429
Final λ3.8631.288
competition calibration scale 0.85competition 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
3-17.2%
4-17.0%
2-15.6%
3-05.6%
4-05.4%
Home win82.3%
Draw9.9%
Away win7.8%
Over 2.588.7%
BTTS yes70.9%
Pregame fair line — favorite Barcelona (82.3%), fair total 5.15, fair spread 2.58

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.

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Joan GarcíaG8600.00-n/a0.06.960.932FBref 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.0104, quality 0.809)market_value_eur=46000000
quality_factor=0.8089
boost_factor=1.0104
reference_quality=0.505
history_matches=39
history_shrink=0.1136
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0148)blend_weight=0.0148
history_matches=39
season_overlap_discount=1.0
per90_to_match_factor=0.9561
prior_reliability=0.2
competition=La Liga
saves: 2.9953 -> 2.9746
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Toni Martínez, Lucas Boyé', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.4285}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 3 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=3
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 3.86 (squad xG sum 2.6208, xG scale 1.4740, xA scale 1.6297, team xA 2.51 = 0.65 x lambda)scoreline_reset=true
team_lambda=3.863
squad_xg_sum=2.6208
squad_xa_sum=1.5408
team_expected_assists=2.511
team_xa_to_xg_ratio=0.65
shots_faced: 13.6 -> 12.2
expected_saves: 3.33 -> 2.98
high_pressure_saves: 1.14 -> 1.03
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: 3 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=3
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=4.4245
-
integer_assist_projectionTeam scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=2
assists_allocated=0
assist_probability=0.0
provider_weight=0.0
squad_weight_total=2.7263
-
Brian FariñasM9000.13-n/a20.06.9-9Prior M_service
Step-by-step (8 steps)
StepDescriptionKey paramsChanges
market_value_priorMarket-value baseline for position M (quality 0.47)market_value_eur=5500000
quality_factor=0.4683
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Pablo Ibáñez', 'matchup_zone': 'Central Mid vs Central Mid — Box-to-Box Midfield Contest', 'duel_win_rate': 0.433, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0185, 'skill_edge': 0.0086, 'height_edge': 0.004, 'attacker_skill': 0.4758, 'defender_skill': 0.4567, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Pablo Ibáñez', 'market_value': 4099999, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.4567}], 'xg_override': 0.0876}
aerialWon: 1.2 -> 1.1
totalShots: 1.3 -> 1.324
onTargetScoringAttempt: 0.6 -> 0.6111
shotOffTarget: 0.5 -> 0.5092
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 3 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=3
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 3.86 (squad xG sum 2.6208, xG scale 1.4740, xA scale 1.6297, team xA 2.51 = 0.65 x lambda)scoreline_reset=true
team_lambda=3.863
squad_xg_sum=2.6208
squad_xa_sum=1.5408
team_expected_assists=2.511
team_xa_to_xg_ratio=0.65
expected_goals: 0.0876 -> 0.1291
expected_assists: 0.133 -> 0.2167
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 83.0)match_squad_rank=14
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 3 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=3
allocation_applied=true
goals_allocated=0
goal_probability=0.1211
goal_rate=0.0713
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.1948
assist_rate=0.11
provider_weight=0.1895
-
Pau CubarsíD8700.050.02113%00.27.053.433FBref 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.0135, quality 0.891)market_value_eur=94000000
quality_factor=0.891
boost_factor=1.0135
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.9617
prior_reliability=0.1333
competition=La Liga
wonTackle: 0.7281 -> 0.7353
interceptionWon: 1.1709 -> 1.1639
totalShots: 0.424 -> 0.4294
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Lucas Boyé', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 3 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=3
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 3.86 (squad xG sum 2.6208, xG scale 1.4740, xA scale 1.6297, team xA 2.51 = 0.65 x lambda)scoreline_reset=true
team_lambda=3.863
squad_xg_sum=2.6208
squad_xa_sum=1.5408
team_expected_assists=2.511
team_xa_to_xg_ratio=0.65
expected_goals: 0.0308 -> 0.0454
expected_assists: 0.0963 -> 0.1569
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 86.0)match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 3 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=3
allocation_applied=true
goals_allocated=0
goal_probability=0.0444
goal_rate=0.0081
scorer_weight=0.0363
-
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.1452
assist_rate=0.2563
provider_weight=0.1961
-
Frenkie de JongM8900.110.04153%10.27.051.818XGBoost 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.0075, quality 0.660)market_value_eur=23000000
quality_factor=0.6595
boost_factor=1.0075
reference_quality=0.505
history_matches=26
history_shrink=0.1613
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Pablo Ibáñez', 'matchup_zone': 'Central Mid vs Central Mid — Box-to-Box Midfield Contest', 'duel_win_rate': 0.525, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.155, 'skill_edge': 0.1014, 'height_edge': 0.004, 'attacker_skill': 0.6821, 'defender_skill': 0.4567, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Pablo Ibáñez', 'market_value': 4099999, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.4567}], 'xg_override': 0.0767}
aerialWon: 0.5341 -> 1.1
totalShots: 0.6719 -> 0.776
shotOffTarget: 0.4821 -> 0.5568
onTargetScoringAttempt: 0.1898 -> 0.2192
expectedGoalsOnTarget: 0.1048 -> 0.121
goals: 0.0747 -> 0.0863
expectedGoals: 0.0664 -> 0.0767
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 3 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=3
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 3.86 (squad xG sum 2.6208, xG scale 1.4740, xA scale 1.6297, team xA 2.51 = 0.65 x lambda)scoreline_reset=true
team_lambda=3.863
squad_xg_sum=2.6208
squad_xa_sum=1.5408
team_expected_assists=2.511
team_xa_to_xg_ratio=0.65
expected_goals: 0.0767 -> 0.1131
expected_assists: 0.102 -> 0.1662
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: 3 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=3
allocation_applied=true
goals_allocated=0
goal_probability=0.1069
goal_rate=0.0863
scorer_weight=0.1217
-
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.1531
assist_rate=0.0851
provider_weight=0.1477
-
João CanceloD8400.060.02188%10.66.850.432FBref 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.9993, quality 0.493)market_value_eur=7500000
quality_factor=0.4927
boost_factor=0.9993
reference_quality=0.505
history_matches=23
history_shrink=0.1786
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0023)blend_weight=0.0023
history_matches=23
season_overlap_discount=1.0
per90_to_match_factor=0.937
prior_reliability=0.02
competition=La Liga
totalCross: 2.686 -> 2.6798
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Toni Martínez', 'matchup_zone': 'Shape fallback'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 3 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=3
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 3.86 (squad xG sum 2.6208, xG scale 1.4740, xA scale 1.6297, team xA 2.51 = 0.65 x lambda)scoreline_reset=true
team_lambda=3.863
squad_xg_sum=2.6208
squad_xa_sum=1.5408
team_expected_assists=2.511
team_xa_to_xg_ratio=0.65
expected_goals: 0.0392 -> 0.0578
expected_assists: 0.1491 -> 0.243
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: 3 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=3
allocation_applied=true
goals_allocated=0
goal_probability=0.0562
goal_rate=0.2556
scorer_weight=0.0722
-
integer_assist_projectionTeam scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=2
assists_allocated=0
assist_probability=0.2157
assist_rate=0.0624
provider_weight=0.1944
-
PedriM8300.130.04223%10.57.263.129FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0135, quality 0.900)market_value_eur=164000000
quality_factor=0.8997
boost_factor=1.0135
reference_quality=0.505
history_matches=39
history_shrink=0.1136
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0113)blend_weight=0.0113
history_matches=39
season_overlap_discount=1.0
per90_to_match_factor=0.9171
prior_reliability=0.1533
competition=La Liga
wonTackle: 0.9198 -> 0.9274
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Pablo Ibáñez', 'matchup_zone': 'Central Mid vs Central Mid — Box-to-Box Midfield Contest', 'duel_win_rate': 0.599, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.2638, 'skill_edge': 0.1994, 'height_edge': -0.02, 'attacker_skill': 0.8999, 'defender_skill': 0.4567, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Pablo Ibáñez', 'market_value': 4099999, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.4567}], 'xg_override': 0.091}
aerialWon: 0.2217 -> 0.9
totalShots: 0.7873 -> 0.995
shotOffTarget: 0.59 -> 0.7456
onTargetScoringAttempt: 0.195 -> 0.2464
goals: 0.0944 -> 0.1193
expectedGoals: 0.072 -> 0.091
expectedGoalsOnTarget: 0.0482 -> 0.0609
bigChanceMissed: 0.0224 -> 0.0283
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 3 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=3
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 3.86 (squad xG sum 2.6208, xG scale 1.4740, xA scale 1.6297, team xA 2.51 = 0.65 x lambda)scoreline_reset=true
team_lambda=3.863
squad_xg_sum=2.6208
squad_xa_sum=1.5408
team_expected_assists=2.511
team_xa_to_xg_ratio=0.65
expected_goals: 0.091 -> 0.1341
expected_assists: 0.2018 -> 0.3289
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 90.0)match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 3 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=3
allocation_applied=true
goals_allocated=0
goal_probability=0.1255
goal_rate=0.1193
scorer_weight=0.161
-
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.2803
assist_rate=0.2228
provider_weight=0.3563
-
Fermín LópezM7700.340.2536%31.87.062.131FBref 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.0133, quality 0.896)market_value_eur=113000000
quality_factor=0.8965
boost_factor=1.0133
reference_quality=0.505
history_matches=39
history_shrink=0.1136
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0113)blend_weight=0.0113
history_matches=39
season_overlap_discount=1.0
per90_to_match_factor=0.8559
prior_reliability=0.1533
competition=La Liga
onTargetScoringAttempt: 0.7314 -> 0.7441
goals: 0.1863 -> 0.1968
wasFouled: 0.8553 -> 0.8625
wonTackle: 0.4933 -> 0.5004
totalCross: 1.6194 -> 1.6137
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Pablo Ibáñez', 'matchup_zone': 'Central Mid vs Central Mid — Box-to-Box Midfield Contest', 'duel_win_rate': 0.607, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.2744, 'skill_edge': 0.1986, 'height_edge': -0.012, 'attacker_skill': 0.8981, 'defender_skill': 0.4567, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Pablo Ibáñez', 'market_value': 4099999, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.4567}], 'xg_override': 0.2295}
totalShots: 2.0116 -> 2.5636
aerialWon: 0.5412 -> 0.9
shotOffTarget: 1.2675 -> 1.6153
onTargetScoringAttempt: 0.7441 -> 0.9483
expectedGoalsOnTarget: 0.4775 -> 0.6085
goals: 0.1968 -> 0.2508
expectedGoals: 0.1801 -> 0.2295
bigChanceMissed: 0.1588 -> 0.2024
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 3 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=3
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 3.86 (squad xG sum 2.6208, xG scale 1.4740, xA scale 1.6297, team xA 2.51 = 0.65 x lambda)scoreline_reset=true
team_lambda=3.863
squad_xg_sum=2.6208
squad_xa_sum=1.5408
team_expected_assists=2.511
team_xa_to_xg_ratio=0.65
expected_goals: 0.2295 -> 0.3383
expected_assists: 0.1662 -> 0.2708
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 90.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: 3 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=3
allocation_applied=true
goals_allocated=0
goal_probability=0.287
goal_rate=0.2508
scorer_weight=0.3641
-
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.2372
assist_rate=0.1934
provider_weight=0.3049
-
RodriM8300.180.07151%10.77.367.727FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0142, quality 0.837)market_value_eur=54000000
quality_factor=0.837
boost_factor=1.0142
reference_quality=0.505
history_matches=30
history_shrink=0.1429
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0037)blend_weight=0.0037
history_matches=30
season_overlap_discount=1.0
per90_to_match_factor=0.9259
prior_reliability=0.04
competition=La Liga
wonTackle: 1.3958 -> 1.3906
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Pablo Ibáñez', 'matchup_zone': 'Holding Mid vs Central Mid — Midfield Anchor Duel', 'duel_win_rate': 0.629, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.3373, 'skill_edge': 0.1815, 'height_edge': 0.048, 'attacker_skill': 0.8599, 'defender_skill': 0.4567, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Pablo Ibáñez', 'market_value': 4099999, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.4567}], 'xg_override': 0.1252}
totalShots: 0.8991 -> 1.2024
aerialWon: 1.5695 -> 1.3
shotOffTarget: 0.5837 -> 0.7806
onTargetScoringAttempt: 0.3154 -> 0.4218
expectedGoalsOnTarget: 0.1386 -> 0.1853
goals: 0.1042 -> 0.1393
bigChanceMissed: 0.0953 -> 0.1274
expectedGoals: 0.0936 -> 0.1252
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 3 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=3
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 3.86 (squad xG sum 2.6208, xG scale 1.4740, xA scale 1.6297, team xA 2.51 = 0.65 x lambda)scoreline_reset=true
team_lambda=3.863
squad_xg_sum=2.6208
squad_xa_sum=1.5408
team_expected_assists=2.511
team_xa_to_xg_ratio=0.65
expected_goals: 0.1252 -> 0.1845
expected_assists: 0.1147 -> 0.1869
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 90.0)match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 3 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=3
allocation_applied=true
goals_allocated=0
goal_probability=0.1685
goal_rate=0.1393
scorer_weight=0.1994
-
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.1705
assist_rate=0.107
provider_weight=0.1782
-
Lamine YamalF8310.950.4896%63.78.266.232FBref 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.0138, quality 0.900)market_value_eur=237000000
quality_factor=0.9
boost_factor=1.0138
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.9208
prior_reliability=0.18
competition=La Liga
totalOffside: 0.7127 -> 0.7308
totalCross: 2.7226 -> 2.7366
goalAssist: 0.6608 -> 0.6518
fouls: 1.3046 -> 1.2961
interceptionWon: 0.2848 -> 0.2902
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Nahuel Tenaglia, Ville Koski', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.395, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.2867, 'skill_edge': 0.197, 'height_edge': -0.002, 'attacker_skill': 0.9, 'defender_skill': 0.4622, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Nahuel Tenaglia', 'market_value': 3200000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4531}, {'player': 'Ville Koski', 'market_value': 4300000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4712}], 'xg_override': 0.6414}
totalShots: 4.8881 -> 6.2896
shotOffTarget: 3.4296 -> 4.4129
onTargetScoringAttempt: 1.4585 -> 1.8767
goals: 0.6802 -> 0.8752
expectedGoalsOnTarget: 0.5994 -> 0.7712
expectedGoals: 0.4985 -> 0.6414
bigChanceMissed: 0.4274 -> 0.5499
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 3 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=3
goals: 1.0 -> 0
assists: 1.0 -> 0
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 3.86 (squad xG sum 2.6208, xG scale 1.4740, xA scale 1.6297, team xA 2.51 = 0.65 x lambda)scoreline_reset=true
team_lambda=3.863
squad_xg_sum=2.6208
squad_xa_sum=1.5408
team_expected_assists=2.511
team_xa_to_xg_ratio=0.65
expected_goals: 0.6414 -> 0.9454
expected_assists: 0.2496 -> 0.4069
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: 3 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=3
allocation_applied=true
goals_allocated=1
goal_probability=0.6115
goal_rate=0.8752
scorer_weight=1.1818
-
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.3343
assist_rate=0.6518
provider_weight=0.5086
-
RaphinhaF7921.210.52132%52.37.958.927FBref 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.0147, quality 0.859)market_value_eur=63000000
quality_factor=0.8589
boost_factor=1.0147
reference_quality=0.505
history_matches=31
history_shrink=0.1389
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0150)blend_weight=0.015
history_matches=31
season_overlap_discount=1.0
per90_to_match_factor=0.8749
prior_reliability=0.1667
competition=La Liga
totalCross: 2.6259 -> 2.639
goals: 0.9037 -> 0.9164
onTargetScoringAttempt: 1.6214 -> 1.6337
fouls: 0.2857 -> 0.2972
totalOffside: 0.5786 -> 0.5857
wonTackle: 0.361 -> 0.3556
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Jonny Otto', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.674, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.2847, 'skill_edge': 0.1897, 'height_edge': 0.004, 'attacker_skill': 0.8589, 'defender_skill': 0.4374, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Jonny Otto', 'market_value': 2100000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.4374}], 'xg_override': 0.8222}
totalShots: 3.7706 -> 4.8441
shotOffTarget: 2.1369 -> 2.7453
onTargetScoringAttempt: 1.6337 -> 2.0988
expectedGoalsOnTarget: 0.9631 -> 1.2373
goals: 0.9164 -> 1.1773
expectedGoals: 0.64 -> 0.8222
bigChanceMissed: 0.6265 -> 0.8049
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 3 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=3
goals: 1.0 -> 0
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 3.86 (squad xG sum 2.6208, xG scale 1.4740, xA scale 1.6297, team xA 2.51 = 0.65 x lambda)scoreline_reset=true
team_lambda=3.863
squad_xg_sum=2.6208
squad_xa_sum=1.5408
team_expected_assists=2.511
team_xa_to_xg_ratio=0.65
expected_goals: 0.8222 -> 1.2119
expected_assists: 0.1493 -> 0.2433
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: 3 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=3
allocation_applied=true
goals_allocated=2
goal_probability=0.7024
goal_rate=1.1773
scorer_weight=1.5149
-
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.216
assist_rate=0.2542
provider_weight=0.3041
-
Karim AdeyemiF7500.450.3433%31.27.055.314FBref 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.0281, quality 0.786)market_value_eur=41000000
quality_factor=0.7859
boost_factor=1.0281
reference_quality=0.505
history_matches=10
history_shrink=0.3333
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0145)blend_weight=0.0145
history_matches=10
season_overlap_discount=1.0
per90_to_match_factor=0.8362
prior_reliability=0.0667
competition=La Liga
onTargetScoringAttempt: 0.7899 -> 0.8151
wasFouled: 2.7356 -> 2.7202
goals: 0.1975 -> 0.2067
goalAssist: 0.3397 -> 0.3469
totalShots: 2.0611 -> 2.0679
totalOffside: 0.3996 -> 0.3938
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 Novoa', 'matchup_zone': 'Right Wing vs Left Back — Flank Battle', 'duel_win_rate': 0.629, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.2188, 'skill_edge': 0.1568, 'height_edge': -0.008, 'attacker_skill': 0.7859, 'defender_skill': 0.4374, 'attacker_role': 'RW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Hugo Novoa', 'market_value': 725000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.4374}], 'xg_override': 0.306}
totalShots: 2.0862 -> 2.5427
bigChanceMissed: 1.4188 -> 1.7292
shotOffTarget: 1.2711 -> 1.5492
onTargetScoringAttempt: 0.8151 -> 0.9934
expectedGoals: 0.2511 -> 0.306
goals: 0.2067 -> 0.2519
expectedGoalsOnTarget: 0.1359 -> 0.1656
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 3 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=3
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 3.86 (squad xG sum 2.6208, xG scale 1.4740, xA scale 1.6297, team xA 2.51 = 0.65 x lambda)scoreline_reset=true
team_lambda=3.863
squad_xg_sum=2.6208
squad_xa_sum=1.5408
team_expected_assists=2.511
team_xa_to_xg_ratio=0.65
expected_goals: 0.306 -> 0.451
expected_assists: 0.1008 -> 0.1643
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 82.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: 3 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=3
allocation_applied=true
goals_allocated=0
goal_probability=0.363
goal_rate=0.2519
scorer_weight=0.3824
-
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.1515
assist_rate=0.3469
provider_weight=0.2054
-
Team totals33.86267.2
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.8%Market-value substitute prior
Alejandro BaldeD15.2m37.1%Market-value substitute prior
Ferran TorresM23.6m57.3%Market-value substitute prior
Dani OlmoM25.5m59.7%Market-value substitute prior
Anthony GordonF26.5m49.8%Market-value substitute prior

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Antonio SiveraG9000.00-n/a0.07.063.334FBref Prior G_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost G_service raw output over 3 target models--
market_value_boostMarket-value quality scaling (boost 0.9990, quality 0.470)market_value_eur=5600000
quality_factor=0.4695
boost_factor=0.999
reference_quality=0.505
history_matches=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=1.0
prior_reliability=0.2
competition=La Liga
saves: 2.8757 -> 2.8813
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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': 4.4418}
-
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.29 (squad xG sum 1.0060, xG scale 1.2803, xA scale 1.2803, team xA 0.96 = 0.74 x lambda)scoreline_reset=true
team_lambda=1.288
squad_xg_sum=1.006
squad_xa_sum=0.7484
team_expected_assists=0.9582
team_xa_to_xg_ratio=0.7439
shots_faced: 42.2 -> 36.7
expected_saves: 10.33 -> 8.98
high_pressure_saves: 3.55 -> 3.09
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 85.0)match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 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.3792
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.8425
-
Hugo NovoaD9000.050.00883%10.16.810.921FBref 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 0.9855, quality 0.437)market_value_eur=725000
quality_factor=0.4374
boost_factor=0.9855
reference_quality=0.505
history_matches=2
history_shrink=0.7143
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Karim Adeyemi', '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.29 (squad xG sum 1.0060, xG scale 1.2803, xA scale 1.2803, team xA 0.96 = 0.74 x lambda)scoreline_reset=true
team_lambda=1.288
squad_xg_sum=1.006
squad_xa_sum=0.7484
team_expected_assists=0.9582
team_xa_to_xg_ratio=0.7439
expected_goals: 0.0373 -> 0.0478
expected_assists: 0.1109 -> 0.142
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 64.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.0467
goal_rate=0.4528
scorer_weight=0.0598
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1324
assist_rate=0.0
provider_weight=0.1136
-
Nahuel TenagliaD8700.070.0470%10.76.860.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 0.9981, quality 0.440)market_value_eur=3200000
quality_factor=0.4399
boost_factor=0.9981
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=0.968
prior_reliability=0.2
competition=La Liga
totalCross: 1.5006 -> 1.4897
wasFouled: 1.7079 -> 1.6985
interceptionWon: 1.0765 -> 1.0833
totalShots: 0.8338 -> 0.8396
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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': '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.29 (squad xG sum 1.0060, xG scale 1.2803, xA scale 1.2803, team xA 0.96 = 0.74 x lambda)scoreline_reset=true
team_lambda=1.288
squad_xg_sum=1.006
squad_xa_sum=0.7484
team_expected_assists=0.9582
team_xa_to_xg_ratio=0.7439
expected_goals: 0.0578 -> 0.074
expected_assists: 0.035 -> 0.0448
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: 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.0587
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.0438
assist_rate=0.0
provider_weight=0.0358
-
Ville KoskiD9000.120.04208%10.26.838.225FBref 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.9961, quality 0.454)market_value_eur=4300000
quality_factor=0.4535
boost_factor=0.9961
reference_quality=0.505
history_matches=15
history_shrink=0.25
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0314)blend_weight=0.0314
history_matches=15
season_overlap_discount=1.0
per90_to_match_factor=0.9947
prior_reliability=0.1933
competition=La Liga
fouls: 1.0536 -> 1.0205
totalShots: 0.5405 -> 0.5235
wonTackle: 0.6826 -> 0.6719
wasFouled: 0.255 -> 0.247
onTargetScoringAttempt: 0.2383 -> 0.2308
interceptionWon: 1.2055 -> 1.2
totalCross: 0.1742 -> 0.1687
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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': '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.29 (squad xG sum 1.0060, xG scale 1.2803, xA scale 1.2803, team xA 0.96 = 0.74 x lambda)scoreline_reset=true
team_lambda=1.288
squad_xg_sum=1.006
squad_xa_sum=0.7484
team_expected_assists=0.9582
team_xa_to_xg_ratio=0.7439
expected_goals: 0.0943 -> 0.1207
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 68.0)match_squad_rank=11
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_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.1137
goal_rate=0.1008
scorer_weight=0.1261
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0163
assist_rate=0.0
provider_weight=0.0131
-
Jonny OttoD8400.020.0184%00.26.750.633XGBoost D_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9978, quality 0.437)market_value_eur=2100000
quality_factor=0.4374
boost_factor=0.9978
reference_quality=0.505
history_matches=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': 'Raphinha', '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.29 (squad xG sum 1.0060, xG scale 1.2803, xA scale 1.2803, team xA 0.96 = 0.74 x lambda)scoreline_reset=true
team_lambda=1.288
squad_xg_sum=1.006
squad_xa_sum=0.7484
team_expected_assists=0.9582
team_xa_to_xg_ratio=0.7439
expected_assists: 0.0265 -> 0.0339
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 84.0)match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_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.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.0333
assist_rate=0.0
provider_weight=0.0271
-
Ángel PérezM8200.120.0769%11.06.960.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 0.9976, quality 0.457)market_value_eur=4600000
quality_factor=0.4572
boost_factor=0.9976
reference_quality=0.505
history_matches=25
history_shrink=0.1667
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0173)blend_weight=0.0173
history_matches=25
season_overlap_discount=1.0
per90_to_match_factor=0.9132
prior_reliability=0.16
competition=La Liga
totalCross: 4.3879 -> 4.3646
wasFouled: 0.9149 -> 0.9056
wonTackle: 0.8314 -> 0.8236
interceptionWon: 0.7113 -> 0.7188
fouls: 1.1019 -> 1.096
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Joan García', 'matchup_zone': 'Left Mid vs Right Back — Wide Channel', 'duel_win_rate': 0.19, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.6624, 'skill_edge': -0.1896, 'height_edge': -0.04, 'attacker_skill': 0.4635, 'defender_skill': 0.885, 'attacker_role': 'LM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Joan García', 'market_value': 46000000, 'role': 'GK', 'price_index': 0.55, 'adjusted_quality': 0.885}], 'xg_override': 0.0969}
aerialWon: 0.2219 -> 1.1
totalShots: 1.614 -> 1.0691
shotOffTarget: 1.0626 -> 0.7039
onTargetScoringAttempt: 0.5497 -> 0.3641
goals: 0.178 -> 0.1179
expectedGoals: 0.1463 -> 0.0969
bigChanceMissed: 0.1201 -> 0.0796
expectedGoalsOnTarget: 0.1191 -> 0.0789
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.29 (squad xG sum 1.0060, xG scale 1.2803, xA scale 1.2803, team xA 0.96 = 0.74 x lambda)scoreline_reset=true
team_lambda=1.288
squad_xg_sum=1.006
squad_xa_sum=0.7484
team_expected_assists=0.9582
team_xa_to_xg_ratio=0.7439
expected_goals: 0.0969 -> 0.1241
expected_assists: 0.1642 -> 0.2102
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: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1167
goal_rate=0.1179
scorer_weight=0.1418
-
integer_assist_projectionTeam scoreline allocation: 1 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.1896
assist_rate=0.1388
provider_weight=0.1853
-
Pablo IbáñezM8300.070.08ok11.26.861.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 0.9984, quality 0.451)market_value_eur=4099999
quality_factor=0.4511
boost_factor=0.9984
reference_quality=0.505
history_matches=47
history_shrink=0.0962
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0125)blend_weight=0.0125
history_matches=47
season_overlap_discount=1.0
per90_to_match_factor=0.9192
prior_reliability=0.2
competition=La Liga
totalCross: 1.8606 -> 1.845
wasFouled: 2.2059 -> 2.1975
wonTackle: 1.2608 -> 1.2527
totalShots: 1.0776 -> 1.0833
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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.18, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.6995, 'skill_edge': -0.1904, 'height_edge': -0.014, 'attacker_skill': 0.4567, '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.0511}
totalShots: 1.0833 -> 0.7578
shotOffTarget: 0.7916 -> 0.5537
onTargetScoringAttempt: 0.2861 -> 0.2001
aerialWon: 0.9385 -> 1.0
bigChanceMissed: 0.0966 -> 0.0676
goals: 0.0901 -> 0.063
expectedGoalsOnTarget: 0.082 -> 0.0574
expectedGoals: 0.073 -> 0.0511
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.29 (squad xG sum 1.0060, xG scale 1.2803, xA scale 1.2803, team xA 0.96 = 0.74 x lambda)scoreline_reset=true
team_lambda=1.288
squad_xg_sum=1.006
squad_xa_sum=0.7484
team_expected_assists=0.9582
team_xa_to_xg_ratio=0.7439
expected_goals: 0.0511 -> 0.0654
expected_assists: 0.0678 -> 0.0868
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 73.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.0633
goal_rate=0.063
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.0831
assist_rate=0.0734
provider_weight=0.0909
-
Antonio BlancoM8200.040.03ok11.06.962.634FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0004, quality 0.519)market_value_eur=9700000
quality_factor=0.5189
boost_factor=1.0004
reference_quality=0.505
history_matches=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=0.9126
prior_reliability=0.2
competition=La Liga
interceptionWon: 1.1609 -> 1.1771
fouls: 1.49 -> 1.5059
totalCross: 0.9675 -> 0.9746
totalShots: 0.6987 -> 0.7054
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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.18, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.7313, 'skill_edge': -0.1568, 'height_edge': -0.026, 'attacker_skill': 0.5316, '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.031}
aerialWon: 0.4808 -> 0.9
totalShots: 0.7054 -> 0.5159
shotOffTarget: 0.4941 -> 0.3613
onTargetScoringAttempt: 0.202 -> 0.1477
goals: 0.05 -> 0.0366
expectedGoals: 0.0424 -> 0.031
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.29 (squad xG sum 1.0060, xG scale 1.2803, xA scale 1.2803, team xA 0.96 = 0.74 x lambda)scoreline_reset=true
team_lambda=1.288
squad_xg_sum=1.006
squad_xa_sum=0.7484
team_expected_assists=0.9582
team_xa_to_xg_ratio=0.7439
expected_goals: 0.031 -> 0.0397
expected_assists: 0.0651 -> 0.0834
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.0389
goal_rate=0.0366
scorer_weight=0.0424
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.08
assist_rate=0.0693
provider_weight=0.0864
-
Abderrahman RebbachF7700.060.0454%10.66.850.344XGBoost 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.9977, quality 0.437)market_value_eur=2400000
quality_factor=0.4374
boost_factor=0.9977
reference_quality=0.505
history_matches=40
history_shrink=0.1111
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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í, Joan García', '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.6261, 'skill_edge': -0.2043, 'height_edge': -0.05, 'attacker_skill': 0.4374, 'defender_skill': 0.8915, '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': 'Joan García', 'market_value': 46000000, 'role': 'GK', 'price_index': 0.55, 'adjusted_quality': 0.885}], 'xg_override': 0.0453}
totalShots: 0.9675 -> 0.6058
shotOffTarget: 0.6409 -> 0.4013
onTargetScoringAttempt: 0.3265 -> 0.2044
expectedGoals: 0.0723 -> 0.0453
goals: 0.0709 -> 0.0444
expectedGoalsOnTarget: 0.0352 -> 0.022
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.29 (squad xG sum 1.0060, xG scale 1.2803, xA scale 1.2803, team xA 0.96 = 0.74 x lambda)scoreline_reset=true
team_lambda=1.288
squad_xg_sum=1.006
squad_xa_sum=0.7484
team_expected_assists=0.9582
team_xa_to_xg_ratio=0.7439
expected_goals: 0.0453 -> 0.058
expected_assists: 0.0782 -> 0.1001
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.0564
goal_rate=0.0444
scorer_weight=0.0575
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0953
assist_rate=0.0545
provider_weight=0.0816
-
Lucas BoyéF8000.270.32ok22.06.859.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 0.9986, quality 0.466)market_value_eur=5300000
quality_factor=0.4659
boost_factor=0.9986
reference_quality=0.505
history_matches=38
history_shrink=0.1163
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0081)blend_weight=0.0081
history_matches=38
season_overlap_discount=1.0
per90_to_match_factor=0.8842
prior_reliability=0.1067
competition=La Liga
wonTackle: 0.9877 -> 1.002
totalShots: 2.1157 -> 2.1212
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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í, Joan García', '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.6861, 'skill_edge': -0.1916, 'height_edge': -0.022, 'attacker_skill': 0.4659, 'defender_skill': 0.8915, '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': 'Joan García', 'market_value': 46000000, 'role': 'GK', 'price_index': 0.55, 'adjusted_quality': 0.885}], 'xg_override': 0.2087}
totalShots: 2.1212 -> 1.4554
shotOffTarget: 1.3396 -> 0.9191
onTargetScoringAttempt: 0.7789 -> 0.5344
expectedGoalsOnTarget: 0.3887 -> 0.2667
goals: 0.3412 -> 0.2341
expectedGoals: 0.3042 -> 0.2087
bigChanceMissed: 0.1866 -> 0.128
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.29 (squad xG sum 1.0060, xG scale 1.2803, xA scale 1.2803, team xA 0.96 = 0.74 x lambda)scoreline_reset=true
team_lambda=1.288
squad_xg_sum=1.006
squad_xa_sum=0.7484
team_expected_assists=0.9582
team_xa_to_xg_ratio=0.7439
expected_goals: 0.2087 -> 0.2672
expected_assists: 0.0699 -> 0.0895
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 77.0)match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.2345
goal_rate=0.2341
scorer_weight=0.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.0856
assist_rate=0.0059
provider_weight=0.0716
-
Toni MartínezF7510.290.33ok22.56.863.933FBref 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.9996, quality 0.490)market_value_eur=7300000
quality_factor=0.4903
boost_factor=0.9996
reference_quality=0.505
history_matches=46
history_shrink=0.098
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0110)blend_weight=0.011
history_matches=46
season_overlap_discount=1.0
per90_to_match_factor=0.8303
prior_reliability=0.1733
competition=La Liga
onTargetScoringAttempt: 0.8555 -> 0.8461
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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í, Joan García', '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.6846, 'skill_edge': -0.1806, 'height_edge': -0.034, 'attacker_skill': 0.4903, 'defender_skill': 0.8915, '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': 'Joan García', 'market_value': 46000000, 'role': 'GK', 'price_index': 0.55, 'adjusted_quality': 0.885}], 'xg_override': 0.2276}
totalShots: 2.4268 -> 1.6614
shotOffTarget: 1.5734 -> 1.0771
onTargetScoringAttempt: 0.8461 -> 0.5792
goals: 0.3494 -> 0.2392
expectedGoals: 0.3325 -> 0.2276
bigChanceMissed: 0.3177 -> 0.2175
expectedGoalsOnTarget: 0.2369 -> 0.1622
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.29 (squad xG sum 1.0060, xG scale 1.2803, xA scale 1.2803, team xA 0.96 = 0.74 x lambda)scoreline_reset=true
team_lambda=1.288
squad_xg_sum=1.006
squad_xa_sum=0.7484
team_expected_assists=0.9582
team_xa_to_xg_ratio=0.7439
expected_goals: 0.2276 -> 0.2914
expected_assists: 0.0334 -> 0.0428
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=1
goal_probability=0.2528
goal_rate=0.2392
scorer_weight=0.3036
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0419
assist_rate=0.0177
provider_weight=0.0347
-
Team totals11.29136.8
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Grégoire SwiderskiG4.4m10.9%Market-value substitute prior
Youssef EnriquezD13.7m30.4%Market-value substitute prior
Victor ParadaD13.6m30.1%Market-value substitute prior
Carlos VicenteM22.2m50.8%Market-value substitute prior
Carles AleñáM13.2m69.2%Market-value substitute prior
Miguel RodríguezF25.4m56.2%Market-value substitute prior
Antagonist / tactical summary
Home midfield dominates with ~53% possession expected (Pedri vs Antonio Blanco). Total antagonist xG — Home: 2.38, Away: 0.66. Home danger zone: Left Wing vs Right Back — Flank Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Midfield — possession 53.1% / 46.9%, dominance ratio 0.63, key duel: Pedri vs Antonio Blanco
Raphinha xG 0.82Karim Adeyemi xG 0.31Lamine Yamal xG 0.64Lucas Boyé xG 0.21Toni Martínez xG 0.23Abderrahman Rebbach xG 0.05

Summary

Antagonist matchup analysis for Barcelona vs Alavés. Most likely scoreline: 3-1. Lambdas derived from 8 home and 6 away individual player duels. Head-to-head: Barcelona 7W-2D-1L vs Alavés over 10 meetings.
Tactical parity between 4-3-3 and 4-4-2. Match outcome driven primarily by individual player quality. Home midfield dominates with ~53% possession expected (Pedri vs Antonio Blanco). Total antagonist xG — Home: 2.38, Away: 0.66. Home danger zone: Left Wing vs Right Back — Flank Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.

Levante vs Atlético Madrid

LaLiga · 20261031 · 4-3-3 vs 4-2-3-1
Predicted 1-2Winner: Atlético MadridWinning H 2-1 (5.1%)Winning A 1-2 (9.6%)Confidence 0.77λ home/away 1.19 / 2.27Most-likely P 9.6%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset Tracing
Antagonist + XGBoost match analysis for Levante vs Atlético Madrid. 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.396, Away 2.653). Final calibrated Poisson lambdas: Home 1.191, Away 2.266 (most likely score 1-2).
Home Starters 11/11 XGBoost (6 FBref) Away Starters 11/11 XGBoost (9 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.40 / 2.65 Final λ (H/A) 1.19 / 2.27
FBref Team Priors: Levante UD (Gls/90: 1.6666666666666667, GA/90: 1.67 → E[λ]: 2.877) vs Atlético Madrid (Gls/90: 2.3333333333333335, GA/90: 2.33 → E[λ]: 2.886) | 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

MetricLevanteAtlético Madrid
League position14.002.00
Points per game1.142.07
Attack index1.031.15
Defense (concede) index0.791.12
Form multiplier0.961.04
Standing λ multiplier0.911.11

Lambda decomposition (how the goal rates were built)

StageLevante λAtlético Madrid λ
FBref Squad Prior E[λ] (weight 0.228)2.8772.886
Pre-mismatch1.3762.691
Pre-calibration (Micro-duels)1.3962.653
Final λ1.1912.266
competition calibration scale 0.85competition 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
1-29.6%
1-18.6%
0-28.1%
1-37.3%
0-17.1%
Home win18.9%
Draw19.5%
Away win61.5%
Over 2.567.1%
BTTS yes62.4%
Pregame fair line — favorite Atlético Madrid (61.5%), fair total 3.46, fair spread -1.07

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.

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Oriol ReyM7800.020.01308%00.26.835.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 0.9970, quality 0.437)market_value_eur=1700000
quality_factor=0.4374
boost_factor=0.997
reference_quality=0.505
history_matches=29
history_shrink=0.1471
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0191)blend_weight=0.0191
history_matches=29
season_overlap_discount=1.0
per90_to_match_factor=0.8692
prior_reliability=0.2
competition=La Liga
totalShots: 0.5063 -> 0.4966
totalCross: 0.4842 -> 0.4749
wasFouled: 0.6818 -> 0.6743
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Morten Hjulmand', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.227, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.6723, 'skill_edge': -0.1829, 'height_edge': -0.04, 'attacker_skill': 0.4374, 'defender_skill': 0.8439, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Morten Hjulmand', 'market_value': 48000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8439}], 'xg_override': 0.0204}
totalShots: 0.5037 -> 0.3387
shotOffTarget: 0.3702 -> 0.2489
aerialWon: 0.8459 -> 0.9
onTargetScoringAttempt: 0.1335 -> 0.0898
goals: 0.0487 -> 0.0327
expectedGoals: 0.0303 -> 0.0204
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.19 (squad xG sum 0.9866, xG scale 1.2071, xA scale 1.4295, team xA 0.77 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.191
squad_xg_sum=0.9866
squad_xa_sum=0.5416
team_expected_assists=0.7742
team_xa_to_xg_ratio=0.65
expected_assists: 0.0334 -> 0.0477
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.0243
goal_rate=0.0327
scorer_weight=0.0289
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0466
assist_rate=0.0483
provider_weight=0.0562
-
Jon Ander OlasagastiM8600.070.08ok10.96.960.734XGBoost 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.9978, quality 0.437)market_value_eur=2700000
quality_factor=0.4374
boost_factor=0.9978
reference_quality=0.505
history_matches=42
history_shrink=0.1064
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Morten Hjulmand', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.231, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.6782, 'skill_edge': -0.1829, 'height_edge': -0.036, 'attacker_skill': 0.4374, 'defender_skill': 0.8439, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Morten Hjulmand', 'market_value': 48000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8439}], 'xg_override': 0.0559}
aerialWon: 0.4426 -> 0.9
totalShots: 1.1085 -> 0.7518
shotOffTarget: 0.7565 -> 0.5131
onTargetScoringAttempt: 0.352 -> 0.2387
expectedGoalsOnTarget: 0.1184 -> 0.0803
goals: 0.0954 -> 0.0647
expectedGoals: 0.0824 -> 0.0559
bigChanceMissed: 0.0565 -> 0.0383
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.19 (squad xG sum 0.9866, xG scale 1.2071, xA scale 1.4295, team xA 0.77 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.191
squad_xg_sum=0.9866
squad_xa_sum=0.5416
team_expected_assists=0.7742
team_xa_to_xg_ratio=0.65
expected_goals: 0.0559 -> 0.0675
expected_assists: 0.1228 -> 0.1757
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 84.0)match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_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.0653
goal_rate=0.0647
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.1611
assist_rate=0.1028
provider_weight=0.1554
-
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': 'Kang-in Lee', '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.19 (squad xG sum 0.9866, xG scale 1.2071, xA scale 1.4295, team xA 0.77 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.191
squad_xg_sum=0.9866
squad_xa_sum=0.5416
team_expected_assists=0.7742
team_xa_to_xg_ratio=0.65
expected_assists: 0.0501 -> 0.0716
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_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.0094
goal_rate=0.0015
scorer_weight=0.0084
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0691
assist_rate=0.0154
provider_weight=0.0573
-
Aïssa MandiD8700.000.00ok00.16.842.213FBref 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.9922, quality 0.437)market_value_eur=1100000
quality_factor=0.4374
boost_factor=0.9922
reference_quality=0.505
history_matches=8
history_shrink=0.3846
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0500)blend_weight=0.05
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=0.9642
prior_reliability=0.2
competition=La Liga
wonTackle: 0.6335 -> 0.6822
fouls: 0.4473 -> 0.4249
wasFouled: 0.8556 -> 0.845
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Julián Alvarez', '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.19 (squad xG sum 0.9866, xG scale 1.2071, xA scale 1.4295, team xA 0.77 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.191
squad_xg_sum=0.9866
squad_xa_sum=0.5416
team_expected_assists=0.7742
team_xa_to_xg_ratio=0.65
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 79.0)match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0037
goal_rate=0.0
scorer_weight=0.0035
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0091
assist_rate=0.0
provider_weight=0.0081
-
Ifeanyi NdukweD8400.100.04177%00.16.833.712FBref 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 0.9911, quality 0.440)market_value_eur=3200000
quality_factor=0.4399
boost_factor=0.9911
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': 'Julián Alvarez', '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.19 (squad xG sum 0.9866, xG scale 1.2071, xA scale 1.4295, team xA 0.77 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.191
squad_xg_sum=0.9866
squad_xa_sum=0.5416
team_expected_assists=0.7742
team_xa_to_xg_ratio=0.65
expected_goals: 0.0815 -> 0.0984
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 84.0)match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0937
goal_rate=0.191
scorer_weight=0.123
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0047
assist_rate=0.0
provider_weight=0.0044
-
Nacho PérezD7400.070.02254%10.16.821.934FBref 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.9940, quality 0.437)market_value_eur=1600000
quality_factor=0.4374
boost_factor=0.994
reference_quality=0.505
history_matches=12
history_shrink=0.2941
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0280)blend_weight=0.028
history_matches=12
season_overlap_discount=1.0
per90_to_match_factor=0.8272
prior_reliability=0.1467
competition=La Liga
totalCross: 1.4482 -> 1.4919
wonTackle: 0.9273 -> 0.954
interceptionWon: 0.6936 -> 0.7163
totalShots: 0.5184 -> 0.5039
goals: 0.378 -> 0.3674
onTargetScoringAttempt: 0.378 -> 0.3674
fouls: 0.6664 -> 0.6583
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 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.19 (squad xG sum 0.9866, xG scale 1.2071, xA scale 1.4295, team xA 0.77 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.191
squad_xg_sum=0.9866
squad_xa_sum=0.5416
team_expected_assists=0.7742
team_xa_to_xg_ratio=0.65
expected_goals: 0.058 -> 0.07
expected_assists: 0.0272 -> 0.0389
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 67.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.0676
goal_rate=0.3674
scorer_weight=0.0875
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0382
assist_rate=0.0
provider_weight=0.0311
-
Mathew RyanG8600.000.00100%0.17.065.935FBref 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.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=0.9503
prior_reliability=0.2
competition=La Liga
saves: 2.897 -> 2.9166
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Julián Alvarez, Alejandro Grimaldo', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 2.653}
-
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.19 (squad xG sum 0.9866, xG scale 1.2071, xA scale 1.4295, team xA 0.77 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.191
squad_xg_sum=0.9866
squad_xa_sum=0.5416
team_expected_assists=0.7742
team_xa_to_xg_ratio=0.65
shots_faced: 25.2 -> 21.5
expected_saves: 6.17 -> 5.26
high_pressure_saves: 2.12 -> 1.81
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 79.0)match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.3229
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.7982
-
Daniel RequenaM8000.070.03133%10.46.740.413FBref Prior M_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 0.9916, quality 0.437)market_value_eur=1500000
quality_factor=0.4374
boost_factor=0.9916
reference_quality=0.505
history_matches=7
history_shrink=0.4167
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Morten Hjulmand', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.241, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.737, 'skill_edge': -0.1829, 'height_edge': 0.004, 'attacker_skill': 0.4374, 'defender_skill': 0.8439, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Morten Hjulmand', 'market_value': 48000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8439}], 'xg_override': 0.0586}
aerialWon: 0.4894 -> 1.2
totalShots: 0.9408 -> 0.6934
shotOffTarget: 0.646 -> 0.4761
bigChanceMissed: 0.3421 -> 0.2521
onTargetScoringAttempt: 0.2947 -> 0.2172
expectedGoals: 0.0795 -> 0.0586
goals: 0.0782 -> 0.0576
expectedGoalsOnTarget: 0.0785 -> 0.0579
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.19 (squad xG sum 0.9866, xG scale 1.2071, xA scale 1.4295, team xA 0.77 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.191
squad_xg_sum=0.9866
squad_xa_sum=0.5416
team_expected_assists=0.7742
team_xa_to_xg_ratio=0.65
expected_goals: 0.0586 -> 0.0707
expected_assists: 0.0347 -> 0.0496
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 84.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.0683
goal_rate=0.0576
scorer_weight=0.07
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0484
assist_rate=0.0498
provider_weight=0.0584
-
Roger BruguéF7310.290.33ok21.86.852.324XGBoost 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.9969, quality 0.437)market_value_eur=2800000
quality_factor=0.4374
boost_factor=0.9969
reference_quality=0.505
history_matches=28
history_shrink=0.1515
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Jan Oblak', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.237, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.731, 'skill_edge': -0.123, 'height_edge': -0.06, 'attacker_skill': 0.4374, 'defender_skill': 0.7107, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Jan Oblak', 'market_value': 16000000, 'role': 'GK', 'price_index': 0.55, 'adjusted_quality': 0.7107}], 'xg_override': 0.2397}
totalShots: 2.0875 -> 1.526
shotOffTarget: 1.158 -> 0.8465
onTargetScoringAttempt: 0.9295 -> 0.6795
expectedGoalsOnTarget: 0.3961 -> 0.2895
goals: 0.3629 -> 0.2653
expectedGoals: 0.3279 -> 0.2397
bigChanceMissed: 0.2043 -> 0.1493
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.19 (squad xG sum 0.9866, xG scale 1.2071, xA scale 1.4295, team xA 0.77 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.191
squad_xg_sum=0.9866
squad_xa_sum=0.5416
team_expected_assists=0.7742
team_xa_to_xg_ratio=0.65
expected_goals: 0.2397 -> 0.2894
expected_assists: 0.0492 -> 0.0703
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 88.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=1
goal_probability=0.2513
goal_rate=0.2653
scorer_weight=0.315
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0679
assist_rate=0.1267
provider_weight=0.0879
-
Iván RomeroF7000.230.23ok21.66.860.733FBref 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.9996, quality 0.491)market_value_eur=7400000
quality_factor=0.4915
boost_factor=0.9996
reference_quality=0.505
history_matches=42
history_shrink=0.1064
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0115)blend_weight=0.0115
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.7786
prior_reliability=0.1667
competition=La Liga
totalShots: 1.888 -> 1.8988
wasFouled: 2.035 -> 2.0259
interceptionWon: 0.4541 -> 0.4489
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Dávid Hancko, Marc Pubill', '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.682, 'skill_edge': -0.1563, 'height_edge': -0.06, 'attacker_skill': 0.4915, 'defender_skill': 0.8388, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Dávid Hancko', 'market_value': 36000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8168}, {'player': 'Marc Pubill', 'market_value': 48000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8608}], 'xg_override': 0.194}
totalShots: 1.8988 -> 1.295
shotOffTarget: 1.1332 -> 0.7728
onTargetScoringAttempt: 0.7533 -> 0.5138
goals: 0.3167 -> 0.216
bigChanceMissed: 0.2904 -> 0.1981
expectedGoals: 0.2844 -> 0.194
expectedGoalsOnTarget: 0.2616 -> 0.1784
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.19 (squad xG sum 0.9866, xG scale 1.2071, xA scale 1.4295, team xA 0.77 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.191
squad_xg_sum=0.9866
squad_xa_sum=0.5416
team_expected_assists=0.7742
team_xa_to_xg_ratio=0.65
expected_goals: 0.194 -> 0.2342
expected_assists: 0.0553 -> 0.079
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: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.2088
goal_rate=0.216
scorer_weight=0.2553
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.076
assist_rate=0.0034
provider_weight=0.0632
-
Thiago FernándezF7200.120.05126%10.96.954.235FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9976, quality 0.458)market_value_eur=4700000
quality_factor=0.4585
boost_factor=0.9976
reference_quality=0.505
history_matches=24
history_shrink=0.1724
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0120)blend_weight=0.012
history_matches=24
season_overlap_discount=1.0
per90_to_match_factor=0.7963
prior_reliability=0.1067
competition=La Liga
interceptionWon: 0.303 -> 0.3113
totalShots: 1.5102 -> 1.5038
wasFouled: 0.5093 -> 0.5032
onTargetScoringAttempt: 0.4356 -> 0.4304
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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': 'Right Wing vs Left Back — Flank Battle', 'duel_win_rate': 0.327, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 0.7757, 'skill_edge': -0.1166, 'height_edge': -0.036, 'attacker_skill': 0.4585, 'defender_skill': 0.7176, 'attacker_role': 'RW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Marcos Llorente', 'market_value': 21000000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.7176}], 'xg_override': 0.0957}
totalShots: 1.505 -> 1.1675
shotOffTarget: 1.0746 -> 0.8336
onTargetScoringAttempt: 0.4304 -> 0.3339
goals: 0.1708 -> 0.1325
expectedGoals: 0.1234 -> 0.0957
bigChanceMissed: 0.0956 -> 0.0742
expectedGoalsOnTarget: 0.0459 -> 0.0356
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.19 (squad xG sum 0.9866, xG scale 1.2071, xA scale 1.4295, team xA 0.77 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.191
squad_xg_sum=0.9866
squad_xa_sum=0.5416
team_expected_assists=0.7742
team_xa_to_xg_ratio=0.65
expected_goals: 0.0957 -> 0.1155
expected_assists: 0.1092 -> 0.1561
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 74.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.1091
goal_rate=0.1325
scorer_weight=0.1444
-
integer_assist_projectionTeam scoreline allocation: 1 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.1445
assist_rate=0.2455
provider_weight=0.1951
-
Team totals11.19106.8
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Pablo Cunat CamposG4.4m10.9%Market-value substitute prior
Axel TapeD13.8m31.1%Market-value substitute prior
Matias MorenoD13.7m30.5%Market-value substitute prior
Carlos ÁlvarezM22.6m31.9%Market-value substitute prior
Enzo BardeliM22.1m50.5%Market-value substitute prior
Etta EyongF25.9m58.5%Market-value substitute prior

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Julián AlvarezF7510.560.13324%31.57.251.023FBref 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.0146, quality 0.895)market_value_eur=107000000
quality_factor=0.8953
boost_factor=1.0146
reference_quality=0.505
history_matches=35
history_shrink=0.125
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0016)blend_weight=0.0016
history_matches=35
season_overlap_discount=1.0
per90_to_match_factor=0.8377
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': 'Aïssa Mandi, Ifeanyi Ndukwe', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.342, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.2095, 'skill_edge': 0.2025, 'height_edge': -0.06, 'attacker_skill': 0.8953, 'defender_skill': 0.4453, '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': 'Ifeanyi Ndukwe', 'market_value': 3200000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4531}], 'xg_override': 0.3932}
totalShots: 2.526 -> 3.0552
shotOffTarget: 1.3629 -> 1.6484
onTargetScoringAttempt: 1.1604 -> 1.4035
goals: 0.454 -> 0.5491
expectedGoalsOnTarget: 0.3427 -> 0.4145
expectedGoals: 0.3251 -> 0.3932
bigChanceMissed: 0.2983 -> 0.3608
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.27 (squad xG sum 1.5979, xG scale 1.4181, xA scale 1.4181, team xA 1.65 = 0.73 x lambda)scoreline_reset=true
team_lambda=2.266
squad_xg_sum=1.5979
squad_xa_sum=1.1609
team_expected_assists=1.6463
team_xa_to_xg_ratio=0.7265
expected_goals: 0.3932 -> 0.5577
expected_assists: 0.145 -> 0.2056
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
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.4275
goal_rate=0.5491
scorer_weight=0.6971
-
integer_assist_projectionTeam scoreline allocation: 1 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.1858
assist_rate=0.2168
provider_weight=0.257
-
Alex BaenaF7510.270.08219%31.47.158.742FBref 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.0111, quality 0.817)market_value_eur=48000000
quality_factor=0.8168
boost_factor=1.0111
reference_quality=0.505
history_matches=37
history_shrink=0.119
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0093)blend_weight=0.0093
history_matches=37
season_overlap_discount=1.0
per90_to_match_factor=0.836
prior_reliability=0.12
competition=La Liga
totalCross: 3.3552 -> 3.3413
goals: 0.2507 -> 0.2613
totalOffside: 0.1662 -> 0.1733
interceptionWon: 1.1417 -> 1.1354
onTargetScoringAttempt: 0.7281 -> 0.7342
wasFouled: 1.2007 -> 1.2068
wonTackle: 0.5532 -> 0.5481
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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, Ifeanyi Ndukwe', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.307, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.1576, 'skill_edge': 0.1672, 'height_edge': -0.06, 'attacker_skill': 0.8168, 'defender_skill': 0.4453, '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': 'Ifeanyi Ndukwe', 'market_value': 3200000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4531}], 'xg_override': 0.1888}
totalShots: 2.1297 -> 2.4653
shotOffTarget: 1.3955 -> 1.6154
onTargetScoringAttempt: 0.7342 -> 0.8499
goals: 0.2613 -> 0.3025
expectedGoalsOnTarget: 0.2148 -> 0.2487
expectedGoals: 0.1631 -> 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 2.27 (squad xG sum 1.5979, xG scale 1.4181, xA scale 1.4181, team xA 1.65 = 0.73 x lambda)scoreline_reset=true
team_lambda=2.266
squad_xg_sum=1.5979
squad_xa_sum=1.1609
team_expected_assists=1.6463
team_xa_to_xg_ratio=0.7265
expected_goals: 0.1888 -> 0.2677
expected_assists: 0.1938 -> 0.2748
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=1
goal_probability=0.2349
goal_rate=0.3025
scorer_weight=0.3346
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.2403
assist_rate=0.0528
provider_weight=0.2198
-
Kang-in LeeF7300.270.1577%32.17.256.316XGBoost 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.0259, quality 0.764)market_value_eur=37000000
quality_factor=0.7641
boost_factor=1.0259
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': 'Aïssa Mandi, Ifeanyi Ndukwe', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.283, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.1227, 'skill_edge': 0.1435, 'height_edge': -0.06, 'attacker_skill': 0.7641, 'defender_skill': 0.4453, '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': 'Ifeanyi Ndukwe', 'market_value': 3200000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4531}], 'xg_override': 0.1877}
totalShots: 2.3133 -> 2.5972
shotOffTarget: 1.5842 -> 1.7786
onTargetScoringAttempt: 0.7291 -> 0.8186
expectedGoalsOnTarget: 0.2062 -> 0.2315
goals: 0.199 -> 0.2234
expectedGoals: 0.1672 -> 0.1877
bigChanceMissed: 0.143 -> 0.1605
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.27 (squad xG sum 1.5979, xG scale 1.4181, xA scale 1.4181, team xA 1.65 = 0.73 x lambda)scoreline_reset=true
team_lambda=2.266
squad_xg_sum=1.5979
squad_xa_sum=1.1609
team_expected_assists=1.6463
team_xa_to_xg_ratio=0.7265
expected_goals: 0.1877 -> 0.2662
expected_assists: 0.1829 -> 0.2594
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.2337
goal_rate=0.2234
scorer_weight=0.3062
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.2285
assist_rate=0.0798
provider_weight=0.2075
-
Morten HjulmandM8300.100.03199%10.66.952.012FBref 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.0334, quality 0.817)market_value_eur=48000000
quality_factor=0.8168
boost_factor=1.0334
reference_quality=0.505
history_matches=9
history_shrink=0.3571
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0325)blend_weight=0.0325
history_matches=9
season_overlap_discount=1.0
per90_to_match_factor=0.9253
prior_reliability=0.14
competition=La Liga
interceptionWon: 2.687 -> 2.6426
wonTackle: 0.7933 -> 0.8248
fouls: 0.669 -> 0.6902
totalShots: 0.8413 -> 0.8284
wasFouled: 1.4074 -> 1.4189
onTargetScoringAttempt: 0.1831 -> 0.1771
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Oriol Rey', 'matchup_zone': 'Holding Mid vs Central Mid — Midfield Anchor Duel', 'duel_win_rate': 0.623, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.3277, 'skill_edge': 0.1829, 'height_edge': 0.04, 'attacker_skill': 0.8439, 'defender_skill': 0.4374, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Oriol Rey', 'market_value': 1700000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.4374}], 'xg_override': 0.0673}
totalShots: 0.8353 -> 1.109
shotOffTarget: 0.6582 -> 0.8739
onTargetScoringAttempt: 0.1771 -> 0.2351
aerialWon: 1.1489 -> 1.2
goals: 0.0555 -> 0.0737
expectedGoals: 0.0507 -> 0.0673
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.27 (squad xG sum 1.5979, xG scale 1.4181, xA scale 1.4181, team xA 1.65 = 0.73 x lambda)scoreline_reset=true
team_lambda=2.266
squad_xg_sum=1.5979
squad_xa_sum=1.1609
team_expected_assists=1.6463
team_xa_to_xg_ratio=0.7265
expected_goals: 0.0673 -> 0.0954
expected_assists: 0.041 -> 0.0581
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 83.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.091
goal_rate=0.0737
scorer_weight=0.1006
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0564
assist_rate=0.0557
provider_weight=0.0675
-
Pablo BarriosM7000.120.04238%10.87.057.216FBref 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.0160, quality 0.879)market_value_eur=77000000
quality_factor=0.8792
boost_factor=1.016
reference_quality=0.505
history_matches=30
history_shrink=0.1429
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0142)blend_weight=0.0142
history_matches=30
season_overlap_discount=1.0
per90_to_match_factor=0.7742
prior_reliability=0.1533
competition=La Liga
wasFouled: 0.6741 -> 0.6885
totalCross: 1.1708 -> 1.1589
totalShots: 1.023 -> 1.0133
interceptionWon: 1.4391 -> 1.433
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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': 'Attacking Mid vs Single Holding Mid — Space Creator Duel', 'duel_win_rate': 0.64, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.2653, 'skill_edge': 0.2005, 'height_edge': -0.02, 'attacker_skill': 0.8829, 'defender_skill': 0.4374, 'attacker_role': 'CAM', 'attacker_mv_price_index': 0.95, 'defender_adjusted_parts': [{'player': 'Daniel Requena', 'market_value': 1500000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4374}], 'xg_override': 0.0838}
aerialWon: 0.7936 -> 1.1
totalShots: 1.0236 -> 1.2952
shotOffTarget: 0.7277 -> 0.9208
onTargetScoringAttempt: 0.2959 -> 0.3744
expectedGoalsOnTarget: 0.078 -> 0.0987
expectedGoals: 0.0662 -> 0.0838
goals: 0.0657 -> 0.0831
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.27 (squad xG sum 1.5979, xG scale 1.4181, xA scale 1.4181, team xA 1.65 = 0.73 x lambda)scoreline_reset=true
team_lambda=2.266
squad_xg_sum=1.5979
squad_xa_sum=1.1609
team_expected_assists=1.6463
team_xa_to_xg_ratio=0.7265
expected_goals: 0.0838 -> 0.1188
expected_assists: 0.1152 -> 0.1634
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 83.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.112
goal_rate=0.0831
scorer_weight=0.1182
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1507
assist_rate=0.1409
provider_weight=0.1888
-
Alejandro GrimaldoM8900.280.1856%21.17.053.620XGBoost 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.0129, quality 0.625)market_value_eur=19400000
quality_factor=0.6251
boost_factor=1.0129
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': 'Nacho Pérez', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.548, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.1006, 'skill_edge': 0.0845, 'height_edge': -0.016, 'attacker_skill': 0.6251, 'defender_skill': 0.4374, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Nacho Pérez', 'market_value': 1600000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.4374}], 'xg_override': 0.1985}
aerialWon: 0.3474 -> 0.8
totalShots: 1.5977 -> 1.7584
shotOffTarget: 0.9351 -> 1.0292
onTargetScoringAttempt: 0.6625 -> 0.7291
expectedGoalsOnTarget: 0.257 -> 0.2829
expectedGoals: 0.1804 -> 0.1985
bigChanceMissed: 0.1749 -> 0.1925
goals: 0.149 -> 0.164
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.27 (squad xG sum 1.5979, xG scale 1.4181, xA scale 1.4181, team xA 1.65 = 0.73 x lambda)scoreline_reset=true
team_lambda=2.266
squad_xg_sum=1.5979
squad_xa_sum=1.1609
team_expected_assists=1.6463
team_xa_to_xg_ratio=0.7265
expected_goals: 0.1985 -> 0.2815
expected_assists: 0.1492 -> 0.2116
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 89.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.2453
goal_rate=0.164
scorer_weight=0.2424
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1907
assist_rate=0.1197
provider_weight=0.1803
-
Dávid HanckoD8800.090.0583%10.77.053.329FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0084, quality 0.758)market_value_eur=36000000
quality_factor=0.7581
boost_factor=1.0084
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.9803
prior_reliability=0.2
competition=La Liga
interceptionWon: 0.9553 -> 0.9698
wasFouled: 0.1822 -> 0.1937
wonTackle: 0.8219 -> 0.8289
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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': '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.27 (squad xG sum 1.5979, xG scale 1.4181, xA scale 1.4181, team xA 1.65 = 0.73 x lambda)scoreline_reset=true
team_lambda=2.266
squad_xg_sum=1.5979
squad_xa_sum=1.1609
team_expected_assists=1.6463
team_xa_to_xg_ratio=0.7265
expected_goals: 0.0613 -> 0.0869
expected_assists: 0.0444 -> 0.063
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 83.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.0832
goal_rate=0.0
scorer_weight=0.0695
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0611
assist_rate=0.1488
provider_weight=0.0788
-
Marc PubillD8200.080.04107%10.46.849.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.0146, quality 0.817)market_value_eur=48000000
quality_factor=0.8168
boost_factor=1.0146
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.9074
prior_reliability=0.1133
competition=La Liga
interceptionWon: 0.8389 -> 0.8292
totalShots: 0.5217 -> 0.5278
totalCross: 0.6161 -> 0.6213
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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': '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.27 (squad xG sum 1.5979, xG scale 1.4181, xA scale 1.4181, team xA 1.65 = 0.73 x lambda)scoreline_reset=true
team_lambda=2.266
squad_xg_sum=1.5979
squad_xa_sum=1.1609
team_expected_assists=1.6463
team_xa_to_xg_ratio=0.7265
expected_goals: 0.0538 -> 0.0763
expected_assists: 0.0201 -> 0.0285
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 87.0)match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0735
goal_rate=0.1142
scorer_weight=0.0954
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0281
assist_rate=0.007
provider_weight=0.0232
-
Marcos LlorenteD8400.070.0483%10.67.060.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.0046, quality 0.641)market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.0046
reference_quality=0.505
history_matches=39
history_shrink=0.1136
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0074)blend_weight=0.0074
history_matches=39
season_overlap_discount=1.0
per90_to_match_factor=0.9328
prior_reliability=0.1
competition=La Liga
fouls: 0.7828 -> 0.8046
totalCross: 1.6539 -> 1.6417
interceptionWon: 1.0637 -> 1.0742
wasFouled: 0.2029 -> 0.2106
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Thiago Fernández', '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 2.27 (squad xG sum 1.5979, xG scale 1.4181, xA scale 1.4181, team xA 1.65 = 0.73 x lambda)scoreline_reset=true
team_lambda=2.266
squad_xg_sum=1.5979
squad_xa_sum=1.1609
team_expected_assists=1.6463
team_xa_to_xg_ratio=0.7265
expected_goals: 0.0481 -> 0.0682
expected_assists: 0.0812 -> 0.1152
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.0659
goal_rate=0.0
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.1088
assist_rate=0.0923
provider_weight=0.1249
-
Jan OblakG9000.00-n/a0.07.156.629FBref 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=40
history_shrink=0.1111
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0144)blend_weight=0.0144
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.2
competition=La Liga
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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': 1.3957}
-
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.27 (squad xG sum 1.5979, xG scale 1.4181, xA scale 1.4181, team xA 1.65 = 0.73 x lambda)scoreline_reset=true
team_lambda=2.266
squad_xg_sum=1.5979
squad_xa_sum=1.1609
team_expected_assists=1.6463
team_xa_to_xg_ratio=0.7265
shots_faced: 13.3 -> 11.3
expected_saves: 3.26 -> 2.76
high_pressure_saves: 1.12 -> 0.95
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 88.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=2.4769
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.6132
-
Giuliano SimeoneM7800.280.10163%20.97.058.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.0096, quality 0.800)market_value_eur=44000000
quality_factor=0.8002
boost_factor=1.0096
reference_quality=0.505
history_matches=41
history_shrink=0.1087
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0113)blend_weight=0.0113
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=0.8686
prior_reliability=0.16
competition=La Liga
interceptionWon: 0.5557 -> 0.5658
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Oriol Rey', 'matchup_zone': 'Holding Mid vs Central Mid — Midfield Anchor Duel', 'duel_win_rate': 0.569, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.248, 'skill_edge': 0.1767, 'height_edge': -0.008, 'attacker_skill': 0.8301, 'defender_skill': 0.4374, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Oriol Rey', 'market_value': 1700000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.4374}], 'xg_override': 0.1942}
aerialWon: 1.4898 -> 0.9
totalShots: 1.4166 -> 1.7679
shotOffTarget: 0.8679 -> 1.0831
onTargetScoringAttempt: 0.5461 -> 0.6815
goals: 0.1622 -> 0.2024
expectedGoals: 0.1556 -> 0.1942
expectedGoalsOnTarget: 0.0941 -> 0.1174
bigChanceMissed: 0.0864 -> 0.1078
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.27 (squad xG sum 1.5979, xG scale 1.4181, xA scale 1.4181, team xA 1.65 = 0.73 x lambda)scoreline_reset=true
team_lambda=2.266
squad_xg_sum=1.5979
squad_xa_sum=1.1609
team_expected_assists=1.6463
team_xa_to_xg_ratio=0.7265
expected_goals: 0.1942 -> 0.2754
expected_assists: 0.1235 -> 0.1751
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.2407
goal_rate=0.2024
scorer_weight=0.2847
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1606
assist_rate=0.1073
provider_weight=0.1587
-
Team totals22.27207.0
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Juan MussoG4.4m10.9%Market-value substitute prior
Cristian RomeroD15.0m36.6%Market-value substitute prior
Robin Le NormandD14.3m23.2%Market-value substitute prior
Rodrigo MendozaM13.6m45.2%Market-value substitute prior
Thiago AlmadaM22.8m53.5%Market-value substitute prior
Ademola LookmanF26.7m36.3%Market-value substitute prior
Antagonist / tactical summary
Away midfield dictates play with ~55% possession expected (Jon Ander Olasagasti vs Pablo Barrios). Total antagonist xG — Home: 0.66, Away: 1.31. Home danger zone: Left Wing vs Right Back — Flank Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Midfield — possession 45.4% / 54.6%, dominance ratio 0.35, key duel: Jon Ander Olasagasti vs Pablo Barrios
Roger Brugué xG 0.24Thiago Fernández xG 0.10Iván Romero xG 0.19Alejandro Grimaldo xG 0.20Pablo Barrios xG 0.08Julián Alvarez xG 0.39

Summary

Antagonist matchup analysis for Levante vs Atlético Madrid. Most likely scoreline: 1-2. Lambdas derived from 6 home and 7 away individual player duels. Head-to-head: Levante 2W-4D-4L vs Atlético Madrid over 10 meetings.
Tactical parity between 4-3-3 and 4-2-3-1. Match outcome driven primarily by individual player quality. Away midfield dictates play with ~55% possession expected (Jon Ander Olasagasti vs Pablo Barrios). Total antagonist xG — Home: 0.66, Away: 1.31. Home danger zone: Left Wing vs Right Back — Flank Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.

Man City vs Brighton

Premier League · 20261031 · 4-2-3-1 vs 4-2-3-1
Predicted 2-1Winner: Man CityWinning H 2-1 (9.1%)Winning A 1-2 (4.0%)Confidence 0.79λ home/away 2.62 / 1.15Most-likely P 9.1%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset Tracing
Antagonist + XGBoost match analysis for Man City vs Brighton. 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 2.747, Away 1.419). Final calibrated Poisson lambdas: Home 2.615, Away 1.154 (most likely score 2-1).
Home Starters 11/11 XGBoost (10 FBref) Away Starters 11/11 XGBoost (10 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 2.75 / 1.42 Final λ (H/A) 2.62 / 1.15
FBref Team Priors: Manchester City (Gls/90: 3.0, GA/90: 3.0 → E[λ]: 3.5) vs Brighton & Hove Albion (Gls/90: 2.5, GA/90: 3.5 → 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

MetricMan CityBrighton
League position1.003.00
Points per game2.081.72
Attack index1.321.43
Defense (concede) index0.850.92
Form multiplier1.020.98
Standing λ multiplier1.051.12

Lambda decomposition (how the goal rates were built)

StageMan City λBrighton λ
FBref Squad Prior E[λ] (weight 0.192)3.5003.500
Pre-mismatch3.0871.347
Pre-calibration (Micro-duels)2.7471.419
Final λ2.6151.154
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
2-19.1%
3-17.9%
2-07.9%
1-17.0%
3-06.9%
Home win68.6%
Draw16.7%
Away win14.6%
Over 2.572.6%
BTTS yes63.5%
Pregame fair line — favorite Man City (68.6%), fair total 3.77, fair spread 1.46

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Gianluigi DonnarummaG9000.00-n/a0.06.957.833FBref 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.0097, quality 0.809)market_value_eur=46000000
quality_factor=0.8089
boost_factor=1.0097
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=1.0
prior_reliability=0.1333
competition=Premier League
saves: 2.8368 -> 2.8291
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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, Diego Gómez', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.4192}
-
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.62 (squad xG sum 1.8062, xG scale 1.4478, xA scale 1.4478, team xA 1.90 = 0.73 x lambda)scoreline_reset=true
team_lambda=2.615
squad_xg_sum=1.8062
squad_xa_sum=1.3129
team_expected_assists=1.9009
team_xa_to_xg_ratio=0.7269
shots_faced: 13.5 -> 11.0
expected_saves: 3.31 -> 2.7
high_pressure_saves: 1.14 -> 0.92
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 89.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.0
scorer_weight=0.0
squad_weight_total=2.9791
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.8886
-
Matheus NunesD8500.000.0034%00.17.050.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.0099, quality 0.796)market_value_eur=43000000
quality_factor=0.7957
boost_factor=1.0099
reference_quality=0.505
history_matches=39
history_shrink=0.1136
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0020)blend_weight=0.002
history_matches=39
season_overlap_discount=1.0
per90_to_match_factor=0.9499
prior_reliability=0.0267
competition=Premier League
totalCross: 1.3665 -> 1.3732
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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': '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 2.62 (squad xG sum 1.8062, xG scale 1.4478, xA scale 1.4478, team xA 1.90 = 0.73 x lambda)scoreline_reset=true
team_lambda=2.615
squad_xg_sum=1.8062
squad_xa_sum=1.3129
team_expected_assists=1.9009
team_xa_to_xg_ratio=0.7269
expected_assists: 0.0377 -> 0.0546
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 83.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.0036
goal_rate=0.0006
scorer_weight=0.0035
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0531
assist_rate=0.0496
provider_weight=0.062
-
Abdukodir KhusanovD8900.040.0287%10.27.045.632FBref 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.0149, quality 0.813)market_value_eur=47000000
quality_factor=0.8129
boost_factor=1.0149
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.9854
prior_reliability=0.1333
competition=Premier League
wonTackle: 1.052 -> 1.0717
fouls: 1.3378 -> 1.3191
totalShots: 0.5687 -> 0.5608
wasFouled: 0.5684 -> 0.5605
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': 'Pascal Groß', '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 2.62 (squad xG sum 1.8062, xG scale 1.4478, xA scale 1.4478, team xA 1.90 = 0.73 x lambda)scoreline_reset=true
team_lambda=2.615
squad_xg_sum=1.8062
squad_xa_sum=1.3129
team_expected_assists=1.9009
team_xa_to_xg_ratio=0.7269
expected_goals: 0.0284 -> 0.0411
expected_assists: 0.0462 -> 0.0669
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0403
goal_rate=0.0
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.0647
assist_rate=0.0
provider_weight=0.0535
-
Joško GvardiolD8500.180.09109%10.66.844.619FBref 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.0176, quality 0.869)market_value_eur=69000000
quality_factor=0.8692
boost_factor=1.0176
reference_quality=0.505
history_matches=26
history_shrink=0.1613
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0126)blend_weight=0.0126
history_matches=26
season_overlap_discount=1.0
per90_to_match_factor=0.9423
prior_reliability=0.12
competition=Premier League
wasFouled: 1.3226 -> 1.306
totalCross: 0.2822 -> 0.2918
wonTackle: 1.1964 -> 1.1879
goals: 0.115 -> 0.1201
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 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.62 (squad xG sum 1.8062, xG scale 1.4478, xA scale 1.4478, team xA 1.90 = 0.73 x lambda)scoreline_reset=true
team_lambda=2.615
squad_xg_sum=1.8062
squad_xa_sum=1.3129
team_expected_assists=1.9009
team_xa_to_xg_ratio=0.7269
expected_goals: 0.1263 -> 0.1829
expected_assists: 0.1147 -> 0.1661
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 15 by projected rating, fifa_overall 85.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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.1671
goal_rate=0.1201
scorer_weight=0.1765
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.153
assist_rate=0.2699
provider_weight=0.2076
-
Elliot AndersonM8700.090.04134%11.07.361.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 1.0115, quality 0.896)market_value_eur=109000000
quality_factor=0.8957
boost_factor=1.0115
reference_quality=0.505
history_matches=46
history_shrink=0.098
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0068)blend_weight=0.0068
history_matches=46
season_overlap_discount=1.0
per90_to_match_factor=0.9616
prior_reliability=0.1067
competition=Premier League
interceptionWon: 1.4187 -> 1.4295
wasFouled: 3.0994 -> 3.0906
wonTackle: 1.2715 -> 1.2792
fouls: 1.423 -> 1.4297
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Chema Andrés', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.468, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 1.0701, 'skill_edge': 0.0917, 'height_edge': -0.044, 'attacker_skill': 0.8984, 'defender_skill': 0.6946, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Chema Andrés', 'market_value': 23000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.6946}], 'xg_override': 0.0641}
aerialWon: 1.2368 -> 1.0
totalShots: 0.8367 -> 0.8954
shotOffTarget: 0.6438 -> 0.6889
onTargetScoringAttempt: 0.1929 -> 0.2064
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.62 (squad xG sum 1.8062, xG scale 1.4478, xA scale 1.4478, team xA 1.90 = 0.73 x lambda)scoreline_reset=true
team_lambda=2.615
squad_xg_sum=1.8062
squad_xa_sum=1.3129
team_expected_assists=1.9009
team_xa_to_xg_ratio=0.7269
expected_goals: 0.0641 -> 0.0928
expected_assists: 0.1348 -> 0.1952
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0886
goal_rate=0.0708
scorer_weight=0.0982
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1773
assist_rate=0.0906
provider_weight=0.1562
-
Enzo FernándezM8600.230.1733%21.47.158.131FBref 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.0122, quality 0.897)market_value_eur=116000000
quality_factor=0.897
boost_factor=1.0122
reference_quality=0.505
history_matches=43
history_shrink=0.1042
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0014)blend_weight=0.0014
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=0.9598
prior_reliability=0.02
competition=Premier League
totalCross: 3.9545 -> 3.9491
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Chema Andrés', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.46, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 1.0587, 'skill_edge': 0.0919, 'height_edge': -0.052, 'attacker_skill': 0.8989, 'defender_skill': 0.6946, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Chema Andrés', 'market_value': 23000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.6946}], 'xg_override': 0.1584}
aerialWon: 0.7711 -> 1.0
totalShots: 1.5695 -> 1.6616
shotOffTarget: 1.0209 -> 1.0808
onTargetScoringAttempt: 0.5486 -> 0.5808
goals: 0.1997 -> 0.2114
expectedGoals: 0.1496 -> 0.1584
expectedGoalsOnTarget: 0.1288 -> 0.1364
bigChanceMissed: 0.1196 -> 0.1266
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.62 (squad xG sum 1.8062, xG scale 1.4478, xA scale 1.4478, team xA 1.90 = 0.73 x lambda)scoreline_reset=true
team_lambda=2.615
squad_xg_sum=1.8062
squad_xa_sum=1.3129
team_expected_assists=1.9009
team_xa_to_xg_ratio=0.7269
expected_goals: 0.1584 -> 0.2293
expected_assists: 0.1963 -> 0.2842
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.2049
goal_rate=0.2114
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.2474
assist_rate=0.1361
provider_weight=0.2274
-
Iliman NdiayeF8100.290.13117%21.17.149.840FBref 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.859)market_value_eur=63000000
quality_factor=0.8589
boost_factor=1.0118
reference_quality=0.505
history_matches=40
history_shrink=0.1111
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0096)blend_weight=0.0096
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=0.9038
prior_reliability=0.1333
competition=Premier League
totalCross: 2.4705 -> 2.4554
wasFouled: 1.3133 -> 1.305
onTargetScoringAttempt: 0.7696 -> 0.7752
wonTackle: 0.985 -> 0.9799
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 Vušković, Lewis Dunk', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.237, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 1.0541, 'skill_edge': 0.0828, 'height_edge': -0.046, 'attacker_skill': 0.8589, 'defender_skill': 0.6749, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Luka Vušković', 'market_value': 69000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.89}, {'player': 'Lewis Dunk', 'market_value': 3600000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4597}], 'xg_override': 0.2005}
totalShots: 1.7902 -> 1.887
shotOffTarget: 1.015 -> 1.0699
onTargetScoringAttempt: 0.7752 -> 0.8171
bigChanceMissed: 0.2078 -> 0.219
goals: 0.1962 -> 0.2068
expectedGoals: 0.1902 -> 0.2005
expectedGoalsOnTarget: 0.1401 -> 0.1477
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.62 (squad xG sum 1.8062, xG scale 1.4478, xA scale 1.4478, team xA 1.90 = 0.73 x lambda)scoreline_reset=true
team_lambda=2.615
squad_xg_sum=1.8062
squad_xa_sum=1.3129
team_expected_assists=1.9009
team_xa_to_xg_ratio=0.7269
expected_goals: 0.2005 -> 0.2903
expected_assists: 0.1542 -> 0.2233
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 82.0)match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.252
goal_rate=0.2068
scorer_weight=0.2976
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.2001
assist_rate=0.3545
provider_weight=0.2791
-
Rayan CherkiM7300.380.13185%31.67.257.634FBref 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.0131, quality 0.898)market_value_eur=120000000
quality_factor=0.8975
boost_factor=1.0131
reference_quality=0.505
history_matches=40
history_shrink=0.1111
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0058)blend_weight=0.0058
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=0.8119
prior_reliability=0.08
competition=Premier League
totalCross: 2.2824 -> 2.2927
fouls: 0.9872 -> 0.9971
goalAssist: 0.1766 -> 0.1834
onTargetScoringAttempt: 0.8688 -> 0.8754
goals: 0.2798 -> 0.286
wasFouled: 0.8828 -> 0.8777
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.501, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 1.0312, 'skill_edge': 0.0492, 'height_edge': -0.028, 'attacker_skill': 0.8975, 'defender_skill': 0.7881, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Maxim De Cuyper', 'market_value': 29000000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.7881}], 'xg_override': 0.2649}
aerialWon: 0.0 -> 0.9
totalShots: 2.3878 -> 2.4623
shotOffTarget: 1.5124 -> 1.5596
onTargetScoringAttempt: 0.8754 -> 0.9027
expectedGoalsOnTarget: 0.4315 -> 0.445
goals: 0.286 -> 0.2949
expectedGoals: 0.2569 -> 0.2649
bigChanceMissed: 0.1987 -> 0.2049
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.62 (squad xG sum 1.8062, xG scale 1.4478, xA scale 1.4478, team xA 1.90 = 0.73 x lambda)scoreline_reset=true
team_lambda=2.615
squad_xg_sum=1.8062
squad_xa_sum=1.3129
team_expected_assists=1.9009
team_xa_to_xg_ratio=0.7269
expected_goals: 0.2649 -> 0.3835
expected_assists: 0.2075 -> 0.3004
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 86.0)match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.3185
goal_rate=0.2949
scorer_weight=0.42
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.2595
assist_rate=0.1834
provider_weight=0.2723
-
Jérémy DokuF8300.250.06307%31.17.346.732XGBoost 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.0141, quality 0.871)market_value_eur=70000000
quality_factor=0.8707
boost_factor=1.0141
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': 'Luka Vušković, Lewis Dunk', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.228, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 1.0413, 'skill_edge': 0.0881, 'height_edge': -0.06, 'attacker_skill': 0.8707, 'defender_skill': 0.6749, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Luka Vušković', 'market_value': 69000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.89}, {'player': 'Lewis Dunk', 'market_value': 3600000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4597}], 'xg_override': 0.175}
totalShots: 2.5283 -> 2.6328
shotOffTarget: 1.8612 -> 1.9381
onTargetScoringAttempt: 0.6671 -> 0.6947
expectedGoalsOnTarget: 0.3153 -> 0.3283
goals: 0.2134 -> 0.2222
expectedGoals: 0.1681 -> 0.175
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.62 (squad xG sum 1.8062, xG scale 1.4478, xA scale 1.4478, team xA 1.90 = 0.73 x lambda)scoreline_reset=true
team_lambda=2.615
squad_xg_sum=1.8062
squad_xa_sum=1.3129
team_expected_assists=1.9009
team_xa_to_xg_ratio=0.7269
expected_goals: 0.175 -> 0.2534
expected_assists: 0.2184 -> 0.316
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
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.2238
goal_rate=0.2222
scorer_weight=0.3066
-
integer_assist_projectionTeam scoreline allocation: 1 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.2709
assist_rate=0.2541
provider_weight=0.358
-
Erling HaalandF8820.920.4892%42.87.456.432FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0123, quality 0.900)market_value_eur=240000000
quality_factor=0.9
boost_factor=1.0123
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.9777
prior_reliability=0.1333
competition=Premier League
totalShots: 2.9982 -> 3.0153
onTargetScoringAttempt: 1.4368 -> 1.4459
fouls: 0.769 -> 0.7621
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 Vušković, Lewis Dunk', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.315, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 1.1695, 'skill_edge': 0.1013, 'height_edge': 0.014, 'attacker_skill': 0.9, 'defender_skill': 0.6749, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Luka Vušković', 'market_value': 69000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.89}, {'player': 'Lewis Dunk', 'market_value': 3600000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4597}], 'xg_override': 0.636}
totalShots: 3.0153 -> 3.5264
shotOffTarget: 1.5614 -> 1.8261
onTargetScoringAttempt: 1.4459 -> 1.691
expectedGoalsOnTarget: 0.9417 -> 1.1013
goals: 0.7908 -> 0.9248
bigChanceMissed: 0.651 -> 0.7613
expectedGoals: 0.5438 -> 0.636
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.62 (squad xG sum 1.8062, xG scale 1.4478, xA scale 1.4478, team xA 1.90 = 0.73 x lambda)scoreline_reset=true
team_lambda=2.615
squad_xg_sum=1.8062
squad_xa_sum=1.3129
team_expected_assists=1.9009
team_xa_to_xg_ratio=0.7269
expected_goals: 0.636 -> 0.9208
expected_assists: 0.0608 -> 0.088
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 91.0)match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=2
goal_probability=0.6018
goal_rate=0.9248
scorer_weight=1.151
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0842
assist_rate=0.0672
provider_weight=0.0931
-
Rúben DiasD8900.080.03232%10.37.043.426FBref 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.0129, quality 0.840)market_value_eur=55000000
quality_factor=0.8399
boost_factor=1.0129
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.9864
prior_reliability=0.1333
competition=Premier League
fouls: 1.6517 -> 1.6334
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 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.62 (squad xG sum 1.8062, xG scale 1.4478, xA scale 1.4478, team xA 1.90 = 0.73 x lambda)scoreline_reset=true
team_lambda=2.615
squad_xg_sum=1.8062
squad_xa_sum=1.3129
team_expected_assists=1.9009
team_xa_to_xg_ratio=0.7269
expected_goals: 0.0579 -> 0.0838
expected_assists: 0.0669 -> 0.0969
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
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.0804
goal_rate=0.0134
scorer_weight=0.067
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0924
assist_rate=0.0
provider_weight=0.0775
-
Team totals22.62217.1
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
EdersonG4.7m12.2%Market-value substitute prior
Nico O'ReillyD15.3m25.3%Market-value substitute prior
Marc GuéhiD15.3m25.2%Market-value substitute prior
Ayyoub BouaddiM15.7m72.9%Market-value substitute prior
Phil FodenM23.7m34.2%Market-value substitute prior
Antoine SemenyoF27.1m37.0%Market-value substitute prior

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.057.733FBref 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.0076, quality 0.764)market_value_eur=37000000
quality_factor=0.7641
boost_factor=1.0076
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
saves: 2.9074 -> 2.887
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Erling Haaland, Rayan Cherki', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 2.7469}
-
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.15 (squad xG sum 1.2390, xG scale 0.9314, xA scale 0.9314, team xA 0.91 = 0.78 x lambda)scoreline_reset=true
team_lambda=1.154
squad_xg_sum=1.239
squad_xa_sum=0.9722
team_expected_assists=0.9055
team_xa_to_xg_ratio=0.7846
shots_faced: 26.1 -> 24.8
expected_saves: 6.39 -> 6.06
high_pressure_saves: 2.2 -> 2.09
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 81.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.2134
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.9064
-
CostinhaD9000.020.0170%10.26.734.114FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0009, quality 0.512)market_value_eur=9100000
quality_factor=0.5118
boost_factor=1.0009
reference_quality=0.505
history_matches=7
history_shrink=0.4167
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0072)blend_weight=0.0072
history_matches=7
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.0267
competition=Premier League
totalShots: 0.5274 -> 0.5579
onTargetScoringAttempt: 0.0834 -> 0.0999
interceptionWon: 0.7669 -> 0.7794
wonTackle: 0.9032 -> 0.9147
fouls: 1.0028 -> 1.0136
totalCross: 1.1349 -> 1.1267
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Erling Haaland', '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.15 (squad xG sum 1.2390, xG scale 0.9314, xA scale 0.9314, team xA 0.91 = 0.78 x lambda)scoreline_reset=true
team_lambda=1.154
squad_xg_sum=1.239
squad_xa_sum=0.9722
team_expected_assists=0.9055
team_xa_to_xg_ratio=0.7846
expected_assists: 0.1088 -> 0.1013
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 16 by projected rating, fifa_overall 75.0)match_squad_rank=16
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0227
goal_rate=0.0
scorer_weight=0.0184
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0963
assist_rate=0.0
provider_weight=0.081
-
Luka VuškovićD8900.170.0991%11.17.142.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.0420, quality 0.869)market_value_eur=69000000
quality_factor=0.8692
boost_factor=1.042
reference_quality=0.505
history_matches=8
history_shrink=0.3846
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0333)blend_weight=0.0333
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=0.9886
prior_reliability=0.1333
competition=Premier League
interceptionWon: 1.2228 -> 1.1821
wasFouled: 1.0365 -> 1.002
totalShots: 1.3477 -> 1.3687
fouls: 1.5357 -> 1.5175
totalCross: 0.4055 -> 0.392
onTargetScoringAttempt: 0.2779 -> 0.2686
wonTackle: 0.7113 -> 0.7041
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Erling Haaland', '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.15 (squad xG sum 1.2390, xG scale 0.9314, xA scale 0.9314, team xA 0.91 = 0.78 x lambda)scoreline_reset=true
team_lambda=1.154
squad_xg_sum=1.239
squad_xa_sum=0.9722
team_expected_assists=0.9055
team_xa_to_xg_ratio=0.7846
expected_goals: 0.1823 -> 0.1698
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 81.0)match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1562
goal_rate=0.0921
scorer_weight=0.1358
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0246
assist_rate=0.0
provider_weight=0.0199
-
Lewis DunkD9000.030.04ok10.57.153.030FBref 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.445)market_value_eur=3600000
quality_factor=0.4449
boost_factor=0.998
reference_quality=0.505
history_matches=40
history_shrink=0.1111
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0096)blend_weight=0.0096
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=0.9987
prior_reliability=0.1333
competition=Premier League
fouls: 0.466 -> 0.4759
totalCross: 0.1765 -> 0.1844
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Erling Haaland', '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.15 (squad xG sum 1.2390, xG scale 0.9314, xA scale 0.9314, team xA 0.91 = 0.78 x lambda)scoreline_reset=true
team_lambda=1.154
squad_xg_sum=1.239
squad_xa_sum=0.9722
team_expected_assists=0.9055
team_xa_to_xg_ratio=0.7846
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 77.0)match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0322
goal_rate=0.1509
scorer_weight=0.0409
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0166
assist_rate=0.0
provider_weight=0.0134
-
Olivier BoscagliD7900.010.01122%10.27.037.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.0067, quality 0.616)market_value_eur=18500000
quality_factor=0.6161
boost_factor=1.0067
reference_quality=0.505
history_matches=20
history_shrink=0.2
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0173)blend_weight=0.0173
history_matches=20
season_overlap_discount=1.0
per90_to_match_factor=0.8746
prior_reliability=0.1333
competition=Premier League
fouls: 1.0602 -> 1.0721
totalCross: 2.708 -> 2.699
onTargetScoringAttempt: 0.0608 -> 0.0673
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Iliman Ndiaye', '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.15 (squad xG sum 1.2390, xG scale 0.9314, xA scale 0.9314, team xA 0.91 = 0.78 x lambda)scoreline_reset=true
team_lambda=1.154
squad_xg_sum=1.239
squad_xa_sum=0.9722
team_expected_assists=0.9055
team_xa_to_xg_ratio=0.7846
expected_assists: 0.0788 -> 0.0734
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.0147
goal_rate=0.0
scorer_weight=0.0118
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0708
assist_rate=0.1508
provider_weight=0.0918
-
Pascal GroßM8700.110.11ok10.97.258.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.9968, quality 0.437)market_value_eur=2300000
quality_factor=0.4374
boost_factor=0.9968
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.9713
prior_reliability=0.1333
competition=Premier League
totalCross: 6.4988 -> 6.5292
totalShots: 1.6308 -> 1.6153
interceptionWon: 0.4566 -> 0.4504
wasFouled: 0.3917 -> 0.3864
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Abdukodir Khusanov', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.267, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.6869, 'skill_edge': -0.193, 'height_edge': -0.02, 'attacker_skill': 0.4374, 'defender_skill': 0.8663, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Abdukodir Khusanov', 'market_value': 47000000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.8663}], 'xg_override': 0.118}
aerialWon: 0.5298 -> 1.1
totalShots: 1.6298 -> 1.1195
shotOffTarget: 1.0727 -> 0.7368
onTargetScoringAttempt: 0.5571 -> 0.3827
goals: 0.1787 -> 0.1227
expectedGoals: 0.1718 -> 0.118
expectedGoalsOnTarget: 0.1062 -> 0.0729
bigChanceMissed: 0.0704 -> 0.0484
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.15 (squad xG sum 1.2390, xG scale 0.9314, xA scale 0.9314, team xA 0.91 = 0.78 x lambda)scoreline_reset=true
team_lambda=1.154
squad_xg_sum=1.239
squad_xa_sum=0.9722
team_expected_assists=0.9055
team_xa_to_xg_ratio=0.7846
expected_goals: 0.118 -> 0.1099
expected_assists: 0.2031 -> 0.1891
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 79.0)match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1041
goal_rate=0.1227
scorer_weight=0.113
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1723
assist_rate=0.1704
provider_weight=0.1647
-
Chema AndrésM8000.060.04ok10.36.829.212XGBoost 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.0232, quality 0.660)market_value_eur=23000000
quality_factor=0.6595
boost_factor=1.0232
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': 'Elliot Anderson', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.372, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9299, 'skill_edge': -0.0917, 'height_edge': 0.044, 'attacker_skill': 0.6946, 'defender_skill': 0.8984, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Elliot Anderson', 'market_value': 109000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8984}], 'xg_override': 0.0601}
totalShots: 0.7737 -> 0.7195
aerialWon: 1.2588 -> 1.3
shotOffTarget: 0.5131 -> 0.4771
onTargetScoringAttempt: 0.2605 -> 0.2422
expectedGoalsOnTarget: 0.1833 -> 0.1705
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.15 (squad xG sum 1.2390, xG scale 0.9314, xA scale 0.9314, team xA 0.91 = 0.78 x lambda)scoreline_reset=true
team_lambda=1.154
squad_xg_sum=1.239
squad_xa_sum=0.9722
team_expected_assists=0.9055
team_xa_to_xg_ratio=0.7846
-
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_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.0545
goal_rate=0.0609
scorer_weight=0.0564
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.0526
provider_weight=0.0425
-
Diego GómezM8400.160.13ok21.47.054.129FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0076, quality 0.732)market_value_eur=32000000
quality_factor=0.732
boost_factor=1.0076
reference_quality=0.505
history_matches=40
history_shrink=0.1111
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0092)blend_weight=0.0092
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=0.9307
prior_reliability=0.1267
competition=Premier League
totalShots: 2.1177 -> 2.1333
wonTackle: 1.1542 -> 1.1616
onTargetScoringAttempt: 0.6991 -> 0.7058
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Elliot Anderson', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.385, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.949, 'skill_edge': -0.0587, 'height_edge': 0.024, 'attacker_skill': 0.7679, 'defender_skill': 0.8984, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Elliot Anderson', 'market_value': 109000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8984}], 'xg_override': 0.1734}
aerialWon: 2.9534 -> 1.2
totalShots: 2.1333 -> 2.0245
shotOffTarget: 1.4186 -> 1.3463
onTargetScoringAttempt: 0.7058 -> 0.6698
bigChanceMissed: 0.2704 -> 0.2566
goals: 0.1947 -> 0.1848
expectedGoals: 0.1827 -> 0.1734
expectedGoalsOnTarget: 0.1091 -> 0.1035
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.15 (squad xG sum 1.2390, xG scale 0.9314, xA scale 0.9314, team xA 0.91 = 0.78 x lambda)scoreline_reset=true
team_lambda=1.154
squad_xg_sum=1.239
squad_xa_sum=0.9722
team_expected_assists=0.9055
team_xa_to_xg_ratio=0.7846
expected_goals: 0.1734 -> 0.1615
expected_assists: 0.1042 -> 0.097
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 78.0)match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1491
goal_rate=0.1848
scorer_weight=0.1697
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0924
assist_rate=0.1222
provider_weight=0.1083
-
Yasin AyariM8400.130.0790%20.96.948.527FBref 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.0103, quality 0.786)market_value_eur=41000000
quality_factor=0.7859
boost_factor=1.0103
reference_quality=0.505
history_matches=36
history_shrink=0.122
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0037)blend_weight=0.0037
history_matches=36
season_overlap_discount=1.0
per90_to_match_factor=0.9353
prior_reliability=0.0467
competition=Premier League
fouls: 0.5457 -> 0.5536
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Elliot Anderson, Enzo Fernández', 'matchup_zone': 'Attacking Mid vs Double Pivot — Tight Space Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.8971, 'skill_edge': -0.046, 'height_edge': -0.024, 'attacker_skill': 0.7964, 'defender_skill': 0.8986, 'attacker_role': 'CAM', 'attacker_mv_price_index': 0.95, 'defender_adjusted_parts': [{'player': 'Elliot Anderson', 'market_value': 109000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8984}, {'player': 'Enzo Fernández', 'market_value': 116000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8989}], 'xg_override': 0.1409}
aerialWon: 0.302 -> 0.8
totalShots: 1.8621 -> 1.6705
shotOffTarget: 1.3961 -> 1.2524
onTargetScoringAttempt: 0.4613 -> 0.4138
expectedGoalsOnTarget: 0.2052 -> 0.1841
goals: 0.1597 -> 0.1433
expectedGoals: 0.1571 -> 0.1409
bigChanceMissed: 0.154 -> 0.1382
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.15 (squad xG sum 1.2390, xG scale 0.9314, xA scale 0.9314, team xA 0.91 = 0.78 x lambda)scoreline_reset=true
team_lambda=1.154
squad_xg_sum=1.239
squad_xa_sum=0.9722
team_expected_assists=0.9055
team_xa_to_xg_ratio=0.7846
expected_goals: 0.1409 -> 0.1312
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.123
goal_rate=0.1433
scorer_weight=0.1329
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0583
assist_rate=0.0686
provider_weight=0.0623
-
Maxim De CuyperD8200.120.10ok10.66.849.638FBref 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.0096)blend_weight=0.0096
history_matches=38
season_overlap_discount=1.0
per90_to_match_factor=0.9079
prior_reliability=0.1267
competition=Premier League
totalCross: 4.2843 -> 4.3028
totalShots: 0.8661 -> 0.8812
wasFouled: 1.0788 -> 1.0685
fouls: 1.3271 -> 1.3327
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 Cherki', '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.15 (squad xG sum 1.2390, xG scale 0.9314, xA scale 0.9314, team xA 0.91 = 0.78 x lambda)scoreline_reset=true
team_lambda=1.154
squad_xg_sum=1.239
squad_xa_sum=0.9722
team_expected_assists=0.9055
team_xa_to_xg_ratio=0.7846
expected_goals: 0.1293 -> 0.1204
expected_assists: 0.1854 -> 0.1727
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.1134
goal_rate=0.1723
scorer_weight=0.1493
-
integer_assist_projectionTeam scoreline allocation: 1 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.1586
assist_rate=0.207
provider_weight=0.1886
-
Charalampos KostoulasF7810.260.13104%21.16.843.230FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0128, quality 0.796)market_value_eur=43000000
quality_factor=0.7957
boost_factor=1.0128
reference_quality=0.505
history_matches=29
history_shrink=0.1471
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0076)blend_weight=0.0076
history_matches=29
season_overlap_discount=1.0
per90_to_match_factor=0.8714
prior_reliability=0.08
competition=Premier League
wasFouled: 1.4458 -> 1.4347
wonTackle: 0.6546 -> 0.6496
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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ško Gvardiol, Rúben Dias', '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.9308, 'skill_edge': -0.0391, 'height_edge': -0.008, 'attacker_skill': 0.7957, 'defender_skill': 0.8826, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Joško Gvardiol', 'market_value': 69000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.89}, {'player': 'Rúben Dias', 'market_value': 55000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8751}], 'xg_override': 0.2778}
totalShots: 2.2516 -> 2.0958
shotOffTarget: 1.464 -> 1.3627
onTargetScoringAttempt: 0.7873 -> 0.7328
goals: 0.3737 -> 0.3478
expectedGoalsOnTarget: 0.331 -> 0.3081
bigChanceMissed: 0.3193 -> 0.2972
expectedGoals: 0.2985 -> 0.2778
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.15 (squad xG sum 1.2390, xG scale 0.9314, xA scale 0.9314, team xA 0.91 = 0.78 x lambda)scoreline_reset=true
team_lambda=1.154
squad_xg_sum=1.239
squad_xa_sum=0.9722
team_expected_assists=0.9055
team_xa_to_xg_ratio=0.7846
expected_goals: 0.2778 -> 0.2587
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 73.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=1
goal_probability=0.2279
goal_rate=0.3478
scorer_weight=0.3139
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0592
assist_rate=0.3407
provider_weight=0.0762
-
Team totals11.15156.9
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Tom McGillG4.4m10.9%Market-value substitute prior
Ferdi KadıoğluD14.9m36.1%Market-value substitute prior
Mats WiefferD14.5m23.6%Market-value substitute prior
Jack HinshelwoodM23.2m33.2%Market-value substitute prior
Georginio RutterM23.1m33.0%Market-value substitute prior
Yankuba MintehF26.8m62.9%Market-value substitute prior
Antagonist / tactical summary
Home midfield dominates with ~52% possession expected (Rayan Cherki vs Yasin Ayari). Total antagonist xG — Home: 1.50, Away: 0.77. 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.6% / 48.4%, dominance ratio 0.57, key duel: Rayan Cherki vs Yasin Ayari
Rayan Cherki xG 0.26Erling Haaland xG 0.64Iliman Ndiaye xG 0.20Pascal Groß xG 0.12Yasin Ayari xG 0.14Charalampos Kostoulas xG 0.28

Summary

Antagonist matchup analysis for Man City vs Brighton. Most likely scoreline: 2-1. Lambdas derived from 6 home and 5 away individual player duels. Head-to-head: Man City 5W-3D-2L vs Brighton over 10 meetings.
Tactical parity between 4-2-3-1 and 4-2-3-1. Match outcome driven primarily by individual player quality. Home midfield dominates with ~52% possession expected (Rayan Cherki vs Yasin Ayari). Total antagonist xG — Home: 1.50, Away: 0.77. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.

Rayo Vallecano vs Celta

LaLiga · 20261031 · 4-2-3-1 vs 3-4-3
Predicted 2-1Winner: Rayo VallecanoWinning H 2-1 (9.4%)Winning A 1-2 (7.1%)Confidence 0.73λ home/away 1.70 / 1.28Most-likely P 9.4%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset Tracing
Antagonist + XGBoost match analysis for Rayo Vallecano vs Celta. Player statistics regressed using position-specific XGBoost models (G, D, M, F) with 2026-2027 FBref priors. Micro-duels resolved across 4-2-3-1 vs 3-4-3 (duel lambdas: Home 1.027, Away 0.982). Final calibrated Poisson lambdas: Home 1.704, Away 1.280 (most likely score 2-1).
Home Starters 11/11 XGBoost (7 FBref) Away Starters 11/11 XGBoost (10 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.03 / 0.98 Final λ (H/A) 1.70 / 1.28
FBref Team Priors: Rayo Vallecano (Gls/90: 1.3333333333333333, GA/90: 1.33 → E[λ]: 0.247) vs Celta Vigo (Gls/90: 0.25, GA/90: 0.25 → E[λ]: 0.246) | 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

MetricRayo VallecanoCelta
League position17.009.00
Points per game1.151.26
Attack index1.000.85
Defense (concede) index0.761.27
Form multiplier0.991.01
Standing λ multiplier0.901.03

Lambda decomposition (how the goal rates were built)

StageRayo Vallecano λCelta λ
FBref Squad Prior E[λ] (weight 0.228)0.2470.246
Pre-competitive-floor1.3261.038
Pre-calibration (Micro-duels)1.0270.982
Final λ1.7041.280
competition calibration scale 1.262competition 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.1%
2-19.4%
1-08.5%
2-07.3%
1-27.1%
Home win47.3%
Draw23.9%
Away win28.7%
Over 2.557.3%
BTTS yes59.1%
Pregame fair line — favorite Rayo Vallecano (47.3%), fair total 2.98, fair spread 0.42

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.

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Emil AuderoG9000.00-n/a0.07.034.410XGBoost 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=2700000
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': 'Ferrán Jutglà, Pablo Durán', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 0.982}
-
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.70 (squad xG sum 1.1313, xG scale 1.5063, xA scale 1.5063, team xA 1.21 = 0.71 x lambda)scoreline_reset=true
team_lambda=1.704
squad_xg_sum=1.1313
squad_xa_sum=0.8
team_expected_assists=1.2051
team_xa_to_xg_ratio=0.7072
shots_faced: 9.3 -> 12.2
expected_saves: 2.27 -> 2.99
high_pressure_saves: 0.79 -> 1.02
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: 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.8323
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.1517
-
Iván BalliuD7900.030.003462%00.06.728.830FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9962, quality 0.437)market_value_eur=1100000
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.0160)blend_weight=0.016
history_matches=22
season_overlap_discount=1.0
per90_to_match_factor=0.8808
prior_reliability=0.1333
competition=La Liga
totalCross: 0.8873 -> 0.8801
totalShots: 0.3318 -> 0.3265
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Ferrán Jutglà', 'matchup_zone': 'Shape fallback'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 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.70 (squad xG sum 1.1313, xG scale 1.5063, xA scale 1.5063, team xA 1.21 = 0.71 x lambda)scoreline_reset=true
team_lambda=1.704
squad_xg_sum=1.1313
squad_xa_sum=0.8
team_expected_assists=1.2051
team_xa_to_xg_ratio=0.7072
expected_goals: 0.0189 -> 0.0285
expected_assists: 0.0311 -> 0.0468
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0281
goal_rate=0.0
scorer_weight=0.0228
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0457
assist_rate=0.0
provider_weight=0.0374
-
Florian LejeuneD9000.110.0689%11.47.059.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 0.9980, quality 0.437)market_value_eur=1700000
quality_factor=0.4374
boost_factor=0.998
reference_quality=0.505
history_matches=45
history_shrink=0.1
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0130)blend_weight=0.013
history_matches=45
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.2
competition=La Liga
interceptionWon: 1.1913 -> 1.2105
wonTackle: 0.9052 -> 0.9194
fouls: 1.4816 -> 1.4753
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Ferrán Jutglà', 'matchup_zone': 'Shadow Striker vs Centre Back — Half-Space Threat'}
-
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.70 (squad xG sum 1.1313, xG scale 1.5063, xA scale 1.5063, team xA 1.21 = 0.71 x lambda)scoreline_reset=true
team_lambda=1.704
squad_xg_sum=1.1313
squad_xa_sum=0.8
team_expected_assists=1.2051
team_xa_to_xg_ratio=0.7072
expected_goals: 0.0741 -> 0.1116
expected_assists: 0.0169 -> 0.0255
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.1056
goal_rate=0.0471
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.0252
assist_rate=0.0094
provider_weight=0.0226
-
Mujaid SadickD8600.050.01370%00.16.833.110XGBoost 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.9930, quality 0.458)market_value_eur=4700000
quality_factor=0.4585
boost_factor=0.993
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': 'Pablo Durán', '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.70 (squad xG sum 1.1313, xG scale 1.5063, xA scale 1.5063, team xA 1.21 = 0.71 x lambda)scoreline_reset=true
team_lambda=1.704
squad_xg_sum=1.1313
squad_xa_sum=0.8
team_expected_assists=1.2051
team_xa_to_xg_ratio=0.7072
expected_goals: 0.0338 -> 0.0509
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0496
goal_rate=0.0
scorer_weight=0.0407
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0087
assist_rate=0.0
provider_weight=0.0078
-
Adrià PedrosaD8200.050.01258%10.46.744.732FBref 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=2700000
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.0039)blend_weight=0.0039
history_matches=34
season_overlap_discount=1.0
per90_to_match_factor=0.9127
prior_reliability=0.0467
competition=La Liga
fouls: 1.3042 -> 1.3093
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 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.70 (squad xG sum 1.1313, xG scale 1.5063, xA scale 1.5063, team xA 1.21 = 0.71 x lambda)scoreline_reset=true
team_lambda=1.704
squad_xg_sum=1.1313
squad_xa_sum=0.8
team_expected_assists=1.2051
team_xa_to_xg_ratio=0.7072
expected_goals: 0.0354 -> 0.0533
expected_assists: 0.1358 -> 0.2046
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.0519
goal_rate=0.102
scorer_weight=0.0666
-
integer_assist_projectionTeam scoreline allocation: 1 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.185
assist_rate=0.12
provider_weight=0.1872
-
Óscar ValentínM7200.050.02109%00.26.953.632FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 0.9978, quality 0.437)market_value_eur=1900000
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.0108)blend_weight=0.0108
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=0.7946
prior_reliability=0.1533
competition=La Liga
totalCross: 0.1696 -> 0.1752
fouls: 1.2291 -> 1.2345
totalShots: 0.484 -> 0.4788
interceptionWon: 0.9159 -> 0.9209
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Ilaix Moriba, Javier Rueda', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel'}
-
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.70 (squad xG sum 1.1313, xG scale 1.5063, xA scale 1.5063, team xA 1.21 = 0.71 x lambda)scoreline_reset=true
team_lambda=1.704
squad_xg_sum=1.1313
squad_xa_sum=0.8
team_expected_assists=1.2051
team_xa_to_xg_ratio=0.7072
expected_goals: 0.0345 -> 0.052
expected_assists: 0.044 -> 0.0663
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 77.0)match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0507
goal_rate=0.0518
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.0641
assist_rate=0.052
provider_weight=0.0719
-
Unai LópezM8100.090.03257%10.67.150.730FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 0.9976, quality 0.437)market_value_eur=2600000
quality_factor=0.4374
boost_factor=0.9976
reference_quality=0.505
history_matches=37
history_shrink=0.119
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0139)blend_weight=0.0139
history_matches=37
season_overlap_discount=1.0
per90_to_match_factor=0.9047
prior_reliability=0.18
competition=La Liga
totalShots: 1.1063 -> 1.0956
fouls: 0.9474 -> 0.9575
interceptionWon: 1.1698 -> 1.1628
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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': 'Midfield lane'}
-
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.70 (squad xG sum 1.1313, xG scale 1.5063, xA scale 1.5063, team xA 1.21 = 0.71 x lambda)scoreline_reset=true
team_lambda=1.704
squad_xg_sum=1.1313
squad_xa_sum=0.8
team_expected_assists=1.2051
team_xa_to_xg_ratio=0.7072
expected_goals: 0.0614 -> 0.0925
expected_assists: 0.1446 -> 0.2178
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.0884
goal_rate=0.0752
scorer_weight=0.104
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1957
assist_rate=0.1061
provider_weight=0.1747
-
Jorge de FrutosF6900.200.19ok11.16.760.136XGBoost 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=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': 'Javi Rodríguez, Marcos Alonso', '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.9123, 'skill_edge': -0.0077, 'height_edge': -0.052, 'attacker_skill': 0.533, 'defender_skill': 0.55, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Javi Rodríguez', 'market_value': 17500000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6625}, {'player': 'Marcos Alonso', 'market_value': 1300000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.1334}
totalShots: 1.2907 -> 1.1775
shotOffTarget: 0.7939 -> 0.7243
onTargetScoringAttempt: 0.4968 -> 0.4532
expectedGoalsOnTarget: 0.1755 -> 0.1601
goals: 0.154 -> 0.1405
expectedGoals: 0.1462 -> 0.1334
bigChanceMissed: 0.1059 -> 0.0966
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.70 (squad xG sum 1.1313, xG scale 1.5063, xA scale 1.5063, team xA 1.21 = 0.71 x lambda)scoreline_reset=true
team_lambda=1.704
squad_xg_sum=1.1313
squad_xa_sum=0.8
team_expected_assists=1.2051
team_xa_to_xg_ratio=0.7072
expected_goals: 0.1334 -> 0.2009
expected_assists: 0.0633 -> 0.0953
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_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.182
goal_rate=0.1405
scorer_weight=0.2087
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0909
assist_rate=0.195
provider_weight=0.1191
-
Isi PalazónM6700.130.1035%11.16.853.824XGBoost 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=3000000
quality_factor=0.4374
boost_factor=0.9975
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': 'Javi Rodríguez', 'matchup_zone': 'LW vs CB', 'duel_win_rate': 0.259, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.7629, 'skill_edge': -0.1013, 'height_edge': -0.06, 'attacker_skill': 0.4374, 'defender_skill': 0.6625, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Javi Rodríguez', 'market_value': 17500000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6625}], 'xg_override': 0.0869}
totalShots: 1.5131 -> 1.1543
shotOffTarget: 1.0627 -> 0.8107
onTargetScoringAttempt: 0.4503 -> 0.3435
aerialWon: 0.8712 -> 0.8
bigChanceMissed: 0.1481 -> 0.113
goals: 0.1245 -> 0.095
expectedGoals: 0.1139 -> 0.0869
expectedGoalsOnTarget: 0.0729 -> 0.0556
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.70 (squad xG sum 1.1313, xG scale 1.5063, xA scale 1.5063, team xA 1.21 = 0.71 x lambda)scoreline_reset=true
team_lambda=1.704
squad_xg_sum=1.1313
squad_xa_sum=0.8
team_expected_assists=1.2051
team_xa_to_xg_ratio=0.7072
expected_goals: 0.0869 -> 0.1309
expected_assists: 0.1174 -> 0.1768
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_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.1227
goal_rate=0.095
scorer_weight=0.1386
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1621
assist_rate=0.094
provider_weight=0.1521
-
Álvaro GarcíaF8210.350.16114%21.06.953.438FBref 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=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.9089
prior_reliability=0.1467
competition=La Liga
totalCross: 4.0359 -> 4.0198
totalShots: 2.0446 -> 2.0321
fouls: 0.5481 -> 0.5553
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 Rodríguez, Marcos Alonso', '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.8373, 'skill_edge': -0.0507, 'height_edge': -0.06, 'attacker_skill': 0.4374, 'defender_skill': 0.55, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Javi Rodríguez', 'market_value': 17500000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6625}, {'player': 'Marcos Alonso', 'market_value': 1300000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.2308}
totalShots: 2.0415 -> 1.7094
shotOffTarget: 1.3279 -> 1.1119
onTargetScoringAttempt: 0.7136 -> 0.5975
goals: 0.3139 -> 0.2628
expectedGoalsOnTarget: 0.2847 -> 0.2384
expectedGoals: 0.2756 -> 0.2308
bigChanceMissed: 0.2525 -> 0.2114
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.70 (squad xG sum 1.1313, xG scale 1.5063, xA scale 1.5063, team xA 1.21 = 0.71 x lambda)scoreline_reset=true
team_lambda=1.704
squad_xg_sum=1.1313
squad_xa_sum=0.8
team_expected_assists=1.2051
team_xa_to_xg_ratio=0.7072
expected_goals: 0.2308 -> 0.3476
expected_assists: 0.085 -> 0.128
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 81.0)match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=1
goal_probability=0.2936
goal_rate=0.2628
scorer_weight=0.3872
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1201
assist_rate=0.2127
provider_weight=0.16
-
Sergio CamelloF7110.440.17154%21.47.046.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.0012, quality 0.533)market_value_eur=10900000
quality_factor=0.533
boost_factor=1.0012
reference_quality=0.505
history_matches=31
history_shrink=0.1389
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0126)blend_weight=0.0126
history_matches=31
season_overlap_discount=1.0
per90_to_match_factor=0.7933
prior_reliability=0.14
competition=La Liga
goals: 0.3602 -> 0.37
wasFouled: 1.5246 -> 1.534
onTargetScoringAttempt: 0.8541 -> 0.8622
totalCross: 0.1612 -> 0.1687
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 Rodríguez, Marcos Alonso', '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.9358, 'skill_edge': -0.0077, 'height_edge': -0.036, 'attacker_skill': 0.533, 'defender_skill': 0.55, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Javi Rodríguez', 'market_value': 17500000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6625}, {'player': 'Marcos Alonso', 'market_value': 1300000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.2928}
totalShots: 2.2529 -> 2.1083
shotOffTarget: 1.3907 -> 1.3014
onTargetScoringAttempt: 0.8622 -> 0.8068
bigChanceMissed: 0.4454 -> 0.4168
expectedGoalsOnTarget: 0.4036 -> 0.3777
goals: 0.37 -> 0.3462
expectedGoals: 0.3129 -> 0.2928
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.70 (squad xG sum 1.1313, xG scale 1.5063, xA scale 1.5063, team xA 1.21 = 0.71 x lambda)scoreline_reset=true
team_lambda=1.704
squad_xg_sum=1.1313
squad_xa_sum=0.8
team_expected_assists=1.2051
team_xa_to_xg_ratio=0.7072
expected_goals: 0.2928 -> 0.4411
expected_assists: 0.092 -> 0.1386
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 74.0)match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=1
goal_probability=0.3567
goal_rate=0.3462
scorer_weight=0.5098
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1294
assist_rate=0.0711
provider_weight=0.1182
-
Team totals21.70126.9
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Augusto BatallaG4.5m13.4%Market-value substitute prior
Andrei RațiuD14.4m23.4%Market-value substitute prior
Abdul MuminD13.6m29.9%Market-value substitute prior
Pedro DíazM23.1m69.2%Market-value substitute prior
Pathé Ismaël CissM22.0m49.9%Market-value substitute prior
AlemãoF25.4m56.2%Market-value substitute prior

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.07.163.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=48
history_shrink=0.0943
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0164)blend_weight=0.0164
history_matches=48
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.2667
competition=La Liga
saves: 2.8675 -> 2.8778
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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.0273}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.28 (squad xG sum 0.9213, xG scale 1.3894, xA scale 1.3894, team xA 0.91 = 0.71 x lambda)scoreline_reset=true
team_lambda=1.28
squad_xg_sum=0.9213
squad_xa_sum=0.6541
team_expected_assists=0.9087
team_xa_to_xg_ratio=0.7099
shots_faced: 9.8 -> 16.2
expected_saves: 2.4 -> 3.97
high_pressure_saves: 0.82 -> 1.36
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 78.0)match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.4379
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.9297
-
Javi RodríguezD8400.030.0264%10.36.952.033FBref 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=39
history_shrink=0.1136
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0128)blend_weight=0.0128
history_matches=39
season_overlap_discount=1.0
per90_to_match_factor=0.936
prior_reliability=0.1733
competition=La Liga
wasFouled: 1.1099 -> 1.1003
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Isi Palazón', '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.28 (squad xG sum 0.9213, xG scale 1.3894, xA scale 1.3894, team xA 0.91 = 0.71 x lambda)scoreline_reset=true
team_lambda=1.28
squad_xg_sum=0.9213
squad_xa_sum=0.6541
team_expected_assists=0.9087
team_xa_to_xg_ratio=0.7099
expected_goals: 0.0198 -> 0.0275
expected_assists: 0.0623 -> 0.0866
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 76.0)match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0271
goal_rate=0.1388
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.083
assist_rate=0.1449
provider_weight=0.1082
-
Yoel LagoD8900.020.01322%00.16.942.729FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9990, quality 0.487)market_value_eur=7000000
quality_factor=0.4866
boost_factor=0.999
reference_quality=0.505
history_matches=22
history_shrink=0.1852
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0281)blend_weight=0.0281
history_matches=22
season_overlap_discount=1.0
per90_to_match_factor=0.9937
prior_reliability=0.2333
competition=La Liga
totalShots: 0.3882 -> 0.3773
totalCross: 0.0 -> 0.008
wonTackle: 0.8261 -> 0.8188
interceptionWon: 1.177 -> 1.1838
wasFouled: 1.3346 -> 1.329
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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': 'Shape fallback'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.28 (squad xG sum 0.9213, xG scale 1.3894, xA scale 1.3894, team xA 0.91 = 0.71 x lambda)scoreline_reset=true
team_lambda=1.28
squad_xg_sum=0.9213
squad_xa_sum=0.6541
team_expected_assists=0.9087
team_xa_to_xg_ratio=0.7099
expected_goals: 0.0178 -> 0.0247
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 71.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.0244
goal_rate=0.0
scorer_weight=0.0198
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0149
assist_rate=0.0
provider_weight=0.0123
-
Marcos AlonsoD8700.070.07ok10.77.060.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 0.9977, quality 0.437)market_value_eur=1300000
quality_factor=0.4374
boost_factor=0.9977
reference_quality=0.505
history_matches=40
history_shrink=0.1111
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0125)blend_weight=0.0125
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=0.9684
prior_reliability=0.1733
competition=La Liga
interceptionWon: 1.0576 -> 1.0817
wonTackle: 0.8087 -> 0.8172
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.28 (squad xG sum 0.9213, xG scale 1.3894, xA scale 1.3894, team xA 0.91 = 0.71 x lambda)scoreline_reset=true
team_lambda=1.28
squad_xg_sum=0.9213
squad_xa_sum=0.6541
team_expected_assists=0.9087
team_xa_to_xg_ratio=0.7099
expected_goals: 0.0514 -> 0.0714
expected_assists: 0.0377 -> 0.0524
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.0689
goal_rate=0.0048
scorer_weight=0.0571
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0511
assist_rate=0.0
provider_weight=0.0419
-
Javier RuedaM7300.070.02209%10.36.850.136XGBoost 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=36
history_shrink=0.122
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Óscar Valentín', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.468, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0258, 'skill_edge': 0.0215, 'height_edge': -0.004, 'attacker_skill': 0.4853, 'defender_skill': 0.4374, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Óscar Valentín', 'market_value': 1900000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4374}], 'xg_override': 0.0526}
aerialWon: 0.5866 -> 0.9
totalShots: 0.817 -> 0.8381
shotOffTarget: 0.5797 -> 0.5947
onTargetScoringAttempt: 0.2372 -> 0.2433
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.28 (squad xG sum 0.9213, xG scale 1.3894, xA scale 1.3894, team xA 0.91 = 0.71 x lambda)scoreline_reset=true
team_lambda=1.28
squad_xg_sum=0.9213
squad_xa_sum=0.6541
team_expected_assists=0.9087
team_xa_to_xg_ratio=0.7099
expected_goals: 0.0526 -> 0.0731
expected_assists: 0.0914 -> 0.127
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_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.0705
goal_rate=0.0555
scorer_weight=0.0752
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1193
assist_rate=0.093
provider_weight=0.1284
-
Aleix FebasM8400.060.0382%10.46.958.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.9987, quality 0.465)market_value_eur=5200000
quality_factor=0.4646
boost_factor=0.9987
reference_quality=0.505
history_matches=41
history_shrink=0.1087
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0085)blend_weight=0.0085
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=0.935
prior_reliability=0.12
competition=La Liga
fouls: 1.6338 -> 1.642
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 Wingback vs Right Back — Overlapping Run', 'duel_win_rate': 0.388, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9819, 'skill_edge': 0.0197, 'height_edge': -0.032, 'attacker_skill': 0.4918, 'defender_skill': 0.4481, 'attacker_role': 'LWB', 'attacker_mv_price_index': 0.7, 'defender_adjusted_parts': [{'player': 'Adrià Pedrosa', 'market_value': 2700000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.4481}], 'xg_override': 0.0425}
aerialWon: 0.0927 -> 0.8
totalShots: 0.6092 -> 0.5982
shotOffTarget: 0.4007 -> 0.3934
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.28 (squad xG sum 0.9213, xG scale 1.3894, xA scale 1.3894, team xA 0.91 = 0.71 x lambda)scoreline_reset=true
team_lambda=1.28
squad_xg_sum=0.9213
squad_xa_sum=0.6541
team_expected_assists=0.9087
team_xa_to_xg_ratio=0.7099
expected_goals: 0.0425 -> 0.059
expected_assists: 0.0529 -> 0.0735
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 79.0)match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0573
goal_rate=0.0505
scorer_weight=0.0641
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0709
assist_rate=0.0629
provider_weight=0.0806
-
Ilaix MoribaM8100.070.03113%10.46.962.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.0018, quality 0.565)market_value_eur=13700000
quality_factor=0.5649
boost_factor=1.0018
reference_quality=0.505
history_matches=46
history_shrink=0.098
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0115)blend_weight=0.0115
history_matches=46
season_overlap_discount=1.0
per90_to_match_factor=0.8981
prior_reliability=0.18
competition=La Liga
fouls: 1.2362 -> 1.222
interceptionWon: 1.1237 -> 1.1184
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Óscar Valentín', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.539, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.1306, 'skill_edge': 0.0649, 'height_edge': 0.024, 'attacker_skill': 0.5816, 'defender_skill': 0.4374, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Óscar Valentín', 'market_value': 1900000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4374}], 'xg_override': 0.0477}
aerialWon: 0.1933 -> 1.1
totalShots: 0.598 -> 0.6761
shotOffTarget: 0.457 -> 0.5167
onTargetScoringAttempt: 0.1384 -> 0.1565
expectedGoalsOnTarget: 0.0859 -> 0.0971
goals: 0.0458 -> 0.0518
expectedGoals: 0.0422 -> 0.0477
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.28 (squad xG sum 0.9213, xG scale 1.3894, xA scale 1.3894, team xA 0.91 = 0.71 x lambda)scoreline_reset=true
team_lambda=1.28
squad_xg_sum=0.9213
squad_xa_sum=0.6541
team_expected_assists=0.9087
team_xa_to_xg_ratio=0.7099
expected_goals: 0.0477 -> 0.0663
expected_assists: 0.043 -> 0.0597
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.0641
goal_rate=0.0518
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.058
assist_rate=0.048
provider_weight=0.0629
-
Javi GalánD7900.010.01ok00.26.857.437FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9973, quality 0.437)market_value_eur=1700000
quality_factor=0.4374
boost_factor=0.9973
reference_quality=0.505
history_matches=33
history_shrink=0.1316
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0086)blend_weight=0.0086
history_matches=33
season_overlap_discount=1.0
per90_to_match_factor=0.8782
prior_reliability=0.1
competition=La Liga
totalCross: 4.1626 -> 4.157
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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': 'Shape fallback'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.28 (squad xG sum 0.9213, xG scale 1.3894, xA scale 1.3894, team xA 0.91 = 0.71 x lambda)scoreline_reset=true
team_lambda=1.28
squad_xg_sum=0.9213
squad_xa_sum=0.6541
team_expected_assists=0.9087
team_xa_to_xg_ratio=0.7099
expected_assists: 0.1094 -> 0.152
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 77.0)match_squad_rank=11
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0058
goal_rate=0.0
scorer_weight=0.0054
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.141
assist_rate=0.005
provider_weight=0.1216
-
Pablo DuránF6700.320.11193%20.96.750.631FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9981, quality 0.451)market_value_eur=4099999
quality_factor=0.4511
boost_factor=0.9981
reference_quality=0.505
history_matches=37
history_shrink=0.119
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0077)blend_weight=0.0077
history_matches=37
season_overlap_discount=1.0
per90_to_match_factor=0.7407
prior_reliability=0.1
competition=La Liga
totalShots: 1.5928 -> 1.5844
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.18, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 0.9281, 'skill_edge': -0.0029, 'height_edge': -0.046, 'attacker_skill': 0.4511, '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.2278}
totalShots: 1.5912 -> 1.4768
shotOffTarget: 0.8778 -> 0.8147
onTargetScoringAttempt: 0.7134 -> 0.6621
goals: 0.3452 -> 0.3204
bigChanceMissed: 0.3281 -> 0.3045
expectedGoals: 0.2454 -> 0.2278
expectedGoalsOnTarget: 0.132 -> 0.1225
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.28 (squad xG sum 0.9213, xG scale 1.3894, xA scale 1.3894, team xA 0.91 = 0.71 x lambda)scoreline_reset=true
team_lambda=1.28
squad_xg_sum=0.9213
squad_xa_sum=0.6541
team_expected_assists=0.9087
team_xa_to_xg_ratio=0.7099
expected_goals: 0.2278 -> 0.3165
expected_assists: 0.049 -> 0.0681
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 74.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.2713
goal_rate=0.3204
scorer_weight=0.3956
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0658
assist_rate=0.0
provider_weight=0.0545
-
Ferrán JutglàF7510.330.1884%21.16.758.031FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0009, quality 0.531)market_value_eur=10700000
quality_factor=0.5306
boost_factor=1.0009
reference_quality=0.505
history_matches=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.8369
prior_reliability=0.1733
competition=La Liga
totalShots: 1.5481 -> 1.5328
onTargetScoringAttempt: 0.6527 -> 0.6445
wasFouled: 1.6186 -> 1.6265
totalOffside: 0.4596 -> 0.4538
fouls: 1.3732 -> 1.3681
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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', 'matchup_zone': 'Shadow Striker vs Centre Back — Half-Space Threat', 'duel_win_rate': 0.432, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9735, 'skill_edge': 0.0419, 'height_edge': -0.06, 'attacker_skill': 0.5306, 'defender_skill': 0.4374, 'attacker_role': 'SS', '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}], 'xg_override': 0.2344}
totalShots: 1.5398 -> 1.499
shotOffTarget: 0.8953 -> 0.8716
onTargetScoringAttempt: 0.6445 -> 0.6274
expectedGoalsOnTarget: 0.3861 -> 0.3759
goals: 0.3079 -> 0.2997
expectedGoals: 0.2408 -> 0.2344
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.28 (squad xG sum 0.9213, xG scale 1.3894, xA scale 1.3894, team xA 0.91 = 0.71 x lambda)scoreline_reset=true
team_lambda=1.28
squad_xg_sum=0.9213
squad_xa_sum=0.6541
team_expected_assists=0.9087
team_xa_to_xg_ratio=0.7099
expected_goals: 0.2344 -> 0.3258
expected_assists: 0.0502 -> 0.0697
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 16 by projected rating, fifa_overall 75.0)match_squad_rank=16
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.2781
goal_rate=0.2997
scorer_weight=0.4006
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0673
assist_rate=0.0619
provider_weight=0.0778
-
Hugo ÁlvarezF7300.190.07151%10.46.851.742FBref 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=36
history_shrink=0.122
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0069)blend_weight=0.0069
history_matches=36
season_overlap_discount=1.0
per90_to_match_factor=0.8066
prior_reliability=0.0867
competition=La Liga
totalCross: 1.2633 -> 1.2802
totalShots: 1.1549 -> 1.147
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', 'matchup_zone': 'Shadow Striker vs Centre Back — Half-Space Threat', 'duel_win_rate': 0.42, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9566, 'skill_edge': 0.0265, 'height_edge': -0.056, 'attacker_skill': 0.4963, 'defender_skill': 0.4374, 'attacker_role': 'SS', '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}], 'xg_override': 0.1349}
totalShots: 1.152 -> 1.102
shotOffTarget: 0.7327 -> 0.7009
onTargetScoringAttempt: 0.4193 -> 0.4011
goals: 0.1496 -> 0.1431
expectedGoals: 0.141 -> 0.1349
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.28 (squad xG sum 0.9213, xG scale 1.3894, xA scale 1.3894, team xA 0.91 = 0.71 x lambda)scoreline_reset=true
team_lambda=1.28
squad_xg_sum=0.9213
squad_xa_sum=0.6541
team_expected_assists=0.9087
team_xa_to_xg_ratio=0.7099
expected_goals: 0.1349 -> 0.1874
expected_assists: 0.0895 -> 0.1243
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.1709
goal_rate=0.1431
scorer_weight=0.1957
-
integer_assist_projectionTeam scoreline allocation: 1 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.1169
assist_rate=0.2569
provider_weight=0.1554
-
Team totals11.28126.9
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Altay BayındırG4.5m11.3%Market-value substitute prior
Abdoulaye FayeD13.6m21.8%Market-value substitute prior
Carl StarfeltD27.6m41.1%Market-value substitute prior
Fer LópezM22.6m52.9%Market-value substitute prior
Miguel RománM34.9m41.4%Market-value substitute prior
Williot SwedbergF30.4m44.5%Market-value substitute prior
Antagonist / tactical summary
Midfield is evenly contested — Isi Palazón vs Ilaix Moriba will be the pivotal duel. Total antagonist xG — Home: 0.74, Away: 0.74. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Shadow Striker vs Centre Back — Half-Space Threat.
Midfield — possession 49.0% / 51.0%, dominance ratio 0.47, key duel: Isi Palazón vs Ilaix Moriba
Isi Palazón xG 0.09Sergio Camello xG 0.29Jorge de Frutos xG 0.13Aleix Febas xG 0.04Ilaix Moriba xG 0.05Javier Rueda xG 0.05

Summary

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

Tottenham vs Crystal Palace

Premier League · 20261031 · 4-2-3-1 vs 3-4-2-1
Predicted 1-0Winner: TottenhamWinning H 1-0 (9.4%)Winning A 0-1 (7.6%)Confidence 0.72λ home/away 1.53 / 1.25Most-likely P 9.4%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset Tracing
Antagonist + XGBoost match analysis for Tottenham vs Crystal Palace. Player statistics regressed using position-specific XGBoost models (G, D, M, F) with 2026-2027 FBref priors. Micro-duels resolved across 4-2-3-1 vs 3-4-2-1 (duel lambdas: Home 1.495, Away 1.079). Final calibrated Poisson lambdas: Home 1.529, Away 1.252 (most likely score 1-0).
Home Starters 11/11 XGBoost (10 FBref) Away Starters 11/11 XGBoost (11 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.50 / 1.08 Final λ (H/A) 1.53 / 1.25
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

MetricTottenhamCrystal Palace
League position14.0017.00
Points per game1.221.08
Attack index0.890.92
Defense (concede) index1.280.96
Form multiplier1.010.99
Standing λ multiplier1.060.95

Lambda decomposition (how the goal rates were built)

StageTottenham λCrystal Palace λ
Pre-competitive-floor1.4711.170
Pre-calibration (Micro-duels)1.4951.079
Final λ1.5291.252
competition calibration scale 1.053competition 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.0%
1-09.4%
2-19.1%
0-17.6%
1-27.4%
Home win43.6%
Draw25.3%
Away win31.1%
Over 2.552.6%
BTTS yes56.0%
Pregame fair line — favorite Tottenham (43.6%), fair total 2.78, fair spread 0.28

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.

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Antonín KinskýG9000.00-n/a0.07.030.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.0086, quality 0.620)market_value_eur=18900000
quality_factor=0.6201
boost_factor=1.0086
reference_quality=0.505
history_matches=15
history_shrink=0.25
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0217)blend_weight=0.0217
history_matches=15
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League
saves: 2.8874 -> 2.879
wasFouled: 0.2345 -> 0.2294
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Jean-Philippe Mateta, Yéremy Pino', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.079}
-
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.53 (squad xG sum 1.0797, xG scale 1.4161, xA scale 1.2320, team xA 1.22 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.529
squad_xg_sum=1.0797
squad_xa_sum=0.9929
team_expected_assists=1.2232
team_xa_to_xg_ratio=0.8
shots_faced: 10.3 -> 11.9
expected_saves: 2.53 -> 2.91
high_pressure_saves: 0.86 -> 1.0
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 77.0)match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.6563
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.1846
-
Pedro PorroD7900.100.0678%11.36.853.727FBref 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.791)market_value_eur=42000000
quality_factor=0.7909
boost_factor=1.01
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.8756
prior_reliability=0.0667
competition=Premier League
totalShots: 1.1245 -> 1.1365
totalCross: 5.8317 -> 5.82
wonTackle: 1.3378 -> 1.3311
interceptionWon: 1.003 -> 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': '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.53 (squad xG sum 1.0797, xG scale 1.4161, xA scale 1.2320, team xA 1.22 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.529
squad_xg_sum=1.0797
squad_xa_sum=0.9929
team_expected_assists=1.2232
team_xa_to_xg_ratio=0.8
expected_goals: 0.0714 -> 0.1011
expected_assists: 0.1348 -> 0.1661
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 83.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.0962
goal_rate=0.0478
scorer_weight=0.0814
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.153
assist_rate=0.0151
provider_weight=0.1329
-
Jan Paul van HeckeD9000.140.07100%10.57.358.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 1.0109, quality 0.863)market_value_eur=65000000
quality_factor=0.8627
boost_factor=1.0109
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.9982
prior_reliability=0.1333
competition=Premier League
interceptionWon: 1.196 -> 1.1898
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Jean-Philippe Mateta', '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.53 (squad xG sum 1.0797, xG scale 1.4161, xA scale 1.2320, team xA 1.22 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.529
squad_xg_sum=1.0797
squad_xa_sum=0.9929
team_expected_assists=1.2232
team_xa_to_xg_ratio=0.8
expected_goals: 0.0976 -> 0.1382
expected_assists: 0.0636 -> 0.0784
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.1291
goal_rate=0.112
scorer_weight=0.1517
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0754
assist_rate=0.0232
provider_weight=0.0627
-
Micky van de VenD8800.090.0594%10.36.954.531FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0101, quality 0.821)market_value_eur=49000000
quality_factor=0.8206
boost_factor=1.0101
reference_quality=0.505
history_matches=42
history_shrink=0.1064
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0046)blend_weight=0.0046
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.9828
prior_reliability=0.0667
competition=Premier League
fouls: 0.8891 -> 0.8941
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Jean-Philippe Mateta', '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.53 (squad xG sum 1.0797, xG scale 1.4161, xA scale 1.2320, team xA 1.22 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.529
squad_xg_sum=1.0797
squad_xa_sum=0.9929
team_expected_assists=1.2232
team_xa_to_xg_ratio=0.8
expected_goals: 0.0663 -> 0.0939
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 81.0)match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0896
goal_rate=0.0108
scorer_weight=0.0751
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0114
assist_rate=0.0042
provider_weight=0.0105
-
Andy RobertsonD7900.070.03130%10.36.840.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.9995, quality 0.493)market_value_eur=7500000
quality_factor=0.4927
boost_factor=0.9995
reference_quality=0.505
history_matches=31
history_shrink=0.1389
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0102)blend_weight=0.0102
history_matches=31
season_overlap_discount=1.0
per90_to_match_factor=0.8807
prior_reliability=0.1133
competition=Premier League
wasFouled: 0.1791 -> 0.1879
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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.53 (squad xG sum 1.0797, xG scale 1.4161, xA scale 1.2320, team xA 1.22 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.529
squad_xg_sum=1.0797
squad_xa_sum=0.9929
team_expected_assists=1.2232
team_xa_to_xg_ratio=0.8
expected_goals: 0.0528 -> 0.0748
expected_assists: 0.0904 -> 0.1114
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 85.0)match_squad_rank=14
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0721
goal_rate=0.0489
scorer_weight=0.072
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1054
assist_rate=0.2491
provider_weight=0.1392
-
Mateus FernandesM8100.100.04155%10.87.058.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 1.0111, quality 0.868)market_value_eur=68000000
quality_factor=0.8677
boost_factor=1.0111
reference_quality=0.505
history_matches=44
history_shrink=0.102
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0066)blend_weight=0.0066
history_matches=44
season_overlap_discount=1.0
per90_to_match_factor=0.9026
prior_reliability=0.1
competition=Premier League
totalCross: 2.2436 -> 2.2567
wasFouled: 0.9461 -> 0.9398
interceptionWon: 0.8793 -> 0.8735
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Dwight McNeil, Yéremy Pino, Adam Wharton', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.53 (squad xG sum 1.0797, xG scale 1.4161, xA scale 1.2320, team xA 1.22 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.529
squad_xg_sum=1.0797
squad_xa_sum=0.9929
team_expected_assists=1.2232
team_xa_to_xg_ratio=0.8
expected_goals: 0.0725 -> 0.1027
expected_assists: 0.1026 -> 0.1264
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.0976
goal_rate=0.065
scorer_weight=0.0964
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1187
assist_rate=0.089
provider_weight=0.1151
-
Sandro TonaliM8600.090.0567%11.27.356.130FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0119, quality 0.884)market_value_eur=83000000
quality_factor=0.8845
boost_factor=1.0119
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.9576
prior_reliability=0.12
competition=Premier League
wonTackle: 1.1574 -> 1.1523
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Anan Khalaili', '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.53 (squad xG sum 1.0797, xG scale 1.4161, xA scale 1.2320, team xA 1.22 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.529
squad_xg_sum=1.0797
squad_xa_sum=0.9929
team_expected_assists=1.2232
team_xa_to_xg_ratio=0.8
expected_goals: 0.0639 -> 0.0905
expected_assists: 0.1364 -> 0.1679
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.0865
goal_rate=0.095
scorer_weight=0.1131
-
integer_assist_projectionTeam scoreline allocation: 1 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.1546
assist_rate=0.1124
provider_weight=0.1463
-
Mohammed KudusF7700.170.03393%10.76.938.525FBref 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.0153, quality 0.821)market_value_eur=49000000
quality_factor=0.8206
boost_factor=1.0153
reference_quality=0.505
history_matches=26
history_shrink=0.1613
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0021)blend_weight=0.0021
history_matches=26
season_overlap_discount=1.0
per90_to_match_factor=0.8504
prior_reliability=0.02
competition=Premier League
totalCross: 4.4763 -> 4.4966
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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.18, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 0.9645, 'skill_edge': 0.0238, 'height_edge': -0.048, 'attacker_skill': 0.8206, '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.1174}
totalShots: 1.5292 -> 1.4749
shotOffTarget: 1.0823 -> 1.0439
onTargetScoringAttempt: 0.4422 -> 0.4265
goals: 0.1498 -> 0.1445
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.53 (squad xG sum 1.0797, xG scale 1.4161, xA scale 1.2320, team xA 1.22 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.529
squad_xg_sum=1.0797
squad_xa_sum=0.9929
team_expected_assists=1.2232
team_xa_to_xg_ratio=0.8
expected_goals: 0.1174 -> 0.1663
expected_assists: 0.0948 -> 0.1168
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 81.0)match_squad_rank=11
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1532
goal_rate=0.1445
scorer_weight=0.1932
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1102
assist_rate=0.203
provider_weight=0.146
-
James MaddisonM7300.080.02295%10.36.934.418FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0096, quality 0.594)market_value_eur=16399999
quality_factor=0.5942
boost_factor=1.0096
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.8071
prior_reliability=0.02
competition=Premier League
wasFouled: 1.5563 -> 1.5741
totalCross: 1.0992 -> 1.1066
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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.278, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.7913, 'skill_edge': -0.0899, 'height_edge': -0.052, 'attacker_skill': 0.5942, '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.056}
aerialWon: 0.1211 -> 0.9
totalShots: 0.8769 -> 0.6939
shotOffTarget: 0.6039 -> 0.4779
onTargetScoringAttempt: 0.273 -> 0.216
expectedGoalsOnTarget: 0.1083 -> 0.0857
goals: 0.0928 -> 0.0734
bigChanceMissed: 0.0757 -> 0.0599
expectedGoals: 0.0708 -> 0.056
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.53 (squad xG sum 1.0797, xG scale 1.4161, xA scale 1.2320, team xA 1.22 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.529
squad_xg_sum=1.0797
squad_xa_sum=0.9929
team_expected_assists=1.2232
team_xa_to_xg_ratio=0.8
expected_goals: 0.056 -> 0.0793
expected_assists: 0.0705 -> 0.0869
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.0762
goal_rate=0.0734
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.0832
assist_rate=0.0898
provider_weight=0.1008
-
Mathys TelF8000.200.07174%11.26.954.437FBref 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.0055, quality 0.660)market_value_eur=23000000
quality_factor=0.6595
boost_factor=1.0055
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.8902
prior_reliability=0.1133
competition=Premier League
totalCross: 4.6563 -> 4.6338
totalShots: 1.6441 -> 1.6521
wasFouled: 0.9125 -> 0.9045
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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.18, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 0.8991, 'skill_edge': -0.0486, 'height_edge': -0.02, 'attacker_skill': 0.6595, '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.141}
totalShots: 1.6521 -> 1.4854
shotOffTarget: 1.1089 -> 0.997
onTargetScoringAttempt: 0.535 -> 0.481
goals: 0.2411 -> 0.2168
expectedGoals: 0.1568 -> 0.141
expectedGoalsOnTarget: 0.1241 -> 0.1116
bigChanceMissed: 0.0908 -> 0.0816
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.53 (squad xG sum 1.0797, xG scale 1.4161, xA scale 1.2320, team xA 1.22 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.529
squad_xg_sum=1.0797
squad_xa_sum=0.9929
team_expected_assists=1.2232
team_xa_to_xg_ratio=0.8
expected_goals: 0.141 -> 0.1997
expected_assists: 0.1028 -> 0.1266
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 78.0)match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.181
goal_rate=0.2168
scorer_weight=0.2496
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1189
assist_rate=0.0511
provider_weight=0.1013
-
Omar MarmoushF7710.260.07266%21.16.840.132XGBoost 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.0152, quality 0.840)market_value_eur=55000000
quality_factor=0.8399
boost_factor=1.0152
reference_quality=0.505
history_matches=28
history_shrink=0.1515
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Jaydee Canvot, Chris Richards', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.213, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 1.0184, 'skill_edge': 0.0325, 'height_edge': -0.02, 'attacker_skill': 0.8399, '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.1845}
totalShots: 1.9409 -> 1.9766
shotOffTarget: 1.2793 -> 1.3028
onTargetScoringAttempt: 0.6616 -> 0.6738
bigChanceMissed: 0.3936 -> 0.4008
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.53 (squad xG sum 1.0797, xG scale 1.4161, xA scale 1.2320, team xA 1.22 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.529
squad_xg_sum=1.0797
squad_xa_sum=0.9929
team_expected_assists=1.2232
team_xa_to_xg_ratio=0.8
expected_goals: 0.1845 -> 0.2612
expected_assists: 0.0558 -> 0.0687
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 82.0)match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.2299
goal_rate=0.2499
scorer_weight=0.3265
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0664
assist_rate=0.1179
provider_weight=0.0859
-
Team totals11.53137.0
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Guglielmo VicarioG5.0m13.9%Market-value substitute prior
Destiny UdogieD14.3m62.3%Market-value substitute prior
Marcos SenesiD14.4m23.5%Market-value substitute prior
Xavi SimonsM23.4m56.3%Market-value substitute prior
Lucas BergvallM23.4m33.5%Market-value substitute prior
SávioF26.9m63.0%Market-value substitute prior

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Daichi KamadaM8400.100.0749%10.56.855.031FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0008, quality 0.526)market_value_eur=10300000
quality_factor=0.526
boost_factor=1.0008
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.9384
prior_reliability=0.1333
competition=Premier League
wonTackle: 1.3478 -> 1.3683
totalCross: 0.8234 -> 0.8345
interceptionWon: 0.3894 -> 0.3952
totalShots: 0.9515 -> 0.9464
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Andy Robertson', 'matchup_zone': 'Left Wingback vs Right Back — Overlapping Run', 'duel_win_rate': 0.444, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0652, 'skill_edge': 0.0204, 'height_edge': 0.024, 'attacker_skill': 0.5761, 'defender_skill': 0.5308, 'attacker_role': 'LWB', 'attacker_mv_price_index': 0.7, 'defender_adjusted_parts': [{'player': 'Andy Robertson', 'market_value': 7500000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.5308}], 'xg_override': 0.0962}
aerialWon: 0.3443 -> 1.1
totalShots: 0.9477 -> 1.0095
shotOffTarget: 0.5915 -> 0.6301
onTargetScoringAttempt: 0.3562 -> 0.3794
bigChanceMissed: 0.1081 -> 0.1151
expectedGoalsOnTarget: 0.0907 -> 0.0966
expectedGoals: 0.0903 -> 0.0962
goals: 0.0857 -> 0.0913
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.25 (squad xG sum 1.1947, xG scale 1.0480, xA scale 1.0543, team xA 0.81 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.252
squad_xg_sum=1.1947
squad_xa_sum=0.7719
team_expected_assists=0.8138
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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0959
goal_rate=0.0913
scorer_weight=0.0974
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.078
assist_rate=0.0848
provider_weight=0.0862
-
Tyrick MitchellM8700.060.06ok10.66.956.734FBref 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=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=0.9623
prior_reliability=0.1333
competition=Premier League
wonTackle: 1.743 -> 1.7364
fouls: 0.3165 -> 0.322
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 Porro', 'matchup_zone': 'Right Wingback vs Left Back — Overlapping Run', 'duel_win_rate': 0.352, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.93, 'skill_edge': -0.0516, 'height_edge': 0.004, 'attacker_skill': 0.7379, 'defender_skill': 0.8526, 'attacker_role': 'RWB', 'attacker_mv_price_index': 0.7, 'defender_adjusted_parts': [{'player': 'Pedro Porro', 'market_value': 42000000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.8526}], 'xg_override': 0.0612}
aerialWon: 0.7394 -> 0.9
totalShots: 0.9613 -> 0.894
shotOffTarget: 0.7089 -> 0.6593
onTargetScoringAttempt: 0.2503 -> 0.2328
bigChanceMissed: 0.0991 -> 0.0922
expectedGoalsOnTarget: 0.0915 -> 0.0851
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.25 (squad xG sum 1.1947, xG scale 1.0480, xA scale 1.0543, team xA 0.81 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.252
squad_xg_sum=1.1947
squad_xa_sum=0.7719
team_expected_assists=0.8138
team_xa_to_xg_ratio=0.65
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 79.0)match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0621
goal_rate=0.0647
scorer_weight=0.0661
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0667
assist_rate=0.0715
provider_weight=0.0727
-
Dwight McNeilF7300.100.03212%10.66.730.635FBref 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.0072, quality 0.660)market_value_eur=23000000
quality_factor=0.6595
boost_factor=1.0072
reference_quality=0.505
history_matches=27
history_shrink=0.1562
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0061)blend_weight=0.0061
history_matches=27
season_overlap_discount=1.0
per90_to_match_factor=0.8099
prior_reliability=0.06
competition=Premier League
totalCross: 1.8259 -> 1.8148
wonTackle: 1.0036 -> 0.9975
wasFouled: 0.8574 -> 0.8522
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': 'Mateus Fernandes, Jan Paul van Hecke', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.8482, 'skill_edge': -0.1013, 'height_edge': -0.002, 'attacker_skill': 0.6595, 'defender_skill': 0.8845, 'attacker_role': 'SS', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Mateus Fernandes', 'market_value': 68000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.882}, {'player': 'Jan Paul van Hecke', 'market_value': 65000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.887}], 'xg_override': 0.0932}
totalShots: 1.1661 -> 0.9891
shotOffTarget: 0.8515 -> 0.7222
onTargetScoringAttempt: 0.3146 -> 0.2668
goals: 0.1169 -> 0.0992
expectedGoals: 0.1099 -> 0.0932
bigChanceMissed: 0.0636 -> 0.0539
expectedGoalsOnTarget: 0.0441 -> 0.0374
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.25 (squad xG sum 1.1947, xG scale 1.0480, xA scale 1.0543, team xA 0.81 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.252
squad_xg_sum=1.1947
squad_xa_sum=0.7719
team_expected_assists=0.8138
team_xa_to_xg_ratio=0.65
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 76.0)match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0931
goal_rate=0.0992
scorer_weight=0.1018
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0889
assist_rate=0.0196
provider_weight=0.0745
-
Yéremy PinoF7200.120.0860%10.96.952.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.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.0049)blend_weight=0.0049
history_matches=44
season_overlap_discount=1.0
per90_to_match_factor=0.8006
prior_reliability=0.0733
competition=Premier League
totalCross: 3.1498 -> 3.1663
fouls: 0.634 -> 0.6415
wasFouled: 1.0142 -> 1.0199
totalOffside: 0.2951 -> 0.3007
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Mateus Fernandes, Jan Paul van Hecke', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.8064, 'skill_edge': -0.0857, 'height_edge': -0.046, 'attacker_skill': 0.6941, 'defender_skill': 0.8845, 'attacker_role': 'SS', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Mateus Fernandes', 'market_value': 68000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.882}, {'player': 'Jan Paul van Hecke', 'market_value': 65000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.887}], 'xg_override': 0.1164}
totalShots: 1.3663 -> 1.1018
shotOffTarget: 0.8188 -> 0.6603
onTargetScoringAttempt: 0.5413 -> 0.4365
expectedGoalsOnTarget: 0.1915 -> 0.1544
goals: 0.19 -> 0.1532
expectedGoals: 0.1443 -> 0.1164
bigChanceMissed: 0.0814 -> 0.0656
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.25 (squad xG sum 1.1947, xG scale 1.0480, xA scale 1.0543, team xA 0.81 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.252
squad_xg_sum=1.1947
squad_xa_sum=0.7719
team_expected_assists=0.8138
team_xa_to_xg_ratio=0.65
expected_goals: 0.1164 -> 0.122
expected_assists: 0.1304 -> 0.1375
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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.1149
goal_rate=0.1532
scorer_weight=0.149
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.1285
assist_rate=0.0049
provider_weight=0.11
-
Jean-Philippe MatetaF7400.330.27ok20.96.749.023FBref 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.0077, quality 0.710)market_value_eur=29000000
quality_factor=0.71
boost_factor=1.0077
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.8262
prior_reliability=0.0467
competition=Premier League
fouls: 0.8695 -> 0.8752
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Jan Paul van Hecke, Micky van de Ven', '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.8966, 'skill_edge': -0.0743, 'height_edge': 0.004, 'attacker_skill': 0.71, 'defender_skill': 0.8752, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Jan Paul van Hecke', 'market_value': 65000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.887}, {'player': 'Micky van de Ven', 'market_value': 49000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8633}], 'xg_override': 0.3109}
totalShots: 1.887 -> 1.6919
bigChanceMissed: 1.1915 -> 1.0683
shotOffTarget: 1.1052 -> 0.9909
onTargetScoringAttempt: 0.7769 -> 0.6966
goals: 0.3615 -> 0.3241
expectedGoals: 0.3468 -> 0.3109
expectedGoalsOnTarget: 0.2749 -> 0.2465
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.25 (squad xG sum 1.1947, xG scale 1.0480, xA scale 1.0543, team xA 0.81 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.252
squad_xg_sum=1.1947
squad_xa_sum=0.7719
team_expected_assists=0.8138
team_xa_to_xg_ratio=0.65
expected_goals: 0.3109 -> 0.3258
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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.2781
goal_rate=0.3241
scorer_weight=0.3377
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.031
assist_rate=0.0
provider_weight=0.0252
-
Adam WhartonM8800.060.03123%10.77.056.032FBref 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.0120, quality 0.881)market_value_eur=79000000
quality_factor=0.8811
boost_factor=1.012
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.9744
prior_reliability=0.1333
competition=Premier League
totalCross: 3.1919 -> 3.167
interceptionWon: 0.7815 -> 0.7923
totalShots: 0.961 -> 0.9521
fouls: 0.706 -> 0.6995
wasFouled: 1.2921 -> 1.2982
wonTackle: 0.8606 -> 0.8661
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Mateus Fernandes', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.469, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 1.0273, 'skill_edge': 0.0026, 'height_edge': 0.016, 'attacker_skill': 0.8877, 'defender_skill': 0.882, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Mateus Fernandes', 'market_value': 68000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.882}], 'xg_override': 0.0556}
totalShots: 0.9582 -> 0.9844
shotOffTarget: 0.6586 -> 0.6766
onTargetScoringAttempt: 0.2996 -> 0.3078
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.25 (squad xG sum 1.1947, xG scale 1.0480, xA scale 1.0543, team xA 0.81 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.252
squad_xg_sum=1.1947
squad_xa_sum=0.7719
team_expected_assists=0.8138
team_xa_to_xg_ratio=0.65
expected_assists: 0.1493 -> 0.1574
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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0566
goal_rate=0.0494
scorer_weight=0.0549
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.1456
assist_rate=0.0935
provider_weight=0.1259
-
Anan KhalailiM8800.100.08ok10.76.942.415FBref 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.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
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0200)blend_weight=0.02
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=0.9793
prior_reliability=0.08
competition=Premier League
wonTackle: 1.5728 -> 1.6882
totalCross: 3.2568 -> 3.3059
interceptionWon: 1.536 -> 1.5542
totalShots: 1.1885 -> 1.1808
onTargetScoringAttempt: 0.3507 -> 0.3437
wasFouled: 0.501 -> 0.5073
fouls: 1.3353 -> 1.3412
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Mateus Fernandes', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.384, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9033, 'skill_edge': -0.0858, 'height_edge': 0.02, 'attacker_skill': 0.6914, 'defender_skill': 0.882, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Mateus Fernandes', 'market_value': 68000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.882}], 'xg_override': 0.0925}
aerialWon: 1.2429 -> 1.1
totalShots: 1.1814 -> 1.0672
shotOffTarget: 0.8377 -> 0.7567
onTargetScoringAttempt: 0.3437 -> 0.3105
bigChanceMissed: 0.2172 -> 0.1962
goals: 0.1177 -> 0.1063
expectedGoals: 0.1024 -> 0.0925
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.25 (squad xG sum 1.1947, xG scale 1.0480, xA scale 1.0543, team xA 0.81 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.252
squad_xg_sum=1.1947
squad_xa_sum=0.7719
team_expected_assists=0.8138
team_xa_to_xg_ratio=0.65
expected_assists: 0.0966 -> 0.1018
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 78.0)match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0924
goal_rate=0.1063
scorer_weight=0.1063
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0968
assist_rate=0.0862
provider_weight=0.0946
-
Jaydee CanvotD9000.030.0533%00.26.745.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 1.0106, quality 0.732)market_value_eur=32000000
quality_factor=0.732
boost_factor=1.0106
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.9962
prior_reliability=0.1333
competition=Premier League
wonTackle: 1.103 -> 1.115
fouls: 0.7699 -> 0.7595
interceptionWon: 1.1879 -> 1.1786
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 Maddison', 'matchup_zone': 'LW 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 1.25 (squad xG sum 1.1947, xG scale 1.0480, xA scale 1.0543, team xA 0.81 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.252
squad_xg_sum=1.1947
squad_xa_sum=0.7719
team_expected_assists=0.8138
team_xa_to_xg_ratio=0.65
-
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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0307
goal_rate=0.0
scorer_weight=0.025
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0223
assist_rate=0.0
provider_weight=0.0181
-
Chris RichardsD9000.060.07ok10.56.852.531FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0056, quality 0.677)market_value_eur=25000000
quality_factor=0.6773
boost_factor=1.0056
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.9999
prior_reliability=0.1333
competition=Premier League
interceptionWon: 1.1829 -> 1.1906
fouls: 0.6883 -> 0.6818
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Omar Marmoush', '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.25 (squad xG sum 1.1947, xG scale 1.0480, xA scale 1.0543, team xA 0.81 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.252
squad_xg_sum=1.1947
squad_xa_sum=0.7719
team_expected_assists=0.8138
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 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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0628
goal_rate=0.0067
scorer_weight=0.0519
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0197
assist_rate=0.0
provider_weight=0.0159
-
Dean HendersonG9000.00-n/a0.06.953.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.0068, quality 0.710)market_value_eur=29000000
quality_factor=0.71
boost_factor=1.0068
reference_quality=0.505
history_matches=40
history_shrink=0.1111
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0096)blend_weight=0.0096
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=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': 'Omar Marmoush, Mathys Tel', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.495}
-
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.25 (squad xG sum 1.1947, xG scale 1.0480, xA scale 1.0543, team xA 0.81 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.252
squad_xg_sum=1.1947
squad_xa_sum=0.7719
team_expected_assists=0.8138
team_xa_to_xg_ratio=0.65
shots_faced: 14.2 -> 14.5
expected_saves: 3.47 -> 3.55
high_pressure_saves: 1.2 -> 1.22
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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.3073
-
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.7286
-
Axel DisasiD8300.080.0637%10.46.850.224FBref 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.0052, quality 0.585)market_value_eur=15500000
quality_factor=0.5846
boost_factor=1.0052
reference_quality=0.505
history_matches=18
history_shrink=0.2174
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0019)blend_weight=0.0019
history_matches=18
season_overlap_discount=1.0
per90_to_match_factor=0.9207
prior_reliability=0.0133
competition=Premier League
fouls: 0.8837 -> 0.8907
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Mathys Tel', '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 1.25 (squad xG sum 1.1947, xG scale 1.0480, xA scale 1.0543, team xA 0.81 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.252
squad_xg_sum=1.1947
squad_xa_sum=0.7719
team_expected_assists=0.8138
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 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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0734
goal_rate=0.0
scorer_weight=0.061
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.009
assist_rate=0.0
provider_weight=0.0077
-
Team totals01.25136.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.3m23.2%Market-value substitute prior
Quinten TimberM22.9m54.0%Market-value substitute prior
Óscar MinguezaM19.0m70.7%Market-value substitute prior
Ismaïla SarrF26.7m62.3%Market-value substitute prior
Antagonist / tactical summary
Midfield is evenly contested — Sandro Tonali vs Adam Wharton will be the pivotal duel. Total antagonist xG — Home: 0.50, Away: 0.83. 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.8% / 49.2%, dominance ratio 0.53, key duel: Sandro Tonali vs Adam Wharton
James Maddison xG 0.06Omar Marmoush xG 0.18Mohammed Kudus xG 0.12Jean-Philippe Mateta xG 0.31Dwight McNeil xG 0.09Yéremy Pino xG 0.12

Summary

Antagonist matchup analysis for Tottenham vs Crystal Palace. Most likely scoreline: 1-0. Lambdas derived from 4 home and 7 away individual player duels. Head-to-head: Tottenham 6W-0D-4L vs Crystal Palace over 10 meetings.
Tactical parity between 4-2-3-1 and 3-4-2-1. Match outcome driven primarily by individual player quality. Midfield is evenly contested — Sandro Tonali vs Adam Wharton will be the pivotal duel. Total antagonist xG — Home: 0.50, Away: 0.83. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.

Aston Villa vs Fulham

Premier League · 20261031 · 4-2-3-1 vs 4-2-3-1
Predicted 1-0Winner: Aston VillaWinning H 1-0 (10.9%)Winning A 0-1 (6.2%)Confidence 0.75λ home/away 1.78 / 1.00Most-likely P 10.9%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset Tracing
Antagonist + XGBoost match analysis for Aston Villa vs Fulham. 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.702, Away 1.048). Final calibrated Poisson lambdas: Home 1.776, Away 1.005 (most likely score 1-0).
Home Starters 11/11 XGBoost (10 FBref) Away Starters 11/11 XGBoost (10 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.70 / 1.05 Final λ (H/A) 1.78 / 1.00
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

MetricAston VillaFulham
League position9.0015.00
Points per game1.371.15
Attack index0.920.89
Defense (concede) index0.961.03
Form multiplier1.010.99
Standing λ multiplier0.960.96

Lambda decomposition (how the goal rates were built)

StageAston Villa λFulham λ
Pre-competitive-floor1.9520.973
Pre-calibration (Micro-duels)1.7021.048
Final λ1.7761.005
competition calibration scale 0.951competition 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-111.1%
1-010.9%
2-19.8%
2-09.8%
0-06.3%
Home win55.4%
Draw23.4%
Away win21.2%
Over 2.552.6%
BTTS yes52.7%
Pregame fair line — favorite Aston Villa (55.4%), fair total 2.78, fair spread 0.77

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.

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.136.114FBref 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.0275, quality 0.725)market_value_eur=31000000
quality_factor=0.7249
boost_factor=1.0275
reference_quality=0.505
history_matches=7
history_shrink=0.4167
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0181)blend_weight=0.0181
history_matches=7
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.0667
competition=Premier League
saves: 3.298 -> 3.2565
wasFouled: 0.5758 -> 0.5654
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Gonzalo García, Josh King', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.0478}
-
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.78 (squad xG sum 1.3619, xG scale 1.3041, xA scale 1.7623, team xA 1.15 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.776
squad_xg_sum=1.3619
squad_xa_sum=0.6551
team_expected_assists=1.1544
team_xa_to_xg_ratio=0.65
shots_faced: 10.0 -> 9.5
expected_saves: 2.45 -> 2.32
high_pressure_saves: 0.84 -> 0.8
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: 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.8892
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.1787
-
Matty CashD8700.040.0248%10.66.753.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.0040, quality 0.629)market_value_eur=19800000
quality_factor=0.6291
boost_factor=1.004
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.9704
prior_reliability=0.1267
competition=Premier League
totalCross: 2.2687 -> 2.2488
wasFouled: 1.0367 -> 1.0455
wonTackle: 1.5722 -> 1.5808
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Gonzalo García', '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.78 (squad xG sum 1.3619, xG scale 1.3041, xA scale 1.7623, team xA 1.15 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.776
squad_xg_sum=1.3619
squad_xa_sum=0.6551
team_expected_assists=1.1544
team_xa_to_xg_ratio=0.65
expected_goals: 0.0279 -> 0.0364
expected_assists: 0.0328 -> 0.0578
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 81.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.0357
goal_rate=0.0045
scorer_weight=0.0291
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0562
assist_rate=0.0479
provider_weight=0.0683
-
Victor LindelöfD8700.050.02144%00.16.835.732FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9977, quality 0.460)market_value_eur=4800000
quality_factor=0.4597
boost_factor=0.9977
reference_quality=0.505
history_matches=25
history_shrink=0.1667
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0144)blend_weight=0.0144
history_matches=25
season_overlap_discount=1.0
per90_to_match_factor=0.9712
prior_reliability=0.1333
competition=Premier League
interceptionWon: 0.7725 -> 0.7613
wonTackle: 0.5702 -> 0.562
totalShots: 0.3805 -> 0.375
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Gonzalo García', 'matchup_zone': 'Shape fallback'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.78 (squad xG sum 1.3619, xG scale 1.3041, xA scale 1.7623, team xA 1.15 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.776
squad_xg_sum=1.3619
squad_xa_sum=0.6551
team_expected_assists=1.1544
team_xa_to_xg_ratio=0.65
expected_goals: 0.0419 -> 0.0546
expected_assists: 0.0142 -> 0.025
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 77.0)match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0531
goal_rate=0.0
scorer_weight=0.0437
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0247
assist_rate=0.0083
provider_weight=0.0227
-
Pau TorresD8000.080.04110%00.26.731.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.0066, quality 0.641)market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.0066
reference_quality=0.505
history_matches=26
history_shrink=0.1613
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0126)blend_weight=0.0126
history_matches=26
season_overlap_discount=1.0
per90_to_match_factor=0.8906
prior_reliability=0.12
competition=Premier League
wonTackle: 0.5809 -> 0.5736
fouls: 0.4777 -> 0.4841
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Gonzalo García', '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.78 (squad xG sum 1.3619, xG scale 1.3041, xA scale 1.7623, team xA 1.15 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.776
squad_xg_sum=1.3619
squad_xa_sum=0.6551
team_expected_assists=1.1544
team_xa_to_xg_ratio=0.65
expected_goals: 0.0597 -> 0.0779
expected_assists: 0.0097 -> 0.0171
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
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.0749
goal_rate=0.0
scorer_weight=0.0623
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.017
assist_rate=0.0
provider_weight=0.0143
-
Ian MaatsenD8400.070.04100%10.66.747.930FBref 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.0088, quality 0.739)market_value_eur=33000000
quality_factor=0.7389
boost_factor=1.0088
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.9382
prior_reliability=0.1267
competition=Premier League
fouls: 1.153 -> 1.1665
totalCross: 1.7395 -> 1.7267
wonTackle: 1.4938 -> 1.4835
interceptionWon: 1.1595 -> 1.1679
totalShots: 0.7954 -> 0.8025
wasFouled: 0.4998 -> 0.4947
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Alex Iwobi', '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.78 (squad xG sum 1.3619, xG scale 1.3041, xA scale 1.7623, team xA 1.15 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.776
squad_xg_sum=1.3619
squad_xa_sum=0.6551
team_expected_assists=1.1544
team_xa_to_xg_ratio=0.65
expected_goals: 0.0567 -> 0.0739
expected_assists: 0.1063 -> 0.1873
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
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.0712
goal_rate=0.0
scorer_weight=0.0591
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1708
assist_rate=0.0421
provider_weight=0.1498
-
João GomesM8200.050.02104%10.46.851.729FBref 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.0084, quality 0.758)market_value_eur=36000000
quality_factor=0.7581
boost_factor=1.0084
reference_quality=0.505
history_matches=40
history_shrink=0.1111
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0019)blend_weight=0.0019
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=0.9076
prior_reliability=0.0267
competition=Premier League
wonTackle: 1.7998 -> 1.8051
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Shea Charles', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.408, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 0.9821, 'skill_edge': 0.0399, 'height_edge': -0.052, 'attacker_skill': 0.7926, 'defender_skill': 0.704, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Shea Charles', 'market_value': 24000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.704}], 'xg_override': 0.0353}
aerialWon: 0.5536 -> 0.9
totalShots: 0.5126 -> 0.5035
shotOffTarget: 0.3593 -> 0.3529
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.78 (squad xG sum 1.3619, xG scale 1.3041, xA scale 1.7623, team xA 1.15 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.776
squad_xg_sum=1.3619
squad_xa_sum=0.6551
team_expected_assists=1.1544
team_xa_to_xg_ratio=0.65
expected_goals: 0.0353 -> 0.046
expected_assists: 0.0533 -> 0.0939
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.045
goal_rate=0.0419
scorer_weight=0.0496
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0896
assist_rate=0.074
provider_weight=0.1127
-
AlyssonF6600.210.011363%10.36.733.222FBref 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.0087, quality 0.592)market_value_eur=16200000
quality_factor=0.5921
boost_factor=1.0087
reference_quality=0.505
history_matches=10
history_shrink=0.3333
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0043)blend_weight=0.0043
history_matches=10
season_overlap_discount=1.0
per90_to_match_factor=0.7364
prior_reliability=0.02
competition=Premier League
wonTackle: 0.6633 -> 0.6817
totalShots: 1.3766 -> 1.3706
fouls: 1.1896 -> 1.1844
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Timothy Castagne, Calvin Bassey', '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.9566, 'skill_edge': -0.0255, 'height_edge': -0.004, 'attacker_skill': 0.5921, 'defender_skill': 0.6488, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Timothy Castagne', 'market_value': 7600000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.524}, {'player': 'Calvin Bassey', 'market_value': 29000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7736}], 'xg_override': 0.1606}
totalShots: 1.3747 -> 1.315
shotOffTarget: 0.9344 -> 0.8938
onTargetScoringAttempt: 0.4403 -> 0.4212
expectedGoals: 0.1679 -> 0.1606
goals: 0.1184 -> 0.1133
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.78 (squad xG sum 1.3619, xG scale 1.3041, xA scale 1.7623, team xA 1.15 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.776
squad_xg_sum=1.3619
squad_xa_sum=0.6551
team_expected_assists=1.1544
team_xa_to_xg_ratio=0.65
expected_goals: 0.1606 -> 0.2094
expected_assists: 0.0437 -> 0.077
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 16 by projected rating, fifa_overall 70.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.1889
goal_rate=0.1133
scorer_weight=0.1675
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0741
assist_rate=0.0
provider_weight=0.0616
-
Johan ManzambiM7800.350.14155%31.46.933.011XGBoost 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.0551, quality 0.872)market_value_eur=71000000
quality_factor=0.8721
boost_factor=1.0551
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': 'David Affengruber', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.552, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.1064, 'skill_edge': 0.0844, 'height_edge': -0.012, 'attacker_skill': 0.8721, 'defender_skill': 0.6846, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'David Affengruber', 'market_value': 18100000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.6846}], 'xg_override': 0.2669}
aerialWon: 0.0 -> 1.1
totalShots: 2.487 -> 2.7517
shotOffTarget: 1.6594 -> 1.836
onTargetScoringAttempt: 0.8276 -> 0.9157
expectedGoalsOnTarget: 0.3855 -> 0.4265
expectedGoals: 0.2412 -> 0.2669
goals: 0.2362 -> 0.2613
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.78 (squad xG sum 1.3619, xG scale 1.3041, xA scale 1.7623, team xA 1.15 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.776
squad_xg_sum=1.3619
squad_xa_sum=0.6551
team_expected_assists=1.1544
team_xa_to_xg_ratio=0.65
expected_goals: 0.2669 -> 0.3481
expected_assists: 0.1312 -> 0.2314
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.294
goal_rate=0.2613
scorer_weight=0.3419
-
integer_assist_projectionTeam scoreline allocation: 1 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.2066
assist_rate=0.1369
provider_weight=0.2387
-
John McGinnF8100.180.0991%10.66.847.936FBref 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.0017, quality 0.552)market_value_eur=12600000
quality_factor=0.5525
boost_factor=1.0017
reference_quality=0.505
history_matches=38
history_shrink=0.1163
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0096)blend_weight=0.0096
history_matches=38
season_overlap_discount=1.0
per90_to_match_factor=0.8983
prior_reliability=0.1267
competition=Premier League
fouls: 1.024 -> 1.0323
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Timothy Castagne, Calvin Bassey', '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.8951, 'skill_edge': -0.0433, 'height_edge': -0.028, 'attacker_skill': 0.5525, 'defender_skill': 0.6488, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Timothy Castagne', 'market_value': 7600000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.524}, {'player': 'Calvin Bassey', 'market_value': 29000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7736}], 'xg_override': 0.1355}
totalShots: 1.2212 -> 1.0931
shotOffTarget: 0.7302 -> 0.6536
onTargetScoringAttempt: 0.4843 -> 0.4335
bigChanceMissed: 0.2572 -> 0.2302
expectedGoalsOnTarget: 0.2099 -> 0.1879
goals: 0.1972 -> 0.1765
expectedGoals: 0.1514 -> 0.1355
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.78 (squad xG sum 1.3619, xG scale 1.3041, xA scale 1.7623, team xA 1.15 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.776
squad_xg_sum=1.3619
squad_xa_sum=0.6551
team_expected_assists=1.1544
team_xa_to_xg_ratio=0.65
expected_goals: 0.1355 -> 0.1767
expected_assists: 0.0949 -> 0.1672
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.162
goal_rate=0.1765
scorer_weight=0.2158
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.154
assist_rate=0.4311
provider_weight=0.209
-
Nicolas JacksonF8110.480.14244%31.57.240.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 1.0369, quality 0.800)market_value_eur=44000000
quality_factor=0.8002
boost_factor=1.0369
reference_quality=0.505
history_matches=7
history_shrink=0.4167
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0144)blend_weight=0.0144
history_matches=7
season_overlap_discount=1.0
per90_to_match_factor=0.895
prior_reliability=0.0533
competition=Premier League
totalShots: 2.7932 -> 2.7529
wasFouled: 1.0943 -> 1.0785
onTargetScoringAttempt: 1.0519 -> 1.0367
totalCross: 0.3285 -> 0.3399
totalOffside: 0.6117 -> 0.6029
goals: 0.556 -> 0.548
fouls: 0.489 -> 0.4819
interceptionWon: 0.4235 -> 0.4174
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Timothy Castagne, Calvin Bassey', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.272, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.106, 'skill_edge': 0.0681, 'height_edge': 0.004, 'attacker_skill': 0.8002, 'defender_skill': 0.6488, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Timothy Castagne', 'market_value': 7600000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.524}, {'player': 'Calvin Bassey', 'market_value': 29000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7736}], 'xg_override': 0.3708}
totalShots: 2.778 -> 3.0725
shotOffTarget: 1.7413 -> 1.9259
onTargetScoringAttempt: 1.0367 -> 1.1466
goals: 0.548 -> 0.6061
expectedGoals: 0.3353 -> 0.3708
bigChanceMissed: 0.3351 -> 0.3706
expectedGoalsOnTarget: 0.3083 -> 0.341
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.78 (squad xG sum 1.3619, xG scale 1.3041, xA scale 1.7623, team xA 1.15 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.776
squad_xg_sum=1.3619
squad_xa_sum=0.6551
team_expected_assists=1.1544
team_xa_to_xg_ratio=0.65
expected_goals: 0.3708 -> 0.4836
expected_assists: 0.0789 -> 0.139
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=1
goal_probability=0.3834
goal_rate=0.6061
scorer_weight=0.6045
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1298
assist_rate=0.0
provider_weight=0.1112
-
Boubacar KamaraM8800.060.01307%10.26.944.016FBref 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.0153, quality 0.821)market_value_eur=49000000
quality_factor=0.8206
boost_factor=1.0153
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.9773
prior_reliability=0.1333
competition=Premier League
wasFouled: 2.331 -> 2.3053
wonTackle: 1.7348 -> 1.7242
totalShots: 0.5827 -> 0.5746
interceptionWon: 1.0269 -> 1.0194
totalCross: 0.1166 -> 0.1218
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Shea Charles', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.464, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 1.0651, 'skill_edge': 0.0643, 'height_edge': -0.02, 'attacker_skill': 0.847, 'defender_skill': 0.704, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Shea Charles', 'market_value': 24000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.704}], 'xg_override': 0.0451}
aerialWon: 1.4338 -> 1.1
totalShots: 0.5805 -> 0.6183
shotOffTarget: 0.4286 -> 0.4565
onTargetScoringAttempt: 0.1519 -> 0.1618
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.78 (squad xG sum 1.3619, xG scale 1.3041, xA scale 1.7623, team xA 1.15 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.776
squad_xg_sum=1.3619
squad_xa_sum=0.6551
team_expected_assists=1.1544
team_xa_to_xg_ratio=0.65
expected_goals: 0.0451 -> 0.0588
expected_assists: 0.0332 -> 0.0585
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=0
goal_probability=0.0571
goal_rate=0.0493
scorer_weight=0.0614
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.0614
provider_weight=0.0731
-
Team totals11.78146.8
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
Amadou OnanaM23.4m56.1%Market-value substitute prior
Douglas LuizM22.7m53.2%Market-value substitute prior
Donyell MalenF26.8m62.7%Market-value substitute prior

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Josh KingM7800.140.1038%21.07.048.831XGBoost 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.0094, quality 0.786)market_value_eur=41000000
quality_factor=0.7859
boost_factor=1.0094
reference_quality=0.505
history_matches=40
history_shrink=0.1111
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 Gomes, Boubacar Kamara', 'matchup_zone': 'Attacking Mid vs Double Pivot — Tight Space Battle', 'duel_win_rate': 0.197, 'pressing_faced': 'HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.9375, 'skill_edge': -0.0105, 'height_edge': -0.032, 'attacker_skill': 0.7964, 'defender_skill': 0.8198, 'attacker_role': 'CAM', 'attacker_mv_price_index': 0.95, 'defender_adjusted_parts': [{'player': 'João Gomes', 'market_value': 36000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.7926}, {'player': 'Boubacar Kamara', 'market_value': 49000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.847}], 'xg_override': 0.1769}
aerialWon: 0.1121 -> 0.8
totalShots: 2.251 -> 2.1103
shotOffTarget: 1.4382 -> 1.3483
onTargetScoringAttempt: 0.8128 -> 0.762
bigChanceMissed: 0.3249 -> 0.3046
expectedGoalsOnTarget: 0.2136 -> 0.2003
goals: 0.2102 -> 0.1971
expectedGoals: 0.1887 -> 0.1769
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.00 (squad xG sum 1.2631, xG scale 0.7957, xA scale 0.7957, team xA 0.76 = 0.76 x lambda)scoreline_reset=true
team_lambda=1.005
squad_xg_sum=1.2631
squad_xa_sum=0.9586
team_expected_assists=0.7627
team_xa_to_xg_ratio=0.7589
expected_goals: 0.1769 -> 0.1408
expected_assists: 0.1378 -> 0.1096
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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.1313
goal_rate=0.1971
scorer_weight=0.1533
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.1038
assist_rate=0.1361
provider_weight=0.1086
-
Alex IwobiM8200.110.0675%11.17.350.937FBref 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.0048, quality 0.641)market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.0048
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.9097
prior_reliability=0.1333
competition=Premier League
totalCross: 4.1844 -> 4.1647
totalShots: 1.6273 -> 1.6152
interceptionWon: 0.3004 -> 0.3114
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.422, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9151, 'skill_edge': -0.0777, 'height_edge': 0.02, 'attacker_skill': 0.6408, 'defender_skill': 0.8135, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Ian Maatsen', 'market_value': 33000000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.8135}], 'xg_override': 0.134}
aerialWon: 0.0708 -> 1.1
totalShots: 1.6223 -> 1.4846
shotOffTarget: 1.1539 -> 1.0559
onTargetScoringAttempt: 0.4684 -> 0.4286
bigChanceMissed: 0.2309 -> 0.2113
goals: 0.1653 -> 0.1513
expectedGoals: 0.1464 -> 0.134
expectedGoalsOnTarget: 0.0782 -> 0.0716
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.00 (squad xG sum 1.2631, xG scale 0.7957, xA scale 0.7957, team xA 0.76 = 0.76 x lambda)scoreline_reset=true
team_lambda=1.005
squad_xg_sum=1.2631
squad_xa_sum=0.9586
team_expected_assists=0.7627
team_xa_to_xg_ratio=0.7589
expected_goals: 0.134 -> 0.1066
expected_assists: 0.2124 -> 0.1692
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.1011
goal_rate=0.1513
scorer_weight=0.1166
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.1557
assist_rate=0.1217
provider_weight=0.1354
-
Gonzalo GarcíaF8100.250.23ok21.16.748.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.0088, quality 0.758)market_value_eur=36000000
quality_factor=0.7581
boost_factor=1.0088
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.9001
prior_reliability=0.1333
competition=Premier League
fouls: 0.8512 -> 0.8608
wasFouled: 0.3114 -> 0.3173
totalShots: 2.1583 -> 2.1638
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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, Pau Torres', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.202, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 1.0031, 'skill_edge': 0.0281, 'height_edge': -0.026, 'attacker_skill': 0.7581, 'defender_skill': 0.6957, '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': 'Pau Torres', 'market_value': 21000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7022}], 'xg_override': 0.3197}
totalShots: 2.1638 -> 2.1705
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.00 (squad xG sum 1.2631, xG scale 0.7957, xA scale 0.7957, team xA 0.76 = 0.76 x lambda)scoreline_reset=true
team_lambda=1.005
squad_xg_sum=1.2631
squad_xa_sum=0.9586
team_expected_assists=0.7627
team_xa_to_xg_ratio=0.7589
expected_goals: 0.3197 -> 0.2543
expected_assists: 0.0644 -> 0.0512
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 78.0)match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.2245
goal_rate=0.2526
scorer_weight=0.2081
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0499
assist_rate=0.0
provider_weight=0.041
-
Oscar BobbF7400.120.0852%20.67.049.439FBref 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.0079, quality 0.694)market_value_eur=27000000
quality_factor=0.6941
boost_factor=1.0079
reference_quality=0.505
history_matches=31
history_shrink=0.1389
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0090)blend_weight=0.009
history_matches=31
season_overlap_discount=1.0
per90_to_match_factor=0.819
prior_reliability=0.1
competition=Premier League
totalShots: 1.6665 -> 1.6515
fouls: 0.1828 -> 0.191
totalCross: 2.7634 -> 2.7582
interceptionWon: 0.5357 -> 0.5407
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': 'Matty Cash, Pau Torres', '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.9137, 'skill_edge': -0.0007, 'height_edge': -0.058, 'attacker_skill': 0.6941, 'defender_skill': 0.6957, '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': 'Pau Torres', 'market_value': 21000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7022}], 'xg_override': 0.1479}
totalShots: 1.6615 -> 1.5181
shotOffTarget: 1.1284 -> 1.031
onTargetScoringAttempt: 0.5331 -> 0.4871
goals: 0.1824 -> 0.1667
expectedGoalsOnTarget: 0.1679 -> 0.1534
expectedGoals: 0.1619 -> 0.1479
bigChanceMissed: 0.1318 -> 0.1204
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.00 (squad xG sum 1.2631, xG scale 0.7957, xA scale 0.7957, team xA 0.76 = 0.76 x lambda)scoreline_reset=true
team_lambda=1.005
squad_xg_sum=1.2631
squad_xa_sum=0.9586
team_expected_assists=0.7627
team_xa_to_xg_ratio=0.7589
expected_goals: 0.1479 -> 0.1177
expected_assists: 0.1192 -> 0.0948
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 76.0)match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.111
goal_rate=0.1667
scorer_weight=0.1289
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0904
assist_rate=0.0084
provider_weight=0.0758
-
Shea CharlesM8600.040.01205%10.47.140.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.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
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0083)blend_weight=0.0083
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=0.9516
prior_reliability=0.0333
competition=Premier League
totalShots: 0.7461 -> 0.7702
totalCross: 0.1507 -> 0.1653
wasFouled: 1.329 -> 1.3179
wonTackle: 1.1554 -> 1.1616
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 Gomes', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.432, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 1.0179, 'skill_edge': -0.0399, 'height_edge': 0.052, 'attacker_skill': 0.704, 'defender_skill': 0.7926, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'João Gomes', 'market_value': 36000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.7926}], 'xg_override': 0.0488}
aerialWon: 1.364 -> 1.3
totalShots: 0.7702 -> 0.784
shotOffTarget: 0.5327 -> 0.5422
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.00 (squad xG sum 1.2631, xG scale 0.7957, xA scale 0.7957, team xA 0.76 = 0.76 x lambda)scoreline_reset=true
team_lambda=1.005
squad_xg_sum=1.2631
squad_xa_sum=0.9586
team_expected_assists=0.7627
team_xa_to_xg_ratio=0.7589
expected_goals: 0.0488 -> 0.0388
expected_assists: 0.0816 -> 0.0649
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 73.0)match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0381
goal_rate=0.0459
scorer_weight=0.0377
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0628
assist_rate=0.0517
provider_weight=0.0519
-
Sander BergeM8400.050.0435%10.57.052.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.0057, quality 0.686)market_value_eur=26000000
quality_factor=0.6858
boost_factor=1.0057
reference_quality=0.505
history_matches=43
history_shrink=0.1042
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0077)blend_weight=0.0077
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=0.9333
prior_reliability=0.1133
competition=Premier League
wonTackle: 0.8443 -> 0.8378
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 Gomes', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.448, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 1.0414, 'skill_edge': -0.0318, 'height_edge': 0.06, 'attacker_skill': 0.7219, 'defender_skill': 0.7926, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'João Gomes', 'market_value': 36000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.7926}], 'xg_override': 0.0614}
aerialWon: 0.9696 -> 1.4
totalShots: 0.7554 -> 0.7867
shotOffTarget: 0.5262 -> 0.548
onTargetScoringAttempt: 0.2291 -> 0.2386
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.00 (squad xG sum 1.2631, xG scale 0.7957, xA scale 0.7957, team xA 0.76 = 0.76 x lambda)scoreline_reset=true
team_lambda=1.005
squad_xg_sum=1.2631
squad_xa_sum=0.9586
team_expected_assists=0.7627
team_xa_to_xg_ratio=0.7589
expected_goals: 0.0614 -> 0.0489
expected_assists: 0.06 -> 0.0477
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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0477
goal_rate=0.0681
scorer_weight=0.0518
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0466
assist_rate=0.0663
provider_weight=0.0504
-
Antonee RobinsonD8700.040.03ok10.26.848.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.0072, quality 0.669)market_value_eur=24000000
quality_factor=0.6685
boost_factor=1.0072
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.9666
prior_reliability=0.1267
competition=Premier League
fouls: 1.4783 -> 1.4604
wonTackle: 1.7037 -> 1.7139
interceptionWon: 1.1728 -> 1.1648
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'John McGinn', '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 1.00 (squad xG sum 1.2631, xG scale 0.7957, xA scale 0.7957, team xA 0.76 = 0.76 x lambda)scoreline_reset=true
team_lambda=1.005
squad_xg_sum=1.2631
squad_xa_sum=0.9586
team_expected_assists=0.7627
team_xa_to_xg_ratio=0.7589
expected_goals: 0.0556 -> 0.0442
expected_assists: 0.0536 -> 0.0426
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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0432
goal_rate=0.0415
scorer_weight=0.0383
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0417
assist_rate=0.0
provider_weight=0.0341
-
Bernd LenoG9000.00-n/a0.07.256.834FBref 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.9989, quality 0.468)market_value_eur=5500000
quality_factor=0.4683
boost_factor=0.9989
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': 'Nicolas Jackson, Johan Manzambi', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.702}
-
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.00 (squad xG sum 1.2631, xG scale 0.7957, xA scale 0.7957, team xA 0.76 = 0.76 x lambda)scoreline_reset=true
team_lambda=1.005
squad_xg_sum=1.2631
squad_xa_sum=0.9586
team_expected_assists=0.7627
team_xa_to_xg_ratio=0.7589
shots_faced: 16.2 -> 16.9
expected_saves: 3.97 -> 4.14
high_pressure_saves: 1.36 -> 1.42
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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=0.9696
-
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.655
-
Timothy CastagneD8700.060.05ok10.46.848.234FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9996, quality 0.494)market_value_eur=7600000
quality_factor=0.4939
boost_factor=0.9996
reference_quality=0.505
history_matches=37
history_shrink=0.119
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0088)blend_weight=0.0088
history_matches=37
season_overlap_discount=1.0
per90_to_match_factor=0.9623
prior_reliability=0.1133
competition=Premier League
fouls: 1.1789 -> 1.1934
wasFouled: 0.6533 -> 0.6674
totalCross: 2.5089 -> 2.5018
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 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.00 (squad xG sum 1.2631, xG scale 0.7957, xA scale 0.7957, team xA 0.76 = 0.76 x lambda)scoreline_reset=true
team_lambda=1.005
squad_xg_sum=1.2631
squad_xa_sum=0.9586
team_expected_assists=0.7627
team_xa_to_xg_ratio=0.7589
expected_goals: 0.0723 -> 0.0575
expected_assists: 0.0764 -> 0.0608
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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0559
goal_rate=0.0
scorer_weight=0.046
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.059
assist_rate=0.0618
provider_weight=0.0538
-
David AffengruberD8900.030.03ok10.57.054.835FBref 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.612)market_value_eur=18100000
quality_factor=0.612
boost_factor=1.0033
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.9898
prior_reliability=0.2
competition=La Liga
totalShots: 0.521 -> 0.536
fouls: 1.127 -> 1.1164
wasFouled: 0.5804 -> 0.5902
interceptionWon: 1.1216 -> 1.1286
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 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.00 (squad xG sum 1.2631, xG scale 0.7957, xA scale 0.7957, team xA 0.76 = 0.76 x lambda)scoreline_reset=true
team_lambda=1.005
squad_xg_sum=1.2631
squad_xa_sum=0.9586
team_expected_assists=0.7627
team_xa_to_xg_ratio=0.7589
expected_goals: 0.0357 -> 0.0284
expected_assists: 0.031 -> 0.0247
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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.028
goal_rate=0.0166
scorer_weight=0.0227
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0244
assist_rate=0.0153
provider_weight=0.0199
-
Calvin BasseyD9000.040.04ok10.47.151.430FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0072, quality 0.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=1.0
prior_reliability=0.1333
competition=Premier League
fouls: 1.3228 -> 1.3145
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 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.00 (squad xG sum 1.2631, xG scale 0.7957, xA scale 0.7957, team xA 0.76 = 0.76 x lambda)scoreline_reset=true
team_lambda=1.005
squad_xg_sum=1.2631
squad_xa_sum=0.9586
team_expected_assists=0.7627
team_xa_to_xg_ratio=0.7589
expected_goals: 0.0466 -> 0.0371
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 78.0)match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0364
goal_rate=0.0055
scorer_weight=0.0297
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0127
assist_rate=0.0
provider_weight=0.0102
-
Team totals01.00177.0
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Benjamin LecomteG4.4m10.9%Market-value substitute prior
Ryan SessegnonD18.0m61.8%Market-value substitute prior
Joachim AndersenD14.4m23.3%Market-value substitute prior
Hugo LarssonM23.1m54.9%Market-value substitute prior
Emile Smith RoweM18.4m70.6%Market-value substitute prior
KevinF19.0m73.9%Market-value substitute prior
Antagonist / tactical summary
Midfield is evenly contested — Johan Manzambi vs Josh King will be the pivotal duel. Total antagonist xG — Home: 1.01, Away: 0.89. 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.9% / 48.1%, dominance ratio 0.53, key duel: Johan Manzambi vs Josh King
Johan Manzambi xG 0.27Nicolas Jackson xG 0.37Alysson xG 0.16Alex Iwobi xG 0.13Josh King xG 0.18Gonzalo García xG 0.32

Summary

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

Hull vs Ipswich

Premier League · 20261031 · 5-4-1 vs 4-2-3-1
Predicted 1-1Winner: DrawWinning H 1-0 (8.6%)Winning A 0-1 (8.4%)Confidence 0.7λ home/away 1.41 / 1.37Most-likely P 12.1%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset Tracing
Antagonist + XGBoost match analysis for Hull vs Ipswich. Player statistics regressed using position-specific XGBoost models (G, D, M, F) with 2026-2027 FBref priors. Micro-duels resolved across 5-4-1 vs 4-2-3-1 (duel lambdas: Home 1.398, Away 1.442). Final calibrated Poisson lambdas: Home 1.409, Away 1.372 (most likely score 1-1).
Home Starters 11/11 XGBoost (9 FBref) Away Starters 11/11 XGBoost (8 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.40 / 1.44 Final λ (H/A) 1.41 / 1.37
FBref Team Priors: Hull City (Gls/90: 1.5, GA/90: 1.5 → E[λ]: 2.069) vs Ipswich Town (Gls/90: 2.0, GA/90: 2.0 → E[λ]: 2.069) | 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

MetricHullIpswich
League position10.0012.00
Points per game1.301.30
Attack index0.921.03
Defense (concede) index1.180.89
Form multiplier1.001.00
Standing λ multiplier1.030.97

Lambda decomposition (how the goal rates were built)

StageHull λIpswich λ
FBref Squad Prior E[λ] (weight 0.192)2.0692.069
Pre-competitive-floor1.3981.442
Pre-calibration (Micro-duels)1.3981.442
Final λ1.4091.372
competition calibration scale 0.979competition 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%
1-08.6%
2-18.4%
0-18.4%
1-28.2%
Home win38.0%
Draw25.6%
Away win36.4%
Over 2.552.6%
BTTS yes56.5%
Pregame fair line — favorite Hull (38.0%), 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.

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Lewie CoyleD7900.040.01183%00.16.637.114FBref 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.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
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0217)blend_weight=0.0217
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=0.8826
prior_reliability=0.0867
competition=Premier League
wasFouled: 0.4333 -> 0.4828
totalCross: 2.7116 -> 2.6823
fouls: 0.2905 -> 0.3136
totalShots: 0.3598 -> 0.352
wonTackle: 0.9627 -> 0.9565
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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, Dara O'Shea", 'matchup_zone': 'RWB vs LW + LB'}
-
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 0.8743, xG scale 1.6116, xA scale 2.0289, team xA 0.92 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.409
squad_xg_sum=0.8743
squad_xa_sum=0.4514
team_expected_assists=0.9159
team_xa_to_xg_ratio=0.65
expected_goals: 0.0236 -> 0.038
expected_assists: 0.0107 -> 0.0217
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 16 by projected rating, fifa_overall 70.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.0373
goal_rate=0.0
scorer_weight=0.0304
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0215
assist_rate=0.0
provider_weight=0.0179
-
Semi AjayiD8900.080.0567%00.26.738.814FBref 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.9922, quality 0.437)market_value_eur=930000
quality_factor=0.4374
boost_factor=0.9922
reference_quality=0.505
history_matches=8
history_shrink=0.3846
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0283)blend_weight=0.0283
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=0.9848
prior_reliability=0.1133
competition=Premier League
wonTackle: 1.3912 -> 1.3682
goals: 0.0656 -> 0.0802
onTargetScoringAttempt: 0.0656 -> 0.0802
wasFouled: 0.0772 -> 0.0914
fouls: 0.2954 -> 0.287
totalCross: 0.842 -> 0.8346
totalShots: 0.3495 -> 0.3561
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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': '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.41 (squad xG sum 0.8743, xG scale 1.6116, xA scale 2.0289, team xA 0.92 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.409
squad_xg_sum=0.8743
squad_xa_sum=0.4514
team_expected_assists=0.9159
team_xa_to_xg_ratio=0.65
expected_goals: 0.0489 -> 0.0788
expected_assists: 0.0059 -> 0.012
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 70.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.0758
goal_rate=0.0802
scorer_weight=0.0985
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0119
assist_rate=0.0
provider_weight=0.0107
-
John EganD8900.030.01247%10.46.739.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 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
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0333)blend_weight=0.0333
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=0.9864
prior_reliability=0.1333
competition=Premier League
totalShots: 0.5231 -> 0.5057
wonTackle: 0.8262 -> 0.8151
fouls: 0.3043 -> 0.2942
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 0.8743, xG scale 1.6116, xA scale 2.0289, team xA 0.92 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.409
squad_xg_sum=0.8743
squad_xa_sum=0.4514
team_expected_assists=0.9159
team_xa_to_xg_ratio=0.65
expected_goals: 0.0213 -> 0.0343
expected_assists: 0.0253 -> 0.0513
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.0337
goal_rate=0.0
scorer_weight=0.0274
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.05
assist_rate=0.0
provider_weight=0.041
-
Nobel MendyD7500.130.04246%10.36.846.729FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0060, quality 0.641)market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.006
reference_quality=0.505
history_matches=29
history_shrink=0.1471
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0083)blend_weight=0.0083
history_matches=29
season_overlap_discount=1.0
per90_to_match_factor=0.834
prior_reliability=0.0867
competition=Premier League
interceptionWon: 0.9842 -> 0.976
onTargetScoringAttempt: 0.3047 -> 0.3125
totalShots: 0.582 -> 0.5875
fouls: 1.2394 -> 1.2344
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Jaden Philogene-Bidace', '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.41 (squad xG sum 0.8743, xG scale 1.6116, xA scale 2.0289, team xA 0.92 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.409
squad_xg_sum=0.8743
squad_xa_sum=0.4514
team_expected_assists=0.9159
team_xa_to_xg_ratio=0.65
expected_goals: 0.0837 -> 0.1349
expected_assists: 0.0082 -> 0.0166
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.1262
goal_rate=0.1192
scorer_weight=0.1686
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0165
assist_rate=0.0
provider_weight=0.0143
-
Ryan GilesD8200.000.0080%00.16.637.914FBref 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.574)market_value_eur=14500000
quality_factor=0.5737
boost_factor=1.0079
reference_quality=0.505
history_matches=8
history_shrink=0.3846
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0317)blend_weight=0.0317
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=0.9066
prior_reliability=0.1267
competition=Premier League
totalCross: 7.7099 -> 7.6622
interceptionWon: 0.678 -> 0.6716
fouls: 0.1608 -> 0.1557
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': "Christian Walton, Dara O'Shea", 'matchup_zone': 'LWB vs RW + RB'}
-
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 0.8743, xG scale 1.6116, xA scale 2.0289, team xA 0.92 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.409
squad_xg_sum=0.8743
squad_xa_sum=0.4514
team_expected_assists=0.9159
team_xa_to_xg_ratio=0.65
expected_assists: 0.0599 -> 0.1215
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 18 by projected rating, fifa_overall 72.0)match_squad_rank=18
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.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.1144
assist_rate=0.1324
provider_weight=0.1519
-
Mohamed BelloumiF8200.270.09207%21.67.241.625XGBoost 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.0111, quality 0.602)market_value_eur=17100000
quality_factor=0.6016
boost_factor=1.0111
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': 'Issa Diop, Leif Davis', '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.8983, 'skill_edge': -0.0252, 'height_edge': -0.044, 'attacker_skill': 0.6016, 'defender_skill': 0.6575, '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': 'Leif Davis', 'market_value': 26000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7498}], 'xg_override': 0.166}
totalShots: 2.2932 -> 2.06
shotOffTarget: 1.5434 -> 1.3864
onTargetScoringAttempt: 0.7497 -> 0.6735
goals: 0.2605 -> 0.234
expectedGoals: 0.1848 -> 0.166
expectedGoalsOnTarget: 0.1846 -> 0.1658
bigChanceMissed: 0.1613 -> 0.1449
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 0.8743, xG scale 1.6116, xA scale 2.0289, team xA 0.92 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.409
squad_xg_sum=0.8743
squad_xa_sum=0.4514
team_expected_assists=0.9159
team_xa_to_xg_ratio=0.65
expected_goals: 0.166 -> 0.2675
expected_assists: 0.1093 -> 0.2218
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 73.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.2347
goal_rate=0.234
scorer_weight=0.3344
-
integer_assist_projectionTeam scoreline allocation: 1 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.1989
assist_rate=0.2604
provider_weight=0.2772
-
Tim IroegbunamM8100.080.02324%10.46.841.729FBref 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.0030, quality 0.585)market_value_eur=15500000
quality_factor=0.5846
boost_factor=1.003
reference_quality=0.505
history_matches=35
history_shrink=0.125
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0005)blend_weight=0.0005
history_matches=35
season_overlap_discount=1.0
per90_to_match_factor=0.9038
prior_reliability=0.0067
competition=Premier League
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=true
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Florentino Luís', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.437, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9813, 'skill_edge': -0.0047, 'height_edge': -0.008, 'attacker_skill': 0.6029, 'defender_skill': 0.6134, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Florentino Luís', 'market_value': 15500000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.6134}], 'xg_override': 0.051}
aerialWon: 1.3302 -> 1.1
totalShots: 0.8058 -> 0.7908
shotOffTarget: 0.6278 -> 0.6161
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 0.8743, xG scale 1.6116, xA scale 2.0289, team xA 0.92 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.409
squad_xg_sum=0.8743
squad_xa_sum=0.4514
team_expected_assists=0.9159
team_xa_to_xg_ratio=0.65
expected_goals: 0.051 -> 0.0822
expected_assists: 0.0357 -> 0.0724
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 76.0)match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0789
goal_rate=0.0462
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.0698
assist_rate=0.049
provider_weight=0.0836
-
Regan SlaterM8400.110.02392%10.56.838.914FBref 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.0009, quality 0.513)market_value_eur=9200000
quality_factor=0.513
boost_factor=1.0009
reference_quality=0.505
history_matches=8
history_shrink=0.3846
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0333)blend_weight=0.0333
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=0.9343
prior_reliability=0.1333
competition=Premier League
totalShots: 1.0307 -> 0.9964
fouls: 0.5999 -> 0.6266
interceptionWon: 0.5667 -> 0.5478
goalAssist: 0.0824 -> 0.0952
onTargetScoringAttempt: 0.3359 -> 0.3247
wonTackle: 1.1471 -> 1.14
wasFouled: 0.647 -> 0.641
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.366, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.8769, 'skill_edge': -0.0397, 'height_edge': -0.044, 'attacker_skill': 0.5251, 'defender_skill': 0.6134, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Florentino Luís', 'market_value': 15500000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.6134}], 'xg_override': 0.0669}
aerialWon: 1.1442 -> 0.9
totalShots: 1.0195 -> 0.894
shotOffTarget: 0.6948 -> 0.6093
onTargetScoringAttempt: 0.3247 -> 0.2847
expectedGoals: 0.0763 -> 0.0669
goals: 0.0585 -> 0.0513
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 0.8743, xG scale 1.6116, xA scale 2.0289, team xA 0.92 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.409
squad_xg_sum=0.8743
squad_xa_sum=0.4514
team_expected_assists=0.9159
team_xa_to_xg_ratio=0.65
expected_goals: 0.0669 -> 0.1078
expected_assists: 0.072 -> 0.1461
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 72.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.1022
goal_rate=0.0513
scorer_weight=0.0934
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1359
assist_rate=0.0952
provider_weight=0.1739
-
Elliot StroudM7500.070.001437%10.26.728.414FBref 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.9998, quality 0.503)market_value_eur=8400000
quality_factor=0.5035
boost_factor=0.9998
reference_quality=0.505
history_matches=6
history_shrink=0.4545
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0276)blend_weight=0.0276
history_matches=6
season_overlap_discount=1.0
per90_to_match_factor=0.829
prior_reliability=0.0933
competition=Premier League
totalCross: 0.6418 -> 0.6731
interceptionWon: 0.3062 -> 0.3304
wonTackle: 0.7801 -> 0.7912
wasFouled: 0.2695 -> 0.2621
onTargetScoringAttempt: 0.1943 -> 0.1889
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Christian Walton', 'matchup_zone': 'Left Mid vs Right Back — Wide Channel', 'duel_win_rate': 0.401, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9722, 'skill_edge': 0.0251, 'height_edge': -0.044, 'attacker_skill': 0.5146, 'defender_skill': 0.4588, 'attacker_role': 'LM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Christian Walton', 'market_value': 2600000, 'role': 'GK', 'price_index': 0.55, 'adjusted_quality': 0.4588}], 'xg_override': 0.0447}
aerialWon: 0.3698 -> 1.2
totalShots: 0.6577 -> 0.6394
shotOffTarget: 0.4656 -> 0.4527
onTargetScoringAttempt: 0.1889 -> 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.41 (squad xG sum 0.8743, xG scale 1.6116, xA scale 2.0289, team xA 0.92 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.409
squad_xg_sum=0.8743
squad_xa_sum=0.4514
team_expected_assists=0.9159
team_xa_to_xg_ratio=0.65
expected_goals: 0.0447 -> 0.072
expected_assists: 0.0502 -> 0.1018
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.0695
goal_rate=0.0506
scorer_weight=0.0765
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0968
assist_rate=0.0704
provider_weight=0.1223
-
Konstantinos TzolakisG9000.00-n/a0.07.040.514XGBoost 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.0157, quality 0.641)market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.0157
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': 'Emersonn, Julio Enciso', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.4418}
-
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 0.8743, xG scale 1.6116, xA scale 2.0289, team xA 0.92 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.409
squad_xg_sum=0.8743
squad_xa_sum=0.4514
team_expected_assists=0.9159
team_xa_to_xg_ratio=0.65
shots_faced: 13.7 -> 13.0
expected_saves: 3.35 -> 3.18
high_pressure_saves: 1.15 -> 1.1
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.4546
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.054
-
Oliver McBurnieF8710.420.14192%20.86.738.314FBref 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.9987, quality 0.494)market_value_eur=7600000
quality_factor=0.4939
boost_factor=0.9987
reference_quality=0.505
history_matches=8
history_shrink=0.3846
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0333)blend_weight=0.0333
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=0.9628
prior_reliability=0.1333
competition=Premier League
totalShots: 1.8358 -> 1.8067
wasFouled: 1.7674 -> 1.7887
interceptionWon: 0.3324 -> 0.3213
goals: 0.2865 -> 0.277
onTargetScoringAttempt: 0.7104 -> 0.7188
totalCross: 0.2059 -> 0.199
fouls: 1.2944 -> 1.2994
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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, Leif Davis', '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.8917, 'skill_edge': -0.0736, 'height_edge': 0.0, 'attacker_skill': 0.4939, 'defender_skill': 0.6575, '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': 'Leif Davis', 'market_value': 26000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7498}], 'xg_override': 0.2612}
totalShots: 1.8441 -> 1.6444
shotOffTarget: 1.1253 -> 1.0034
onTargetScoringAttempt: 0.7188 -> 0.641
expectedGoals: 0.2929 -> 0.2612
goals: 0.277 -> 0.247
bigChanceMissed: 0.2649 -> 0.2362
expectedGoalsOnTarget: 0.2228 -> 0.1987
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 0.8743, xG scale 1.6116, xA scale 2.0289, team xA 0.92 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.409
squad_xg_sum=0.8743
squad_xa_sum=0.4514
team_expected_assists=0.9159
team_xa_to_xg_ratio=0.65
expected_goals: 0.2612 -> 0.4212
expected_assists: 0.0379 -> 0.0769
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 75.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=1
goal_probability=0.3437
goal_rate=0.247
scorer_weight=0.402
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.074
assist_rate=0.1039
provider_weight=0.0961
-
Team totals11.41116.8
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Jack ButlandG4.4m10.9%Market-value substitute prior
Lucas HerringtonD22.9m61.5%Market-value substitute prior
Charlie HughesD13.9m31.2%Market-value substitute prior
Christos MouzakitisM23.0m54.3%Market-value substitute prior
Brooke Norton-CuffyM22.6m52.5%Market-value substitute prior
Robinio VazF26.0m59.1%Market-value substitute prior

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.06.918.814FBref 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.9887, quality 0.437)market_value_eur=2600000
quality_factor=0.4374
boost_factor=0.9887
reference_quality=0.505
history_matches=4
history_shrink=0.5556
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Oliver McBurnie, Mohamed Belloumi', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.398}
-
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 1.2999, xG scale 1.0555, xA scale 1.3513, team xA 0.89 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.372
squad_xg_sum=1.2999
squad_xa_sum=0.66
team_expected_assists=0.8918
team_xa_to_xg_ratio=0.65
shots_faced: 13.3 -> 13.4
expected_saves: 3.26 -> 3.28
high_pressure_saves: 1.12 -> 1.13
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 73.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.5041
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.011
-
Dara O'SheaD9000.040.0298%00.16.838.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.0157, quality 0.641)market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.0157
reference_quality=0.505
history_matches=8
history_shrink=0.3846
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0333)blend_weight=0.0333
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League
fouls: 0.7176 -> 0.7437
interceptionWon: 1.2246 -> 1.2005
wonTackle: 1.109 -> 1.0887
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 Giles', 'matchup_zone': 'LWB vs RW + RB'}
-
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 1.2999, xG scale 1.0555, xA scale 1.3513, team xA 0.89 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.372
squad_xg_sum=1.2999
squad_xa_sum=0.66
team_expected_assists=0.8918
team_xa_to_xg_ratio=0.65
expected_assists: 0.0305 -> 0.0412
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.0424
goal_rate=0.1463
scorer_weight=0.0541
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0404
assist_rate=0.0
provider_weight=0.033
-
Issa DiopD9000.050.0366%00.16.834.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.0012, quality 0.526)market_value_eur=10300000
quality_factor=0.526
boost_factor=1.0012
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.9977
prior_reliability=0.1333
competition=Premier League
fouls: 0.8352 -> 0.8462
totalShots: 0.4379 -> 0.4306
interceptionWon: 1.0828 -> 1.0897
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': 'Mohamed Belloumi', '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 1.2999, xG scale 1.0555, xA scale 1.3513, team xA 0.89 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.372
squad_xg_sum=1.2999
squad_xa_sum=0.66
team_expected_assists=0.8918
team_xa_to_xg_ratio=0.65
expected_assists: 0.0166 -> 0.0224
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.0471
goal_rate=0.0436
scorer_weight=0.0471
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.0179
-
Leif DavisD9000.180.1255%10.56.839.014FBref 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.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.0333)blend_weight=0.0333
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League
totalCross: 2.8755 -> 2.8297
wonTackle: 0.796 -> 0.7695
onTargetScoringAttempt: 0.2687 -> 0.2931
fouls: 0.6392 -> 0.6179
totalShots: 0.5978 -> 0.6112
goals: 0.1893 -> 0.1997
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': 'Mohamed Belloumi', '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 1.2999, xG scale 1.0555, xA scale 1.3513, team xA 0.89 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.372
squad_xg_sum=1.2999
squad_xa_sum=0.66
team_expected_assists=0.8918
team_xa_to_xg_ratio=0.65
expected_goals: 0.1724 -> 0.182
expected_assists: 0.0784 -> 0.1059
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 75.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.1664
goal_rate=0.1997
scorer_weight=0.2043
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1005
assist_rate=0.1061
provider_weight=0.1287
-
Florentino LuísM7700.040.00760%10.26.844.931XGBoost 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.0029, quality 0.585)market_value_eur=15500000
quality_factor=0.5846
boost_factor=1.0029
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=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Tim Iroegbunam, Regan Slater', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel'}
-
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 1.2999, xG scale 1.0555, xA scale 1.3513, team xA 0.89 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.372
squad_xg_sum=1.2999
squad_xa_sum=0.66
team_expected_assists=0.8918
team_xa_to_xg_ratio=0.65
expected_assists: 0.0367 -> 0.0496
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_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.0362
goal_rate=0.0432
scorer_weight=0.0405
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0484
assist_rate=0.0556
provider_weight=0.0604
-
Exequiel PalaciosM8600.04-n/a10.07.037.513FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0226, quality 0.686)market_value_eur=26000000
quality_factor=0.6858
boost_factor=1.0226
reference_quality=0.505
history_matches=7
history_shrink=0.4167
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0054)blend_weight=0.0054
history_matches=7
season_overlap_discount=1.0
per90_to_match_factor=0.96
prior_reliability=0.02
competition=Premier League
interceptionWon: 1.1252 -> 1.1538
fouls: 0.9162 -> 0.9286
wasFouled: 1.0507 -> 1.0623
wonTackle: 1.6353 -> 1.6438
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Tim Iroegbunam', 'matchup_zone': 'CAM vs CM', 'duel_win_rate': 0.442, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0329, 'skill_edge': 0.0424, 'height_edge': -0.02, 'attacker_skill': 0.6971, 'defender_skill': 0.6029, 'attacker_role': 'CAM', 'attacker_mv_price_index': 0.95, 'defender_adjusted_parts': [{'player': 'Tim Iroegbunam', 'market_value': 15500000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.6029}], 'xg_override': 0.0371}
aerialWon: 0.0 -> 1.0
totalShots: 0.4923 -> 0.5085
shotOffTarget: 0.3505 -> 0.362
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 1.2999, xG scale 1.0555, xA scale 1.3513, team xA 0.89 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.372
squad_xg_sum=1.2999
squad_xa_sum=0.66
team_expected_assists=0.8918
team_xa_to_xg_ratio=0.65
expected_assists: 0.0597 -> 0.0807
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: 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.0468
scorer_weight=0.0436
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0775
assist_rate=0.0606
provider_weight=0.0814
-
Abdul Fatawu IssahakuF7300.110.02539%10.46.936.124FBref 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.0204, quality 0.669)market_value_eur=24000000
quality_factor=0.6685
boost_factor=1.0204
reference_quality=0.505
history_matches=7
history_shrink=0.4167
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0289)blend_weight=0.0289
history_matches=7
season_overlap_discount=1.0
per90_to_match_factor=0.816
prior_reliability=0.1067
competition=Premier League
totalShots: 1.3562 -> 1.317
wonTackle: 0.8257 -> 0.8461
totalCross: 4.3969 -> 4.4172
fouls: 1.6938 -> 1.6743
wasFouled: 1.0154 -> 1.0303
onTargetScoringAttempt: 0.3899 -> 0.3786
goalAssist: 0.1283 -> 0.1393
interceptionWon: 0.8553 -> 0.8453
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Semi Ajayi, John Egan', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.268, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.0999, 'skill_edge': 0.104, 'height_edge': -0.036, 'attacker_skill': 0.6685, 'defender_skill': 0.4374, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Semi Ajayi', 'market_value': 930000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'John Egan', 'market_value': 1500000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.1014}
totalShots: 1.3449 -> 1.4793
shotOffTarget: 0.9663 -> 1.0628
onTargetScoringAttempt: 0.3786 -> 0.4164
goals: 0.1151 -> 0.1266
expectedGoals: 0.0922 -> 0.1014
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 1.2999, xG scale 1.0555, xA scale 1.3513, team xA 0.89 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.372
squad_xg_sum=1.2999
squad_xa_sum=0.66
team_expected_assists=0.8918
team_xa_to_xg_ratio=0.65
expected_goals: 0.1014 -> 0.107
expected_assists: 0.1027 -> 0.1388
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.1015
goal_rate=0.1266
scorer_weight=0.1248
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1296
assist_rate=0.1393
provider_weight=0.1721
-
Julio EncisoM8200.210.1281%31.66.940.114FBref 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.0228, quality 0.702)market_value_eur=28000000
quality_factor=0.7022
boost_factor=1.0228
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.9108
prior_reliability=0.12
competition=Premier League
totalCross: 1.0427 -> 1.0114
goalAssist: 0.1359 -> 0.1622
totalShots: 2.4031 -> 2.4234
wonTackle: 0.5373 -> 0.5515
wasFouled: 1.5845 -> 1.5977
interceptionWon: 0.434 -> 0.421
onTargetScoringAttempt: 0.8168 -> 0.8076
goals: 0.2261 -> 0.2193
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Semi Ajayi', 'matchup_zone': 'LW vs CB', 'duel_win_rate': 0.479, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0869, 'skill_edge': 0.1191, 'height_edge': -0.06, 'attacker_skill': 0.7022, 'defender_skill': 0.4374, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Semi Ajayi', 'market_value': 930000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.2008}
aerialWon: 0.1101 -> 0.9
totalShots: 2.4234 -> 2.634
shotOffTarget: 1.5863 -> 1.7241
onTargetScoringAttempt: 0.8076 -> 0.8778
expectedGoalsOnTarget: 0.3137 -> 0.341
goals: 0.2193 -> 0.2384
expectedGoals: 0.1847 -> 0.2008
bigChanceMissed: 0.0876 -> 0.0952
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 1.2999, xG scale 1.0555, xA scale 1.3513, team xA 0.89 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.372
squad_xg_sum=1.2999
squad_xa_sum=0.66
team_expected_assists=0.8918
team_xa_to_xg_ratio=0.65
expected_goals: 0.2008 -> 0.2119
expected_assists: 0.1269 -> 0.1714
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.191
goal_rate=0.2384
scorer_weight=0.2437
-
integer_assist_projectionTeam scoreline allocation: 1 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.1575
assist_rate=0.1622
provider_weight=0.2056
-
Jaden Philogene-BidaceF7100.140.01923%20.36.818.917XGBoost 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.0190, quality 0.619)market_value_eur=18800000
quality_factor=0.6191
boost_factor=1.019
reference_quality=0.505
history_matches=4
history_shrink=0.5556
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Semi Ajayi, John Egan', '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.0731, 'skill_edge': 0.0818, 'height_edge': -0.032, 'attacker_skill': 0.6191, 'defender_skill': 0.4374, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Semi Ajayi', 'market_value': 930000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'John Egan', 'market_value': 1500000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.1365}
totalShots: 1.5343 -> 1.6465
shotOffTarget: 0.9826 -> 1.0544
onTargetScoringAttempt: 0.5517 -> 0.592
goals: 0.1469 -> 0.1576
expectedGoals: 0.1272 -> 0.1365
expectedGoalsOnTarget: 0.0915 -> 0.0982
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 1.2999, xG scale 1.0555, xA scale 1.3513, team xA 0.89 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.372
squad_xg_sum=1.2999
squad_xa_sum=0.66
team_expected_assists=0.8918
team_xa_to_xg_ratio=0.65
expected_goals: 0.1365 -> 0.1441
expected_assists: 0.0555 -> 0.075
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 85.0)match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1342
goal_rate=0.1576
scorer_weight=0.1604
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0723
assist_rate=0.0
provider_weight=0.06
-
EmersonnF7010.360.18103%21.06.738.614FBref 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.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
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0200)blend_weight=0.02
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=0.7782
prior_reliability=0.08
competition=Premier League
totalCross: 0.0673 -> 0.0789
wasFouled: 1.8271 -> 1.8165
onTargetScoringAttempt: 0.7708 -> 0.7809
totalOffside: 0.365 -> 0.3577
wonTackle: 0.2896 -> 0.2968
goals: 0.2978 -> 0.3048
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Semi Ajayi, John Egan', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.292, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.1352, 'skill_edge': 0.104, 'height_edge': -0.012, 'attacker_skill': 0.6685, 'defender_skill': 0.4374, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Semi Ajayi', 'market_value': 930000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'John Egan', 'market_value': 1500000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.3409}
totalShots: 2.0983 -> 2.382
shotOffTarget: 1.3174 -> 1.4955
onTargetScoringAttempt: 0.7809 -> 0.8865
bigChanceMissed: 0.3636 -> 0.4128
goals: 0.3048 -> 0.346
expectedGoals: 0.3003 -> 0.3409
expectedGoalsOnTarget: 0.1665 -> 0.189
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 1.2999, xG scale 1.0555, xA scale 1.3513, team xA 0.89 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.372
squad_xg_sum=1.2999
squad_xa_sum=0.66
team_expected_assists=0.8918
team_xa_to_xg_ratio=0.65
expected_goals: 0.3409 -> 0.3598
expected_assists: 0.0482 -> 0.0651
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 74.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=1
goal_probability=0.3022
goal_rate=0.346
scorer_weight=0.3645
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.063
assist_rate=0.1074
provider_weight=0.0814
-
Abdoul OuattaraM8900.040.01431%10.26.847.220FBref 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.0104, quality 0.595)market_value_eur=16500000
quality_factor=0.5953
boost_factor=1.0104
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.9852
prior_reliability=0.02
competition=Premier League
totalCross: 1.4958 -> 1.4883
interceptionWon: 1.4403 -> 1.4331
wonTackle: 1.0236 -> 1.0185
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Elliot Stroud', '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.37 (squad xG sum 1.2999, xG scale 1.0555, xA scale 1.3513, team xA 0.89 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.372
squad_xg_sum=1.2999
squad_xa_sum=0.66
team_expected_assists=0.8918
team_xa_to_xg_ratio=0.65
expected_assists: 0.0568 -> 0.0768
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 73.0)match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_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.0436
goal_rate=0.0574
scorer_weight=0.0519
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0739
assist_rate=0.0951
provider_weight=0.096
-
Team totals11.37146.8
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Kjell ScherpenG4.8m14.0%Market-value substitute prior
Jacob GreavesD14.2m23.0%Market-value substitute prior
Cédric KipréD13.6m29.9%Market-value substitute prior
Marcelino NúñezM22.5m31.8%Market-value substitute prior
Azor MatusiwaM22.4m52.0%Market-value substitute prior
Jack ClarkeF22.7m73.5%Market-value substitute prior
Antagonist / tactical summary
Midfield is evenly contested — Tim Iroegbunam vs Julio Enciso will be the pivotal duel. Total antagonist xG — Home: 0.61, Away: 0.82. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Midfield — possession 48.3% / 51.7%, dominance ratio 0.44, key duel: Tim Iroegbunam vs Julio Enciso
Mohamed Belloumi xG 0.17Oliver McBurnie xG 0.26Elliot Stroud xG 0.04Julio Enciso xG 0.20Exequiel Palacios xG 0.04Emersonn xG 0.34

Summary

Antagonist matchup analysis for Hull vs Ipswich. Most likely scoreline: 1-1. Lambdas derived from 7 home and 5 away individual player duels. Head-to-head: Hull 4W-2D-4L vs Ipswich over 10 meetings.
Tactical parity between 5-4-1 and 4-2-3-1. Match outcome driven primarily by individual player quality. Midfield is evenly contested — Tim Iroegbunam vs Julio Enciso will be the pivotal duel. Total antagonist xG — Home: 0.61, Away: 0.82. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.

Bournemouth vs Leeds

Premier League · 20261031 · 4-2-3-1 vs 3-4-2-1
Predicted 1-0Winner: BournemouthWinning H 1-0 (9.6%)Winning A 0-1 (7.4%)Confidence 0.73λ home/away 1.57 / 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 Bournemouth vs Leeds. Player statistics regressed using position-specific XGBoost models (G, D, M, F) with 2026-2027 FBref priors. Micro-duels resolved across 4-2-3-1 vs 3-4-2-1 (duel lambdas: Home 1.482, Away 1.059). Final calibrated Poisson lambdas: Home 1.566, Away 1.215 (most likely score 1-0).
Home Starters 11/11 XGBoost (10 FBref) Away Starters 11/11 XGBoost (10 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.48 / 1.06 Final λ (H/A) 1.57 / 1.22
FBref Team Priors: Bournemouth (Gls/90: 1.0, GA/90: 1.0 → E[λ]: 0.69) vs Leeds United (Gls/90: 1.0, GA/90: 1.0 → E[λ]: 0.69) | Blend Weight: 0.192
Modeling Pipeline Stages (5 layers)
  1. 1. XGBoost player regressions for volume & event rates with market-value quality scaling
  2. 2. Multi-source prior blending (FBref 2026-2027 tables + Sofascore season history)
  3. 3. Antagonist formation duel matrix resolving 1v1 and zonal matchups
  4. 4. Team-level prior calibration (FBref possession and attack/defense efficiencies)
  5. 5. Bivariate Poisson matrix with Dixon-Coles low-score correction

Standing & form context

MetricBournemouthLeeds
League position13.007.00
Points per game1.221.37
Attack index1.030.92
Defense (concede) index0.821.07
Form multiplier0.991.01
Standing λ multiplier0.931.00

Lambda decomposition (how the goal rates were built)

StageBournemouth λLeeds λ
FBref Squad Prior E[λ] (weight 0.192)0.6900.690
Pre-competitive-floor1.4571.077
Pre-calibration (Micro-duels)1.4821.059
Final λ1.5661.215
competition calibration scale 1.097competition 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-111.9%
1-09.6%
2-19.2%
2-07.6%
0-17.4%
Home win45.4%
Draw25.1%
Away win29.5%
Over 2.552.6%
BTTS yes55.7%
Pregame fair line — favorite Bournemouth (45.4%), fair total 2.78, fair spread 0.35

Projected players vs season baseline

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

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Marcus TavernierF8300.300.28ok21.67.051.840FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0060, quality 0.694)market_value_eur=27000000
quality_factor=0.6941
boost_factor=1.006
reference_quality=0.505
history_matches=42
history_shrink=0.1064
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0092)blend_weight=0.0092
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.9251
prior_reliability=0.1333
competition=Premier League
wasFouled: 1.0301 -> 1.0377
onTargetScoringAttempt: 1.051 -> 1.0456
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 Justin, Nico Elvedi', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.207, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.0096, 'skill_edge': 0.0366, 'height_edge': -0.03, 'attacker_skill': 0.6941, 'defender_skill': 0.6129, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'James Justin', 'market_value': 16500000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6503}, {'player': 'Nico Elvedi', 'market_value': 11000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5755}], 'xg_override': 0.3592}
totalShots: 2.0349 -> 2.0544
onTargetScoringAttempt: 1.0456 -> 1.0556
shotOffTarget: 0.9856 -> 0.9951
expectedGoalsOnTarget: 0.5595 -> 0.5649
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.57 (squad xG sum 1.8872, xG scale 0.8298, xA scale 1.0336, team xA 1.02 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.566
squad_xg_sum=1.8872
squad_xa_sum=0.9848
team_expected_assists=1.0179
team_xa_to_xg_ratio=0.65
expected_goals: 0.3592 -> 0.2981
expected_assists: 0.1692 -> 0.1748
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.2578
goal_rate=0.3502
scorer_weight=0.2915
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1604
assist_rate=0.0172
provider_weight=0.1398
-
EvanilsonF8400.300.28ok31.87.055.433FBref 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.0072, quality 0.739)market_value_eur=33000000
quality_factor=0.7389
boost_factor=1.0072
reference_quality=0.505
history_matches=44
history_shrink=0.102
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0075)blend_weight=0.0075
history_matches=44
season_overlap_discount=1.0
per90_to_match_factor=0.9287
prior_reliability=0.1133
competition=Premier League
fouls: 1.3847 -> 1.3948
wasFouled: 1.6989 -> 1.7067
interceptionWon: 0.7007 -> 0.7077
onTargetScoringAttempt: 0.7937 -> 0.7877
totalShots: 2.4108 -> 2.4049
goalAssist: 0.3288 -> 0.3345
wonTackle: 0.7552 -> 0.7495
totalOffside: 0.7507 -> 0.7451
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 Justin, Nico Elvedi', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.239, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.0569, 'skill_edge': 0.0567, 'height_edge': -0.018, 'attacker_skill': 0.7389, 'defender_skill': 0.6129, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'James Justin', 'market_value': 16500000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6503}, {'player': 'Nico Elvedi', 'market_value': 11000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5755}], 'xg_override': 0.3622}
totalShots: 2.4049 -> 2.5417
shotOffTarget: 1.6171 -> 1.7091
onTargetScoringAttempt: 0.7877 -> 0.8325
expectedGoalsOnTarget: 0.4304 -> 0.4549
goals: 0.3713 -> 0.3924
expectedGoals: 0.3427 -> 0.3622
bigChanceMissed: 0.3238 -> 0.3422
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.57 (squad xG sum 1.8872, xG scale 0.8298, xA scale 1.0336, team xA 1.02 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.566
squad_xg_sum=1.8872
squad_xa_sum=0.9848
team_expected_assists=1.0179
team_xa_to_xg_ratio=0.65
expected_goals: 0.3622 -> 0.3006
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 79.0)match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.2596
goal_rate=0.3924
scorer_weight=0.3226
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0941
assist_rate=0.3345
provider_weight=0.1235
-
Justin KluivertM7400.150.0968%21.06.837.216FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0079, quality 0.669)market_value_eur=24000000
quality_factor=0.6685
boost_factor=1.0079
reference_quality=0.505
history_matches=26
history_shrink=0.1613
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0119)blend_weight=0.0119
history_matches=26
season_overlap_discount=1.0
per90_to_match_factor=0.8226
prior_reliability=0.1133
competition=Premier League
totalCross: 2.2905 -> 2.2805
onTargetScoringAttempt: 0.6017 -> 0.6117
totalShots: 1.7204 -> 1.7285
fouls: 1.6498 -> 1.6417
wonTackle: 0.4886 -> 0.4943
interceptionWon: 0.9165 -> 0.9114
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 Justin', 'matchup_zone': 'LW vs CB', 'duel_win_rate': 0.38, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9415, 'skill_edge': 0.0082, 'height_edge': -0.048, 'attacker_skill': 0.6685, 'defender_skill': 0.6503, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'James Justin', 'market_value': 16500000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6503}], 'xg_override': 0.177}
aerialWon: 0.3635 -> 0.8
totalShots: 1.7304 -> 1.6292
shotOffTarget: 1.1187 -> 1.0533
onTargetScoringAttempt: 0.6117 -> 0.5759
expectedGoalsOnTarget: 0.2968 -> 0.2794
expectedGoals: 0.188 -> 0.177
goals: 0.1776 -> 0.1672
bigChanceMissed: 0.1126 -> 0.106
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.57 (squad xG sum 1.8872, xG scale 0.8298, xA scale 1.0336, team xA 1.02 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.566
squad_xg_sum=1.8872
squad_xa_sum=0.9848
team_expected_assists=1.0179
team_xa_to_xg_ratio=0.65
expected_goals: 0.177 -> 0.1469
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 79.0)match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1366
goal_rate=0.1672
scorer_weight=0.1406
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1188
assist_rate=0.1338
provider_weight=0.1349
-
RayanF8610.310.1875%31.87.250.340FBref 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.0184, quality 0.848)market_value_eur=58000000
quality_factor=0.8478
boost_factor=1.0184
reference_quality=0.505
history_matches=23
history_shrink=0.1786
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0155)blend_weight=0.0155
history_matches=23
season_overlap_discount=1.0
per90_to_match_factor=0.9559
prior_reliability=0.1333
competition=Premier League
totalCross: 1.835 -> 1.8066
wasFouled: 1.3869 -> 1.3654
fouls: 0.9579 -> 0.9431
wonTackle: 0.658 -> 0.6478
onTargetScoringAttempt: 0.8848 -> 0.8936
interceptionWon: 0.9909 -> 0.983
goals: 0.367 -> 0.3613
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 Justin, Nico Elvedi', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.304, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.1525, 'skill_edge': 0.1057, 'height_edge': -0.002, 'attacker_skill': 0.8478, 'defender_skill': 0.6129, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'James Justin', 'market_value': 16500000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6503}, {'player': 'Nico Elvedi', 'market_value': 11000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5755}], 'xg_override': 0.375}
totalShots: 2.8038 -> 3.2314
shotOffTarget: 1.9102 -> 2.2015
bigChanceMissed: 0.9239 -> 1.0648
onTargetScoringAttempt: 0.8936 -> 1.0299
goals: 0.3613 -> 0.4164
expectedGoalsOnTarget: 0.3315 -> 0.3821
expectedGoals: 0.3254 -> 0.375
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.57 (squad xG sum 1.8872, xG scale 0.8298, xA scale 1.0336, team xA 1.02 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.566
squad_xg_sum=1.8872
squad_xa_sum=0.9848
team_expected_assists=1.0179
team_xa_to_xg_ratio=0.65
expected_goals: 0.375 -> 0.3111
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=1
goal_probability=0.2674
goal_rate=0.4164
scorer_weight=0.3414
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0832
assist_rate=0.0222
provider_weight=0.0695
-
Tyler AdamsM8300.030.01260%10.26.948.725FBref 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.0087, quality 0.725)market_value_eur=31000000
quality_factor=0.7249
boost_factor=1.0087
reference_quality=0.505
history_matches=33
history_shrink=0.1316
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0023)blend_weight=0.0023
history_matches=33
season_overlap_discount=1.0
per90_to_match_factor=0.9277
prior_reliability=0.0267
competition=Premier League
interceptionWon: 1.4265 -> 1.4338
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Harry Wilson, Noah Okafor, Ethan Ampadu', '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.57 (squad xG sum 1.8872, xG scale 0.8298, xA scale 1.0336, team xA 1.02 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.566
squad_xg_sum=1.8872
squad_xa_sum=0.9848
team_expected_assists=1.0179
team_xa_to_xg_ratio=0.65
expected_goals: 0.0378 -> 0.0314
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 79.0)match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0309
goal_rate=0.0485
scorer_weight=0.0352
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0351
assist_rate=0.0473
provider_weight=0.0411
-
Đorđe PetrovićG9000.00-n/a0.06.856.133FBref 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
saves: 2.7746 -> 2.7893
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Dominic Calvert-Lewin, Noah Okafor', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.0586}
-
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.57 (squad xG sum 1.8872, xG scale 0.8298, xA scale 1.0336, team xA 1.02 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.566
squad_xg_sum=1.8872
squad_xa_sum=0.9848
team_expected_assists=1.0179
team_xa_to_xg_ratio=0.65
shots_faced: 10.1 -> 11.5
expected_saves: 2.48 -> 2.81
high_pressure_saves: 0.85 -> 0.97
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 79.0)match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.5747
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0
provider_weight=0.0
squad_weight_total=0.9927
-
Adam SmithD8400.060.02254%00.16.735.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.9971, quality 0.437)market_value_eur=310000
quality_factor=0.4374
boost_factor=0.9971
reference_quality=0.505
history_matches=30
history_shrink=0.1429
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0124)blend_weight=0.0124
history_matches=30
season_overlap_discount=1.0
per90_to_match_factor=0.9321
prior_reliability=0.1333
competition=Premier League
interceptionWon: 0.784 -> 0.7916
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Ao Tanaka', '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.57 (squad xG sum 1.8872, xG scale 0.8298, xA scale 1.0336, team xA 1.02 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.566
squad_xg_sum=1.8872
squad_xa_sum=0.9848
team_expected_assists=1.0179
team_xa_to_xg_ratio=0.65
expected_goals: 0.0714 -> 0.0592
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 15 by projected rating, fifa_overall 73.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.0575
goal_rate=0.0
scorer_weight=0.0474
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0567
assist_rate=0.0433
provider_weight=0.0512
-
James HillD9000.010.0242%10.37.558.833FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0081, quality 0.732)market_value_eur=32000000
quality_factor=0.732
boost_factor=1.0081
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.9994
prior_reliability=0.1333
competition=Premier League
fouls: 0.8168 -> 0.8238
totalShots: 0.5793 -> 0.5733
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Dominic Calvert-Lewin', '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.57 (squad xG sum 1.8872, xG scale 0.8298, xA scale 1.0336, team xA 1.02 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.566
squad_xg_sum=1.8872
squad_xa_sum=0.9848
team_expected_assists=1.0179
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 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.0136
goal_rate=0.0
scorer_weight=0.011
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0703
assist_rate=0.0144
provider_weight=0.0583
-
António SilvaD9000.130.0938%10.47.139.814FBref 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.0262, quality 0.732)market_value_eur=32000000
quality_factor=0.732
boost_factor=1.0262
reference_quality=0.505
history_matches=8
history_shrink=0.3846
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0333)blend_weight=0.0333
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League
fouls: 1.0596 -> 1.041
onTargetScoringAttempt: 0.2468 -> 0.2386
totalShots: 0.7302 -> 0.7225
interceptionWon: 1.2084 -> 1.2015
wonTackle: 0.7968 -> 0.8036
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Dominic Calvert-Lewin', '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.57 (squad xG sum 1.8872, xG scale 0.8298, xA scale 1.0336, team xA 1.02 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.566
squad_xg_sum=1.8872
squad_xa_sum=0.9848
team_expected_assists=1.0179
team_xa_to_xg_ratio=0.65
expected_goals: 0.1546 -> 0.1283
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 77.0)match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1204
goal_rate=0.0
scorer_weight=0.1026
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0415
assist_rate=0.0
provider_weight=0.0339
-
Adrien TruffertD8900.030.03ok10.46.856.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.0069, quality 0.739)market_value_eur=33000000
quality_factor=0.7389
boost_factor=1.0069
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=0.9927
prior_reliability=0.1333
competition=Premier League
totalCross: 3.938 -> 3.9256
wonTackle: 1.4115 -> 1.4037
totalShots: 0.6653 -> 0.6596
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Jayden Bogle', 'matchup_zone': '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.57 (squad xG sum 1.8872, xG scale 0.8298, xA scale 1.0336, team xA 1.02 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.566
squad_xg_sum=1.8872
squad_xa_sum=0.9848
team_expected_assists=1.0179
team_xa_to_xg_ratio=0.65
expected_goals: 0.0336 -> 0.0279
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
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0275
goal_rate=0.0186
scorer_weight=0.0229
-
integer_assist_projectionTeam scoreline allocation: 1 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.1402
assist_rate=0.2445
provider_weight=0.1889
-
Ryan ChristieM7300.090.0646%10.96.950.728FBref 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=33
history_shrink=0.1316
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Gabriel Gudmundsson', 'matchup_zone': '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.57 (squad xG sum 1.8872, xG scale 0.8298, xA scale 1.0336, team xA 1.02 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.566
squad_xg_sum=1.8872
squad_xa_sum=0.9848
team_expected_assists=1.0179
team_xa_to_xg_ratio=0.65
expected_goals: 0.1044 -> 0.0866
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.083
goal_rate=0.1018
scorer_weight=0.0851
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0885
assist_rate=0.0761
provider_weight=0.0837
-
Team totals11.57187.0
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Michele Di GregorioG4.7m12.3%Market-value substitute prior
Bafodé DiakitéD14.4m33.9%Market-value substitute prior
Álex JiménezD14.3m33.3%Market-value substitute prior
Alex ScottM23.7m34.3%Market-value substitute prior
Hamed Junior TraorèM22.5m52.2%Market-value substitute prior
Eli Junior KroupiF27.0m63.7%Market-value substitute prior

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
James TraffordG9000.00-n/a0.07.219.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.0234, quality 0.770)market_value_eur=38000000
quality_factor=0.7699
boost_factor=1.0234
reference_quality=0.505
history_matches=12
history_shrink=0.2941
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0255)blend_weight=0.0255
history_matches=12
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': 'Rayan, Evanilson', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.4818}
-
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.22 (squad xG sum 1.2773, xG scale 0.9512, xA scale 1.0781, team xA 0.79 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.215
squad_xg_sum=1.2773
squad_xa_sum=0.7326
team_expected_assists=0.7898
team_xa_to_xg_ratio=0.65
shots_faced: 14.1 -> 14.9
expected_saves: 3.45 -> 3.65
high_pressure_saves: 1.19 -> 1.25
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 79.0)match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.2696
-
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.772
-
James JustinD8800.060.06ok10.96.859.036FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0032, quality 0.595)market_value_eur=16500000
quality_factor=0.5953
boost_factor=1.0032
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.9833
prior_reliability=0.1333
competition=Premier League
totalCross: 2.8865 -> 2.8719
wonTackle: 1.3046 -> 1.3165
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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': 'LW 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 1.22 (squad xG sum 1.2773, xG scale 0.9512, xA scale 1.0781, team xA 0.79 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.215
squad_xg_sum=1.2773
squad_xa_sum=0.7326
team_expected_assists=0.7898
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 76.0)match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.057
goal_rate=0.148
scorer_weight=0.0734
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0655
assist_rate=0.0834
provider_weight=0.0801
-
Nico ElvediD8900.050.02180%10.26.931.813FBref 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.0040, quality 0.534)market_value_eur=11000000
quality_factor=0.5341
boost_factor=1.004
reference_quality=0.505
history_matches=6
history_shrink=0.4545
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0118)blend_weight=0.0118
history_matches=6
season_overlap_discount=1.0
per90_to_match_factor=0.9928
prior_reliability=0.04
competition=Premier League
wasFouled: 0.0 -> 0.0391
interceptionWon: 0.9417 -> 0.9501
wonTackle: 0.6195 -> 0.6122
totalShots: 0.5275 -> 0.5213
onTargetScoringAttempt: 0.4664 -> 0.4609
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 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.22 (squad xG sum 1.2773, xG scale 0.9512, xA scale 1.0781, team xA 0.79 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.215
squad_xg_sum=1.2773
squad_xa_sum=0.7326
team_expected_assists=0.7898
team_xa_to_xg_ratio=0.65
expected_assists: 0.0893 -> 0.0963
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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0495
goal_rate=0.0
scorer_weight=0.0406
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0918
assist_rate=0.0
provider_weight=0.077
-
Tarik MuharemovićD9000.080.0482%10.57.141.014FBref 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.0335, quality 0.796)market_value_eur=43000000
quality_factor=0.7957
boost_factor=1.0335
reference_quality=0.505
history_matches=8
history_shrink=0.3846
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0333)blend_weight=0.0333
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League
interceptionWon: 1.1552 -> 1.1834
totalCross: 0.0804 -> 0.0944
wasFouled: 0.9182 -> 0.9043
totalShots: 0.8668 -> 0.8546
goalAssist: 0.2924 -> 0.2827
fouls: 0.7794 -> 0.7701
onTargetScoringAttempt: 0.2814 -> 0.2887
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': 'Marcus Tavernier', '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 1.22 (squad xG sum 1.2773, xG scale 0.9512, xA scale 1.0781, team xA 0.79 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.215
squad_xg_sum=1.2773
squad_xa_sum=0.7326
team_expected_assists=0.7898
team_xa_to_xg_ratio=0.65
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 75.0)match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0783
goal_rate=0.0
scorer_weight=0.0652
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0379
assist_rate=0.2827
provider_weight=0.0483
-
Jayden BogleM8200.120.0853%10.66.954.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 1.0038, quality 0.623)market_value_eur=19200000
quality_factor=0.6231
boost_factor=1.0038
reference_quality=0.505
history_matches=42
history_shrink=0.1064
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0078)blend_weight=0.0078
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.9076
prior_reliability=0.1133
competition=Premier League
wasFouled: 1.2588 -> 1.2699
totalShots: 1.2749 -> 1.2649
totalCross: 2.7667 -> 2.7576
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Adrien Truffert', 'matchup_zone': 'Left Wingback vs Right Back — Overlapping Run', 'duel_win_rate': 0.356, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9351, 'skill_edge': -0.0522, 'height_edge': 0.008, 'attacker_skill': 0.6976, 'defender_skill': 0.8135, 'attacker_role': 'LWB', 'attacker_mv_price_index': 0.7, 'defender_adjusted_parts': [{'player': 'Adrien Truffert', 'market_value': 33000000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.8135}], 'xg_override': 0.1269}
totalShots: 1.2715 -> 1.189
shotOffTarget: 0.8385 -> 0.7841
onTargetScoringAttempt: 0.433 -> 0.4049
goals: 0.1915 -> 0.1791
expectedGoalsOnTarget: 0.1689 -> 0.1579
aerialWon: 1.0108 -> 1.0
expectedGoals: 0.1357 -> 0.1269
bigChanceMissed: 0.1299 -> 0.1215
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.22 (squad xG sum 1.2773, xG scale 0.9512, xA scale 1.0781, team xA 0.79 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.215
squad_xg_sum=1.2773
squad_xa_sum=0.7326
team_expected_assists=0.7898
team_xa_to_xg_ratio=0.65
expected_goals: 0.1269 -> 0.1207
expected_assists: 0.1143 -> 0.123
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 76.0)match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.1137
goal_rate=0.1791
scorer_weight=0.1509
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.1157
assist_rate=0.0949
provider_weight=0.1085
-
Ethan AmpaduM9000.040.05ok10.57.158.933FBref 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.0073, quality 0.739)market_value_eur=33000000
quality_factor=0.7389
boost_factor=1.0073
reference_quality=0.505
history_matches=43
history_shrink=0.1042
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0090)blend_weight=0.009
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=0.9979
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': 'Tyler Adams', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.479, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 1.0419, 'skill_edge': 0.0005, 'height_edge': 0.028, 'attacker_skill': 0.7622, 'defender_skill': 0.761, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Tyler Adams', 'market_value': 31000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.761}], 'xg_override': 0.0399}
aerialWon: 1.1434 -> 1.1
totalShots: 0.6128 -> 0.6385
shotOffTarget: 0.4629 -> 0.4823
onTargetScoringAttempt: 0.1495 -> 0.1558
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.22 (squad xG sum 1.2773, xG scale 0.9512, xA scale 1.0781, team xA 0.79 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.215
squad_xg_sum=1.2773
squad_xa_sum=0.7326
team_expected_assists=0.7898
team_xa_to_xg_ratio=0.65
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 80.0)match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0373
goal_rate=0.0481
scorer_weight=0.0415
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0618
assist_rate=0.0685
provider_weight=0.0692
-
Ao TanakaM7800.100.05105%10.46.836.234FBref 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.592)market_value_eur=16200000
quality_factor=0.5921
boost_factor=1.0033
reference_quality=0.505
history_matches=35
history_shrink=0.125
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0027)blend_weight=0.0027
history_matches=35
season_overlap_discount=1.0
per90_to_match_factor=0.8642
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': 'Adam Smith', 'matchup_zone': 'Right Wingback vs Left Back — Overlapping Run', 'duel_win_rate': 0.501, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.1478, 'skill_edge': 0.1005, 'height_edge': 0.0, 'attacker_skill': 0.6608, 'defender_skill': 0.4374, 'attacker_role': 'RWB', 'attacker_mv_price_index': 0.7, 'defender_adjusted_parts': [{'player': 'Adam Smith', 'market_value': 310000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.4374}], 'xg_override': 0.1072}
aerialWon: 0.2305 -> 1.1
totalShots: 1.0613 -> 1.2182
shotOffTarget: 0.7653 -> 0.8784
onTargetScoringAttempt: 0.296 -> 0.3397
bigChanceMissed: 0.0952 -> 0.1093
expectedGoals: 0.0934 -> 0.1072
goals: 0.0896 -> 0.1028
expectedGoalsOnTarget: 0.0401 -> 0.046
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.22 (squad xG sum 1.2773, xG scale 0.9512, xA scale 1.0781, team xA 0.79 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.215
squad_xg_sum=1.2773
squad_xa_sum=0.7326
team_expected_assists=0.7898
team_xa_to_xg_ratio=0.65
expected_goals: 0.1072 -> 0.102
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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.097
goal_rate=0.1028
scorer_weight=0.0991
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0586
assist_rate=0.0537
provider_weight=0.0591
-
Gabriel GudmundssonM8600.040.01309%10.36.840.034FBref 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.0063, quality 0.686)market_value_eur=26000000
quality_factor=0.6858
boost_factor=1.0063
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': 'Tyler Adams', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.451, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 1.001, 'skill_edge': -0.0233, 'height_edge': 0.024, 'attacker_skill': 0.7091, 'defender_skill': 0.761, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Tyler Adams', 'market_value': 31000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.761}], 'xg_override': 0.0409}
aerialWon: 0.5098 -> 1.1
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.22 (squad xG sum 1.2773, xG scale 0.9512, xA scale 1.0781, team xA 0.79 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.215
squad_xg_sum=1.2773
squad_xa_sum=0.7326
team_expected_assists=0.7898
team_xa_to_xg_ratio=0.65
expected_assists: 0.0737 -> 0.0795
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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0382
goal_rate=0.0484
scorer_weight=0.0421
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0764
assist_rate=0.0768
provider_weight=0.0815
-
Harry WilsonF7600.110.09ok11.26.745.838FBref 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.0052, quality 0.669)market_value_eur=24000000
quality_factor=0.6685
boost_factor=1.0052
reference_quality=0.505
history_matches=42
history_shrink=0.1064
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0055)blend_weight=0.0055
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.8424
prior_reliability=0.08
competition=Premier League
interceptionWon: 0.3185 -> 0.3245
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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, António Silva', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle', 'duel_win_rate': 0.189, 'pressing_faced': 'HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.8808, 'skill_edge': -0.0491, 'height_edge': -0.032, 'attacker_skill': 0.6685, 'defender_skill': 0.7775, 'attacker_role': 'SS', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Tyler Adams', 'market_value': 31000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.761}, {'player': 'António Silva', 'market_value': 32000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7941}], 'xg_override': 0.1108}
totalShots: 1.317 -> 1.1601
shotOffTarget: 0.9299 -> 0.8191
onTargetScoringAttempt: 0.3871 -> 0.341
expectedGoals: 0.1258 -> 0.1108
goals: 0.1254 -> 0.1105
bigChanceMissed: 0.0772 -> 0.068
expectedGoalsOnTarget: 0.0758 -> 0.0668
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.22 (squad xG sum 1.2773, xG scale 0.9512, xA scale 1.0781, team xA 0.79 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.215
squad_xg_sum=1.2773
squad_xa_sum=0.7326
team_expected_assists=0.7898
team_xa_to_xg_ratio=0.65
expected_goals: 0.1108 -> 0.1054
expected_assists: 0.0725 -> 0.0782
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 15 by projected rating, fifa_overall 81.0)match_squad_rank=15
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.1
goal_rate=0.1105
scorer_weight=0.1052
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0752
assist_rate=0.0848
provider_weight=0.0861
-
Noah OkaforF7200.160.1148%20.96.854.227FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0090, quality 0.752)market_value_eur=35000000
quality_factor=0.752
boost_factor=1.009
reference_quality=0.505
history_matches=36
history_shrink=0.122
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0053)blend_weight=0.0053
history_matches=36
season_overlap_discount=1.0
per90_to_match_factor=0.7998
prior_reliability=0.0667
competition=Premier League
totalCross: 1.9211 -> 1.9321
wonTackle: 0.697 -> 0.706
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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, António Silva', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle', 'duel_win_rate': 0.274, 'pressing_faced': 'HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 1.0066, 'skill_edge': -0.0115, 'height_edge': 0.016, 'attacker_skill': 0.752, 'defender_skill': 0.7775, 'attacker_role': 'SS', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Tyler Adams', 'market_value': 31000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.761}, {'player': 'António Silva', 'market_value': 32000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7941}], 'xg_override': 0.1709}
totalShots: 1.7167 -> 1.728
shotOffTarget: 1.09 -> 1.0972
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.22 (squad xG sum 1.2773, xG scale 0.9512, xA scale 1.0781, team xA 0.79 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.215
squad_xg_sum=1.2773
squad_xa_sum=0.7326
team_expected_assists=0.7898
team_xa_to_xg_ratio=0.65
expected_goals: 0.1709 -> 0.1626
expected_assists: 0.0706 -> 0.0761
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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.1501
goal_rate=0.2311
scorer_weight=0.2032
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0733
assist_rate=0.0418
provider_weight=0.0609
-
Dominic Calvert-LewinF8600.330.39ok21.66.854.733FBref 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.0059, quality 0.694)market_value_eur=27000000
quality_factor=0.6941
boost_factor=1.0059
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.9541
prior_reliability=0.1333
competition=Premier League
totalOffside: 0.7592 -> 0.7653
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'António Silva, James Hill', '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.9427, 'skill_edge': -0.045, 'height_edge': 0.006, 'attacker_skill': 0.6941, 'defender_skill': 0.7941, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'António Silva', 'market_value': 32000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7941}, {'player': 'James Hill', 'market_value': 32000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7941}], 'xg_override': 0.3436}
totalShots: 2.1225 -> 2.0009
shotOffTarget: 1.2461 -> 1.1747
onTargetScoringAttempt: 0.8748 -> 0.8247
bigChanceMissed: 0.53 -> 0.4996
expectedGoalsOnTarget: 0.4716 -> 0.4446
expectedGoals: 0.3645 -> 0.3436
goals: 0.3324 -> 0.3134
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.22 (squad xG sum 1.2773, xG scale 0.9512, xA scale 1.0781, team xA 0.79 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.215
squad_xg_sum=1.2773
squad_xa_sum=0.7326
team_expected_assists=0.7898
team_xa_to_xg_ratio=0.65
expected_goals: 0.3436 -> 0.3268
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 79.0)match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.2788
goal_rate=0.3134
scorer_weight=0.3017
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0387
assist_rate=0.003
provider_weight=0.0316
-
Team totals01.22156.9
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Lucas PerriG4.7m12.2%Market-value substitute prior
Joe RodonD14.3m23.2%Market-value substitute prior
Jaka BijolD14.3m23.1%Market-value substitute prior
Anton StachM23.1m33.0%Market-value substitute prior
Sean LongstaffM15.1m70.3%Market-value substitute prior
Jean-Mattéo BahoyaF26.2m60.0%Market-value substitute prior
Antagonist / tactical summary
Midfield is evenly contested — Tyler Adams vs Ethan Ampadu will be the pivotal duel. Total antagonist xG — Home: 1.27, Away: 0.94. 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.4% / 50.6%, dominance ratio 0.48, key duel: Tyler Adams vs Ethan Ampadu
Justin Kluivert xG 0.18Rayan xG 0.38Marcus Tavernier xG 0.36Dominic Calvert-Lewin xG 0.34Harry Wilson xG 0.11Noah Okafor xG 0.17

Summary

Antagonist matchup analysis for Bournemouth vs Leeds. Most likely scoreline: 1-0. Lambdas derived from 4 home and 7 away individual player duels. Head-to-head: Bournemouth 2W-2D-4L vs Leeds over 8 meetings.
Tactical parity between 4-2-3-1 and 3-4-2-1. Match outcome driven primarily by individual player quality. Midfield is evenly contested — Tyler Adams vs Ethan Ampadu will be the pivotal duel. Total antagonist xG — Home: 1.27, Away: 0.94. 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 Betis vs Málaga

LaLiga · 20261031 · 4-2-3-1 vs 3-4-2-1
Predicted 2-0Winner: Real BetisWinning H 2-0 (11.7%)Winning A 0-1 (4.2%)Confidence 0.79λ home/away 2.15 / 0.83Most-likely P 11.7%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset Tracing
Antagonist + XGBoost match analysis for Real Betis vs Málaga. Player statistics regressed using position-specific XGBoost models (G, D, M, F) with 2026-2027 FBref priors. Micro-duels resolved across 4-2-3-1 vs 3-4-2-1 (duel lambdas: Home 1.815, Away 0.718). Final calibrated Poisson lambdas: Home 2.153, Away 0.831 (most likely score 2-0).
Home Starters 11/11 XGBoost (10 FBref) Away Starters 11/11 XGBoost (5 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.81 / 0.72 Final λ (H/A) 2.15 / 0.83
FBref Team Priors: Real Betis (Gls/90: 1.3333333333333333, GA/90: 1.33 → E[λ]: 0.326) vs Málaga CF (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

MetricReal BetisMálaga
League position4.0020.00
Points per game1.760.82
Attack index1.030.76
Defense (concede) index1.120.97
Form multiplier1.040.96
Standing λ multiplier1.070.88

Lambda decomposition (how the goal rates were built)

StageReal Betis λMálaga λ
FBref Squad Prior E[λ] (weight 0.228)0.3260.328
Pre-mismatch1.8410.708
Pre-calibration (Micro-duels)1.8150.718
Final λ2.1530.831
competition calibration scale 1.171competition 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.7%
1-010.8%
2-19.7%
1-19.1%
3-08.4%
Home win67.7%
Draw19.1%
Away win13.2%
Over 2.557.3%
BTTS yes49.9%
Pregame fair line — favorite Real Betis (67.7%), fair total 2.98, fair spread 1.32

Projected players vs season baseline

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

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Fran GarcíaD8900.020.02ok00.26.730.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.9989, quality 0.485)market_value_eur=6900000
quality_factor=0.4854
boost_factor=0.9989
reference_quality=0.505
history_matches=21
history_shrink=0.1923
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0200)blend_weight=0.02
history_matches=21
season_overlap_discount=1.0
per90_to_match_factor=0.9862
prior_reliability=0.16
competition=La Liga
totalCross: 2.6533 -> 2.6906
totalShots: 0.4127 -> 0.4044
wonTackle: 1.6366 -> 1.6285
goalAssist: 0.0268 -> 0.0345
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'David Larrubia', '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 2.15 (squad xG sum 1.3311, xG scale 1.6175, xA scale 1.6175, team xA 1.53 = 0.71 x lambda)scoreline_reset=true
team_lambda=2.153
squad_xg_sum=1.3311
squad_xa_sum=0.9447
team_expected_assists=1.528
team_xa_to_xg_ratio=0.7097
expected_goals: 0.0117 -> 0.0189
expected_assists: 0.0498 -> 0.0806
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 16 by projected rating, fifa_overall 77.0)match_squad_rank=16
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0187
goal_rate=0.0
scorer_weight=0.0153
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0774
assist_rate=0.0345
provider_weight=0.0682
-
Marc RocaM8600.070.02185%10.57.048.934FBref 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=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.9509
prior_reliability=0.1133
competition=La Liga
totalShots: 0.5697 -> 0.5794
wonTackle: 0.8805 -> 0.8877
fouls: 1.8208 -> 1.8145
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'David Larrubia, Adrián Niño, Dani Lorenzo', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 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.15 (squad xG sum 1.3311, xG scale 1.6175, xA scale 1.6175, team xA 1.53 = 0.71 x lambda)scoreline_reset=true
team_lambda=2.153
squad_xg_sum=1.3311
squad_xa_sum=0.9447
team_expected_assists=1.528
team_xa_to_xg_ratio=0.7097
expected_goals: 0.0406 -> 0.0657
expected_assists: 0.071 -> 0.1148
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.0636
goal_rate=0.0439
scorer_weight=0.0681
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1085
assist_rate=0.0636
provider_weight=0.1078
-
Pablo FornalsM8000.120.06101%10.97.159.934FBref 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=46
history_shrink=0.098
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0093)blend_weight=0.0093
history_matches=46
season_overlap_discount=1.0
per90_to_match_factor=0.884
prior_reliability=0.1467
competition=La Liga
totalCross: 2.7633 -> 2.775
totalShots: 1.1304 -> 1.1419
interceptionWon: 0.6804 -> 0.6891
wasFouled: 0.8037 -> 0.7962
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Carlos Dotor', 'matchup_zone': 'Midfield lane'}
-
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.15 (squad xG sum 1.3311, xG scale 1.6175, xA scale 1.6175, team xA 1.53 = 0.71 x lambda)scoreline_reset=true
team_lambda=2.153
squad_xg_sum=1.3311
squad_xa_sum=0.9447
team_expected_assists=1.528
team_xa_to_xg_ratio=0.7097
expected_goals: 0.0744 -> 0.1203
expected_assists: 0.1803 -> 0.2916
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_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.1133
goal_rate=0.0943
scorer_weight=0.1395
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.2529
assist_rate=0.1056
provider_weight=0.2333
-
AntonyF7700.300.2048%32.77.158.741FBref 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.0084, quality 0.764)market_value_eur=37000000
quality_factor=0.7641
boost_factor=1.0084
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.8556
prior_reliability=0.2
competition=La Liga
totalShots: 2.4151 -> 2.4414
totalCross: 1.5948 -> 1.6085
onTargetScoringAttempt: 0.9028 -> 0.9102
wasFouled: 1.2882 -> 1.2942
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Einar Galilea, Fernando Calero', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.305, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.1544, 'skill_edge': 0.147, 'height_edge': -0.042, 'attacker_skill': 0.7641, 'defender_skill': 0.4374, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Einar Galilea', 'market_value': 365000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'Fernando Calero', 'market_value': 2100000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.1875}
totalShots: 2.4414 -> 2.8184
shotOffTarget: 1.5123 -> 1.7458
onTargetScoringAttempt: 0.9102 -> 1.0507
bigChanceMissed: 0.3415 -> 0.3942
expectedGoalsOnTarget: 0.2475 -> 0.2857
goals: 0.2053 -> 0.237
expectedGoals: 0.1624 -> 0.1875
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.15 (squad xG sum 1.3311, xG scale 1.6175, xA scale 1.6175, team xA 1.53 = 0.71 x lambda)scoreline_reset=true
team_lambda=2.153
squad_xg_sum=1.3311
squad_xa_sum=0.9447
team_expected_assists=1.528
team_xa_to_xg_ratio=0.7097
expected_goals: 0.1875 -> 0.3033
expected_assists: 0.1197 -> 0.1936
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.2616
goal_rate=0.237
scorer_weight=0.3665
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.176
assist_rate=0.0446
provider_weight=0.1549
-
IscoM6800.260.1842%21.17.155.120FBref 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.9959, quality 0.445)market_value_eur=3600000
quality_factor=0.4449
boost_factor=0.9959
reference_quality=0.505
history_matches=17
history_shrink=0.2273
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0128)blend_weight=0.0128
history_matches=17
season_overlap_discount=1.0
per90_to_match_factor=0.7599
prior_reliability=0.0867
competition=La Liga
fouls: 0.5226 -> 0.5459
totalCross: 2.8878 -> 2.9032
onTargetScoringAttempt: 0.5218 -> 0.5368
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Einar Galilea', 'matchup_zone': 'LW vs CB', 'duel_win_rate': 0.399, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9696, 'skill_edge': 0.0034, 'height_edge': -0.024, 'attacker_skill': 0.4449, 'defender_skill': 0.4374, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Einar Galilea', 'market_value': 365000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.1619}
aerialWon: 0.0 -> 0.9
totalShots: 1.6959 -> 1.6444
shotOffTarget: 1.1591 -> 1.1239
onTargetScoringAttempt: 0.5368 -> 0.5205
expectedGoalsOnTarget: 0.4394 -> 0.426
bigChanceMissed: 0.1956 -> 0.1897
expectedGoals: 0.167 -> 0.1619
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.15 (squad xG sum 1.3311, xG scale 1.6175, xA scale 1.6175, team xA 1.53 = 0.71 x lambda)scoreline_reset=true
team_lambda=2.153
squad_xg_sum=1.3311
squad_xa_sum=0.9447
team_expected_assists=1.528
team_xa_to_xg_ratio=0.7097
expected_goals: 0.1619 -> 0.2619
expected_assists: 0.1602 -> 0.2591
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 83.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.2304
goal_rate=0.1473
scorer_weight=0.2439
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.2283
assist_rate=0.1198
provider_weight=0.2093
-
Abdessamad EzzalzouliF8410.610.24154%31.97.261.732XGBoost 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.0106, quality 0.796)market_value_eur=43000000
quality_factor=0.7957
boost_factor=1.0106
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=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Einar Galilea, Fernando Calero', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.339, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.2046, 'skill_edge': 0.1612, 'height_edge': -0.022, 'attacker_skill': 0.7957, 'defender_skill': 0.4374, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Einar Galilea', 'market_value': 365000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'Fernando Calero', 'market_value': 2100000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.3778}
totalShots: 2.2172 -> 2.6708
onTargetScoringAttempt: 1.1331 -> 1.3649
shotOffTarget: 1.0841 -> 1.3059
expectedGoalsOnTarget: 0.4353 -> 0.5244
goals: 0.3357 -> 0.4044
expectedGoals: 0.3136 -> 0.3778
bigChanceMissed: 0.1607 -> 0.1936
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.15 (squad xG sum 1.3311, xG scale 1.6175, xA scale 1.6175, team xA 1.53 = 0.71 x lambda)scoreline_reset=true
team_lambda=2.153
squad_xg_sum=1.3311
squad_xa_sum=0.9447
team_expected_assists=1.528
team_xa_to_xg_ratio=0.7097
expected_goals: 0.3778 -> 0.6112
expected_assists: 0.1931 -> 0.3125
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=1
goal_probability=0.4573
goal_rate=0.4044
scorer_weight=0.6492
-
integer_assist_projectionTeam scoreline allocation: 1 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.2684
assist_rate=0.0952
provider_weight=0.25
-
Troy ParrottF7310.440.14214%20.76.738.212FBref 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.0138, quality 0.615)market_value_eur=18400000
quality_factor=0.615
boost_factor=1.0138
reference_quality=0.505
history_matches=7
history_shrink=0.4167
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0144)blend_weight=0.0144
history_matches=7
season_overlap_discount=1.0
per90_to_match_factor=0.8061
prior_reliability=0.0533
competition=La Liga
wonTackle: 0.2831 -> 0.3227
totalShots: 1.5424 -> 1.5614
fouls: 0.0994 -> 0.1125
totalOffside: 0.0994 -> 0.1125
onTargetScoringAttempt: 0.6424 -> 0.6331
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Einar Galilea, Fernando Calero', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.29, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.1322, 'skill_edge': 0.0799, 'height_edge': 0.01, 'attacker_skill': 0.615, 'defender_skill': 0.4374, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Einar Galilea', 'market_value': 365000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'Fernando Calero', 'market_value': 2100000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.2727}
totalShots: 1.5614 -> 1.7678
shotOffTarget: 0.9 -> 1.019
onTargetScoringAttempt: 0.6331 -> 0.7168
bigChanceMissed: 0.4849 -> 0.549
goals: 0.2582 -> 0.2923
expectedGoals: 0.2409 -> 0.2727
expectedGoalsOnTarget: 0.0973 -> 0.1102
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.15 (squad xG sum 1.3311, xG scale 1.6175, xA scale 1.6175, team xA 1.53 = 0.71 x lambda)scoreline_reset=true
team_lambda=2.153
squad_xg_sum=1.3311
squad_xa_sum=0.9447
team_expected_assists=1.528
team_xa_to_xg_ratio=0.7097
expected_goals: 0.2727 -> 0.4411
expected_assists: 0.0588 -> 0.0951
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 17 by projected rating, fifa_overall 78.0)match_squad_rank=17
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=1
goal_probability=0.3567
goal_rate=0.2923
scorer_weight=0.4679
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0907
assist_rate=0.1355
provider_weight=0.1189
-
NatanD8900.120.02404%10.26.949.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.0074, quality 0.732)market_value_eur=32000000
quality_factor=0.732
boost_factor=1.0074
reference_quality=0.505
history_matches=41
history_shrink=0.1087
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0094)blend_weight=0.0094
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=0.9917
prior_reliability=0.1333
competition=La Liga
wonTackle: 0.709 -> 0.721
interceptionWon: 0.8995 -> 0.891
wasFouled: 0.6377 -> 0.6317
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'David Larrubia', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 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.15 (squad xG sum 1.3311, xG scale 1.6175, xA scale 1.6175, team xA 1.53 = 0.71 x lambda)scoreline_reset=true
team_lambda=2.153
squad_xg_sum=1.3311
squad_xa_sum=0.9447
team_expected_assists=1.528
team_xa_to_xg_ratio=0.7097
expected_goals: 0.0729 -> 0.1179
expected_assists: 0.0115 -> 0.0186
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.1112
goal_rate=0.0786
scorer_weight=0.1234
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0184
assist_rate=0.0
provider_weight=0.0151
-
Diego LlorenteD8100.020.01107%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.1667 -> 1.1924
wonTackle: 0.7537 -> 0.7479
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': 'Adrián Niño', '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 2.15 (squad xG sum 1.3311, xG scale 1.6175, xA scale 1.6175, team xA 1.53 = 0.71 x lambda)scoreline_reset=true
team_lambda=2.153
squad_xg_sum=1.3311
squad_xa_sum=0.9447
team_expected_assists=1.528
team_xa_to_xg_ratio=0.7097
expected_goals: 0.0135 -> 0.0218
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.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.0055
assist_rate=0.0
provider_weight=0.0051
-
Angel OrtizD7300.020.00419%00.16.829.825FBref 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.9984, quality 0.482)market_value_eur=6600000
quality_factor=0.4818
boost_factor=0.9984
reference_quality=0.505
history_matches=17
history_shrink=0.2273
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0079)blend_weight=0.0079
history_matches=17
season_overlap_discount=1.0
per90_to_match_factor=0.8158
prior_reliability=0.0533
competition=La Liga
totalCross: 1.9026 -> 1.8876
interceptionWon: 0.8756 -> 0.8687
wasFouled: 0.6816 -> 0.6762
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 Enríquez', 'matchup_zone': 'Left Wingback vs Right Back — Overlapping Run'}
-
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.15 (squad xG sum 1.3311, xG scale 1.6175, xA scale 1.6175, team xA 1.53 = 0.71 x lambda)scoreline_reset=true
team_lambda=2.153
squad_xg_sum=1.3311
squad_xa_sum=0.9447
team_expected_assists=1.528
team_xa_to_xg_ratio=0.7097
expected_goals: 0.0099 -> 0.016
expected_assists: 0.0553 -> 0.0894
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 70.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.0159
goal_rate=0.0
scorer_weight=0.0134
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0855
assist_rate=0.0
provider_weight=0.0715
-
Álvaro VallesG9000.00-n/a0.07.161.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=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=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': 'Adrián Niño, David Larrubia', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 0.7182}
-
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.15 (squad xG sum 1.3311, xG scale 1.6175, xA scale 1.6175, team xA 1.53 = 0.71 x lambda)scoreline_reset=true
team_lambda=2.153
squad_xg_sum=1.3311
squad_xa_sum=0.9447
team_expected_assists=1.528
team_xa_to_xg_ratio=0.7097
shots_faced: 6.8 -> 7.9
expected_saves: 1.66 -> 1.93
high_pressure_saves: 0.57 -> 0.66
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: 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.2809
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.2992
-
Team totals22.15157.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
Aitor RuibalD13.6m30.1%Market-value substitute prior
Sergi AltimiraM22.7m53.2%Market-value substitute prior
Nelson DeossaM19.9m57.0%Market-value substitute prior
Cucho HernándezF25.9m58.7%Market-value substitute prior

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Alfonso HerreroG9000.00-n/a0.07.054.413FBref 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.9932, quality 0.437)market_value_eur=420000
quality_factor=0.4374
boost_factor=0.9932
reference_quality=0.505
history_matches=10
history_shrink=0.3333
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0433)blend_weight=0.0433
history_matches=10
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.2
competition=La Liga
saves: 2.8871 -> 2.9353
wasFouled: 0.1963 -> 0.1878
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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, Troy Parrott', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.8149}
-
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.83 (squad xG sum 0.7402, xG scale 1.1227, xA scale 1.1227, team xA 0.66 = 0.79 x lambda)scoreline_reset=true
team_lambda=0.831
squad_xg_sum=0.7402
squad_xa_sum=0.5844
team_expected_assists=0.6561
team_xa_to_xg_ratio=0.7895
shots_faced: 17.2 -> 20.5
expected_saves: 4.21 -> 5.02
high_pressure_saves: 1.45 -> 1.72
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 75.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.8662
-
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.5932
-
Einar GalileaD8200.00-n/a00.06.936.513XGBoost D_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9916, quality 0.437)market_value_eur=365000
quality_factor=0.4374
boost_factor=0.9916
reference_quality=0.505
history_matches=7
history_shrink=0.4167
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Isco', 'matchup_zone': 'LW 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.83 (squad xG sum 0.7402, xG scale 1.1227, xA scale 1.1227, team xA 0.66 = 0.79 x lambda)scoreline_reset=true
team_lambda=0.831
squad_xg_sum=0.7402
squad_xa_sum=0.5844
team_expected_assists=0.6561
team_xa_to_xg_ratio=0.7895
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 69.0)match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0
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.0063
assist_rate=0.0
provider_weight=0.0057
-
Fernando CaleroD8500.040.0267%00.36.849.823XGBoost 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.9971, quality 0.437)market_value_eur=2100000
quality_factor=0.4374
boost_factor=0.9971
reference_quality=0.505
history_matches=30
history_shrink=0.1429
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 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.83 (squad xG sum 0.7402, xG scale 1.1227, xA scale 1.1227, team xA 0.66 = 0.79 x lambda)scoreline_reset=true
team_lambda=0.831
squad_xg_sum=0.7402
squad_xa_sum=0.5844
team_expected_assists=0.6561
team_xa_to_xg_ratio=0.7895
-
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_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0385
goal_rate=0.0
scorer_weight=0.0314
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0131
assist_rate=0.0
provider_weight=0.0107
-
Carlos PugaD7700.000.0076%00.16.848.013XGBoost 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=1000000
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': 'Abdessamad Ezzalzouli', '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.83 (squad xG sum 0.7402, xG scale 1.1227, xA scale 1.1227, team xA 0.66 = 0.79 x lambda)scoreline_reset=true
team_lambda=0.831
squad_xg_sum=0.7402
squad_xa_sum=0.5844
team_expected_assists=0.6561
team_xa_to_xg_ratio=0.7895
-
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_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0021
goal_rate=0.0
scorer_weight=0.002
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0309
assist_rate=0.0
provider_weight=0.0251
-
Carlos DotorM8000.070.0458%10.56.952.813FBref 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.9928, quality 0.437)market_value_eur=1200000
quality_factor=0.4374
boost_factor=0.9928
reference_quality=0.505
history_matches=9
history_shrink=0.3571
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0387)blend_weight=0.0387
history_matches=9
season_overlap_discount=1.0
per90_to_match_factor=0.8833
prior_reliability=0.1667
competition=La Liga
fouls: 1.3689 -> 1.3296
wasFouled: 0.8002 -> 0.7692
wonTackle: 1.3961 -> 1.4241
totalShots: 0.8266 -> 0.8079
totalCross: 0.4866 -> 0.4951
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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.423, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9606, 'skill_edge': -0.0108, 'height_edge': -0.016, '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.0618}
aerialWon: 0.2137 -> 1.1
totalShots: 0.8298 -> 0.7971
shotOffTarget: 0.5637 -> 0.5415
onTargetScoringAttempt: 0.2661 -> 0.2556
expectedGoalsOnTarget: 0.1542 -> 0.1481
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.83 (squad xG sum 0.7402, xG scale 1.1227, xA scale 1.1227, team xA 0.66 = 0.79 x lambda)scoreline_reset=true
team_lambda=0.831
squad_xg_sum=0.7402
squad_xa_sum=0.5844
team_expected_assists=0.6561
team_xa_to_xg_ratio=0.7895
expected_goals: 0.0618 -> 0.0694
expected_assists: 0.0623 -> 0.0699
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 85.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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.067
goal_rate=0.0702
scorer_weight=0.0746
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0675
assist_rate=0.0594
provider_weight=0.0681
-
Ramón EnríquezM8000.04-n/a00.06.941.913FBref 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.9928, quality 0.437)market_value_eur=380000
quality_factor=0.4374
boost_factor=0.9928
reference_quality=0.505
history_matches=9
history_shrink=0.3571
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0031)blend_weight=0.0031
history_matches=9
season_overlap_discount=1.0
per90_to_match_factor=0.8889
prior_reliability=0.0133
competition=La Liga
fouls: 0.1719 -> 0.1851
wasFouled: 1.2587 -> 1.2685
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Angel Ortiz', 'matchup_zone': 'Left Wingback vs Right Back — Overlapping Run', 'duel_win_rate': 0.389, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9835, 'skill_edge': -0.0352, 'height_edge': 0.024, 'attacker_skill': 0.4374, 'defender_skill': 0.5157, 'attacker_role': 'LWB', 'attacker_mv_price_index': 0.7, 'defender_adjusted_parts': [{'player': 'Angel Ortiz', 'market_value': 6600000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.5157}], 'xg_override': 0.0349}
aerialWon: 0.1938 -> 0.9
totalShots: 0.4079 -> 0.4012
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.83 (squad xG sum 0.7402, xG scale 1.1227, xA scale 1.1227, team xA 0.66 = 0.79 x lambda)scoreline_reset=true
team_lambda=0.831
squad_xg_sum=0.7402
squad_xa_sum=0.5844
team_expected_assists=0.6561
team_xa_to_xg_ratio=0.7895
expected_assists: 0.0431 -> 0.0484
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 65.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.0384
goal_rate=0.0595
scorer_weight=0.049
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0472
assist_rate=0.0679
provider_weight=0.0605
-
Adam AznouD8300.070.01407%10.16.718.014XGBoost 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.9947, quality 0.477)market_value_eur=6200000
quality_factor=0.4769
boost_factor=0.9947
reference_quality=0.505
history_matches=3
history_shrink=0.625
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Troy Parrott', '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.83 (squad xG sum 0.7402, xG scale 1.1227, xA scale 1.1227, team xA 0.66 = 0.79 x lambda)scoreline_reset=true
team_lambda=0.831
squad_xg_sum=0.7402
squad_xa_sum=0.5844
team_expected_assists=0.6561
team_xa_to_xg_ratio=0.7895
expected_goals: 0.0636 -> 0.0714
expected_assists: 0.0622 -> 0.0698
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 15 by projected rating, fifa_overall 67.0)match_squad_rank=15
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0689
goal_rate=0.0
scorer_weight=0.0571
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0674
assist_rate=0.0
provider_weight=0.0558
-
David LarrubiaF8500.080.0570%11.17.051.021FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9973, quality 0.478)market_value_eur=6300000
quality_factor=0.4781
boost_factor=0.9973
reference_quality=0.505
history_matches=10
history_shrink=0.3333
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0347)blend_weight=0.0347
history_matches=10
season_overlap_discount=1.0
per90_to_match_factor=0.9467
prior_reliability=0.16
competition=La Liga
totalCross: 1.5693 -> 1.5149
totalShots: 1.2176 -> 1.2715
wonTackle: 1.8489 -> 1.8805
onTargetScoringAttempt: 0.4049 -> 0.4184
totalOffside: 0.0624 -> 0.0739
fouls: 0.7026 -> 0.6919
interceptionWon: 0.5347 -> 0.5435
wasFouled: 1.039 -> 1.0303
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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, Natan', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 0.8187, 'skill_edge': -0.0674, 'height_edge': -0.056, 'attacker_skill': 0.4781, 'defender_skill': 0.6278, 'attacker_role': 'SS', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Marc Roca', 'market_value': 4200000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4615}, {'player': 'Natan', 'market_value': 32000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7941}], 'xg_override': 0.0726}
totalShots: 1.2715 -> 1.041
shotOffTarget: 0.8127 -> 0.6654
onTargetScoringAttempt: 0.4184 -> 0.3425
goals: 0.1101 -> 0.0901
expectedGoals: 0.0887 -> 0.0726
expectedGoalsOnTarget: 0.0425 -> 0.0348
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.83 (squad xG sum 0.7402, xG scale 1.1227, xA scale 1.1227, team xA 0.66 = 0.79 x lambda)scoreline_reset=true
team_lambda=0.831
squad_xg_sum=0.7402
squad_xa_sum=0.5844
team_expected_assists=0.6561
team_xa_to_xg_ratio=0.7895
expected_goals: 0.0726 -> 0.0815
expected_assists: 0.1934 -> 0.2174
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_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0783
goal_rate=0.0901
scorer_weight=0.0931
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.1954
assist_rate=0.0
provider_weight=0.1739
-
Dani LorenzoM8100.050.02119%10.26.951.612FBref 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.9928, quality 0.437)market_value_eur=2300000
quality_factor=0.4374
boost_factor=0.9928
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.8971
prior_reliability=0.12
competition=La Liga
fouls: 1.3615 -> 1.3236
wonTackle: 1.73 -> 1.6957
totalShots: 0.6176 -> 0.6004
interceptionWon: 0.4863 -> 0.5005
totalCross: 0.3776 -> 0.3671
onTargetScoringAttempt: 0.21 -> 0.2041
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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.407, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9371, 'skill_edge': -0.0108, 'height_edge': -0.032, '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.043}
aerialWon: 0.1863 -> 0.9
totalShots: 0.6117 -> 0.5733
shotOffTarget: 0.4076 -> 0.382
onTargetScoringAttempt: 0.2041 -> 0.1913
bigChanceMissed: 0.1361 -> 0.1275
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.83 (squad xG sum 0.7402, xG scale 1.1227, xA scale 1.1227, team xA 0.66 = 0.79 x lambda)scoreline_reset=true
team_lambda=0.831
squad_xg_sum=0.7402
squad_xa_sum=0.5844
team_expected_assists=0.6561
team_xa_to_xg_ratio=0.7895
expected_goals: 0.043 -> 0.0483
expected_assists: 0.0582 -> 0.0653
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 72.0)match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0472
goal_rate=0.0516
scorer_weight=0.0528
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0632
assist_rate=0.0647
provider_weight=0.0692
-
Adrián NiñoF8000.300.11182%21.26.848.39XGBoost 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.9908, quality 0.437)market_value_eur=1900000
quality_factor=0.4374
boost_factor=0.9908
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': 'Marc Roca, Natan', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle', 'duel_win_rate': 0.184, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 0.8741, 'skill_edge': -0.0857, 'height_edge': 0.0, 'attacker_skill': 0.4374, 'defender_skill': 0.6278, 'attacker_role': 'SS', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Marc Roca', 'market_value': 4200000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4615}, {'player': 'Natan', 'market_value': 32000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7941}], 'xg_override': 0.2684}
totalShots: 2.3916 -> 2.0905
shotOffTarget: 1.4548 -> 1.2716
onTargetScoringAttempt: 0.9368 -> 0.8189
expectedGoalsOnTarget: 0.4226 -> 0.3694
goals: 0.3289 -> 0.2875
expectedGoals: 0.3071 -> 0.2684
bigChanceMissed: 0.238 -> 0.208
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.83 (squad xG sum 0.7402, xG scale 1.1227, xA scale 1.1227, team xA 0.66 = 0.79 x lambda)scoreline_reset=true
team_lambda=0.831
squad_xg_sum=0.7402
squad_xa_sum=0.5844
team_expected_assists=0.6561
team_xa_to_xg_ratio=0.7895
expected_goals: 0.2684 -> 0.3014
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 72.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.2602
goal_rate=0.2875
scorer_weight=0.3195
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0424
assist_rate=0.0
provider_weight=0.0346
-
Rafa GarridoD8800.010.0078%00.26.851.213XGBoost 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.9932, quality 0.437)market_value_eur=1400000
quality_factor=0.4374
boost_factor=0.9932
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': 'Antony', '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.83 (squad xG sum 0.7402, xG scale 1.1227, xA scale 1.1227, team xA 0.66 = 0.79 x lambda)scoreline_reset=true
team_lambda=0.831
squad_xg_sum=0.7402
squad_xa_sum=0.5844
team_expected_assists=0.6561
team_xa_to_xg_ratio=0.7895
-
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_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0083
goal_rate=0.0
scorer_weight=0.0072
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0267
assist_rate=0.14
provider_weight=0.0339
-
Team totals00.8396.9
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Carlos LopezG4.4m10.9%Market-value substitute prior
Jose SalinasD13.6m29.9%Market-value substitute prior
Diego MurilloD13.6m29.9%Market-value substitute prior
Jens-Lys CajusteM22.1m50.7%Market-value substitute prior
Izan MerinoM22.1m50.3%Market-value substitute prior
ChupeteF25.7m57.6%Market-value substitute prior
Antagonist / tactical summary
Midfield is evenly contested — Pablo Fornals vs Dani Lorenzo will be the pivotal duel. Total antagonist xG — Home: 1.00, Away: 0.48. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Shadow Striker vs CDM + CB — Zone 14 Battle.
Midfield — possession 50.4% / 49.6%, dominance ratio 0.52, key duel: Pablo Fornals vs Dani Lorenzo
Isco xG 0.16Abdessamad Ezzalzouli xG 0.38Antony xG 0.19David Larrubia xG 0.07Adrián Niño xG 0.27Ramón Enríquez xG 0.03

Summary

Antagonist matchup analysis for Real Betis vs Málaga. Most likely scoreline: 2-0. Lambdas derived from 4 home and 5 away individual player duels. Head-to-head: Real Betis 6W-0D-4L vs Málaga over 10 meetings.
Tactical parity between 4-2-3-1 and 3-4-2-1. Match outcome driven primarily by individual player quality. Midfield is evenly contested — Pablo Fornals vs Dani Lorenzo will be the pivotal duel. Total antagonist xG — Home: 1.00, Away: 0.48. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Shadow Striker vs CDM + CB — Zone 14 Battle.

Chelsea vs Man Utd

Premier League · 20261031 · 4-2-3-1 vs 4-2-3-1
Predicted 2-1Winner: ChelseaWinning H 2-1 (9.0%)Winning A 1-2 (7.7%)Confidence 0.71λ home/away 1.66 / 1.42Most-likely P 9.0%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset Tracing
Antagonist + XGBoost match analysis for Chelsea vs Man Utd. 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.810, Away 1.692). Final calibrated Poisson lambdas: Home 1.661, Away 1.422 (most likely score 2-1).
Home Starters 11/11 XGBoost (7 FBref) Away Starters 11/11 XGBoost (8 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.81 / 1.69 Final λ (H/A) 1.66 / 1.42
FBref Team Priors: Chelsea (Gls/90: 3.5, GA/90: 3.5 → E[λ]: 3.5) vs Manchester United (Gls/90: 2.0, GA/90: 2.5 → 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

MetricChelseaMan Utd
League position5.0016.00
Points per game1.511.08
Attack index1.210.96
Defense (concede) index1.071.14
Form multiplier1.020.98
Standing λ multiplier1.121.03

Lambda decomposition (how the goal rates were built)

StageChelsea λMan Utd λ
FBref Squad Prior E[λ] (weight 0.192)3.5003.500
Pre-competitive-floor1.9631.664
Pre-calibration (Micro-duels)1.8101.692
Final λ1.6611.422
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.9%
2-19.0%
1-27.7%
1-07.5%
0-16.4%
Home win43.2%
Draw23.9%
Away win32.9%
Over 2.559.5%
BTTS yes61.5%
Pregame fair line — favorite Chelsea (43.2%), fair total 3.08, fair spread 0.24

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.

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Mike PendersG9000.00-n/a0.06.89.114FBref 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 1.0350, quality 0.669)market_value_eur=24000000
quality_factor=0.6685
boost_factor=1.035
reference_quality=0.505
history_matches=2
history_shrink=0.7143
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Bryan Mbeumo, Bruno Fernandes', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.6917}
-
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.66 (squad xG sum 0.8758, xG scale 1.8965, xA scale 1.8965, team xA 1.28 = 0.77 x lambda)scoreline_reset=true
team_lambda=1.661
squad_xg_sum=0.8758
squad_xa_sum=0.6759
team_expected_assists=1.2818
team_xa_to_xg_ratio=0.7717
shots_faced: 16.1 -> 13.5
expected_saves: 3.94 -> 3.3
high_pressure_saves: 1.35 -> 1.14
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: 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.766
-
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.3609
-
Josh AcheampongD8400.040.005166%00.06.635.531XGBoost 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.0106, quality 0.710)market_value_eur=29000000
quality_factor=0.71
boost_factor=1.0106
reference_quality=0.505
history_matches=24
history_shrink=0.1724
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 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.66 (squad xG sum 0.8758, xG scale 1.8965, xA scale 1.8965, team xA 1.28 = 0.77 x lambda)scoreline_reset=true
team_lambda=1.661
squad_xg_sum=0.8758
squad_xa_sum=0.6759
team_expected_assists=1.2818
team_xa_to_xg_ratio=0.7717
expected_goals: 0.0196 -> 0.0372
expected_assists: 0.0089 -> 0.0169
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 17 by projected rating, fifa_overall 75.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.0365
goal_rate=0.0348
scorer_weight=0.0453
-
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.0168
assist_rate=0.0
provider_weight=0.0143
-
Danny WelbeckF7500.280.1672%10.96.651.732FBref Prior F_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9979, quality 0.439)market_value_eur=3100000
quality_factor=0.4387
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': 'Ayden Heaven, Leny Yoro', '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.7224, 'skill_edge': -0.1709, 'height_edge': -0.018, 'attacker_skill': 0.4387, 'defender_skill': 0.8184, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Ayden Heaven', 'market_value': 32000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7941}, {'player': 'Leny Yoro', 'market_value': 42000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8427}], 'xg_override': 0.1476}
totalShots: 1.2233 -> 0.8837
shotOffTarget: 0.7025 -> 0.5075
onTargetScoringAttempt: 0.5208 -> 0.3762
expectedGoalsOnTarget: 0.3095 -> 0.2236
bigChanceMissed: 0.3011 -> 0.2175
goals: 0.2111 -> 0.1525
expectedGoals: 0.2043 -> 0.1476
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.66 (squad xG sum 0.8758, xG scale 1.8965, xA scale 1.8965, team xA 1.28 = 0.77 x lambda)scoreline_reset=true
team_lambda=1.661
squad_xg_sum=0.8758
squad_xa_sum=0.6759
team_expected_assists=1.2818
team_xa_to_xg_ratio=0.7717
expected_goals: 0.1476 -> 0.2799
expected_assists: 0.0387 -> 0.0734
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 15 by projected rating, fifa_overall 80.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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.2441
goal_rate=0.1525
scorer_weight=0.2868
-
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.0708
assist_rate=0.0791
provider_weight=0.0918
-
Cole PalmerM8710.400.3130%32.47.159.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.0149, quality 0.894)market_value_eur=101000000
quality_factor=0.8936
boost_factor=1.0149
reference_quality=0.505
history_matches=34
history_shrink=0.1282
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0106)blend_weight=0.0106
history_matches=34
season_overlap_discount=1.0
per90_to_match_factor=0.9677
prior_reliability=0.1267
competition=Premier League
totalShots: 2.3789 -> 2.4019
goals: 0.2276 -> 0.236
onTargetScoringAttempt: 0.746 -> 0.7542
fouls: 1.1524 -> 1.1456
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Diogo Dalot', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.535, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 1.0805, 'skill_edge': 0.0508, 'height_edge': 0.004, 'attacker_skill': 0.8936, 'defender_skill': 0.7808, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Diogo Dalot', 'market_value': 28000000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.7808}], 'xg_override': 0.2104}
aerialWon: 0.2108 -> 1.2
totalShots: 2.4019 -> 2.5953
shotOffTarget: 1.6329 -> 1.7643
onTargetScoringAttempt: 0.7542 -> 0.8149
goals: 0.236 -> 0.255
expectedGoals: 0.1947 -> 0.2104
expectedGoalsOnTarget: 0.1608 -> 0.1737
bigChanceMissed: 0.1485 -> 0.1605
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.66 (squad xG sum 0.8758, xG scale 1.8965, xA scale 1.8965, team xA 1.28 = 0.77 x lambda)scoreline_reset=true
team_lambda=1.661
squad_xg_sum=0.8758
squad_xa_sum=0.6759
team_expected_assists=1.2818
team_xa_to_xg_ratio=0.7717
expected_goals: 0.2104 -> 0.399
expected_assists: 0.1542 -> 0.2925
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=1
goal_probability=0.329
goal_rate=0.255
scorer_weight=0.4673
-
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.2536
assist_rate=0.1865
provider_weight=0.3388
-
Geovany QuendaF7700.290.0011448%10.16.716.723FBref 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.0499, quality 0.805)market_value_eur=45000000
quality_factor=0.8047
boost_factor=1.0499
reference_quality=0.505
history_matches=4
history_shrink=0.5556
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0024)blend_weight=0.0024
history_matches=4
season_overlap_discount=1.0
per90_to_match_factor=0.8592
prior_reliability=0.0067
competition=Premier League
totalOffside: 0.2023 -> 0.2226
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Ayden Heaven, Leny Yoro', '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.9027, 'skill_edge': -0.0062, 'height_edge': -0.06, 'attacker_skill': 0.8047, 'defender_skill': 0.8184, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Ayden Heaven', 'market_value': 32000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7941}, {'player': 'Leny Yoro', 'market_value': 42000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8427}], 'xg_override': 0.1525}
totalShots: 1.3809 -> 1.2466
shotOffTarget: 0.8893 -> 0.8028
onTargetScoringAttempt: 0.4916 -> 0.4438
expectedGoals: 0.1689 -> 0.1525
goals: 0.1062 -> 0.0959
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.66 (squad xG sum 0.8758, xG scale 1.8965, xA scale 1.8965, team xA 1.28 = 0.77 x lambda)scoreline_reset=true
team_lambda=1.661
squad_xg_sum=0.8758
squad_xa_sum=0.6759
team_expected_assists=1.2818
team_xa_to_xg_ratio=0.7717
expected_goals: 0.1525 -> 0.2892
expected_assists: 0.0388 -> 0.0736
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 76.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.2511
goal_rate=0.0959
scorer_weight=0.2314
-
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.071
assist_rate=0.0
provider_weight=0.0589
-
Moisés CaicedoM8600.070.03128%10.67.055.328FBref 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.0139, quality 0.895)market_value_eur=104000000
quality_factor=0.8945
boost_factor=1.0139
reference_quality=0.505
history_matches=37
history_shrink=0.119
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0010)blend_weight=0.001
history_matches=37
season_overlap_discount=1.0
per90_to_match_factor=0.9533
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': 'Carlos Baleba', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.426, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 1.0085, 'skill_edge': 0.0098, 'height_edge': -0.004, 'attacker_skill': 0.8978, 'defender_skill': 0.876, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Carlos Baleba', 'market_value': 63000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.876}], 'xg_override': 0.0357}
aerialWon: 0.5487 -> 1.0
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.66 (squad xG sum 0.8758, xG scale 1.8965, xA scale 1.8965, team xA 1.28 = 0.77 x lambda)scoreline_reset=true
team_lambda=1.661
squad_xg_sum=0.8758
squad_xa_sum=0.6759
team_expected_assists=1.2818
team_xa_to_xg_ratio=0.7717
expected_goals: 0.0357 -> 0.0677
expected_assists: 0.0401 -> 0.076
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.0655
goal_rate=0.0418
scorer_weight=0.0725
-
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.0732
assist_rate=0.0549
provider_weight=0.0885
-
Jordan HendersonM8300.110.02459%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=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Carlos Baleba', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.239, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.7334, 'skill_edge': -0.1974, 'height_edge': 0.016, 'attacker_skill': 0.4374, 'defender_skill': 0.876, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Carlos Baleba', 'market_value': 63000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.876}], 'xg_override': 0.0571}
aerialWon: 0.6958 -> 1.1
totalShots: 0.9681 -> 0.71
shotOffTarget: 0.6236 -> 0.4573
onTargetScoringAttempt: 0.3444 -> 0.2526
goals: 0.0994 -> 0.0729
expectedGoals: 0.0779 -> 0.0571
expectedGoalsOnTarget: 0.0772 -> 0.0566
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.66 (squad xG sum 0.8758, xG scale 1.8965, xA scale 1.8965, team xA 1.28 = 0.77 x lambda)scoreline_reset=true
team_lambda=1.661
squad_xg_sum=0.8758
squad_xa_sum=0.6759
team_expected_assists=1.2818
team_xa_to_xg_ratio=0.7717
expected_goals: 0.0571 -> 0.1083
expected_assists: 0.126 -> 0.239
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.1026
goal_rate=0.0729
scorer_weight=0.1243
-
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.2126
assist_rate=0.0997
provider_weight=0.2033
-
Jorrel HatoD7400.000.0164%00.26.751.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
wonTackle: 1.2781 -> 1.2692
wasFouled: 0.1883 -> 0.197
fouls: 0.6436 -> 0.6364
interceptionWon: 0.9822 -> 0.9766
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 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.66 (squad xG sum 0.8758, xG scale 1.8965, xA scale 1.8965, team xA 1.28 = 0.77 x lambda)scoreline_reset=true
team_lambda=1.661
squad_xg_sum=0.8758
squad_xa_sum=0.6759
team_expected_assists=1.2818
team_xa_to_xg_ratio=0.7717
expected_assists: 0.0336 -> 0.0637
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 78.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.0034
goal_rate=0.0
scorer_weight=0.0033
-
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.0617
assist_rate=0.186
provider_weight=0.0796
-
Levi ColwillD8900.000.00147%00.16.839.217FBref 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.0335, quality 0.840)market_value_eur=55000000
quality_factor=0.8399
boost_factor=1.0335
reference_quality=0.505
history_matches=10
history_shrink=0.3333
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0260)blend_weight=0.026
history_matches=10
season_overlap_discount=1.0
per90_to_match_factor=0.9858
prior_reliability=0.12
competition=Premier League
wonTackle: 0.7396 -> 0.7631
fouls: 0.9971 -> 0.9854
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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': '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.66 (squad xG sum 0.8758, xG scale 1.8965, xA scale 1.8965, team xA 1.28 = 0.77 x lambda)scoreline_reset=true
team_lambda=1.661
squad_xg_sum=0.8758
squad_xa_sum=0.6759
team_expected_assists=1.2818
team_xa_to_xg_ratio=0.7717
expected_assists: 0.0479 -> 0.0908
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0019
goal_rate=0.0
scorer_weight=0.0019
-
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.0868
assist_rate=0.0
provider_weight=0.0726
-
Wesley FofanaD7900.030.0282%00.26.842.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.0103, quality 0.739)market_value_eur=33000000
quality_factor=0.7389
boost_factor=1.0103
reference_quality=0.505
history_matches=29
history_shrink=0.1471
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0045)blend_weight=0.0045
history_matches=29
season_overlap_discount=1.0
per90_to_match_factor=0.877
prior_reliability=0.0467
competition=Premier League
fouls: 1.2436 -> 1.238
wasFouled: 1.2027 -> 1.1973
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 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.66 (squad xG sum 0.8758, xG scale 1.8965, xA scale 1.8965, team xA 1.28 = 0.77 x lambda)scoreline_reset=true
team_lambda=1.661
squad_xg_sum=0.8758
squad_xa_sum=0.6759
team_expected_assists=1.2818
team_xa_to_xg_ratio=0.7717
expected_goals: 0.0152 -> 0.0288
expected_assists: 0.0126 -> 0.0239
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0284
goal_rate=0.0
scorer_weight=0.023
-
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.0236
assist_rate=0.0
provider_weight=0.0191
-
Pedro NetoF8410.310.10228%21.07.149.139FBref 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.0109, quality 0.848)market_value_eur=58000000
quality_factor=0.8478
boost_factor=1.0109
reference_quality=0.505
history_matches=42
history_shrink=0.1064
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0041)blend_weight=0.0041
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.9307
prior_reliability=0.06
competition=Premier League
onTargetScoringAttempt: 0.7649 -> 0.7702
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Ayden Heaven, Leny Yoro', '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.9313, 'skill_edge': 0.0133, 'height_edge': -0.06, 'attacker_skill': 0.8478, 'defender_skill': 0.8184, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Ayden Heaven', 'market_value': 32000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7941}, {'player': 'Leny Yoro', 'market_value': 42000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8427}], 'xg_override': 0.1659}
totalShots: 1.9323 -> 1.7996
shotOffTarget: 1.1621 -> 1.0823
onTargetScoringAttempt: 0.7702 -> 0.7173
expectedGoalsOnTarget: 0.3172 -> 0.2954
goals: 0.2154 -> 0.2006
bigChanceMissed: 0.195 -> 0.1816
expectedGoals: 0.1781 -> 0.1659
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.66 (squad xG sum 0.8758, xG scale 1.8965, xA scale 1.8965, team xA 1.28 = 0.77 x lambda)scoreline_reset=true
team_lambda=1.661
squad_xg_sum=0.8758
squad_xa_sum=0.6759
team_expected_assists=1.2818
team_xa_to_xg_ratio=0.7717
expected_goals: 0.1659 -> 0.3146
expected_assists: 0.1417 -> 0.2687
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=1
goal_probability=0.2699
goal_rate=0.2006
scorer_weight=0.3652
-
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.2356
assist_rate=0.2219
provider_weight=0.3359
-
Team totals21.66106.8
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Robert SánchezG5.2m14.7%Market-value substitute prior
Maxence LacroixD15.2m25.1%Market-value substitute prior
Reece JamesD19.5m44.4%Market-value substitute prior
Morgan RogersM23.8m34.4%Market-value substitute prior
Marco PalestraM23.5m56.6%Market-value substitute prior
João PedroF27.1m37.1%Market-value substitute prior

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Bryan MbeumoF8710.380.39ok22.16.956.336FBref 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.0121, quality 0.875)market_value_eur=73000000
quality_factor=0.8747
boost_factor=1.0121
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.9621
prior_reliability=0.1333
competition=Premier League
totalCross: 2.4798 -> 2.5244
totalShots: 2.3954 -> 2.4136
wonTackle: 0.3951 -> 0.4004
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Josh Acheampong, Jorrel Hato', '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.9624, 'skill_edge': 0.0264, 'height_edge': -0.052, 'attacker_skill': 0.8747, 'defender_skill': 0.8159, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Josh Acheampong', 'market_value': 29000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7736}, {'player': 'Jorrel Hato', 'market_value': 47000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8582}], 'xg_override': 0.3415}
totalShots: 2.4136 -> 2.3228
shotOffTarget: 1.4701 -> 1.4148
onTargetScoringAttempt: 0.9302 -> 0.8952
bigChanceMissed: 0.6451 -> 0.6208
expectedGoalsOnTarget: 0.4838 -> 0.4656
goals: 0.3744 -> 0.3603
expectedGoals: 0.3548 -> 0.3415
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.2754, xG scale 1.1149, xA scale 1.1149, team xA 1.01 = 0.71 x lambda)scoreline_reset=true
team_lambda=1.422
squad_xg_sum=1.2754
squad_xa_sum=0.9076
team_expected_assists=1.0119
team_xa_to_xg_ratio=0.7116
expected_goals: 0.3415 -> 0.3808
expected_assists: 0.113 -> 0.126
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 84.0)match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.3167
goal_rate=0.3603
scorer_weight=0.3991
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1184
assist_rate=0.0184
provider_weight=0.1008
-
Mason MountM7700.100.01795%10.36.926.723XGBoost 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.0075, quality 0.660)market_value_eur=23000000
quality_factor=0.6595
boost_factor=1.0075
reference_quality=0.505
history_matches=26
history_shrink=0.1613
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Moisés Caicedo, Jordan Henderson', 'matchup_zone': 'Attacking Mid vs Double Pivot — Tight Space Battle', 'duel_win_rate': 0.243, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 1.0048, 'skill_edge': 0.0012, 'height_edge': 0.002, 'attacker_skill': 0.6704, 'defender_skill': 0.6676, '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': 'Jordan Henderson', 'market_value': 1300000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4374}], 'xg_override': 0.0877}
aerialWon: 0.2664 -> 1.1
totalShots: 1.1627 -> 1.1683
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.2754, xG scale 1.1149, xA scale 1.1149, team xA 1.01 = 0.71 x lambda)scoreline_reset=true
team_lambda=1.422
squad_xg_sum=1.2754
squad_xa_sum=0.9076
team_expected_assists=1.0119
team_xa_to_xg_ratio=0.7116
expected_goals: 0.0877 -> 0.0978
expected_assists: 0.1093 -> 0.1219
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.0932
goal_rate=0.0714
scorer_weight=0.0862
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1148
assist_rate=0.0906
provider_weight=0.1076
-
Bruno FernandesM9000.230.20ok21.97.159.032FBref 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.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.9954
prior_reliability=0.1333
competition=Premier League
totalShots: 2.3028 -> 2.332
onTargetScoringAttempt: 0.6891 -> 0.7011
goals: 0.2898 -> 0.3009
totalCross: 6.2853 -> 6.2916
wasFouled: 0.5979 -> 0.5924
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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.415, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9049, 'skill_edge': -0.0367, 'height_edge': -0.028, 'attacker_skill': 0.732, '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.21}
aerialWon: 0.2447 -> 1.0
totalShots: 2.332 -> 2.1102
shotOffTarget: 1.6136 -> 1.4601
onTargetScoringAttempt: 0.7011 -> 0.6344
goals: 0.3009 -> 0.2723
expectedGoals: 0.2321 -> 0.21
expectedGoalsOnTarget: 0.2223 -> 0.2012
bigChanceMissed: 0.1394 -> 0.1261
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.2754, xG scale 1.1149, xA scale 1.1149, team xA 1.01 = 0.71 x lambda)scoreline_reset=true
team_lambda=1.422
squad_xg_sum=1.2754
squad_xa_sum=0.9076
team_expected_assists=1.0119
team_xa_to_xg_ratio=0.7116
expected_goals: 0.21 -> 0.2341
expected_assists: 0.1996 -> 0.2225
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.2087
goal_rate=0.2723
scorer_weight=0.2902
-
integer_assist_projectionTeam scoreline allocation: 1 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.1995
assist_rate=0.2571
provider_weight=0.2738
-
Amad DialloF7900.140.06111%21.06.944.232XGBoost 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.0111, quality 0.800)market_value_eur=44000000
quality_factor=0.8002
boost_factor=1.0111
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=true
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Josh Acheampong, Jorrel Hato', '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.9132, 'skill_edge': -0.0071, 'height_edge': -0.052, 'attacker_skill': 0.8002, 'defender_skill': 0.8159, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Josh Acheampong', 'market_value': 29000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7736}, {'player': 'Jorrel Hato', 'market_value': 47000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8582}], 'xg_override': 0.1215}
totalShots: 1.7589 -> 1.6063
shotOffTarget: 1.216 -> 1.1105
onTargetScoringAttempt: 0.5429 -> 0.4958
goals: 0.1878 -> 0.1715
bigChanceMissed: 0.1357 -> 0.1239
expectedGoals: 0.1331 -> 0.1215
expectedGoalsOnTarget: 0.1158 -> 0.1057
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.2754, xG scale 1.1149, xA scale 1.1149, team xA 1.01 = 0.71 x lambda)scoreline_reset=true
team_lambda=1.422
squad_xg_sum=1.2754
squad_xa_sum=0.9076
team_expected_assists=1.0119
team_xa_to_xg_ratio=0.7116
expected_goals: 0.1215 -> 0.1355
expected_assists: 0.0818 -> 0.0912
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 80.0)match_squad_rank=11
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1267
goal_rate=0.1715
scorer_weight=0.1694
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0872
assist_rate=0.102
provider_weight=0.1052
-
Carlos BalebaM7400.060.03152%10.56.844.226XGBoost 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.0136, quality 0.859)market_value_eur=63000000
quality_factor=0.8589
boost_factor=1.0136
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': 'Moisés Caicedo', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.414, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9915, 'skill_edge': -0.0098, 'height_edge': 0.004, 'attacker_skill': 0.876, '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.0567}
aerialWon: 1.3513 -> 1.0
totalShots: 0.9028 -> 0.8952
shotOffTarget: 0.6981 -> 0.6922
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.2754, xG scale 1.1149, xA scale 1.1149, team xA 1.01 = 0.71 x lambda)scoreline_reset=true
team_lambda=1.422
squad_xg_sum=1.2754
squad_xa_sum=0.9076
team_expected_assists=1.0119
team_xa_to_xg_ratio=0.7116
expected_goals: 0.0567 -> 0.0632
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: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0612
goal_rate=0.0547
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.043
assist_rate=0.052
provider_weight=0.0501
-
Youri TielemansM7600.060.0445%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
totalShots: 0.8928 -> 0.903
wasFouled: 1.9305 -> 1.9406
totalCross: 1.4576 -> 1.4483
onTargetScoringAttempt: 0.277 -> 0.2837
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': 'Moisés Caicedo', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.384, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9467, 'skill_edge': -0.0322, 'height_edge': -0.004, 'attacker_skill': 0.8262, '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.0569}
totalShots: 0.903 -> 0.8549
shotOffTarget: 0.6158 -> 0.583
onTargetScoringAttempt: 0.2837 -> 0.2686
aerialWon: 1.0115 -> 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.42 (squad xG sum 1.2754, xG scale 1.1149, xA scale 1.1149, team xA 1.01 = 0.71 x lambda)scoreline_reset=true
team_lambda=1.422
squad_xg_sum=1.2754
squad_xa_sum=0.9076
team_expected_assists=1.0119
team_xa_to_xg_ratio=0.7116
expected_goals: 0.0569 -> 0.0634
expected_assists: 0.1138 -> 0.1269
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 85.0)match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0614
goal_rate=0.0569
scorer_weight=0.0634
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1192
assist_rate=0.0858
provider_weight=0.1052
-
Ayden HeavenD8200.050.01258%00.16.820.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.0136, quality 0.732)market_value_eur=32000000
quality_factor=0.732
boost_factor=1.0136
reference_quality=0.505
history_matches=20
history_shrink=0.2
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0087)blend_weight=0.0087
history_matches=20
season_overlap_discount=1.0
per90_to_match_factor=0.9136
prior_reliability=0.0667
competition=Premier League
totalShots: 0.4087 -> 0.421
interceptionWon: 0.8332 -> 0.826
wonTackle: 0.7836 -> 0.7768
wasFouled: 1.1588 -> 1.1646
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 Neto', '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.2754, xG scale 1.1149, xA scale 1.1149, team xA 1.01 = 0.71 x lambda)scoreline_reset=true
team_lambda=1.422
squad_xg_sum=1.2754
squad_xa_sum=0.9076
team_expected_assists=1.0119
team_xa_to_xg_ratio=0.7116
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 75.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.0456
goal_rate=0.0
scorer_weight=0.0374
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0128
assist_rate=0.0
provider_weight=0.0105
-
Harry MaguireD8900.040.04ok10.67.053.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.0000, quality 0.506)market_value_eur=8600000
quality_factor=0.5059
boost_factor=1.0
reference_quality=0.505
history_matches=31
history_shrink=0.1389
-
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.9936
prior_reliability=0.1333
competition=Premier League
totalShots: 0.6157 -> 0.6262
wonTackle: 0.7268 -> 0.7181
totalCross: 0.3638 -> 0.3714
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Danny Welbeck', '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.42 (squad xG sum 1.2754, xG scale 1.1149, xA scale 1.1149, team xA 1.01 = 0.71 x lambda)scoreline_reset=true
team_lambda=1.422
squad_xg_sum=1.2754
squad_xa_sum=0.9076
team_expected_assists=1.0119
team_xa_to_xg_ratio=0.7116
expected_assists: 0.0448 -> 0.0499
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.0435
goal_rate=0.0032
scorer_weight=0.0356
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.0235
provider_weight=0.0399
-
Leny YoroD8400.100.04168%10.26.733.632FBref 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.0102, quality 0.791)market_value_eur=42000000
quality_factor=0.7909
boost_factor=1.0102
reference_quality=0.505
history_matches=37
history_shrink=0.119
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0010)blend_weight=0.001
history_matches=37
season_overlap_discount=1.0
per90_to_match_factor=0.9333
prior_reliability=0.0133
competition=Premier League
interceptionWon: 1.3362 -> 1.3444
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 Neto', '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.2754, xG scale 1.1149, xA scale 1.1149, team xA 1.01 = 0.71 x lambda)scoreline_reset=true
team_lambda=1.422
squad_xg_sum=1.2754
squad_xa_sum=0.9076
team_expected_assists=1.0119
team_xa_to_xg_ratio=0.7116
expected_goals: 0.0928 -> 0.1035
expected_assists: 0.0655 -> 0.073
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 17 by projected rating, fifa_overall 78.0)match_squad_rank=17
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0983
goal_rate=0.0
scorer_weight=0.0828
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0704
assist_rate=0.0
provider_weight=0.0584
-
Diogo DalotD8800.060.0385%10.76.853.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 1.0063, quality 0.702)market_value_eur=28000000
quality_factor=0.7022
boost_factor=1.0063
reference_quality=0.505
history_matches=42
history_shrink=0.1064
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0041)blend_weight=0.0041
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.9806
prior_reliability=0.06
competition=Premier League
totalShots: 0.733 -> 0.7474
totalCross: 2.6469 -> 2.6585
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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.42 (squad xG sum 1.2754, xG scale 1.1149, xA scale 1.1149, team xA 1.01 = 0.71 x lambda)scoreline_reset=true
team_lambda=1.422
squad_xg_sum=1.2754
squad_xa_sum=0.9076
team_expected_assists=1.0119
team_xa_to_xg_ratio=0.7116
expected_goals: 0.0552 -> 0.0615
expected_assists: 0.0546 -> 0.0609
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 15 by projected rating, fifa_overall 78.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.0596
goal_rate=0.0022
scorer_weight=0.0492
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.0164
provider_weight=0.0487
-
Senne LammensG9000.00-n/a0.06.957.733FBref 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.0088, quality 0.770)market_value_eur=38000000
quality_factor=0.7699
boost_factor=1.0088
reference_quality=0.505
history_matches=40
history_shrink=0.1111
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0096)blend_weight=0.0096
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=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': 'Cole Palmer, Pedro Neto', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.8102}
-
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.2754, xG scale 1.1149, xA scale 1.1149, team xA 1.01 = 0.71 x lambda)scoreline_reset=true
team_lambda=1.422
squad_xg_sum=1.2754
squad_xa_sum=0.9076
team_expected_assists=1.0119
team_xa_to_xg_ratio=0.7116
shots_faced: 17.2 -> 15.8
expected_saves: 4.21 -> 3.87
high_pressure_saves: 1.45 -> 1.33
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 82.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.4656
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.9934
-
Team totals11.42146.9
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
André OnanaG4.7m12.3%Market-value substitute prior
Lisandro MartínezD15.1m24.8%Market-value substitute prior
Matthijs de LigtD14.7m35.2%Market-value substitute prior
Kobbie MainooM23.9m53.5%Market-value substitute prior
Andrey SantosM16.6m52.9%Market-value substitute prior
Matheus CunhaF27.1m37.0%Market-value substitute prior
Antagonist / tactical summary
Midfield is evenly contested — Moisés Caicedo vs Carlos Baleba will be the pivotal duel. Total antagonist xG — Home: 0.77, Away: 0.87. Home danger zone: Left Wing vs Right Back — Flank Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Midfield — possession 50.2% / 49.8%, dominance ratio 0.48, key duel: Moisés Caicedo vs Carlos Baleba
Cole Palmer xG 0.21Pedro Neto xG 0.17Danny Welbeck xG 0.15Bruno Fernandes xG 0.21Mason Mount xG 0.09Bryan Mbeumo xG 0.34

Summary

Antagonist matchup analysis for Chelsea vs Man Utd. Most likely scoreline: 2-1. Lambdas derived from 6 home and 6 away individual player duels. Head-to-head: Chelsea 2W-4D-4L vs Man Utd 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 — Moisés Caicedo vs Carlos Baleba will be the pivotal duel. Total antagonist xG — Home: 0.77, Away: 0.87. Home danger zone: Left Wing vs Right Back — Flank Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.

Brentford vs Forest

Premier League · 20261031 · 4-2-3-1 vs 3-4-2-1
Predicted 1-0Winner: BrentfordWinning H 1-0 (10.4%)Winning A 0-1 (6.7%)Confidence 0.75λ home/away 1.69 / 1.09Most-likely P 10.4%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset Tracing
Antagonist + XGBoost match analysis for Brentford vs Forest. Player statistics regressed using position-specific XGBoost models (G, D, M, F) with 2026-2027 FBref priors. Micro-duels resolved across 4-2-3-1 vs 3-4-2-1 (duel lambdas: Home 1.683, Away 1.167). Final calibrated Poisson lambdas: Home 1.692, Away 1.089 (most likely score 1-0).
Home Starters 11/11 XGBoost (10 FBref) Away Starters 11/11 XGBoost (9 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.68 / 1.17 Final λ (H/A) 1.69 / 1.09
FBref Team Priors: Brentford (Gls/90: 2.0, GA/90: 2.0 → E[λ]: 1.379) vs Nottingham Forest (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

MetricBrentfordForest
League position6.0018.00
Points per game1.371.01
Attack index1.100.82
Defense (concede) index0.960.92
Form multiplier1.020.98
Standing λ multiplier1.030.89

Lambda decomposition (how the goal rates were built)

StageBrentford λForest λ
FBref Squad Prior E[λ] (weight 0.192)1.3791.379
Pre-competitive-floor2.0341.182
Pre-calibration (Micro-duels)1.6831.167
Final λ1.6921.089
competition calibration scale 0.865competition 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-111.5%
1-010.4%
2-19.7%
2-08.9%
0-16.7%
Home win51.4%
Draw24.3%
Away win24.3%
Over 2.552.6%
BTTS yes54.2%
Pregame fair line — favorite Brentford (51.4%), fair total 2.78, 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.

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Dango OuattaraF7400.260.1662%21.26.949.739FBref 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.0084, quality 0.758)market_value_eur=36000000
quality_factor=0.7581
boost_factor=1.0084
reference_quality=0.505
history_matches=40
history_shrink=0.1111
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0053)blend_weight=0.0053
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=0.827
prior_reliability=0.0733
competition=Premier League
fouls: 0.7063 -> 0.7145
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Jair, Nikola Milenković', '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.9173, 'skill_edge': 0.0037, 'height_edge': -0.06, 'attacker_skill': 0.7581, 'defender_skill': 0.7498, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Jair', 'market_value': 26000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7498}, {'player': 'Nikola Milenković', 'market_value': 26000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7498}], 'xg_override': 0.2233}
totalShots: 1.8811 -> 1.7255
shotOffTarget: 1.2645 -> 1.1599
onTargetScoringAttempt: 0.6108 -> 0.5603
bigChanceMissed: 0.4027 -> 0.3694
expectedGoalsOnTarget: 0.3502 -> 0.3212
goals: 0.2566 -> 0.2354
expectedGoals: 0.2434 -> 0.2233
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.69 (squad xG sum 1.4531, xG scale 1.1644, xA scale 1.3015, team xA 1.10 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.692
squad_xg_sum=1.4531
squad_xa_sum=0.845
team_expected_assists=1.0998
team_xa_to_xg_ratio=0.65
expected_goals: 0.2233 -> 0.26
expected_assists: 0.0954 -> 0.1242
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.2289
goal_rate=0.2354
scorer_weight=0.2715
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1168
assist_rate=0.0648
provider_weight=0.0994
-
Mathias JensenM7900.060.06ok10.97.056.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 0.9999, quality 0.502)market_value_eur=8300000
quality_factor=0.5023
boost_factor=0.9999
reference_quality=0.505
history_matches=40
history_shrink=0.1111
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0034)blend_weight=0.0034
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=0.8746
prior_reliability=0.0467
competition=Premier League
fouls: 0.917 -> 0.9265
totalCross: 4.651 -> 4.6564
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Jair', 'matchup_zone': 'LW vs CB', 'duel_win_rate': 0.249, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 0.748, 'skill_edge': -0.1114, 'height_edge': -0.06, 'attacker_skill': 0.5023, 'defender_skill': 0.7498, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Jair', 'market_value': 26000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7498}], 'xg_override': 0.052}
aerialWon: 0.1738 -> 1.1
totalShots: 1.0201 -> 0.763
shotOffTarget: 0.6702 -> 0.5013
onTargetScoringAttempt: 0.3481 -> 0.2604
bigChanceMissed: 0.1314 -> 0.0983
goals: 0.0761 -> 0.0569
expectedGoals: 0.0695 -> 0.052
expectedGoalsOnTarget: 0.0412 -> 0.0308
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.69 (squad xG sum 1.4531, xG scale 1.1644, xA scale 1.3015, team xA 1.10 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.692
squad_xg_sum=1.4531
squad_xa_sum=0.845
team_expected_assists=1.0998
team_xa_to_xg_ratio=0.65
expected_goals: 0.052 -> 0.0605
expected_assists: 0.1559 -> 0.2028
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: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0587
goal_rate=0.0569
scorer_weight=0.0634
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1836
assist_rate=0.1054
provider_weight=0.1622
-
Kevin SchadeF7810.350.2166%21.46.850.743FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0102, quality 0.831)market_value_eur=52000000
quality_factor=0.8309
boost_factor=1.0102
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.8719
prior_reliability=0.1333
competition=Premier League
totalShots: 2.1824 -> 2.1947
wonTackle: 0.8686 -> 0.8804
wasFouled: 0.9059 -> 0.9135
onTargetScoringAttempt: 0.7535 -> 0.7587
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Jair, Nikola Milenković', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.182, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 0.9742, 'skill_edge': 0.0365, 'height_edge': -0.054, 'attacker_skill': 0.8309, 'defender_skill': 0.7498, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Jair', 'market_value': 26000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7498}, {'player': 'Nikola Milenković', 'market_value': 26000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7498}], 'xg_override': 0.3031}
totalShots: 2.1947 -> 2.1381
shotOffTarget: 1.4288 -> 1.3919
onTargetScoringAttempt: 0.7587 -> 0.7391
goals: 0.3757 -> 0.366
expectedGoals: 0.3111 -> 0.3031
bigChanceMissed: 0.3105 -> 0.3025
expectedGoalsOnTarget: 0.2101 -> 0.2047
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.69 (squad xG sum 1.4531, xG scale 1.1644, xA scale 1.3015, team xA 1.10 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.692
squad_xg_sum=1.4531
squad_xa_sum=0.845
team_expected_assists=1.0998
team_xa_to_xg_ratio=0.65
expected_goals: 0.3031 -> 0.3529
expected_assists: 0.0466 -> 0.0607
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=1
goal_probability=0.2974
goal_rate=0.366
scorer_weight=0.4158
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0589
assist_rate=0.0116
provider_weight=0.0486
-
Igor ThiagoF8900.390.45ok31.96.755.734FBref 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.0107, quality 0.868)market_value_eur=68000000
quality_factor=0.8677
boost_factor=1.0107
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.9912
prior_reliability=0.1267
competition=Premier League
totalShots: 2.0827 -> 2.0952
fouls: 2.0748 -> 2.0623
wonTackle: 0.6592 -> 0.6539
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Jair, Nikola Milenković', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.231, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 1.0456, 'skill_edge': 0.053, 'height_edge': -0.022, 'attacker_skill': 0.8677, 'defender_skill': 0.7498, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Jair', 'market_value': 26000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7498}, {'player': 'Nikola Milenković', 'market_value': 26000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7498}], 'xg_override': 0.333}
totalShots: 2.0952 -> 2.1907
shotOffTarget: 1.4467 -> 1.5127
onTargetScoringAttempt: 0.6393 -> 0.6685
bigChanceMissed: 0.6065 -> 0.6342
expectedGoals: 0.3185 -> 0.333
goals: 0.3046 -> 0.3185
expectedGoalsOnTarget: 0.2239 -> 0.2341
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.69 (squad xG sum 1.4531, xG scale 1.1644, xA scale 1.3015, team xA 1.10 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.692
squad_xg_sum=1.4531
squad_xa_sum=0.845
team_expected_assists=1.0998
team_xa_to_xg_ratio=0.65
expected_goals: 0.333 -> 0.3879
expected_assists: 0.1027 -> 0.1337
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 82.0)match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.3215
goal_rate=0.3185
scorer_weight=0.3732
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=1
assist_probability=0.1251
assist_rate=0.28
provider_weight=0.1671
-
Vitaly JaneltM8700.060.04ok10.46.952.326FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0055, quality 0.641)market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.0055
reference_quality=0.505
history_matches=32
history_shrink=0.1351
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0117)blend_weight=0.0117
history_matches=32
season_overlap_discount=1.0
per90_to_match_factor=0.9662
prior_reliability=0.1333
competition=Premier League
totalCross: 2.3897 -> 2.4126
interceptionWon: 2.5035 -> 2.5194
fouls: 1.3569 -> 1.3693
wonTackle: 1.2693 -> 1.2771
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Callum Hudson Odoi, Liam Delap, Morgan Gibbs-White', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.69 (squad xG sum 1.4531, xG scale 1.1644, xA scale 1.3015, team xA 1.10 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.692
squad_xg_sum=1.4531
squad_xa_sum=0.845
team_expected_assists=1.0998
team_xa_to_xg_ratio=0.65
expected_goals: 0.0481 -> 0.056
expected_assists: 0.0817 -> 0.1063
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.0545
goal_rate=0.088
scorer_weight=0.07
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1008
assist_rate=0.0724
provider_weight=0.0988
-
Mamadou SangareM8100.070.03124%10.46.939.714FBref 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.0364, quality 0.821)market_value_eur=49000000
quality_factor=0.8206
boost_factor=1.0364
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.9021
prior_reliability=0.12
competition=Premier League
interceptionWon: 1.5675 -> 1.6107
totalShots: 0.7153 -> 0.7528
wasFouled: 0.6396 -> 0.6655
totalCross: 0.3174 -> 0.3379
wonTackle: 1.9883 -> 1.9738
goalAssist: 0.054 -> 0.0674
onTargetScoringAttempt: 0.1837 -> 0.1931
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 Muñoz', '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.69 (squad xG sum 1.4531, xG scale 1.1644, xA scale 1.3015, team xA 1.10 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.692
squad_xg_sum=1.4531
squad_xa_sum=0.845
team_expected_assists=1.0998
team_xa_to_xg_ratio=0.65
expected_goals: 0.0567 -> 0.066
expected_assists: 0.0528 -> 0.0687
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 81.0)match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0639
goal_rate=0.0578
scorer_weight=0.0667
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0664
assist_rate=0.0674
provider_weight=0.0785
-
Keane Lewis-PotterD8000.150.1042%11.06.755.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.0063, quality 0.710)market_value_eur=29000000
quality_factor=0.71
boost_factor=1.0063
reference_quality=0.505
history_matches=44
history_shrink=0.102
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0088)blend_weight=0.0088
history_matches=44
season_overlap_discount=1.0
per90_to_match_factor=0.8917
prior_reliability=0.1333
competition=Premier League
wasFouled: 1.2614 -> 1.2502
totalCross: 3.2727 -> 3.2832
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Xaver Schlager', '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.69 (squad xG sum 1.4531, xG scale 1.1644, xA scale 1.3015, team xA 1.10 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.692
squad_xg_sum=1.4531
squad_xa_sum=0.845
team_expected_assists=1.0998
team_xa_to_xg_ratio=0.65
expected_goals: 0.1253 -> 0.1459
expected_assists: 0.0946 -> 0.1231
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 77.0)match_squad_rank=12
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1358
goal_rate=0.203
scorer_weight=0.1824
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1158
assist_rate=0.0972
provider_weight=0.1253
-
Kristoffer AjerD8900.040.01225%10.26.847.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 1.0071, quality 0.694)market_value_eur=27000000
quality_factor=0.6941
boost_factor=1.0071
reference_quality=0.505
history_matches=35
history_shrink=0.125
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0108)blend_weight=0.0108
history_matches=35
season_overlap_discount=1.0
per90_to_match_factor=0.9842
prior_reliability=0.1333
competition=Premier League
wonTackle: 0.9516 -> 0.9466
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Callum Hudson Odoi', '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.69 (squad xG sum 1.4531, xG scale 1.1644, xA scale 1.3015, team xA 1.10 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.692
squad_xg_sum=1.4531
squad_xa_sum=0.845
team_expected_assists=1.0998
team_xa_to_xg_ratio=0.65
expected_goals: 0.0313 -> 0.0364
expected_assists: 0.0368 -> 0.0479
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.0357
goal_rate=0.1099
scorer_weight=0.0455
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0468
assist_rate=0.0
provider_weight=0.0383
-
Caoimhin KelleherG9000.00-n/a0.06.957.333FBref 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.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=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': 'Liam Delap, Morgan Gibbs-White', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.1665}
-
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.69 (squad xG sum 1.4531, xG scale 1.1644, xA scale 1.3015, team xA 1.10 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.692
squad_xg_sum=1.4531
squad_xa_sum=0.845
team_expected_assists=1.0998
team_xa_to_xg_ratio=0.65
shots_faced: 11.1 -> 10.3
expected_saves: 2.72 -> 2.52
high_pressure_saves: 0.93 -> 0.87
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.0
scorer_weight=0.0
squad_weight_total=1.7932
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.0253
-
Michael KayodeD8400.070.0538%10.36.756.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.0081, quality 0.775)market_value_eur=39000000
quality_factor=0.7754
boost_factor=1.0081
reference_quality=0.505
history_matches=45
history_shrink=0.1
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0078)blend_weight=0.0078
history_matches=45
season_overlap_discount=1.0
per90_to_match_factor=0.931
prior_reliability=0.12
competition=Premier League
totalShots: 0.6011 -> 0.6166
wasFouled: 1.0619 -> 1.0698
wonTackle: 1.2125 -> 1.2071
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'James McAtee', 'matchup_zone': '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.69 (squad xG sum 1.4531, xG scale 1.1644, xA scale 1.3015, team xA 1.10 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.692
squad_xg_sum=1.4531
squad_xa_sum=0.845
team_expected_assists=1.0998
team_xa_to_xg_ratio=0.65
expected_goals: 0.057 -> 0.0664
expected_assists: 0.0735 -> 0.0957
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 15 by projected rating, fifa_overall 81.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.0642
goal_rate=0.0775
scorer_weight=0.0791
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0913
assist_rate=0.0182
provider_weight=0.0766
-
Sepp van den BergD8800.100.0677%10.56.841.229XGBoost D_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0090, quality 0.739)market_value_eur=33000000
quality_factor=0.7389
boost_factor=1.009
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': 'Liam Delap', 'matchup_zone': 'Shape fallback'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.69 (squad xG sum 1.4531, xG scale 1.1644, xA scale 1.3015, team xA 1.10 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.692
squad_xg_sum=1.4531
squad_xa_sum=0.845
team_expected_assists=1.0998
team_xa_to_xg_ratio=0.65
expected_goals: 0.0878 -> 0.1022
expected_assists: 0.0354 -> 0.0461
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.0972
goal_rate=0.0
scorer_weight=0.0818
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0451
assist_rate=0.0217
provider_weight=0.0387
-
Team totals11.69166.8
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
Nathan CollinsD14.7m23.9%Market-value substitute prior
Yehor YarmoliukM23.0m71.5%Market-value substitute prior
Mikkel DamsgaardM18.6m52.2%Market-value substitute prior
Jaidon AnthonyF24.9m54.2%Market-value substitute prior

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Matz SelsG9000.00-n/a0.07.055.030FBref 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.9980, quality 0.446)market_value_eur=3700000
quality_factor=0.4461
boost_factor=0.998
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.9968
prior_reliability=0.1333
competition=Premier League
saves: 2.9184 -> 2.9093
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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, Kevin Schade', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.683}
-
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.09 (squad xG sum 1.3706, xG scale 0.7945, xA scale 0.7945, team xA 0.76 = 0.70 x lambda)scoreline_reset=true
team_lambda=1.089
squad_xg_sum=1.3706
squad_xa_sum=0.9608
team_expected_assists=0.7634
team_xa_to_xg_ratio=0.701
shots_faced: 16.0 -> 16.1
expected_saves: 3.92 -> 3.94
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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.0339
-
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.6878
-
JairD8500.030.0246%10.26.839.024XGBoost 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.0136, quality 0.686)market_value_eur=26000000
quality_factor=0.6858
boost_factor=1.0136
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': 'Mathias Jensen', 'matchup_zone': 'LW 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 1.09 (squad xG sum 1.3706, xG scale 0.7945, xA scale 0.7945, team xA 0.76 = 0.70 x lambda)scoreline_reset=true
team_lambda=1.089
squad_xg_sum=1.3706
squad_xa_sum=0.9608
team_expected_assists=0.7634
team_xa_to_xg_ratio=0.701
expected_goals: 0.0355 -> 0.0282
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 80.0)match_squad_rank=14
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0278
goal_rate=0.0
scorer_weight=0.0226
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0058
assist_rate=0.0
provider_weight=0.0051
-
Nikola MilenkovićD9000.020.01111%00.26.852.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.0058, quality 0.686)market_value_eur=26000000
quality_factor=0.6858
boost_factor=1.0058
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=1.0
prior_reliability=0.1333
competition=Premier League
fouls: 1.1309 -> 1.1389
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': '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 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.09 (squad xG sum 1.3706, xG scale 0.7945, xA scale 0.7945, team xA 0.76 = 0.70 x lambda)scoreline_reset=true
team_lambda=1.089
squad_xg_sum=1.3706
squad_xa_sum=0.9608
team_expected_assists=0.7634
team_xa_to_xg_ratio=0.701
expected_goals: 0.0289 -> 0.023
expected_assists: 0.0346 -> 0.0275
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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0227
goal_rate=0.0
scorer_weight=0.0184
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0271
assist_rate=0.0
provider_weight=0.022
-
MurilloD8800.100.0675%20.76.953.326FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0125, quality 0.821)market_value_eur=49000000
quality_factor=0.8206
boost_factor=1.0125
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.9771
prior_reliability=0.1333
competition=Premier League
totalShots: 1.3873 -> 1.3771
fouls: 1.3427 -> 1.333
interceptionWon: 1.2173 -> 1.209
wonTackle: 1.0305 -> 1.0243
onTargetScoringAttempt: 0.5214 -> 0.5155
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Dango Ouattara', '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 1.09 (squad xG sum 1.3706, xG scale 0.7945, xA scale 0.7945, team xA 0.76 = 0.70 x lambda)scoreline_reset=true
team_lambda=1.089
squad_xg_sum=1.3706
squad_xa_sum=0.9608
team_expected_assists=0.7634
team_xa_to_xg_ratio=0.701
expected_goals: 0.1259 -> 0.1
expected_assists: 0.0533 -> 0.0423
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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0952
goal_rate=0.0034
scorer_weight=0.08
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0414
assist_rate=0.0788
provider_weight=0.0527
-
Daniel MuñozM8200.100.0670%10.76.950.831FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0057, quality 0.660)market_value_eur=23000000
quality_factor=0.6595
boost_factor=1.0057
reference_quality=0.505
history_matches=36
history_shrink=0.122
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0032)blend_weight=0.0032
history_matches=36
season_overlap_discount=1.0
per90_to_match_factor=0.9069
prior_reliability=0.04
competition=Premier League
totalCross: 2.1344 -> 2.1276
totalShots: 1.1667 -> 1.1726
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.449, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 0.999, 'skill_edge': 0.0033, 'height_edge': -0.004, 'attacker_skill': 0.6821, 'defender_skill': 0.6747, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Vitaly Janelt', 'market_value': 21000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.6747}], 'xg_override': 0.1212}
aerialWon: 1.9692 -> 1.1
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.09 (squad xG sum 1.3706, xG scale 0.7945, xA scale 0.7945, team xA 0.76 = 0.70 x lambda)scoreline_reset=true
team_lambda=1.089
squad_xg_sum=1.3706
squad_xa_sum=0.9608
team_expected_assists=0.7634
team_xa_to_xg_ratio=0.701
expected_goals: 0.1212 -> 0.0963
expected_assists: 0.0886 -> 0.0704
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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0918
goal_rate=0.119
scorer_weight=0.0951
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.068
assist_rate=0.0862
provider_weight=0.0692
-
James McAteeM8500.060.02169%10.56.928.933FBref 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.0069, quality 0.629)market_value_eur=19800000
quality_factor=0.6291
boost_factor=1.0069
reference_quality=0.505
history_matches=22
history_shrink=0.1852
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0144)blend_weight=0.0144
history_matches=22
season_overlap_discount=1.0
per90_to_match_factor=0.949
prior_reliability=0.12
competition=Premier League
totalShots: 1.1809 -> 1.1638
fouls: 1.0198 -> 1.0051
interceptionWon: 0.7964 -> 0.7849
wonTackle: 1.5309 -> 1.524
totalCross: 3.3421 -> 3.3471
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 Wingback vs Right Back — Overlapping Run', 'duel_win_rate': 0.342, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.915, 'skill_edge': -0.0619, 'height_edge': 0.004, 'attacker_skill': 0.7044, 'defender_skill': 0.8419, 'attacker_role': 'LWB', 'attacker_mv_price_index': 0.7, 'defender_adjusted_parts': [{'player': 'Michael Kayode', 'market_value': 39000000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.8419}], 'xg_override': 0.0739}
aerialWon: 0.4062 -> 1.1
totalShots: 1.1761 -> 1.0762
shotOffTarget: 0.8535 -> 0.781
onTargetScoringAttempt: 0.3226 -> 0.2952
goals: 0.0877 -> 0.0802
expectedGoals: 0.0808 -> 0.0739
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.09 (squad xG sum 1.3706, xG scale 0.7945, xA scale 0.7945, team xA 0.76 = 0.70 x lambda)scoreline_reset=true
team_lambda=1.089
squad_xg_sum=1.3706
squad_xa_sum=0.9608
team_expected_assists=0.7634
team_xa_to_xg_ratio=0.701
expected_goals: 0.0739 -> 0.0587
expected_assists: 0.1292 -> 0.1027
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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.057
goal_rate=0.0802
scorer_weight=0.0617
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0976
assist_rate=0.0947
provider_weight=0.0829
-
Neco WilliamsD8900.090.0650%11.26.859.238FBref 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.9841
prior_reliability=0.1333
competition=Premier League
wonTackle: 1.2354 -> 1.2545
totalCross: 5.7902 -> 5.7741
interceptionWon: 0.9884 -> 0.9798
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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': '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 1.09 (squad xG sum 1.3706, xG scale 0.7945, xA scale 0.7945, team xA 0.76 = 0.70 x lambda)scoreline_reset=true
team_lambda=1.089
squad_xg_sum=1.3706
squad_xa_sum=0.9608
team_expected_assists=0.7634
team_xa_to_xg_ratio=0.701
expected_goals: 0.1178 -> 0.0936
expected_assists: 0.1415 -> 0.1124
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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0894
goal_rate=0.1849
scorer_weight=0.117
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.1063
assist_rate=0.0316
provider_weight=0.0899
-
Morgan Gibbs-WhiteM8900.210.30ok31.87.161.637FBref 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.0114, quality 0.878)market_value_eur=76000000
quality_factor=0.8781
boost_factor=1.0114
reference_quality=0.505
history_matches=44
history_shrink=0.102
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0088)blend_weight=0.0088
history_matches=44
season_overlap_discount=1.0
per90_to_match_factor=0.9899
prior_reliability=0.1333
competition=Premier League
totalCross: 4.0121 -> 3.9941
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.493, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 1.063, 'skill_edge': 0.0949, 'height_edge': -0.052, 'attacker_skill': 0.8855, 'defender_skill': 0.6747, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Vitaly Janelt', 'market_value': 21000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.6747}], 'xg_override': 0.2622}
aerialWon: 0.47 -> 0.8
totalShots: 2.2961 -> 2.4408
shotOffTarget: 1.4796 -> 1.5728
onTargetScoringAttempt: 0.8164 -> 0.8678
bigChanceMissed: 0.4621 -> 0.4912
expectedGoals: 0.2467 -> 0.2622
goals: 0.2295 -> 0.244
expectedGoalsOnTarget: 0.216 -> 0.2296
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.09 (squad xG sum 1.3706, xG scale 0.7945, xA scale 0.7945, team xA 0.76 = 0.70 x lambda)scoreline_reset=true
team_lambda=1.089
squad_xg_sum=1.3706
squad_xa_sum=0.9608
team_expected_assists=0.7634
team_xa_to_xg_ratio=0.701
expected_goals: 0.2622 -> 0.2083
expected_assists: 0.1998 -> 0.1588
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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.188
goal_rate=0.244
scorer_weight=0.1962
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.1468
assist_rate=0.1528
provider_weight=0.1289
-
Callum Hudson OdoiF7300.080.04132%10.46.933.031XGBoost 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.0070, quality 0.686)market_value_eur=26000000
quality_factor=0.6858
boost_factor=1.007
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': 'Vitaly Janelt, Kristoffer Ajer', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle', 'duel_win_rate': 0.204, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 0.9033, 'skill_edge': -0.0138, 'height_edge': -0.052, 'attacker_skill': 0.6858, 'defender_skill': 0.7164, 'attacker_role': 'SS', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Vitaly Janelt', 'market_value': 21000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.6747}, {'player': 'Kristoffer Ajer', 'market_value': 27000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7581}], 'xg_override': 0.106}
totalShots: 1.2923 -> 1.1673
shotOffTarget: 0.8943 -> 0.8078
onTargetScoringAttempt: 0.398 -> 0.3595
goals: 0.1273 -> 0.115
expectedGoals: 0.1173 -> 0.106
expectedGoalsOnTarget: 0.0947 -> 0.0855
bigChanceMissed: 0.0856 -> 0.0773
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.09 (squad xG sum 1.3706, xG scale 0.7945, xA scale 0.7945, team xA 0.76 = 0.70 x lambda)scoreline_reset=true
team_lambda=1.089
squad_xg_sum=1.3706
squad_xa_sum=0.9608
team_expected_assists=0.7634
team_xa_to_xg_ratio=0.701
expected_goals: 0.106 -> 0.0842
expected_assists: 0.0874 -> 0.0694
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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0808
goal_rate=0.115
scorer_weight=0.0891
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.067
assist_rate=0.305
provider_weight=0.0868
-
Liam DelapF8200.270.1850%31.36.851.132FBref 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.0097, quality 0.764)market_value_eur=37000000
quality_factor=0.7641
boost_factor=1.0097
reference_quality=0.505
history_matches=35
history_shrink=0.125
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0016)blend_weight=0.0016
history_matches=35
season_overlap_discount=1.0
per90_to_match_factor=0.9063
prior_reliability=0.02
competition=Premier League
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Vitaly Janelt, Kristoffer Ajer', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle', 'duel_win_rate': 0.275, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 1.008, 'skill_edge': 0.0215, 'height_edge': -0.016, 'attacker_skill': 0.7641, 'defender_skill': 0.7164, 'attacker_role': 'SS', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Vitaly Janelt', 'market_value': 21000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.6747}, {'player': 'Kristoffer Ajer', 'market_value': 27000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7581}], 'xg_override': 0.3392}
totalShots: 2.3631 -> 2.382
shotOffTarget: 1.545 -> 1.5574
onTargetScoringAttempt: 0.8152 -> 0.8217
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.09 (squad xG sum 1.3706, xG scale 0.7945, xA scale 0.7945, team xA 0.76 = 0.70 x lambda)scoreline_reset=true
team_lambda=1.089
squad_xg_sum=1.3706
squad_xa_sum=0.9608
team_expected_assists=0.7634
team_xa_to_xg_ratio=0.701
expected_goals: 0.3392 -> 0.2696
expected_assists: 0.062 -> 0.0493
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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.2363
goal_rate=0.2886
scorer_weight=0.2346
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0481
assist_rate=0.0
provider_weight=0.0394
-
Xaver SchlagerM8600.040.0273%10.86.940.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.0075, quality 0.570)market_value_eur=14200000
quality_factor=0.5704
boost_factor=1.0075
reference_quality=0.505
history_matches=8
history_shrink=0.3846
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0200)blend_weight=0.02
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=0.957
prior_reliability=0.08
competition=Premier League
interceptionWon: 1.5628 -> 1.5315
fouls: 1.2287 -> 1.2041
wonTackle: 2.4026 -> 2.3864
totalShots: 1.016 -> 1.0278
totalCross: 0.4449 -> 0.452
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 Wingback vs Left Back — Overlapping Run', 'duel_win_rate': 0.347, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 0.9215, 'skill_edge': -0.0694, 'height_edge': 0.016, 'attacker_skill': 0.6339, 'defender_skill': 0.7881, 'attacker_role': 'RWB', 'attacker_mv_price_index': 0.7, 'defender_adjusted_parts': [{'player': 'Keane Lewis-Potter', 'market_value': 29000000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.7881}], 'xg_override': 0.0536}
aerialWon: 0.6782 -> 0.9
totalShots: 1.0278 -> 0.9471
shotOffTarget: 0.798 -> 0.7354
onTargetScoringAttempt: 0.2136 -> 0.1968
bigChanceMissed: 0.1161 -> 0.107
goals: 0.0701 -> 0.0646
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.09 (squad xG sum 1.3706, xG scale 0.7945, xA scale 0.7945, team xA 0.76 = 0.70 x lambda)scoreline_reset=true
team_lambda=1.089
squad_xg_sum=1.3706
squad_xa_sum=0.9608
team_expected_assists=0.7634
team_xa_to_xg_ratio=0.701
expected_goals: 0.0536 -> 0.0426
expected_assists: 0.0789 -> 0.0627
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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0417
goal_rate=0.0646
scorer_weight=0.0471
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0608
assist_rate=0.0647
provider_weight=0.0558
-
Team totals01.09166.9
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
John VictorG4.5m11.3%Market-value substitute prior
Ousmane DiomandeD15.0m36.4%Market-value substitute prior
Ola AinaD14.2m23.0%Market-value substitute prior
Omari HutchinsonM23.0m54.6%Market-value substitute prior
Ibrahim SangaréM22.8m32.3%Market-value substitute prior
Dan NdoyeF26.5m35.9%Market-value substitute prior
Antagonist / tactical summary
Midfield is evenly contested — Mamadou Sangare vs Morgan Gibbs-White will be the pivotal duel. Total antagonist xG — Home: 0.91, Away: 0.96. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Shadow Striker vs CDM + CB — Zone 14 Battle.
Midfield — possession 50.2% / 49.8%, dominance ratio 0.48, key duel: Mamadou Sangare vs Morgan Gibbs-White
Mathias Jensen xG 0.05Igor Thiago xG 0.33Dango Ouattara xG 0.22Callum Hudson Odoi xG 0.11Liam Delap xG 0.34James McAtee xG 0.07

Summary

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

Coventry vs Sunderland

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

Standing & form context

MetricCoventrySunderland
League position19.0020.00
Points per game1.010.94
Attack index0.820.82
Defense (concede) index1.101.14
Form multiplier1.001.00
Standing λ multiplier0.960.97

Lambda decomposition (how the goal rates were built)

StageCoventry λSunderland λ
Pre-competitive-floor1.2261.318
Pre-calibration (Micro-duels)1.2001.347
Final λ1.3891.392
competition calibration scale 1.093competition 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.5%
1-08.5%
1-28.3%
2-18.3%
Home win37.1%
Draw25.6%
Away win37.3%
Over 2.552.6%
BTTS yes56.5%
Pregame fair line — favorite Sunderland (37.3%), fair total 2.78, fair spread -0.00

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.

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Sidiki CherifF7310.340.03909%20.56.724.511XGBoost 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.0226, quality 0.641)market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.0226
reference_quality=0.505
history_matches=4
history_shrink=0.5556
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Trai Hume, Reinildo Mandava', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.26, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.0875, 'skill_edge': 0.0275, 'height_edge': 0.032, 'attacker_skill': 0.6408, 'defender_skill': 0.5797, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Trai Hume', 'market_value': 20000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6914}, {'player': 'Reinildo Mandava', 'market_value': 4099999, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4679}], 'xg_override': 0.2302}
totalShots: 1.6308 -> 1.7735
shotOffTarget: 1.0258 -> 1.1156
onTargetScoringAttempt: 0.605 -> 0.6579
bigChanceMissed: 0.4289 -> 0.4664
goals: 0.231 -> 0.2512
expectedGoals: 0.2117 -> 0.2302
expectedGoalsOnTarget: 0.1057 -> 0.1149
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.39 (squad xG sum 0.9518, xG scale 1.4594, xA scale 1.5808, team xA 0.90 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.389
squad_xg_sum=0.9518
squad_xa_sum=0.5711
team_expected_assists=0.9029
team_xa_to_xg_ratio=0.65
expected_goals: 0.2302 -> 0.336
expected_assists: 0.0311 -> 0.0492
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 15 by projected rating, fifa_overall 72.0)match_squad_rank=15
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_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.2854
goal_rate=0.2512
scorer_weight=0.3612
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.048
assist_rate=0.0
provider_weight=0.0394
-
Brandon Thomas-AsanteF7900.250.05435%20.96.841.616FBref 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.0104, quality 0.595)market_value_eur=16500000
quality_factor=0.5953
boost_factor=1.0104
reference_quality=0.505
history_matches=8
history_shrink=0.3846
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0183)blend_weight=0.0183
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=0.8749
prior_reliability=0.0733
competition=Premier League
totalShots: 1.7924 -> 1.7596
totalCross: 0.5064 -> 0.5263
interceptionWon: 2.2053 -> 2.2232
wasFouled: 3.091 -> 3.0781
onTargetScoringAttempt: 0.5777 -> 0.5671
fouls: 0.504 -> 0.4948
goalAssist: 0.4284 -> 0.4205
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Trai Hume, Reinildo Mandava', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.207, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.0103, 'skill_edge': 0.007, 'height_edge': 0.0, 'attacker_skill': 0.5953, 'defender_skill': 0.5797, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Trai Hume', 'market_value': 20000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6914}, {'player': 'Reinildo Mandava', 'market_value': 4099999, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4679}], 'xg_override': 0.1695}
totalShots: 1.7818 -> 1.8002
shotOffTarget: 1.2147 -> 1.2272
onTargetScoringAttempt: 0.5671 -> 0.5729
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.39 (squad xG sum 0.9518, xG scale 1.4594, xA scale 1.5808, team xA 0.90 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.389
squad_xg_sum=0.9518
squad_xa_sum=0.5711
team_expected_assists=0.9029
team_xa_to_xg_ratio=0.65
expected_goals: 0.1695 -> 0.2474
expected_assists: 0.0289 -> 0.0457
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 73.0)match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.2192
goal_rate=0.1908
scorer_weight=0.2714
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0447
assist_rate=0.4205
provider_weight=0.0571
-
Jack RudoniM8100.240.1558%20.86.945.917XGBoost 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.0157, quality 0.641)market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.0157
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': 'Nordi Mukiele', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.466, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9791, 'skill_edge': -0.0142, 'height_edge': 0.0, 'attacker_skill': 0.6408, 'defender_skill': 0.6723, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Nordi Mukiele', 'market_value': 17100000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.6723}], 'xg_override': 0.1672}
aerialWon: 1.0917 -> 1.2
totalShots: 1.7751 -> 1.738
shotOffTarget: 1.1407 -> 1.1169
onTargetScoringAttempt: 0.6343 -> 0.621
expectedGoalsOnTarget: 0.3367 -> 0.3297
bigChanceMissed: 0.2666 -> 0.261
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.39 (squad xG sum 0.9518, xG scale 1.4594, xA scale 1.5808, team xA 0.90 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.389
squad_xg_sum=0.9518
squad_xa_sum=0.5711
team_expected_assists=0.9029
team_xa_to_xg_ratio=0.65
expected_goals: 0.1672 -> 0.244
expected_assists: 0.1506 -> 0.238
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 75.0)match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_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.2165
goal_rate=0.1982
scorer_weight=0.2788
-
integer_assist_projectionTeam scoreline allocation: 1 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.2118
assist_rate=0.0972
provider_weight=0.1904
-
Carl RushworthG9000.00-n/a0.06.936.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.0157, quality 0.641)market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.0157
reference_quality=0.505
history_matches=8
history_shrink=0.3846
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0333)blend_weight=0.0333
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League
saves: 2.808 -> 2.7644
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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.3471}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.39 (squad xG sum 0.9518, xG scale 1.4594, xA scale 1.5808, team xA 0.90 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.389
squad_xg_sum=0.9518
squad_xa_sum=0.5711
team_expected_assists=0.9029
team_xa_to_xg_ratio=0.65
shots_faced: 12.8 -> 13.2
expected_saves: 3.13 -> 3.23
high_pressure_saves: 1.08 -> 1.11
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 76.0)match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.5573
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.8636
-
Milan van EwijkD9000.000.00433%00.16.737.916FBref 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.0193, quality 0.660)market_value_eur=23000000
quality_factor=0.6595
boost_factor=1.0193
reference_quality=0.505
history_matches=7
history_shrink=0.4167
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0361)blend_weight=0.0361
history_matches=7
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League
wasFouled: 0.8553 -> 0.8244
wonTackle: 1.1908 -> 1.1659
interceptionWon: 1.1694 -> 1.1452
fouls: 0.5672 -> 0.5828
totalShots: 0.3901 -> 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': 'Brian Brobbey', 'matchup_zone': 'Shape fallback'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.39 (squad xG sum 0.9518, xG scale 1.4594, xA scale 1.5808, team xA 0.90 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.389
squad_xg_sum=0.9518
squad_xa_sum=0.5711
team_expected_assists=0.9029
team_xa_to_xg_ratio=0.65
expected_assists: 0.0583 -> 0.0922
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: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0044
goal_rate=0.0
scorer_weight=0.0042
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0881
assist_rate=0.0
provider_weight=0.0738
-
Stephen MfuniD9000.150.02603%10.36.715.514XGBoost 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.9873, quality 0.437)market_value_eur=2700000
quality_factor=0.4374
boost_factor=0.9873
reference_quality=0.505
history_matches=3
history_shrink=0.625
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': '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 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.39 (squad xG sum 0.9518, xG scale 1.4594, xA scale 1.5808, team xA 0.90 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.389
squad_xg_sum=0.9518
squad_xa_sum=0.5711
team_expected_assists=0.9029
team_xa_to_xg_ratio=0.65
expected_goals: 0.1026 -> 0.1497
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 69.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.139
goal_rate=0.3262
scorer_weight=0.1871
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0096
assist_rate=0.0
provider_weight=0.0086
-
Ethan PinnockD8800.030.01441%10.16.716.334XGBoost 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.437)market_value_eur=2800000
quality_factor=0.4374
boost_factor=0.9937
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': '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 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.39 (squad xG sum 0.9518, xG scale 1.4594, xA scale 1.5808, team xA 0.90 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.389
squad_xg_sum=0.9518
squad_xa_sum=0.5711
team_expected_assists=0.9029
team_xa_to_xg_ratio=0.65
expected_goals: 0.0203 -> 0.0296
expected_assists: 0.0143 -> 0.0226
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 75.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.0292
goal_rate=0.0
scorer_weight=0.0237
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0223
assist_rate=0.0
provider_weight=0.0181
-
Jay DaSilvaD9000.080.0566%00.36.744.017FBref 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.0042, quality 0.541)market_value_eur=11600000
quality_factor=0.5411
boost_factor=1.0042
reference_quality=0.505
history_matches=8
history_shrink=0.3846
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0333)blend_weight=0.0333
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=0.9959
prior_reliability=0.1333
competition=Premier League
interceptionWon: 0.8395 -> 0.8281
onTargetScoringAttempt: 0.2053 -> 0.2151
goalAssist: 0.1496 -> 0.1446
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Granit Xhaka', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.39 (squad xG sum 0.9518, xG scale 1.4594, xA scale 1.5808, team xA 0.90 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.389
squad_xg_sum=0.9518
squad_xa_sum=0.5711
team_expected_assists=0.9029
team_xa_to_xg_ratio=0.65
expected_goals: 0.0549 -> 0.0801
expected_assists: 0.087 -> 0.1375
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 73.0)match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.077
goal_rate=0.1229
scorer_weight=0.1001
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1285
assist_rate=0.1446
provider_weight=0.1719
-
Matt GrimesM8800.050.01359%00.46.939.014FBref 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.9953, quality 0.465)market_value_eur=5200000
quality_factor=0.4646
boost_factor=0.9953
reference_quality=0.505
history_matches=8
history_shrink=0.3846
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0333)blend_weight=0.0333
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=0.9761
prior_reliability=0.1333
competition=Premier League
totalCross: 2.0676 -> 2.1613
fouls: 0.7791 -> 0.7531
wonTackle: 0.6086 -> 0.5883
wasFouled: 0.4719 -> 0.4887
interceptionWon: 0.3916 -> 0.3785
onTargetScoringAttempt: 0.1526 -> 0.1475
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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.284, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.8004, 'skill_edge': -0.1558, 'height_edge': 0.02, 'attacker_skill': 0.4759, '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.036}
aerialWon: 0.7309 -> 1.0
totalShots: 0.5891 -> 0.4715
shotOffTarget: 0.44 -> 0.3522
onTargetScoringAttempt: 0.1475 -> 0.1181
goals: 0.0549 -> 0.0439
expectedGoals: 0.045 -> 0.036
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.39 (squad xG sum 0.9518, xG scale 1.4594, xA scale 1.5808, team xA 0.90 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.389
squad_xg_sum=0.9518
squad_xa_sum=0.5711
team_expected_assists=0.9029
team_xa_to_xg_ratio=0.65
expected_goals: 0.036 -> 0.0525
expected_assists: 0.068 -> 0.1075
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 76.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.0511
goal_rate=0.0439
scorer_weight=0.0573
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1019
assist_rate=0.0615
provider_weight=0.1016
-
Caleb YirenkyiM7500.050.002008%10.16.737.114FBref 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.0178, quality 0.660)market_value_eur=23000000
quality_factor=0.6595
boost_factor=1.0178
reference_quality=0.505
history_matches=8
history_shrink=0.3846
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0250)blend_weight=0.025
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=0.8281
prior_reliability=0.1
competition=Premier League
interceptionWon: 1.0472 -> 1.021
wonTackle: 0.3542 -> 0.3453
fouls: 1.9683 -> 1.9605
totalCross: 0.2785 -> 0.2853
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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.399, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9686, 'skill_edge': -0.0573, 'height_edge': 0.036, '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.0355}
aerialWon: 0.8202 -> 1.1
totalShots: 0.5422 -> 0.5252
shotOffTarget: 0.3957 -> 0.3833
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.39 (squad xG sum 0.9518, xG scale 1.4594, xA scale 1.5808, team xA 0.90 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.389
squad_xg_sum=0.9518
squad_xa_sum=0.5711
team_expected_assists=0.9029
team_xa_to_xg_ratio=0.65
expected_goals: 0.0355 -> 0.0518
expected_assists: 0.0364 -> 0.0575
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 73.0)match_squad_rank=12
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0505
goal_rate=0.0447
scorer_weight=0.0574
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0559
assist_rate=0.059
provider_weight=0.0719
-
Tatsuhiro SakamotoF8100.140.011167%10.26.816.425FBref 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.9914, quality 0.454)market_value_eur=4300000
quality_factor=0.4535
boost_factor=0.9914
reference_quality=0.505
history_matches=4
history_shrink=0.5556
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0096)blend_weight=0.0096
history_matches=4
season_overlap_discount=1.0
per90_to_match_factor=0.9018
prior_reliability=0.0267
competition=Premier League
totalCross: 1.7243 -> 1.7729
wonTackle: 1.3155 -> 1.3463
totalShots: 1.1772 -> 1.1903
wasFouled: 1.0648 -> 1.0545
fouls: 0.8867 -> 0.8782
interceptionWon: 0.5359 -> 0.5307
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Trai Hume, Reinildo Mandava', '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.8578, 'skill_edge': -0.0567, 'height_edge': -0.04, 'attacker_skill': 0.4535, 'defender_skill': 0.5797, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Trai Hume', 'market_value': 20000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6914}, {'player': 'Reinildo Mandava', 'market_value': 4099999, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4679}], 'xg_override': 0.096}
totalShots: 1.1903 -> 1.021
shotOffTarget: 0.7915 -> 0.6789
onTargetScoringAttempt: 0.3819 -> 0.3276
goals: 0.1303 -> 0.1118
expectedGoals: 0.1119 -> 0.096
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.39 (squad xG sum 0.9518, xG scale 1.4594, xA scale 1.5808, team xA 0.90 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.389
squad_xg_sum=0.9518
squad_xa_sum=0.5711
team_expected_assists=0.9029
team_xa_to_xg_ratio=0.65
expected_goals: 0.096 -> 0.1401
expected_assists: 0.0395 -> 0.0624
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: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1307
goal_rate=0.1118
scorer_weight=0.1553
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0605
assist_rate=0.0
provider_weight=0.0499
-
Team totals11.39106.8
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Daniel BentleyG4.4m10.9%Market-value substitute prior
Bobby ThomasD14.4m23.3%Market-value substitute prior
Aurèle AmendaD14.2m22.9%Market-value substitute prior
Victor TorpM23.9m70.3%Market-value substitute prior
Josh EcclesM22.3m51.3%Market-value substitute prior
Loum TchaounaF26.0m34.9%Market-value substitute prior

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Trai HumeD8700.040.05ok10.96.854.136FBref 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.0038, quality 0.631)market_value_eur=20000000
quality_factor=0.6311
boost_factor=1.0038
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.9672
prior_reliability=0.1267
competition=Premier League
wonTackle: 1.0986 -> 1.1063
wasFouled: 0.6325 -> 0.6273
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Sidiki Cherif', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.39 (squad xG sum 1.3995, xG scale 0.9947, xA scale 1.1255, team xA 0.90 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.392
squad_xg_sum=1.3995
squad_xa_sum=0.8039
team_expected_assists=0.9048
team_xa_to_xg_ratio=0.65
expected_assists: 0.069 -> 0.0777
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 78.0)match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0394
goal_rate=0.0703
scorer_weight=0.0503
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0748
assist_rate=0.001
provider_weight=0.0622
-
Luke O'NienD8700.050.01515%10.26.822.938FBref 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.9949, quality 0.437)market_value_eur=660000
quality_factor=0.4374
boost_factor=0.9949
reference_quality=0.505
history_matches=15
history_shrink=0.25
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0076)blend_weight=0.0076
history_matches=15
season_overlap_discount=1.0
per90_to_match_factor=0.9627
prior_reliability=0.0467
competition=Premier League
fouls: 0.7124 -> 0.7279
totalCross: 1.4 -> 1.4102
interceptionWon: 0.8092 -> 0.8031
wasFouled: 0.7525 -> 0.7468
wonTackle: 0.7108 -> 0.7054
totalShots: 0.6552 -> 0.6602
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Tatsuhiro Sakamoto', 'matchup_zone': 'Shape fallback'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.39 (squad xG sum 1.3995, xG scale 0.9947, xA scale 1.1255, team xA 0.90 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.392
squad_xg_sum=1.3995
squad_xa_sum=0.8039
team_expected_assists=0.9048
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 73.0)match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0493
goal_rate=0.0
scorer_weight=0.0405
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0188
assist_rate=0.1575
provider_weight=0.0238
-
Nordi MukieleD8300.090.0742%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
totalShots: 1.2723 -> 1.266
wonTackle: 1.23 -> 1.2239
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Jack Rudoni', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.39 (squad xG sum 1.3995, xG scale 0.9947, xA scale 1.1255, team xA 0.90 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.392
squad_xg_sum=1.3995
squad_xa_sum=0.8039
team_expected_assists=0.9048
team_xa_to_xg_ratio=0.65
expected_assists: 0.0652 -> 0.0734
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 81.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.089
goal_rate=0.0506
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.0708
assist_rate=0.0255
provider_weight=0.0587
-
Reinildo MandavaD8600.000.0049%00.06.748.526FBref 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.451)market_value_eur=4099999
quality_factor=0.4511
boost_factor=0.9978
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.9611
prior_reliability=0.1333
competition=Premier League
fouls: 1.2211 -> 1.2349
totalCross: 0.6665 -> 0.6756
interceptionWon: 1.1924 -> 1.2009
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Sidiki Cherif', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.39 (squad xG sum 1.3995, xG scale 0.9947, xA scale 1.1255, team xA 0.90 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.392
squad_xg_sum=1.3995
squad_xa_sum=0.8039
team_expected_assists=0.9048
team_xa_to_xg_ratio=0.65
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 80.0)match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0013
goal_rate=0.0
scorer_weight=0.0013
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0346
assist_rate=0.013
provider_weight=0.0282
-
Granit XhakaM9000.050.02130%10.57.259.030FBref 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=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.996
prior_reliability=0.1333
competition=Premier League
wasFouled: 1.7737 -> 1.7895
totalShots: 0.681 -> 0.6747
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Jay DaSilva', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.499, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0278, 'skill_edge': -0.0411, 'height_edge': 0.06, 'attacker_skill': 0.5047, 'defender_skill': 0.5961, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Jay DaSilva', 'market_value': 11600000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.5961}], 'xg_override': 0.0487}
aerialWon: 0.7194 -> 1.2
totalShots: 0.679 -> 0.6979
shotOffTarget: 0.4729 -> 0.486
onTargetScoringAttempt: 0.2061 -> 0.2118
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.39 (squad xG sum 1.3995, xG scale 0.9947, xA scale 1.1255, team xA 0.90 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.392
squad_xg_sum=1.3995
squad_xa_sum=0.8039
team_expected_assists=0.9048
team_xa_to_xg_ratio=0.65
expected_assists: 0.1624 -> 0.1828
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.0472
goal_rate=0.0464
scorer_weight=0.0473
-
integer_assist_projectionTeam scoreline allocation: 1 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.1671
assist_rate=0.099
provider_weight=0.1462
-
Noah SadikiM8600.080.0556%10.66.854.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.0093, quality 0.791)market_value_eur=42000000
quality_factor=0.7909
boost_factor=1.0093
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.9541
prior_reliability=0.1333
competition=Premier League
wonTackle: 0.6898 -> 0.6968
wasFouled: 1.1767 -> 1.1836
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Matt Grimes', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.556, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.1996, 'skill_edge': 0.1558, 'height_edge': -0.02, 'attacker_skill': 0.8221, 'defender_skill': 0.4759, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Matt Grimes', 'market_value': 5200000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4759}], 'xg_override': 0.0819}
aerialWon: 0.5138 -> 0.9
totalShots: 0.8317 -> 0.9977
shotOffTarget: 0.4966 -> 0.5957
onTargetScoringAttempt: 0.3351 -> 0.402
bigChanceMissed: 0.1504 -> 0.1804
goals: 0.0765 -> 0.0918
expectedGoals: 0.0683 -> 0.0819
expectedGoalsOnTarget: 0.0301 -> 0.0361
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.39 (squad xG sum 1.3995, xG scale 0.9947, xA scale 1.1255, team xA 0.90 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.392
squad_xg_sum=1.3995
squad_xa_sum=0.8039
team_expected_assists=0.9048
team_xa_to_xg_ratio=0.65
expected_assists: 0.0675 -> 0.076
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.0783
goal_rate=0.0918
scorer_weight=0.0876
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0732
assist_rate=0.1112
provider_weight=0.095
-
Chris RiggM7300.110.02539%10.36.725.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.0091, quality 0.669)market_value_eur=24000000
quality_factor=0.6685
boost_factor=1.0091
reference_quality=0.505
history_matches=22
history_shrink=0.1852
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0016)blend_weight=0.0016
history_matches=22
season_overlap_discount=1.0
per90_to_match_factor=0.8064
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': 'Matt Grimes', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.519, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.1451, 'skill_edge': 0.1027, 'height_edge': -0.004, 'attacker_skill': 0.704, 'defender_skill': 0.4759, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Matt Grimes', 'market_value': 5200000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4759}], 'xg_override': 0.1145}
aerialWon: 0.28 -> 1.0
totalShots: 1.1327 -> 1.2971
shotOffTarget: 0.7085 -> 0.8113
onTargetScoringAttempt: 0.4242 -> 0.4858
expectedGoals: 0.1 -> 0.1145
expectedGoalsOnTarget: 0.0985 -> 0.1128
goals: 0.0935 -> 0.1071
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.39 (squad xG sum 1.3995, xG scale 0.9947, xA scale 1.1255, team xA 0.90 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.392
squad_xg_sum=1.3995
squad_xa_sum=0.8039
team_expected_assists=0.9048
team_xa_to_xg_ratio=0.65
expected_assists: 0.059 -> 0.0664
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 74.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.1077
goal_rate=0.1071
scorer_weight=0.1088
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0642
assist_rate=0.0749
provider_weight=0.0761
-
Enzo Le FéeM8700.160.15ok21.16.957.333FBref 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.0060, quality 0.702)market_value_eur=28000000
quality_factor=0.7022
boost_factor=1.006
reference_quality=0.505
history_matches=44
history_shrink=0.102
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0084)blend_weight=0.0084
history_matches=44
season_overlap_discount=1.0
per90_to_match_factor=0.9634
prior_reliability=0.1267
competition=Premier League
totalCross: 3.0227 -> 3.0143
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Matt Grimes, Caleb Yirenkyi', 'matchup_zone': 'Attacking Mid vs Double Pivot — Tight Space Battle', 'duel_win_rate': 0.27, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.0438, 'skill_edge': 0.0578, 'height_edge': -0.028, 'attacker_skill': 0.7136, 'defender_skill': 0.5852, 'attacker_role': 'CAM', 'attacker_mv_price_index': 0.95, 'defender_adjusted_parts': [{'player': 'Matt Grimes', 'market_value': 5200000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4759}, {'player': 'Caleb Yirenkyi', 'market_value': 23000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.6946}], 'xg_override': 0.1606}
aerialWon: 0.4435 -> 0.9
totalShots: 1.5885 -> 1.6581
shotOffTarget: 1.0833 -> 1.1307
onTargetScoringAttempt: 0.5014 -> 0.5234
expectedGoalsOnTarget: 0.1656 -> 0.1729
goals: 0.1613 -> 0.1684
expectedGoals: 0.1539 -> 0.1606
bigChanceMissed: 0.1445 -> 0.1508
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.39 (squad xG sum 1.3995, xG scale 0.9947, xA scale 1.1255, team xA 0.90 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.392
squad_xg_sum=1.3995
squad_xa_sum=0.8039
team_expected_assists=0.9048
team_xa_to_xg_ratio=0.65
expected_assists: 0.1462 -> 0.1645
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 80.0)match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1476
goal_rate=0.1684
scorer_weight=0.1656
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1517
assist_rate=0.108
provider_weight=0.1325
-
Nilson AnguloF7100.160.07132%20.66.841.032FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0090, quality 0.625)market_value_eur=19400000
quality_factor=0.6251
boost_factor=1.009
reference_quality=0.505
history_matches=15
history_shrink=0.25
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0152)blend_weight=0.0152
history_matches=15
season_overlap_discount=1.0
per90_to_match_factor=0.7931
prior_reliability=0.0933
competition=Premier League
totalCross: 0.9321 -> 0.9523
wasFouled: 1.1039 -> 1.1215
interceptionWon: 1.1776 -> 1.1683
goals: 0.1787 -> 0.1846
totalShots: 1.5176 -> 1.5124
fouls: 1.4681 -> 1.463
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Ethan Pinnock, Stephen Mfuni', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.235, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.0511, 'skill_edge': 0.0807, 'height_edge': -0.046, 'attacker_skill': 0.6251, 'defender_skill': 0.4457, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Ethan Pinnock', 'market_value': 2800000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4465}, {'player': 'Stephen Mfuni', 'market_value': 2700000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4449}], 'xg_override': 0.1559}
totalShots: 1.5176 -> 1.5951
shotOffTarget: 0.9337 -> 0.9814
onTargetScoringAttempt: 0.5839 -> 0.6137
bigChanceMissed: 0.3327 -> 0.3497
goals: 0.1846 -> 0.194
expectedGoals: 0.1483 -> 0.1559
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.39 (squad xG sum 1.3995, xG scale 0.9947, xA scale 1.1255, team xA 0.90 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.392
squad_xg_sum=1.3995
squad_xa_sum=0.8039
team_expected_assists=0.9048
team_xa_to_xg_ratio=0.65
expected_assists: 0.0704 -> 0.0792
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 73.0)match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1437
goal_rate=0.194
scorer_weight=0.1838
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0761
assist_rate=0.1255
provider_weight=0.099
-
Robin RoefsG9000.00-n/a0.06.753.831FBref 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.0069, quality 0.725)market_value_eur=31000000
quality_factor=0.7249
boost_factor=1.0069
reference_quality=0.505
history_matches=43
history_shrink=0.1042
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0090)blend_weight=0.009
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League
saves: 2.8496 -> 2.8284
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Sidiki Cherif, Brandon Thomas-Asante', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.1997}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.39 (squad xG sum 1.3995, xG scale 0.9947, xA scale 1.1255, team xA 0.90 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.392
squad_xg_sum=1.3995
squad_xa_sum=0.8039
team_expected_assists=0.9048
team_xa_to_xg_ratio=0.65
shots_faced: 11.4 -> 13.2
expected_saves: 2.79 -> 3.23
high_pressure_saves: 0.96 -> 1.11
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 81.0)match_squad_rank=11
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.5422
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.8379
-
Brian BrobbeyF7910.520.2791%41.47.053.330FBref 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.834)market_value_eur=53000000
quality_factor=0.834
boost_factor=1.0118
reference_quality=0.505
history_matches=37
history_shrink=0.119
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0072)blend_weight=0.0072
history_matches=37
season_overlap_discount=1.0
per90_to_match_factor=0.8738
prior_reliability=0.0933
competition=Premier League
wasFouled: 1.9205 -> 1.9111
totalOffside: 0.7753 -> 0.7832
totalShots: 2.6429 -> 2.6369
onTargetScoringAttempt: 1.3294 -> 1.3242
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Ethan Pinnock, Stephen Mfuni', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.321, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.1775, 'skill_edge': 0.1747, 'height_edge': -0.054, 'attacker_skill': 0.834, 'defender_skill': 0.4457, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Ethan Pinnock', 'market_value': 2800000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4465}, {'player': 'Stephen Mfuni', 'market_value': 2700000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4449}], 'xg_override': 0.521}
totalShots: 2.6377 -> 3.1059
onTargetScoringAttempt: 1.3242 -> 1.5592
shotOffTarget: 1.3135 -> 1.5466
goals: 0.5666 -> 0.6672
expectedGoalsOnTarget: 0.5294 -> 0.6234
bigChanceMissed: 0.4833 -> 0.5691
expectedGoals: 0.4425 -> 0.521
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
goals: 1.0 -> 0
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.39 (squad xG sum 1.3995, xG scale 0.9947, xA scale 1.1255, team xA 0.90 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.392
squad_xg_sum=1.3995
squad_xa_sum=0.8039
team_expected_assists=0.9048
team_xa_to_xg_ratio=0.65
expected_assists: 0.0446 -> 0.0502
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=1
goal_probability=0.4043
goal_rate=0.6672
scorer_weight=0.6476
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.0
provider_weight=0.0402
-
Team totals11.39176.8
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Anthony PattersonG4.6m11.9%Market-value substitute prior
Daniel BallardD14.6m23.8%Market-value substitute prior
Lutsharel GeertruidaD14.4m33.7%Market-value substitute prior
Habib DiarraM18.7m71.8%Market-value substitute prior
Dayann MethalieM23.0m54.5%Market-value substitute prior
Malick FofanaF26.4m60.8%Market-value substitute prior
Antagonist / tactical summary
Midfield is evenly contested — Caleb Yirenkyi vs Noah Sadiki will be the pivotal duel. Total antagonist xG — Home: 0.73, Away: 1.08. 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.5% / 51.5%, dominance ratio 0.46, key duel: Caleb Yirenkyi vs Noah Sadiki
Jack Rudoni xG 0.17Sidiki Cherif xG 0.23Brandon Thomas-Asante xG 0.17Granit Xhaka xG 0.05Enzo Le Fée xG 0.16Brian Brobbey xG 0.52

Summary

Antagonist matchup analysis for Coventry vs Sunderland. Most likely scoreline: 1-1. Lambdas derived from 6 home and 6 away individual player duels. Head-to-head: Coventry 4W-5D-1L vs Sunderland 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 — Caleb Yirenkyi vs Noah Sadiki will be the pivotal duel. Total antagonist xG — Home: 0.73, Away: 1.08. 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-10-31 13:37:35 UTC · Soccer prediction reporting