Soccer predictions: actual data vs predicted data

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

All matches overview

MatchScoreWinnerH / D / AO2.5BTTSConfλ H/AActualResult
Osasuna vs Athletic Club
LaLiga
2-1Osasuna45.1% / 24.2% / 30.7%57.3%59.6%0.671.66 / 1.33-pending
Espanyol vs Deportivo
LaLiga
2-1Espanyol54.1% / 22.8% / 23.0%57.3%57.2%0.691.85 / 1.13-pending
Arsenal vs Hull
Premier League
1-0Arsenal64.4% / 20.9% / 14.7%53.0%48.3%0.721.98 / 0.82-pending
Forest vs Man City
Premier League
0-1Man City22.6% / 23.4% / 54.0%54.2%54.6%0.691.07 / 1.78-pending
Fulham vs Newcastle
Premier League
1-0Fulham42.9% / 25.4% / 31.8%52.6%56.1%0.661.51 / 1.27-pending
Valencia vs Real Madrid
LaLiga
0-2Real Madrid14.2% / 18.7% / 67.2%61.8%54.4%0.730.94 / 2.26-pending
Málaga vs Racing Club
LaLiga
1-0Málaga42.8% / 26.1% / 31.1%49.5%53.6%0.651.45 / 1.20-pending
Leeds vs Tottenham
Premier League
1-1Draw40.2% / 25.6% / 34.3%52.6%56.4%0.651.46 / 1.33-pending

Match detail

Osasuna vs Athletic Club

LaLiga · 20261107 · 4-3-3 vs 4-2-3-1
Predicted 2-1Winner: OsasunaWinning H 2-1 (9.2%)Winning A 1-2 (7.4%)Confidence 0.67λ home/away 1.66 / 1.33Most-likely P 9.2%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset Tracing
Antagonist + XGBoost match analysis for Osasuna vs Athletic Club. Player statistics regressed using position-specific XGBoost models (G, D, M, F) with 2026-2027 FBref priors. Micro-duels resolved across 4-3-3 vs 4-2-3-1 (duel lambdas: Home 1.117, Away 1.080). Final calibrated Poisson lambdas: Home 1.656, Away 1.328 (most likely score 2-1).
Home Starters 11/11 XGBoost (9 FBref) Away Starters 11/11 XGBoost (9 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.12 / 1.08 Final λ (H/A) 1.66 / 1.33
FBref Team Priors: Osasuna (Gls/90: 1.0, GA/90: 1.0 → E[λ]: 0.741) vs Athletic Club (Gls/90: 1.0, GA/90: 1.0 → E[λ]: 0.741) | Blend Weight: 0.228
Modeling Pipeline Stages (5 layers)
  1. 1. XGBoost player regressions for volume & event rates with market-value quality scaling
  2. 2. Multi-source prior blending (FBref 2026-2027 tables + Sofascore season history)
  3. 3. Antagonist formation duel matrix resolving 1v1 and zonal matchups
  4. 4. Team-level prior calibration (FBref possession and attack/defense efficiencies)
  5. 5. Bivariate Poisson matrix with Dixon-Coles low-score correction

Standing & form context

MetricOsasunaAthletic Club
League position14.007.00
Points per game1.201.35
Attack index0.850.91
Defense (concede) index0.821.15
Form multiplier0.991.01
Standing λ multiplier0.861.02

Lambda decomposition (how the goal rates were built)

StageOsasuna λAthletic Club λ
FBref Squad Prior E[λ] (weight 0.228)0.7410.741
Pre-competitive-floor1.2201.055
Pre-calibration (Micro-duels)1.1171.080
Final λ1.6561.328
competition calibration scale 1.312competition 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.2%
2-19.2%
1-08.3%
1-27.4%
2-06.9%
Home win45.1%
Draw24.2%
Away win30.7%
Over 2.557.3%
BTTS yes59.6%
Pregame fair line — favorite Osasuna (45.1%), fair total 2.98, fair spread 0.33

Projected players vs season baseline

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

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Sergio HerreraG8800.00-n/a0.07.052.032FBref 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.9978, quality 0.437)market_value_eur=2600000
quality_factor=0.4374
boost_factor=0.9978
reference_quality=0.505
history_matches=42
history_shrink=0.1064
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0138)blend_weight=0.0138
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.977
prior_reliability=0.2
competition=La Liga
saves: 2.678 -> 2.6545
wasFouled: 0.2569 -> 0.2624
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Oihan Sancet, Robert Navarro', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.0798}
-
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 1.0981, xG scale 1.5081, xA scale 1.5547, team xA 1.08 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.656
squad_xg_sum=1.0981
squad_xa_sum=0.6924
team_expected_assists=1.0764
team_xa_to_xg_ratio=0.65
shots_faced: 10.3 -> 12.6
expected_saves: 2.53 -> 3.08
high_pressure_saves: 0.86 -> 1.06
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 79.0)match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.7367
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.0448
-
Alejandro CatenaD9000.150.05197%10.36.960.232XGBoost 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.9979, quality 0.437)market_value_eur=2700000
quality_factor=0.4374
boost_factor=0.9979
reference_quality=0.505
history_matches=44
history_shrink=0.102
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Robert Navarro', '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 1.0981, xG scale 1.5081, xA scale 1.5547, team xA 1.08 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.656
squad_xg_sum=1.0981
squad_xa_sum=0.6924
team_expected_assists=1.0764
team_xa_to_xg_ratio=0.65
expected_goals: 0.1015 -> 0.1531
expected_assists: 0.0959 -> 0.1491
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 85.0)match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.142
goal_rate=0.0176
scorer_weight=0.1225
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1385
assist_rate=0.1121
provider_weight=0.1657
-
Enzo BoyomoD8600.060.03132%00.46.843.629FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0026, quality 0.575)market_value_eur=14600000
quality_factor=0.5748
boost_factor=1.0026
reference_quality=0.505
history_matches=35
history_shrink=0.125
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0033)blend_weight=0.0033
history_matches=35
season_overlap_discount=1.0
per90_to_match_factor=0.9601
prior_reliability=0.04
competition=La Liga
wonTackle: 0.823 -> 0.8307
fouls: 0.8518 -> 0.8594
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': 'Peio Canales', 'matchup_zone': 'Right Wing vs Left Back — Flank Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.66 (squad xG sum 1.0981, xG scale 1.5081, xA scale 1.5547, team xA 1.08 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.656
squad_xg_sum=1.0981
squad_xa_sum=0.6924
team_expected_assists=1.0764
team_xa_to_xg_ratio=0.65
expected_goals: 0.0428 -> 0.0645
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.0625
goal_rate=0.0069
scorer_weight=0.0516
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0134
assist_rate=0.0669
provider_weight=0.0169
-
Jorge HerrandoD7200.040.01392%00.16.846.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.9973, quality 0.440)market_value_eur=3200000
quality_factor=0.4399
boost_factor=0.9973
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.7969
prior_reliability=0.14
competition=La Liga
onTargetScoringAttempt: 0.2249 -> 0.2318
totalShots: 0.3327 -> 0.3383
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Robert Navarro', '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 1.0981, xG scale 1.5081, xA scale 1.5547, team xA 1.08 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.656
squad_xg_sum=1.0981
squad_xa_sum=0.6924
team_expected_assists=1.0764
team_xa_to_xg_ratio=0.65
expected_goals: 0.0253 -> 0.0382
expected_assists: 0.026 -> 0.0404
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0375
goal_rate=0.0
scorer_weight=0.0306
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0396
assist_rate=0.0302
provider_weight=0.0426
-
Valentin RosierD8500.040.0299%10.66.759.327XGBoost 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.9974, quality 0.439)market_value_eur=3100000
quality_factor=0.4387
boost_factor=0.9974
reference_quality=0.505
history_matches=34
history_shrink=0.1282
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Iñigo Ruiz de Galarreta', '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 1.0981, xG scale 1.5081, xA scale 1.5547, team xA 1.08 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.656
squad_xg_sum=1.0981
squad_xa_sum=0.6924
team_expected_assists=1.0764
team_xa_to_xg_ratio=0.65
expected_goals: 0.0293 -> 0.0442
expected_assists: 0.0611 -> 0.095
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
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.0432
goal_rate=0.0299
scorer_weight=0.0445
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0906
assist_rate=0.0012
provider_weight=0.076
-
Jon MoncayolaM8200.060.05ok10.56.860.832FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 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.0106)blend_weight=0.0106
history_matches=46
season_overlap_discount=1.0
per90_to_match_factor=0.9056
prior_reliability=0.1667
competition=La Liga
totalCross: 2.467 -> 2.4523
interceptionWon: 0.5678 -> 0.581
wonTackle: 0.8813 -> 0.8912
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Beñat Gerenabarrena', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.497, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0689, 'skill_edge': 0.0109, 'height_edge': 0.036, 'attacker_skill': 0.5, 'defender_skill': 0.4759, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Beñat Gerenabarrena', 'market_value': 5200000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4759}], 'xg_override': 0.0405}
aerialWon: 0.4309 -> 1.1
totalShots: 0.5455 -> 0.5831
shotOffTarget: 0.3683 -> 0.3937
onTargetScoringAttempt: 0.1772 -> 0.1894
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 1.0981, xG scale 1.5081, xA scale 1.5547, team xA 1.08 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.656
squad_xg_sum=1.0981
squad_xa_sum=0.6924
team_expected_assists=1.0764
team_xa_to_xg_ratio=0.65
expected_goals: 0.0405 -> 0.0611
expected_assists: 0.0713 -> 0.1108
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_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.0593
goal_rate=0.0669
scorer_weight=0.0764
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1049
assist_rate=0.0685
provider_weight=0.1082
-
Moi GómezM7700.060.01715%00.27.145.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.9973, quality 0.437)market_value_eur=1600000
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.0114)blend_weight=0.0114
history_matches=33
season_overlap_discount=1.0
per90_to_match_factor=0.8591
prior_reliability=0.1333
competition=La Liga
totalCross: 2.1195 -> 2.1002
interceptionWon: 0.648 -> 0.6553
wonTackle: 0.5733 -> 0.5668
totalShots: 0.5036 -> 0.4979
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Beñat Gerenabarrena', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.437, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9804, 'skill_edge': -0.0173, 'height_edge': 0.004, 'attacker_skill': 0.4374, 'defender_skill': 0.4759, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Beñat Gerenabarrena', 'market_value': 5200000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4759}], 'xg_override': 0.039}
aerialWon: 0.4176 -> 0.9
totalShots: 0.502 -> 0.4922
shotOffTarget: 0.3657 -> 0.3585
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 1.0981, xG scale 1.5081, xA scale 1.5547, team xA 1.08 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.656
squad_xg_sum=1.0981
squad_xa_sum=0.6924
team_expected_assists=1.0764
team_xa_to_xg_ratio=0.65
expected_goals: 0.039 -> 0.0588
expected_assists: 0.1159 -> 0.1803
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.0571
goal_rate=0.0604
scorer_weight=0.0729
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.165
assist_rate=0.1022
provider_weight=0.1654
-
Iker MuñozM8100.070.01415%10.46.942.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 0.9968, quality 0.437)market_value_eur=1800000
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.0156)blend_weight=0.0156
history_matches=27
season_overlap_discount=1.0
per90_to_match_factor=0.8978
prior_reliability=0.1533
competition=La Liga
wasFouled: 1.7395 -> 1.7246
totalCross: 0.5181 -> 0.5283
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Beñat Gerenabarrena', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.427, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0098, 'skill_edge': -0.0173, 'height_edge': 0.024, 'attacker_skill': 0.4374, 'defender_skill': 0.4759, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Beñat Gerenabarrena', 'market_value': 5200000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4759}], 'xg_override': 0.0473}
aerialWon: 1.643 -> 1.0
totalShots: 0.611 -> 0.617
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 1.0981, xG scale 1.5081, xA scale 1.5547, team xA 1.08 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.656
squad_xg_sum=1.0981
squad_xa_sum=0.6924
team_expected_assists=1.0764
team_xa_to_xg_ratio=0.65
expected_goals: 0.0473 -> 0.0713
expected_assists: 0.0402 -> 0.0625
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0688
goal_rate=0.0494
scorer_weight=0.0728
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0606
assist_rate=0.0556
provider_weight=0.0732
-
Ante BudimirF8710.550.48ok22.66.863.934FBref 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.437)market_value_eur=2600000
quality_factor=0.4374
boost_factor=0.9981
reference_quality=0.505
history_matches=47
history_shrink=0.0962
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0092)blend_weight=0.0092
history_matches=47
season_overlap_discount=1.0
per90_to_match_factor=0.9712
prior_reliability=0.1467
competition=La Liga
totalShots: 2.4772 -> 2.4902
wasFouled: 1.2591 -> 1.2718
onTargetScoringAttempt: 0.9927 -> 1.0035
wonTackle: 0.5852 -> 0.592
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Aymeric Laporte, Dani Vivian', '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.9077, 'skill_edge': -0.0748, 'height_edge': 0.012, 'attacker_skill': 0.4374, 'defender_skill': 0.6037, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Aymeric Laporte', 'market_value': 8400000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5365}, {'player': 'Dani Vivian', 'market_value': 18200000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6709}], 'xg_override': 0.3658}
totalShots: 2.4902 -> 2.2604
shotOffTarget: 1.4845 -> 1.3475
onTargetScoringAttempt: 1.0035 -> 0.9109
expectedGoalsOnTarget: 0.5953 -> 0.5404
bigChanceMissed: 0.528 -> 0.4793
goals: 0.4355 -> 0.3953
expectedGoals: 0.403 -> 0.3658
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 1.0981, xG scale 1.5081, xA scale 1.5547, team xA 1.08 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.656
squad_xg_sum=1.0981
squad_xa_sum=0.6924
team_expected_assists=1.0764
team_xa_to_xg_ratio=0.65
expected_goals: 0.3658 -> 0.5516
expected_assists: 0.0323 -> 0.0502
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=1
goal_probability=0.424
goal_rate=0.3953
scorer_weight=0.5907
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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
-
Rubén GarcíaF7100.160.06157%10.96.958.142FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9980, quality 0.437)market_value_eur=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.0074)blend_weight=0.0074
history_matches=45
season_overlap_discount=1.0
per90_to_match_factor=0.7902
prior_reliability=0.1133
competition=La Liga
totalCross: 4.4939 -> 4.5019
totalShots: 1.1581 -> 1.1637
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Yeray Álvarez', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.432, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9294, 'skill_edge': 0.0, 'height_edge': -0.048, 'attacker_skill': 0.4374, 'defender_skill': 0.4374, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Yeray Álvarez', 'market_value': 930000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.4374}], 'xg_override': 0.1091}
totalShots: 1.1637 -> 1.0815
shotOffTarget: 0.7404 -> 0.6881
onTargetScoringAttempt: 0.4217 -> 0.3919
goals: 0.1371 -> 0.1274
expectedGoals: 0.1174 -> 0.1091
bigChanceMissed: 0.1024 -> 0.0952
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 1.0981, xG scale 1.5081, xA scale 1.5547, team xA 1.08 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.656
squad_xg_sum=1.0981
squad_xa_sum=0.6924
team_expected_assists=1.0764
team_xa_to_xg_ratio=0.65
expected_goals: 0.1091 -> 0.1645
expected_assists: 0.0981 -> 0.1525
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.1517
goal_rate=0.1274
scorer_weight=0.1834
-
integer_assist_projectionTeam scoreline allocation: 1 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.1414
assist_rate=0.1156
provider_weight=0.1705
-
Jonathan DubasinF7010.270.13103%20.66.845.317FBref 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.9949, quality 0.454)market_value_eur=4300000
quality_factor=0.4535
boost_factor=0.9949
reference_quality=0.505
history_matches=10
history_shrink=0.3333
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0188)blend_weight=0.0188
history_matches=10
season_overlap_discount=1.0
per90_to_match_factor=0.7748
prior_reliability=0.0867
competition=La Liga
wonTackle: 0.9366 -> 0.919
interceptionWon: 0.8744 -> 0.8916
totalOffside: 0.5308 -> 0.5208
fouls: 0.7694 -> 0.7773
wasFouled: 0.2255 -> 0.2325
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Yuri Berchiche', 'matchup_zone': 'Right Wing vs Left Back — Flank Battle', 'duel_win_rate': 0.483, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0048, 'skill_edge': 0.0073, 'height_edge': -0.004, 'attacker_skill': 0.4535, 'defender_skill': 0.4374, 'attacker_role': 'RW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Yuri Berchiche', 'market_value': 910000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.4374}], 'xg_override': 0.181}
totalShots: 1.4945 -> 1.5017
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 1.0981, xG scale 1.5081, xA scale 1.5547, team xA 1.08 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.656
squad_xg_sum=1.0981
squad_xa_sum=0.6924
team_expected_assists=1.0764
team_xa_to_xg_ratio=0.65
expected_goals: 0.181 -> 0.273
expected_assists: 0.0804 -> 0.125
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_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.2389
goal_rate=0.2301
scorer_weight=0.331
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1175
assist_rate=0.0
provider_weight=0.1
-
Team totals21.66116.9
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Aitor FernándezG4.4m10.9%Market-value substitute prior
Abel BretonesD13.6m21.7%Market-value substitute prior
Rockson YeboahD13.6m29.9%Market-value substitute prior
Aimar OrozM14.9m43.9%Market-value substitute prior
Lucas TorróM18.1m56.4%Market-value substitute prior
Romain Del CastilloF25.4m56.2%Market-value substitute prior

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Unai SimónG8400.00-n/a0.07.058.533FBref Prior G_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost G_service raw output over 3 target models--
market_value_boostMarket-value quality scaling (boost 1.0040, quality 0.641)market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.004
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.9329
prior_reliability=0.2
competition=La Liga
saves: 2.9989 -> 3.0082
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Ante Budimir, Jonathan Dubasin', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.1166}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.33 (squad xG sum 0.9363, xG scale 1.4183, xA scale 1.2583, team xA 1.06 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.328
squad_xg_sum=0.9363
squad_xa_sum=0.8443
team_expected_assists=1.0624
team_xa_to_xg_ratio=0.8
shots_faced: 10.6 -> 15.7
expected_saves: 2.59 -> 3.84
high_pressure_saves: 0.89 -> 1.32
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 85.0)match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.4267
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.0061
-
Yuri BerchicheD7800.070.02183%11.07.055.129FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9977, quality 0.437)market_value_eur=910000
quality_factor=0.4374
boost_factor=0.9977
reference_quality=0.505
history_matches=39
history_shrink=0.1136
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0054)blend_weight=0.0054
history_matches=39
season_overlap_discount=1.0
per90_to_match_factor=0.8656
prior_reliability=0.0733
competition=La Liga
totalShots: 1.2353 -> 1.2413
wonTackle: 1.0031 -> 0.9977
fouls: 0.656 -> 0.661
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Jonathan Dubasin', '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.33 (squad xG sum 0.9363, xG scale 1.4183, xA scale 1.2583, team xA 1.06 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.328
squad_xg_sum=0.9363
squad_xa_sum=0.8443
team_expected_assists=1.0624
team_xa_to_xg_ratio=0.8
expected_goals: 0.0476 -> 0.0675
expected_assists: 0.1455 -> 0.1831
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.0653
goal_rate=0.0
scorer_weight=0.054
-
integer_assist_projectionTeam scoreline allocation: 1 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.1673
assist_rate=0.1268
provider_weight=0.1656
-
Aymeric LaporteD8500.070.07ok10.57.053.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.9999, quality 0.503)market_value_eur=8400000
quality_factor=0.5035
boost_factor=0.9999
reference_quality=0.505
history_matches=33
history_shrink=0.1316
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0137)blend_weight=0.0137
history_matches=33
season_overlap_discount=1.0
per90_to_match_factor=0.9497
prior_reliability=0.16
competition=La Liga
fouls: 1.0724 -> 1.0631
wonTackle: 0.8242 -> 0.8292
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Ante Budimir', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.33 (squad xG sum 0.9363, xG scale 1.4183, xA scale 1.2583, team xA 1.06 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.328
squad_xg_sum=0.9363
squad_xa_sum=0.8443
team_expected_assists=1.0624
team_xa_to_xg_ratio=0.8
expected_goals: 0.0528 -> 0.0749
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 84.0)match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0722
goal_rate=0.0
scorer_weight=0.0599
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0177
assist_rate=0.0031
provider_weight=0.0148
-
Yeray ÁlvarezD8100.060.02222%10.26.938.021FBref 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=930000
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.0255)blend_weight=0.0255
history_matches=12
season_overlap_discount=1.0
per90_to_match_factor=0.9024
prior_reliability=0.1333
competition=La Liga
totalCross: 0.8649 -> 0.8889
totalShots: 0.5928 -> 0.6122
wonTackle: 0.5787 -> 0.564
goalAssist: 0.0934 -> 0.1025
wasFouled: 0.6635 -> 0.6581
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Rubén García', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.33 (squad xG sum 0.9363, xG scale 1.4183, xA scale 1.2583, team xA 1.06 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.328
squad_xg_sum=0.9363
squad_xa_sum=0.8443
team_expected_assists=1.0624
team_xa_to_xg_ratio=0.8
expected_goals: 0.0396 -> 0.0562
expected_assists: 0.0297 -> 0.0374
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_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.0546
goal_rate=0.0
scorer_weight=0.045
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0367
assist_rate=0.1025
provider_weight=0.0467
-
Dani VivianD7900.030.0284%10.46.748.322XGBoost 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.0044, quality 0.613)market_value_eur=18200000
quality_factor=0.613
boost_factor=1.0044
reference_quality=0.505
history_matches=32
history_shrink=0.1351
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Ante Budimir', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.33 (squad xG sum 0.9363, xG scale 1.4183, xA scale 1.2583, team xA 1.06 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.328
squad_xg_sum=0.9363
squad_xa_sum=0.8443
team_expected_assists=1.0624
team_xa_to_xg_ratio=0.8
expected_goals: 0.0239 -> 0.0339
expected_assists: 0.0281 -> 0.0354
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 78.0)match_squad_rank=14
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_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.0333
goal_rate=0.0578
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.0348
assist_rate=0.0
provider_weight=0.0283
-
Iñigo Ruiz de GalarretaM6400.090.02284%10.67.158.531FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 0.9978, quality 0.437)market_value_eur=1800000
quality_factor=0.4374
boost_factor=0.9978
reference_quality=0.505
history_matches=42
history_shrink=0.1064
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0037)blend_weight=0.0037
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.7158
prior_reliability=0.0533
competition=La Liga
fouls: 1.5193 -> 1.5269
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Valentin Rosier', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.468, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9824, 'skill_edge': -0.008, 'height_edge': -0.004, 'attacker_skill': 0.4374, 'defender_skill': 0.4551, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Valentin Rosier', 'market_value': 3100000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.4551}], 'xg_override': 0.0639}
aerialWon: 0.9703 -> 0.9
totalShots: 0.8901 -> 0.8744
shotOffTarget: 0.6363 -> 0.6251
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.33 (squad xG sum 0.9363, xG scale 1.4183, xA scale 1.2583, team xA 1.06 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.328
squad_xg_sum=0.9363
squad_xa_sum=0.8443
team_expected_assists=1.0624
team_xa_to_xg_ratio=0.8
expected_goals: 0.0639 -> 0.0906
expected_assists: 0.1055 -> 0.1327
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 82.0)match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0866
goal_rate=0.0638
scorer_weight=0.0905
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1243
assist_rate=0.1057
provider_weight=0.1329
-
Oihan SancetM8110.420.2661%31.86.961.723FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0063, quality 0.669)market_value_eur=24000000
quality_factor=0.6685
boost_factor=1.0063
reference_quality=0.505
history_matches=34
history_shrink=0.1282
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0150)blend_weight=0.015
history_matches=34
season_overlap_discount=1.0
per90_to_match_factor=0.9019
prior_reliability=0.18
competition=La Liga
totalShots: 2.0801 -> 2.0888
interceptionWon: 0.2163 -> 0.2231
fouls: 0.6682 -> 0.6632
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Iker Muñoz', 'matchup_zone': 'Attacking Mid vs Single Holding Mid — Space Creator Duel', 'duel_win_rate': 0.605, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.2131, 'skill_edge': 0.109, 'height_edge': 0.036, 'attacker_skill': 0.6796, 'defender_skill': 0.4374, 'attacker_role': 'CAM', 'attacker_mv_price_index': 0.95, 'defender_adjusted_parts': [{'player': 'Iker Muñoz', 'market_value': 1800000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4374}], 'xg_override': 0.2992}
aerialWon: 0.7062 -> 1.2
totalShots: 2.0888 -> 2.5339
shotOffTarget: 1.3219 -> 1.6036
onTargetScoringAttempt: 0.7618 -> 0.9241
bigChanceMissed: 0.4451 -> 0.54
goals: 0.2962 -> 0.3593
expectedGoals: 0.2466 -> 0.2992
expectedGoalsOnTarget: 0.2451 -> 0.2973
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.33 (squad xG sum 0.9363, xG scale 1.4183, xA scale 1.2583, team xA 1.06 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.328
squad_xg_sum=0.9363
squad_xa_sum=0.8443
team_expected_assists=1.0624
team_xa_to_xg_ratio=0.8
expected_goals: 0.2992 -> 0.4244
expected_assists: 0.1399 -> 0.176
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: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.3458
goal_rate=0.3593
scorer_weight=0.4974
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1614
assist_rate=0.1305
provider_weight=0.1673
-
Beñat GerenabarrenaM7900.040.001775%00.16.835.713FBref 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.9950, quality 0.465)market_value_eur=5200000
quality_factor=0.4646
boost_factor=0.995
reference_quality=0.505
history_matches=7
history_shrink=0.4167
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0379)blend_weight=0.0379
history_matches=7
season_overlap_discount=1.0
per90_to_match_factor=0.8832
prior_reliability=0.14
competition=La Liga
totalCross: 0.9188 -> 0.9796
interceptionWon: 1.8932 -> 1.933
fouls: 2.2103 -> 2.2381
wonTackle: 1.6337 -> 1.6515
wasFouled: 1.4033 -> 1.4139
onTargetScoringAttempt: 0.1373 -> 0.1478
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Jon Moncayola', 'matchup_zone': 'Holding Mid vs Central Mid — Midfield Anchor Duel', 'duel_win_rate': 0.353, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9311, 'skill_edge': -0.0109, 'height_edge': -0.036, 'attacker_skill': 0.4759, 'defender_skill': 0.5, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Jon Moncayola', 'market_value': 7300000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.5}], 'xg_override': 0.0317}
aerialWon: 0.6976 -> 0.9
totalShots: 0.4711 -> 0.4386
shotOffTarget: 0.3233 -> 0.301
onTargetScoringAttempt: 0.1478 -> 0.1376
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.33 (squad xG sum 0.9363, xG scale 1.4183, xA scale 1.2583, team xA 1.06 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.328
squad_xg_sum=0.9363
squad_xa_sum=0.8443
team_expected_assists=1.0624
team_xa_to_xg_ratio=0.8
expected_goals: 0.0317 -> 0.045
expected_assists: 0.0444 -> 0.0559
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.044
goal_rate=0.0406
scorer_weight=0.0499
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0544
assist_rate=0.0595
provider_weight=0.0648
-
Mikel JauregizarM7000.110.03272%10.76.855.630FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.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.0050)blend_weight=0.005
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=0.7826
prior_reliability=0.0733
competition=La Liga
totalCross: 1.437 -> 1.4299
interceptionWon: 1.0022 -> 1.0078
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Jon Moncayola', 'matchup_zone': 'Holding Mid vs Central Mid — Midfield Anchor Duel', 'duel_win_rate': 0.48, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.1174, 'skill_edge': 0.0999, 'height_edge': -0.02, 'attacker_skill': 0.7219, 'defender_skill': 0.5, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Jon Moncayola', 'market_value': 7300000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.5}], 'xg_override': 0.0767}
aerialWon: 1.65 -> 1.0
totalShots: 0.9626 -> 1.0756
shotOffTarget: 0.6842 -> 0.7645
onTargetScoringAttempt: 0.2784 -> 0.3111
expectedGoals: 0.0686 -> 0.0767
goals: 0.0554 -> 0.0619
expectedGoalsOnTarget: 0.0481 -> 0.0537
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.33 (squad xG sum 0.9363, xG scale 1.4183, xA scale 1.2583, team xA 1.06 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.328
squad_xg_sum=0.9363
squad_xa_sum=0.8443
team_expected_assists=1.0624
team_xa_to_xg_ratio=0.8
expected_goals: 0.0767 -> 0.1088
expected_assists: 0.0531 -> 0.0668
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: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1031
goal_rate=0.0619
scorer_weight=0.0961
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0646
assist_rate=0.0561
provider_weight=0.0687
-
Peio CanalesM8000.090.04130%10.56.941.811FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0017, quality 0.519)market_value_eur=9700000
quality_factor=0.5189
boost_factor=1.0017
reference_quality=0.505
history_matches=7
history_shrink=0.4167
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0415)blend_weight=0.0415
history_matches=7
season_overlap_discount=1.0
per90_to_match_factor=0.8876
prior_reliability=0.1533
competition=La Liga
onTargetScoringAttempt: 0.2253 -> 0.248
totalShots: 0.6943 -> 0.7137
fouls: 0.7746 -> 0.7585
wasFouled: 1.1607 -> 1.1766
wonTackle: 1.0358 -> 1.0248
totalCross: 1.3747 -> 1.3817
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Enzo Boyomo', 'matchup_zone': 'Right Wing vs Left Back — Flank Battle', 'duel_win_rate': 0.402, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.885, 'skill_edge': -0.0542, 'height_edge': -0.024, 'attacker_skill': 0.5189, 'defender_skill': 0.6394, 'attacker_role': 'RW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Enzo Boyomo', 'market_value': 14600000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.6394}], 'xg_override': 0.0627}
aerialWon: 0.0 -> 0.9
totalShots: 0.717 -> 0.6346
shotOffTarget: 0.469 -> 0.4151
onTargetScoringAttempt: 0.248 -> 0.2195
goals: 0.0794 -> 0.0703
expectedGoals: 0.0708 -> 0.0627
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.33 (squad xG sum 0.9363, xG scale 1.4183, xA scale 1.2583, team xA 1.06 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.328
squad_xg_sum=0.9363
squad_xa_sum=0.8443
team_expected_assists=1.0624
team_xa_to_xg_ratio=0.8
expected_goals: 0.0627 -> 0.0889
expected_assists: 0.0789 -> 0.0993
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.0851
goal_rate=0.0703
scorer_weight=0.0949
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0945
assist_rate=0.08
provider_weight=0.1001
-
Robert NavarroF7700.230.1296%20.87.052.041XGBoost F_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9996, quality 0.493)market_value_eur=7500000
quality_factor=0.4927
boost_factor=0.9996
reference_quality=0.505
history_matches=39
history_shrink=0.1136
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 Catena, Jorge Herrando', '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.9407, 'skill_edge': 0.0196, 'height_edge': -0.06, 'attacker_skill': 0.4927, 'defender_skill': 0.449, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Alejandro Catena', 'market_value': 2700000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4449}, {'player': 'Jorge Herrando', 'market_value': 3200000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4531}], 'xg_override': 0.163}
totalShots: 1.5662 -> 1.4734
shotOffTarget: 0.96 -> 0.9031
onTargetScoringAttempt: 0.6062 -> 0.5703
expectedGoalsOnTarget: 0.2526 -> 0.2376
goals: 0.2151 -> 0.2023
expectedGoals: 0.1733 -> 0.163
bigChanceMissed: 0.1111 -> 0.1045
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.33 (squad xG sum 0.9363, xG scale 1.4183, xA scale 1.2583, team xA 1.06 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.328
squad_xg_sum=0.9363
squad_xa_sum=0.8443
team_expected_assists=1.0624
team_xa_to_xg_ratio=0.8
expected_goals: 0.163 -> 0.2312
expected_assists: 0.1444 -> 0.1817
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.2064
goal_rate=0.2023
scorer_weight=0.2739
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1661
assist_rate=0.0
provider_weight=0.1454
-
Team totals11.33136.9
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Alex PadillaG4.4m10.9%Market-value substitute prior
Aitor ParedesD13.8m22.1%Market-value substitute prior
Jesús AresoD13.7m21.9%Market-value substitute prior
Beñat PradosM22.4m51.9%Market-value substitute prior
Alejandro Rego MoraM22.1m50.4%Market-value substitute prior
Nico WilliamsF25.8m62.0%Market-value substitute prior
Antagonist / tactical summary
Away midfield dictates play with ~52% possession expected (Jon Moncayola vs Mikel Jauregizar). Total antagonist xG — Home: 0.78, Away: 0.70. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Attacking Mid vs Single Holding Mid — Space Creator Duel.
Midfield — possession 48.1% / 51.9%, dominance ratio 0.43, key duel: Jon Moncayola vs Mikel Jauregizar
Rubén García xG 0.11Jonathan Dubasin xG 0.18Ante Budimir xG 0.37Iñigo Ruiz de Galarreta xG 0.06Peio Canales xG 0.06Oihan Sancet xG 0.30

Summary

Antagonist matchup analysis for Osasuna vs Athletic Club. Most likely scoreline: 2-1. Lambdas derived from 6 home and 6 away individual player duels. Head-to-head: Osasuna 3W-3D-4L vs Athletic Club 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 ~52% possession expected (Jon Moncayola vs Mikel Jauregizar). Total antagonist xG — Home: 0.78, Away: 0.70. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Attacking Mid vs Single Holding Mid — Space Creator Duel.

Espanyol vs Deportivo

LaLiga · 20261107 · 4-2-3-1 vs 4-2-3-1
Predicted 2-1Winner: EspanyolWinning H 2-1 (9.8%)Winning A 1-2 (6.0%)Confidence 0.69λ home/away 1.85 / 1.13Most-likely P 9.8%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset Tracing
Antagonist + XGBoost match analysis for Espanyol vs Deportivo. 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.402, Away 0.851). Final calibrated Poisson lambdas: Home 1.851, Away 1.132 (most likely score 2-1).
Home Starters 11/11 XGBoost (9 FBref) Away Starters 11/11 XGBoost (0 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.40 / 0.85 Final λ (H/A) 1.85 / 1.13
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

MetricEspanyolDeportivo
League position13.0012.00
Points per game1.131.20
Attack index0.940.94
Defense (concede) index0.940.97
Form multiplier1.001.00
Standing λ multiplier0.950.96

Lambda decomposition (how the goal rates were built)

StageEspanyol λDeportivo λ
Pre-competitive-floor1.4220.839
Pre-calibration (Micro-duels)1.4030.851
Final λ1.8511.132
competition calibration scale 1.32competition observed total goals 2.984quality gap applied Falsemismatch score pressure applied Falsecompetitive underdog floor applied Falsestage discount 1.0

Scoreline distribution & markets

Top 5 scorelinesP
1-110.7%
2-19.8%
1-09.3%
2-08.7%
3-16.1%
Home win54.1%
Draw22.8%
Away win23.0%
Over 2.557.3%
BTTS yes57.2%
Pregame fair line — favorite Espanyol (54.1%), fair total 2.98, fair spread 0.72

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.

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Marko DmitrovićG9000.00-n/a0.07.055.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.9979, quality 0.437)market_value_eur=650000
quality_factor=0.4374
boost_factor=0.9979
reference_quality=0.505
history_matches=44
history_shrink=0.102
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0133)blend_weight=0.0133
history_matches=44
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.2
competition=La Liga
saves: 2.9989 -> 3.0166
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Bil Nsongo, Diego Villares', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 0.8507}
-
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.85 (squad xG sum 1.0006, xG scale 1.8499, xA scale 1.8499, team xA 1.30 = 0.70 x lambda)scoreline_reset=true
team_lambda=1.851
squad_xg_sum=1.0006
squad_xa_sum=0.7036
team_expected_assists=1.3016
team_xa_to_xg_ratio=0.7032
shots_faced: 8.1 -> 10.8
expected_saves: 1.98 -> 2.65
high_pressure_saves: 0.68 -> 0.91
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.0
scorer_weight=0.0
squad_weight_total=1.9266
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.316
-
Leandro CabreraD9000.140.06116%11.16.962.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 0.9980, quality 0.437)market_value_eur=930000
quality_factor=0.4374
boost_factor=0.998
reference_quality=0.505
history_matches=45
history_shrink=0.1
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Bil Nsongo', '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.85 (squad xG sum 1.0006, xG scale 1.8499, xA scale 1.8499, team xA 1.30 = 0.70 x lambda)scoreline_reset=true
team_lambda=1.851
squad_xg_sum=1.0006
squad_xa_sum=0.7036
team_expected_assists=1.3016
team_xa_to_xg_ratio=0.7032
expected_goals: 0.0747 -> 0.1382
expected_assists: 0.0235 -> 0.0435
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.1291
goal_rate=0.1595
scorer_weight=0.1727
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0426
assist_rate=0.0
provider_weight=0.0348
-
Roger HinojoD7500.010.00190%00.16.751.613FBref 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.9934, quality 0.439)market_value_eur=3100000
quality_factor=0.4387
boost_factor=0.9934
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=0.8387
prior_reliability=0.2
competition=La Liga
wonTackle: 1.1317 -> 1.1553
totalShots: 0.3551 -> 0.3397
interceptionWon: 0.8827 -> 0.8687
wasFouled: 0.5128 -> 0.5027
fouls: 0.9778 -> 0.9718
totalCross: 0.1591 -> 0.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': 'Marc Casadó', 'matchup_zone': 'Right Wing vs Left Back — Flank Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.85 (squad xG sum 1.0006, xG scale 1.8499, xA scale 1.8499, team xA 1.30 = 0.70 x lambda)scoreline_reset=true
team_lambda=1.851
squad_xg_sum=1.0006
squad_xa_sum=0.7036
team_expected_assists=1.3016
team_xa_to_xg_ratio=0.7032
expected_goals: 0.0069 -> 0.0128
expected_assists: 0.0272 -> 0.0503
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 16 by projected rating, fifa_overall 68.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.0127
goal_rate=0.0
scorer_weight=0.0112
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0491
assist_rate=0.0
provider_weight=0.0402
-
Clemens RiedelD8600.010.00620%00.16.741.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.9974, quality 0.449)market_value_eur=3900000
quality_factor=0.4486
boost_factor=0.9974
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.9577
prior_reliability=0.1133
competition=La Liga
fouls: 1.4847 -> 1.5058
interceptionWon: 0.8863 -> 0.8764
wonTackle: 0.6176 -> 0.6233
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': 'Bil Nsongo', '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.85 (squad xG sum 1.0006, xG scale 1.8499, xA scale 1.8499, team xA 1.30 = 0.70 x lambda)scoreline_reset=true
team_lambda=1.851
squad_xg_sum=1.0006
squad_xa_sum=0.7036
team_expected_assists=1.3016
team_xa_to_xg_ratio=0.7032
expected_assists: 0.0085 -> 0.0157
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0083
goal_rate=0.0
scorer_weight=0.0076
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0156
assist_rate=0.0069
provider_weight=0.0153
-
Quilindschy HartmanD8700.030.01372%00.16.729.727FBref Prior D_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0017, quality 0.541)market_value_eur=11600000
quality_factor=0.5411
boost_factor=1.0017
reference_quality=0.505
history_matches=26
history_shrink=0.1613
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Mario Soriano', '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.85 (squad xG sum 1.0006, xG scale 1.8499, xA scale 1.8499, team xA 1.30 = 0.70 x lambda)scoreline_reset=true
team_lambda=1.851
squad_xg_sum=1.0006
squad_xa_sum=0.7036
team_expected_assists=1.3016
team_xa_to_xg_ratio=0.7032
expected_goals: 0.0154 -> 0.0285
expected_assists: 0.0723 -> 0.1337
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: 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.1251
assist_rate=0.1128
provider_weight=0.1671
-
Javier HernándezM7900.200.07202%10.96.756.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 0.9976, quality 0.479)market_value_eur=6400000
quality_factor=0.4793
boost_factor=0.9976
reference_quality=0.505
history_matches=11
history_shrink=0.3125
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0339)blend_weight=0.0339
history_matches=11
season_overlap_discount=1.0
per90_to_match_factor=0.8783
prior_reliability=0.1667
competition=La Liga
totalCross: 2.0082 -> 1.9521
fouls: 1.4545 -> 1.5004
wasFouled: 1.2202 -> 1.2622
goalAssist: 0.1971 -> 0.2261
interceptionWon: 0.6599 -> 0.6376
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Giacomo Quagliata', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.475, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9926, 'skill_edge': 0.003, 'height_edge': -0.008, 'attacker_skill': 0.4793, 'defender_skill': 0.4727, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Giacomo Quagliata', 'market_value': 4099999, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.4727}], 'xg_override': 0.1071}
aerialWon: 0.1103 -> 0.9
totalShots: 1.1497 -> 1.1412
shotOffTarget: 0.7835 -> 0.7777
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.85 (squad xG sum 1.0006, xG scale 1.8499, xA scale 1.8499, team xA 1.30 = 0.70 x lambda)scoreline_reset=true
team_lambda=1.851
squad_xg_sum=1.0006
squad_xa_sum=0.7036
team_expected_assists=1.3016
team_xa_to_xg_ratio=0.7032
expected_goals: 0.1071 -> 0.1981
expected_assists: 0.1261 -> 0.2333
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 86.0)match_squad_rank=11
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.1797
goal_rate=0.0727
scorer_weight=0.1585
-
integer_assist_projectionTeam scoreline allocation: 1 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.2081
assist_rate=0.2261
provider_weight=0.2916
-
Edu ExpósitoM8400.140.0867%11.47.166.033FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 0.9986, quality 0.456)market_value_eur=4500000
quality_factor=0.456
boost_factor=0.9986
reference_quality=0.505
history_matches=47
history_shrink=0.0962
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0112)blend_weight=0.0112
history_matches=47
season_overlap_discount=1.0
per90_to_match_factor=0.9323
prior_reliability=0.18
competition=La Liga
totalCross: 3.957 -> 3.9241
totalShots: 1.0719 -> 1.0951
interceptionWon: 1.088 -> 1.0796
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Ximo Navarro', 'matchup_zone': 'Right Wing vs Left Back — Flank Battle', 'duel_win_rate': 0.484, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0064, 'skill_edge': 0.0084, 'height_edge': -0.004, 'attacker_skill': 0.456, 'defender_skill': 0.4374, 'attacker_role': 'RW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Ximo Navarro', 'market_value': 95000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.4374}], 'xg_override': 0.074}
aerialWon: 0.6537 -> 0.9
totalShots: 1.0951 -> 1.1021
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.85 (squad xG sum 1.0006, xG scale 1.8499, xA scale 1.8499, team xA 1.30 = 0.70 x lambda)scoreline_reset=true
team_lambda=1.851
squad_xg_sum=1.0006
squad_xa_sum=0.7036
team_expected_assists=1.3016
team_xa_to_xg_ratio=0.7032
expected_goals: 0.074 -> 0.1369
expected_assists: 0.1405 -> 0.26
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.1279
goal_rate=0.0947
scorer_weight=0.1597
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.2289
assist_rate=0.0951
provider_weight=0.208
-
Urko GonzálezM7600.090.02468%10.46.860.332FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0011, quality 0.541)market_value_eur=11600000
quality_factor=0.5411
boost_factor=1.0011
reference_quality=0.505
history_matches=45
history_shrink=0.1
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0091)blend_weight=0.0091
history_matches=45
season_overlap_discount=1.0
per90_to_match_factor=0.8472
prior_reliability=0.14
competition=La Liga
totalShots: 0.6489 -> 0.643
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Lorenzo Amatucci, Diego Villares', 'matchup_zone': 'Attacking Mid vs Double Pivot — Tight Space Battle', 'duel_win_rate': 0.305, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.0957, 'skill_edge': 0.0251, 'height_edge': 0.04, 'attacker_skill': 0.5481, 'defender_skill': 0.4922, 'attacker_role': 'CAM', 'attacker_mv_price_index': 0.95, 'defender_adjusted_parts': [{'player': 'Lorenzo Amatucci', 'market_value': 10300000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.547}, {'player': 'Diego Villares', 'market_value': 1000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4374}], 'xg_override': 0.0483}
aerialWon: 0.5985 -> 1.3
totalShots: 0.6474 -> 0.7094
shotOffTarget: 0.4901 -> 0.537
onTargetScoringAttempt: 0.1573 -> 0.1724
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.85 (squad xG sum 1.0006, xG scale 1.8499, xA scale 1.8499, team xA 1.30 = 0.70 x lambda)scoreline_reset=true
team_lambda=1.851
squad_xg_sum=1.0006
squad_xa_sum=0.7036
team_expected_assists=1.3016
team_xa_to_xg_ratio=0.7032
expected_goals: 0.0483 -> 0.0893
expected_assists: 0.0328 -> 0.0607
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0854
goal_rate=0.0524
scorer_weight=0.093
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.0528
provider_weight=0.0754
-
Álex CalatravaM7600.200.09112%21.26.855.812FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 0.9956, quality 0.461)market_value_eur=4900000
quality_factor=0.4609
boost_factor=0.9956
reference_quality=0.505
history_matches=10
history_shrink=0.3333
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0361)blend_weight=0.0361
history_matches=10
season_overlap_discount=1.0
per90_to_match_factor=0.8432
prior_reliability=0.1667
competition=La Liga
fouls: 1.1742 -> 1.2049
onTargetScoringAttempt: 0.5284 -> 0.5577
wasFouled: 0.9373 -> 0.9156
totalShots: 1.4967 -> 1.5154
interceptionWon: 0.3462 -> 0.3581
goals: 0.1287 -> 0.1362
wonTackle: 1.5078 -> 1.5143
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Lorenzo Amatucci', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.398, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9677, 'skill_edge': -0.0339, 'height_edge': 0.012, 'attacker_skill': 0.4716, 'defender_skill': 0.547, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Lorenzo Amatucci', 'market_value': 10300000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.547}], 'xg_override': 0.1074}
aerialWon: 0.9722 -> 0.9
totalShots: 1.526 -> 1.4767
shotOffTarget: 0.9683 -> 0.937
onTargetScoringAttempt: 0.5577 -> 0.5397
bigChanceMissed: 0.1939 -> 0.1876
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.85 (squad xG sum 1.0006, xG scale 1.8499, xA scale 1.8499, team xA 1.30 = 0.70 x lambda)scoreline_reset=true
team_lambda=1.851
squad_xg_sum=1.0006
squad_xa_sum=0.7036
team_expected_assists=1.3016
team_xa_to_xg_ratio=0.7032
expected_goals: 0.1074 -> 0.1987
expected_assists: 0.103 -> 0.1905
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 87.0)match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.1802
goal_rate=0.1318
scorer_weight=0.2295
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1735
assist_rate=0.0958
provider_weight=0.1815
-
Pol LozanoM7900.090.03247%10.56.749.531FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 0.9989, quality 0.472)market_value_eur=5800000
quality_factor=0.472
boost_factor=0.9989
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.8754
prior_reliability=0.0267
competition=La Liga
wonTackle: 1.1115 -> 1.1178
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Lorenzo Amatucci', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.408, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9822, 'skill_edge': -0.0281, 'height_edge': 0.016, 'attacker_skill': 0.4845, 'defender_skill': 0.547, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Lorenzo Amatucci', 'market_value': 10300000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.547}], 'xg_override': 0.0472}
aerialWon: 0.3301 -> 0.9
totalShots: 0.653 -> 0.6414
shotOffTarget: 0.4528 -> 0.4447
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.85 (squad xG sum 1.0006, xG scale 1.8499, xA scale 1.8499, team xA 1.30 = 0.70 x lambda)scoreline_reset=true
team_lambda=1.851
squad_xg_sum=1.0006
squad_xa_sum=0.7036
team_expected_assists=1.3016
team_xa_to_xg_ratio=0.7032
expected_goals: 0.0472 -> 0.0873
expected_assists: 0.0479 -> 0.0886
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0836
goal_rate=0.057
scorer_weight=0.0961
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0848
assist_rate=0.0542
provider_weight=0.0943
-
Roberto FernándezF8520.770.26200%21.46.762.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.0038, quality 0.641)market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.0038
reference_quality=0.505
history_matches=49
history_shrink=0.0926
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0116)blend_weight=0.0116
history_matches=49
season_overlap_discount=1.0
per90_to_match_factor=0.9448
prior_reliability=0.1933
competition=La Liga
fouls: 2.2257 -> 2.2112
totalOffside: 0.9712 -> 0.9599
goals: 0.3696 -> 0.3767
wasFouled: 1.1099 -> 1.1159
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'José María Giménez, Lucas Noubi', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.281, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.1195, 'skill_edge': 0.0753, 'height_edge': 0.006, 'attacker_skill': 0.6408, 'defender_skill': 0.4735, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'José María Giménez', 'market_value': 5800000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4955}, {'player': 'Lucas Noubi', 'market_value': 3100000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4515}], 'xg_override': 0.4184}
totalShots: 2.063 -> 2.3095
shotOffTarget: 1.233 -> 1.3803
onTargetScoringAttempt: 0.83 -> 0.9292
goals: 0.3767 -> 0.4217
expectedGoals: 0.3737 -> 0.4184
bigChanceMissed: 0.3407 -> 0.3814
expectedGoalsOnTarget: 0.2847 -> 0.3187
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.85 (squad xG sum 1.0006, xG scale 1.8499, xA scale 1.8499, team xA 1.30 = 0.70 x lambda)scoreline_reset=true
team_lambda=1.851
squad_xg_sum=1.0006
squad_xa_sum=0.7036
team_expected_assists=1.3016
team_xa_to_xg_ratio=0.7032
expected_goals: 0.4184 -> 0.774
expected_assists: 0.0403 -> 0.0745
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=2
goal_probability=0.5388
goal_rate=0.4217
scorer_weight=0.7794
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0718
assist_rate=0.0187
provider_weight=0.0596
-
Team totals21.85116.8
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Ángel FortuñoG4.4m10.9%Market-value substitute prior
Vanja DrkušićD19.9m41.2%Market-value substitute prior
Unai NúñezD13.6m21.7%Market-value substitute prior
Gabriel MoscardoM34.7m69.6%Market-value substitute prior
Rafael BauzàM22.0m69.2%Market-value substitute prior
Tyrhys DolanF25.7m34.2%Market-value substitute prior

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Leo RománG8500.00-n/a0.07.162.335XGBoost 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.0001, quality 0.507)market_value_eur=8700000
quality_factor=0.5071
boost_factor=1.0001
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': 'Roberto Fernández, Álex Calatrava', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.4025}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.13 (squad xG sum 0.7291, xG scale 1.5526, xA scale 1.5526, team xA 0.86 = 0.76 x lambda)scoreline_reset=true
team_lambda=1.132
squad_xg_sum=0.7291
squad_xa_sum=0.5542
team_expected_assists=0.8605
team_xa_to_xg_ratio=0.7602
shots_faced: 13.3 -> 17.6
expected_saves: 3.25 -> 4.31
high_pressure_saves: 1.12 -> 1.48
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.0
scorer_weight=0.0
squad_weight_total=1.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=0
assist_probability=0.0
provider_weight=0.0
squad_weight_total=0.8384
-
Ximo NavarroD7800.050.02165%00.36.739.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.9922, quality 0.437)market_value_eur=95000
quality_factor=0.4374
boost_factor=0.9922
reference_quality=0.505
history_matches=8
history_shrink=0.3846
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Edu Expósito', '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.13 (squad xG sum 0.7291, xG scale 1.5526, xA scale 1.5526, team xA 0.86 = 0.76 x lambda)scoreline_reset=true
team_lambda=1.132
squad_xg_sum=0.7291
squad_xa_sum=0.5542
team_expected_assists=0.8605
team_xa_to_xg_ratio=0.7602
expected_goals: 0.0333 -> 0.0517
expected_assists: 0.0126 -> 0.0196
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.0504
goal_rate=0.0
scorer_weight=0.0414
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0194
assist_rate=0.0
provider_weight=0.0157
-
Giacomo QuagliataD8100.040.02131%10.46.746.414XGBoost 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.9946, quality 0.451)market_value_eur=4099999
quality_factor=0.4511
boost_factor=0.9946
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': 'Javier Hernández', '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.13 (squad xG sum 0.7291, xG scale 1.5526, xA scale 1.5526, team xA 0.86 = 0.76 x lambda)scoreline_reset=true
team_lambda=1.132
squad_xg_sum=0.7291
squad_xa_sum=0.5542
team_expected_assists=0.8605
team_xa_to_xg_ratio=0.7602
expected_goals: 0.027 -> 0.0419
expected_assists: 0.0863 -> 0.134
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 17 by projected rating, fifa_overall 73.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.041
goal_rate=0.0
scorer_weight=0.0335
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1254
assist_rate=0.0
provider_weight=0.1072
-
José María GiménezD8000.090.04143%10.46.945.727XGBoost 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.9983, quality 0.472)market_value_eur=5800000
quality_factor=0.472
boost_factor=0.9983
reference_quality=0.505
history_matches=25
history_shrink=0.1667
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Roberto Fernández', '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.13 (squad xG sum 0.7291, xG scale 1.5526, xA scale 1.5526, team xA 0.86 = 0.76 x lambda)scoreline_reset=true
team_lambda=1.132
squad_xg_sum=0.7291
squad_xa_sum=0.5542
team_expected_assists=0.8605
team_xa_to_xg_ratio=0.7602
expected_goals: 0.0607 -> 0.0942
expected_assists: 0.0182 -> 0.0283
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 82.0)match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0899
goal_rate=0.0
scorer_weight=0.0754
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0279
assist_rate=0.0416
provider_weight=0.0354
-
Lucas NoubiD9000.00-n/a10.06.825.813XGBoost 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.9901, quality 0.439)market_value_eur=3100000
quality_factor=0.4387
boost_factor=0.9901
reference_quality=0.505
history_matches=5
history_shrink=0.5
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Roberto Fernández', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.13 (squad xG sum 0.7291, xG scale 1.5526, xA scale 1.5526, team xA 0.86 = 0.76 x lambda)scoreline_reset=true
team_lambda=1.132
squad_xg_sum=0.7291
squad_xa_sum=0.5542
team_expected_assists=0.8605
team_xa_to_xg_ratio=0.7602
expected_assists: 0.0102 -> 0.0158
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.0
goal_rate=0.0
scorer_weight=0.001
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0157
assist_rate=0.0
provider_weight=0.0131
-
Mario SorianoM8000.090.05102%10.97.250.614XGBoost 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.9965, quality 0.470)market_value_eur=5600000
quality_factor=0.4695
boost_factor=0.9965
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': 'Quilindschy Hartman', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.363, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.8281, 'skill_edge': -0.0569, 'height_edge': -0.06, 'attacker_skill': 0.4695, 'defender_skill': 0.5961, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Quilindschy Hartman', 'market_value': 11600000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.5961}], 'xg_override': 0.0596}
aerialWon: 0.2269 -> 0.6
totalShots: 1.2861 -> 1.065
shotOffTarget: 1.0298 -> 0.8528
onTargetScoringAttempt: 0.2563 -> 0.2122
expectedGoalsOnTarget: 0.0992 -> 0.0821
goals: 0.0844 -> 0.0699
expectedGoals: 0.072 -> 0.0596
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.13 (squad xG sum 0.7291, xG scale 1.5526, xA scale 1.5526, team xA 0.86 = 0.76 x lambda)scoreline_reset=true
team_lambda=1.132
squad_xg_sum=0.7291
squad_xa_sum=0.5542
team_expected_assists=0.8605
team_xa_to_xg_ratio=0.7602
expected_goals: 0.0596 -> 0.0925
expected_assists: 0.1347 -> 0.209
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: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0884
goal_rate=0.0699
scorer_weight=0.1012
-
integer_assist_projectionTeam scoreline allocation: 1 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.1886
assist_rate=0.1063
provider_weight=0.1769
-
Lorenzo AmatucciM8800.070.02174%10.16.946.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.0024, quality 0.526)market_value_eur=10300000
quality_factor=0.526
boost_factor=1.0024
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': 'Álex Calatrava', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.442, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0323, 'skill_edge': 0.0339, 'height_edge': -0.012, 'attacker_skill': 0.547, 'defender_skill': 0.4716, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Álex Calatrava', 'market_value': 4900000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4716}], 'xg_override': 0.0435}
aerialWon: 1.2176 -> 0.8
totalShots: 0.5222 -> 0.5391
shotOffTarget: 0.3783 -> 0.3905
bigChanceMissed: 0.2213 -> 0.2284
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.13 (squad xG sum 0.7291, xG scale 1.5526, xA scale 1.5526, team xA 0.86 = 0.76 x lambda)scoreline_reset=true
team_lambda=1.132
squad_xg_sum=0.7291
squad_xa_sum=0.5542
team_expected_assists=0.8605
team_xa_to_xg_ratio=0.7602
expected_goals: 0.0435 -> 0.0675
expected_assists: 0.0344 -> 0.0534
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 73.0)match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0653
goal_rate=0.0509
scorer_weight=0.0728
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.052
assist_rate=0.0463
provider_weight=0.0609
-
Riki RodríguezM6500.090.02511%10.26.735.113XGBoost M_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 0.9916, quality 0.437)market_value_eur=1400000
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': 'Álex Calatrava, Pol Lozano', 'matchup_zone': 'Attacking Mid vs Double Pivot — Tight Space Battle', 'duel_win_rate': 0.22, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 0.9702, 'skill_edge': -0.0183, 'height_edge': -0.002, 'attacker_skill': 0.4374, 'defender_skill': 0.478, 'attacker_role': 'CAM', 'attacker_mv_price_index': 0.95, 'defender_adjusted_parts': [{'player': 'Álex Calatrava', 'market_value': 4900000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4716}, {'player': 'Pol Lozano', 'market_value': 5800000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4845}], 'xg_override': 0.0591}
aerialWon: 0.1932 -> 0.9
totalShots: 0.7408 -> 0.7187
shotOffTarget: 0.5525 -> 0.536
onTargetScoringAttempt: 0.1882 -> 0.1826
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.13 (squad xG sum 0.7291, xG scale 1.5526, xA scale 1.5526, team xA 0.86 = 0.76 x lambda)scoreline_reset=true
team_lambda=1.132
squad_xg_sum=0.7291
squad_xa_sum=0.5542
team_expected_assists=0.8605
team_xa_to_xg_ratio=0.7602
expected_goals: 0.0591 -> 0.0918
expected_assists: 0.0311 -> 0.0483
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_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.0877
goal_rate=0.0604
scorer_weight=0.0929
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0472
assist_rate=0.0504
provider_weight=0.0598
-
Diego VillaresM6700.110.04196%10.36.931.713XGBoost 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.9908, quality 0.437)market_value_eur=1000000
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=true
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Álex Calatrava', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.449, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0421, 'skill_edge': -0.0154, 'height_edge': 0.044, 'attacker_skill': 0.4374, 'defender_skill': 0.4716, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Álex Calatrava', 'market_value': 4900000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4716}], 'xg_override': 0.0684}
aerialWon: 0.2783 -> 1.2
totalShots: 0.7815 -> 0.8144
bigChanceMissed: 0.5753 -> 0.5995
shotOffTarget: 0.5603 -> 0.5839
onTargetScoringAttempt: 0.2212 -> 0.2305
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.13 (squad xG sum 0.7291, xG scale 1.5526, xA scale 1.5526, team xA 0.86 = 0.76 x lambda)scoreline_reset=true
team_lambda=1.132
squad_xg_sum=0.7291
squad_xa_sum=0.5542
team_expected_assists=0.8605
team_xa_to_xg_ratio=0.7602
expected_goals: 0.0684 -> 0.1062
expected_assists: 0.0441 -> 0.0685
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_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.1008
goal_rate=0.068
scorer_weight=0.1058
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0662
assist_rate=0.0557
provider_weight=0.0769
-
Marc CasadóM7000.090.02259%00.16.932.627XGBoost 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.0032, quality 0.574)market_value_eur=14500000
quality_factor=0.5737
boost_factor=1.0032
reference_quality=0.505
history_matches=27
history_shrink=0.1562
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Roger Hinojo', 'matchup_zone': 'Right Wing vs Left Back — Flank Battle', 'duel_win_rate': 0.501, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0314, 'skill_edge': 0.0534, 'height_edge': -0.032, 'attacker_skill': 0.5737, 'defender_skill': 0.4551, 'attacker_role': 'RW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Roger Hinojo', 'market_value': 3100000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.4551}], 'xg_override': 0.0566}
aerialWon: 0.4609 -> 0.8
totalShots: 0.4683 -> 0.483
shotOffTarget: 0.3354 -> 0.3459
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.13 (squad xG sum 0.7291, xG scale 1.5526, xA scale 1.5526, team xA 0.86 = 0.76 x lambda)scoreline_reset=true
team_lambda=1.132
squad_xg_sum=0.7291
squad_xa_sum=0.5542
team_expected_assists=0.8605
team_xa_to_xg_ratio=0.7602
expected_goals: 0.0566 -> 0.0879
expected_assists: 0.0405 -> 0.0629
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.0841
goal_rate=0.0724
scorer_weight=0.1009
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.061
assist_rate=0.0548
provider_weight=0.0728
-
Bil NsongoF7110.330.11203%21.56.748.915XGBoost 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.9961, quality 0.466)market_value_eur=5300000
quality_factor=0.4659
boost_factor=0.9961
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': 'Leandro Cabrera, Clemens Riedel', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.183, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 0.9745, 'skill_edge': 0.0067, 'height_edge': -0.024, 'attacker_skill': 0.4659, 'defender_skill': 0.451, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Leandro Cabrera', 'market_value': 930000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'Clemens Riedel', 'market_value': 3900000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4646}], 'xg_override': 0.2134}
totalShots: 1.8388 -> 1.7919
shotOffTarget: 1.2445 -> 1.2128
onTargetScoringAttempt: 0.5942 -> 0.579
goals: 0.2227 -> 0.217
expectedGoals: 0.219 -> 0.2134
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.13 (squad xG sum 0.7291, xG scale 1.5526, xA scale 1.5526, team xA 0.86 = 0.76 x lambda)scoreline_reset=true
team_lambda=1.132
squad_xg_sum=0.7291
squad_xa_sum=0.5542
team_expected_assists=0.8605
team_xa_to_xg_ratio=0.7602
expected_goals: 0.2134 -> 0.3315
expected_assists: 0.0449 -> 0.0697
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=1
goal_probability=0.2822
goal_rate=0.217
scorer_weight=0.336
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.0
provider_weight=0.0558
-
Team totals11.13116.9
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Álvaro FerlloG4.4m10.9%Market-value substitute prior
Bright EdeD13.7m30.6%Market-value substitute prior
Adrià AltimiraD13.6m29.9%Market-value substitute prior
AngeliñoM22.0m50.0%Market-value substitute prior
Noé CarrilloM22.0m49.9%Market-value substitute prior
Yeremay HernándezF26.2m59.9%Market-value substitute prior
Antagonist / tactical summary
Midfield is evenly contested — Urko González vs Marc Casadó will be the pivotal duel. Total antagonist xG — Home: 0.80, Away: 0.50. 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.0% / 50.0%, dominance ratio 0.50, key duel: Urko González vs Marc Casadó
Javier Hernández xG 0.11Edu Expósito xG 0.07Urko González xG 0.05Mario Soriano xG 0.06Marc Casadó xG 0.06Riki Rodríguez xG 0.06

Summary

Antagonist matchup analysis for Espanyol vs Deportivo. Most likely scoreline: 2-1. Lambdas derived from 6 home and 6 away individual player duels. Head-to-head: Espanyol 4W-4D-2L vs Deportivo 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 — Urko González vs Marc Casadó will be the pivotal duel. Total antagonist xG — Home: 0.80, Away: 0.50. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.

Arsenal vs Hull

Premier League · 20261107 · 4-2-3-1 vs 5-4-1
Predicted 1-0Winner: ArsenalWinning H 1-0 (12.0%)Winning A 0-1 (5.0%)Confidence 0.72λ home/away 1.98 / 0.82Most-likely P 12.0%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset Tracing
Antagonist + XGBoost match analysis for Arsenal vs Hull. 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 5-4-1 (duel lambdas: Home 2.172, Away 1.062). Final calibrated Poisson lambdas: Home 1.976, Away 0.820 (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) 2.17 / 1.06 Final λ (H/A) 1.98 / 0.82
FBref Team Priors: Arsenal (Gls/90: 2.0, GA/90: 2.0 → E[λ]: 2.069) vs Hull City (Gls/90: 1.5, GA/90: 1.5 → 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

MetricArsenalHull
League position2.0010.00
Points per game2.081.28
Attack index1.070.91
Defense (concede) index0.880.78
Form multiplier1.040.96
Standing λ multiplier0.980.87

Lambda decomposition (how the goal rates were built)

StageArsenal λHull λ
FBref Squad Prior E[λ] (weight 0.192)2.0692.069
Pre-mismatch2.2811.009
Pre-calibration (Micro-duels)2.1721.062
Final λ1.9760.820
competition calibration scale 0.85competition observed total goals 2.781quality gap applied Truemismatch score pressure applied Truecompetitive underdog floor applied Falsestage discount 1.0

Scoreline distribution & markets

Top 5 scorelinesP
1-012.0%
2-011.9%
1-110.0%
2-19.8%
3-07.8%
Home win64.4%
Draw20.9%
Away win14.7%
Over 2.553.0%
BTTS yes48.3%
Pregame fair line — favorite Arsenal (64.4%), fair total 2.80, fair spread 1.16

Projected players vs season baseline

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

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
David RayaG9000.00-n/a0.07.156.632FBref 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.0070, quality 0.739)market_value_eur=33000000
quality_factor=0.7389
boost_factor=1.007
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
saves: 2.9289 -> 2.9079
wasFouled: 0.7105 -> 0.7043
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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, Tim Iroegbunam', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.0616}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.98 (squad xG sum 1.4874, xG scale 1.3285, xA scale 1.2370, team xA 1.58 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.976
squad_xg_sum=1.4874
squad_xa_sum=1.2779
team_expected_assists=1.5808
team_xa_to_xg_ratio=0.8
shots_faced: 10.1 -> 7.8
expected_saves: 2.47 -> 1.91
high_pressure_saves: 0.85 -> 0.66
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 88.0)match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 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=2.0855
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.5615
-
William SalibaD9000.030.03ok00.17.053.321XGBoost 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.0161, quality 0.891)market_value_eur=94000000
quality_factor=0.891
boost_factor=1.0161
reference_quality=0.505
history_matches=31
history_shrink=0.1389
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Oliver McBurnie', '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.98 (squad xG sum 1.4874, xG scale 1.3285, xA scale 1.2370, team xA 1.58 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.976
squad_xg_sum=1.4874
squad_xa_sum=1.2779
team_expected_assists=1.5808
team_xa_to_xg_ratio=0.8
expected_goals: 0.0258 -> 0.0343
expected_assists: 0.0747 -> 0.0924
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 88.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.0337
goal_rate=0.0493
scorer_weight=0.0429
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0883
assist_rate=0.0
provider_weight=0.0739
-
Ben WhiteD7500.030.01183%00.16.936.227FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0142, quality 0.732)market_value_eur=32000000
quality_factor=0.732
boost_factor=1.0142
reference_quality=0.505
history_matches=19
history_shrink=0.2083
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0181)blend_weight=0.0181
history_matches=19
season_overlap_discount=1.0
per90_to_match_factor=0.8366
prior_reliability=0.1333
competition=Premier League
totalCross: 1.7465 -> 1.7603
wasFouled: 0.9206 -> 0.9115
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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': 'Right Mid vs Left Back — Wide Channel'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.98 (squad xG sum 1.4874, xG scale 1.3285, xA scale 1.2370, team xA 1.58 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.976
squad_xg_sum=1.4874
squad_xa_sum=1.2779
team_expected_assists=1.5808
team_xa_to_xg_ratio=0.8
expected_goals: 0.0206 -> 0.0274
expected_assists: 0.1179 -> 0.1458
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 86.0)match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.027
goal_rate=0.0
scorer_weight=0.0219
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1357
assist_rate=0.363
provider_weight=0.1823
-
Gabriel MagalhãesD9000.270.10186%10.87.159.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.0122, quality 0.871)market_value_eur=70000000
quality_factor=0.8707
boost_factor=1.0122
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.9997
prior_reliability=0.1333
competition=Premier League
wonTackle: 0.8153 -> 0.8075
fouls: 0.82 -> 0.8265
onTargetScoringAttempt: 0.5264 -> 0.5213
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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', '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.98 (squad xG sum 1.4874, xG scale 1.3285, xA scale 1.2370, team xA 1.58 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.976
squad_xg_sum=1.4874
squad_xa_sum=1.2779
team_expected_assists=1.5808
team_xa_to_xg_ratio=0.8
expected_goals: 0.2057 -> 0.2733
expected_assists: 0.0365 -> 0.0452
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_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.2391
goal_rate=0.1574
scorer_weight=0.2217
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0442
assist_rate=0.0221
provider_weight=0.0377
-
Myles Lewis-SkellyD7400.030.01153%10.26.832.636FBref 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.8218
prior_reliability=0.12
competition=Premier League
fouls: 1.4186 -> 1.4065
wonTackle: 0.7693 -> 0.7596
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Regan Slater', 'matchup_zone': 'Left Mid vs Right Back — Wide Channel'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.98 (squad xG sum 1.4874, xG scale 1.3285, xA scale 1.2370, team xA 1.58 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.976
squad_xg_sum=1.4874
squad_xa_sum=1.2779
team_expected_assists=1.5808
team_xa_to_xg_ratio=0.8
expected_goals: 0.0213 -> 0.0283
expected_assists: 0.0944 -> 0.1168
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.0279
goal_rate=0.0
scorer_weight=0.0226
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.0
provider_weight=0.0934
-
Declan RiceM8600.110.04166%10.67.359.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 1.0120, quality 0.897)market_value_eur=114000000
quality_factor=0.8967
boost_factor=1.012
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.9503
prior_reliability=0.1133
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': 'John Egan', 'matchup_zone': 'LW vs CB', 'duel_win_rate': 0.639, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.3214, 'skill_edge': 0.2067, 'height_edge': 0.012, 'attacker_skill': 0.8967, 'defender_skill': 0.4374, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'John Egan', 'market_value': 1500000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.0834}
totalShots: 0.9942 -> 1.3137
shotOffTarget: 0.7469 -> 0.987
aerialWon: 0.988 -> 1.2
onTargetScoringAttempt: 0.2444 -> 0.323
goals: 0.0853 -> 0.1127
expectedGoals: 0.0631 -> 0.0834
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.98 (squad xG sum 1.4874, xG scale 1.3285, xA scale 1.2370, team xA 1.58 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.976
squad_xg_sum=1.4874
squad_xa_sum=1.2779
team_expected_assists=1.5808
team_xa_to_xg_ratio=0.8
expected_goals: 0.0834 -> 0.1108
expected_assists: 0.2143 -> 0.265
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 88.0)match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1049
goal_rate=0.1127
scorer_weight=0.1351
-
integer_assist_projectionTeam scoreline allocation: 1 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.2328
assist_rate=0.2552
provider_weight=0.306
-
Martin ØdegaardM8300.350.10253%20.77.351.926FBref 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.0155, quality 0.888)market_value_eur=88000000
quality_factor=0.8879
boost_factor=1.0155
reference_quality=0.505
history_matches=32
history_shrink=0.1351
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0094)blend_weight=0.0094
history_matches=32
season_overlap_discount=1.0
per90_to_match_factor=0.9177
prior_reliability=0.1067
competition=Premier League
wonTackle: 0.3892 -> 0.4017
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 Egan', 'matchup_zone': 'RW vs CB', 'duel_win_rate': 0.595, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.2568, 'skill_edge': 0.2027, 'height_edge': -0.028, 'attacker_skill': 0.8879, 'defender_skill': 0.4374, 'attacker_role': 'RW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'John Egan', 'market_value': 1500000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.2619}
aerialWon: 0.0502 -> 1.0
totalShots: 1.9598 -> 2.4631
shotOffTarget: 1.1923 -> 1.4985
onTargetScoringAttempt: 0.7627 -> 0.9586
goals: 0.2787 -> 0.3503
expectedGoals: 0.2084 -> 0.2619
bigChanceMissed: 0.1196 -> 0.1503
expectedGoalsOnTarget: 0.0911 -> 0.1145
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.98 (squad xG sum 1.4874, xG scale 1.3285, xA scale 1.2370, team xA 1.58 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.976
squad_xg_sum=1.4874
squad_xa_sum=1.2779
team_expected_assists=1.5808
team_xa_to_xg_ratio=0.8
expected_goals: 0.2619 -> 0.3479
expected_assists: 0.2063 -> 0.2552
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 86.0)match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.2938
goal_rate=0.3503
scorer_weight=0.4349
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.2252
assist_rate=0.2328
provider_weight=0.2816
-
Eberechi EzeM7100.180.08127%21.16.849.433FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0121, quality 0.859)market_value_eur=63000000
quality_factor=0.8589
boost_factor=1.0121
reference_quality=0.505
history_matches=39
history_shrink=0.1136
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0034)blend_weight=0.0034
history_matches=39
season_overlap_discount=1.0
per90_to_match_factor=0.794
prior_reliability=0.0467
competition=Premier League
wasFouled: 1.5846 -> 1.5909
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 Crooks', 'matchup_zone': 'CAM vs CM', 'duel_win_rate': 0.552, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.1946, 'skill_edge': 0.1924, 'height_edge': -0.06, 'attacker_skill': 0.865, 'defender_skill': 0.4374, 'attacker_role': 'CAM', 'attacker_mv_price_index': 0.95, 'defender_adjusted_parts': [{'player': 'Matt Crooks', 'market_value': 1000000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.4374}], 'xg_override': 0.1364}
aerialWon: 0.3971 -> 1.0
totalShots: 1.5033 -> 1.7958
shotOffTarget: 1.0325 -> 1.2334
onTargetScoringAttempt: 0.4703 -> 0.5618
expectedGoalsOnTarget: 0.2375 -> 0.2837
goals: 0.1165 -> 0.1392
expectedGoals: 0.1142 -> 0.1364
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.98 (squad xG sum 1.4874, xG scale 1.3285, xA scale 1.2370, team xA 1.58 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.976
squad_xg_sum=1.4874
squad_xa_sum=1.2779
team_expected_assists=1.5808
team_xa_to_xg_ratio=0.8
expected_goals: 0.1364 -> 0.1812
expected_assists: 0.077 -> 0.0952
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 84.0)match_squad_rank=11
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1657
goal_rate=0.1392
scorer_weight=0.1839
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0908
assist_rate=0.0703
provider_weight=0.0902
-
Bruno GuimarãesM7900.110.12ok10.87.152.824FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0140, quality 0.879)market_value_eur=77000000
quality_factor=0.8792
boost_factor=1.014
reference_quality=0.505
history_matches=35
history_shrink=0.125
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0011)blend_weight=0.0011
history_matches=35
season_overlap_discount=1.0
per90_to_match_factor=0.8807
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 Crooks, Tim Iroegbunam', '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.98 (squad xG sum 1.4874, xG scale 1.3285, xA scale 1.2370, team xA 1.58 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.976
squad_xg_sum=1.4874
squad_xa_sum=1.2779
team_expected_assists=1.5808
team_xa_to_xg_ratio=0.8
expected_goals: 0.0808 -> 0.1073
expected_assists: 0.1143 -> 0.1414
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 86.0)match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1017
goal_rate=0.0935
scorer_weight=0.1177
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1319
assist_rate=0.0989
provider_weight=0.1282
-
Mikel MerinoM7700.200.1089%20.86.841.218FBref 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.0078, quality 0.686)market_value_eur=26000000
quality_factor=0.6858
boost_factor=1.0078
reference_quality=0.505
history_matches=30
history_shrink=0.1429
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0025)blend_weight=0.0025
history_matches=30
season_overlap_discount=1.0
per90_to_match_factor=0.8559
prior_reliability=0.0267
competition=Premier League
fouls: 1.3666 -> 1.3791
wasFouled: 1.5574 -> 1.5641
totalShots: 1.7345 -> 1.7411
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Regan Slater', '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.98 (squad xG sum 1.4874, xG scale 1.3285, xA scale 1.2370, team xA 1.58 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.976
squad_xg_sum=1.4874
squad_xa_sum=1.2779
team_expected_assists=1.5808
team_xa_to_xg_ratio=0.8
expected_goals: 0.1488 -> 0.1977
expected_assists: 0.0665 -> 0.0823
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 83.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.1794
goal_rate=0.1301
scorer_weight=0.1791
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.079
assist_rate=0.0526
provider_weight=0.0725
-
Bukayo SakaF8510.510.2978%31.97.259.332FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0137, quality 0.897)market_value_eur=115000000
quality_factor=0.8968
boost_factor=1.0137
reference_quality=0.505
history_matches=38
history_shrink=0.1163
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0086)blend_weight=0.0086
history_matches=38
season_overlap_discount=1.0
per90_to_match_factor=0.9417
prior_reliability=0.1133
competition=Premier League
wasFouled: 2.5768 -> 2.5879
totalCross: 3.9217 -> 3.9308
fouls: 1.0385 -> 1.0296
goals: 0.3271 -> 0.3338
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 Egan, Semi Ajayi', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.363, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.2392, 'skill_edge': 0.2067, 'height_edge': -0.044, 'attacker_skill': 0.8968, 'defender_skill': 0.4374, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'John Egan', 'market_value': 1500000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'Semi Ajayi', 'market_value': 930000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.3839}
totalShots: 2.369 -> 2.9357
shotOffTarget: 1.3394 -> 1.6598
onTargetScoringAttempt: 1.0272 -> 1.2729
bigChanceMissed: 0.4955 -> 0.614
expectedGoalsOnTarget: 0.4303 -> 0.5332
goals: 0.3338 -> 0.4136
expectedGoals: 0.3098 -> 0.3839
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.98 (squad xG sum 1.4874, xG scale 1.3285, xA scale 1.2370, team xA 1.58 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.976
squad_xg_sum=1.4874
squad_xa_sum=1.2779
team_expected_assists=1.5808
team_xa_to_xg_ratio=0.8
expected_goals: 0.3839 -> 0.5099
expected_assists: 0.1994 -> 0.2467
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 87.0)match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.3994
goal_rate=0.4136
scorer_weight=0.5448
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.2186
assist_rate=0.0961
provider_weight=0.1974
-
Team totals11.98157.0
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Illan MeslierG4.5m11.5%Market-value substitute prior
Jurriën TimberD15.3m37.7%Market-value substitute prior
Riccardo CalafioriD15.2m25.1%Market-value substitute prior
Martín ZubimendiM18.9m72.7%Market-value substitute prior
Max DowmanM23.5m57.0%Market-value substitute prior
Kai HavertzF26.9m36.7%Market-value substitute prior

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Konstantinos TzolakisG9000.00-n/a0.06.944.814XGBoost 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.0145, quality 0.641)market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.0145
reference_quality=0.505
history_matches=9
history_shrink=0.3571
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Bukayo Saka, Martin Ødegaard', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 2.1716}
-
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.82 (squad xG sum 0.7338, xG scale 1.1175, xA scale 1.3349, team xA 0.53 = 0.65 x lambda)scoreline_reset=true
team_lambda=0.82
squad_xg_sum=0.7338
squad_xa_sum=0.3993
team_expected_assists=0.533
team_xa_to_xg_ratio=0.65
shots_faced: 20.6 -> 18.8
expected_saves: 5.04 -> 4.6
high_pressure_saves: 1.74 -> 1.58
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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=0.8559
-
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.6106
-
Lewie CoyleD7900.030.0294%00.26.641.614FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9928, quality 0.437)market_value_eur=2700000
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.0201)blend_weight=0.0201
history_matches=9
season_overlap_discount=1.0
per90_to_match_factor=0.8802
prior_reliability=0.0867
competition=Premier League
wasFouled: 0.7366 -> 0.7763
fouls: 0.234 -> 0.2565
totalCross: 2.3774 -> 2.3568
totalShots: 0.4645 -> 0.4552
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Martin Ødegaard, Myles Lewis-Skelly', 'matchup_zone': 'LWB vs RW + RB'}
-
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.82 (squad xG sum 0.7338, xG scale 1.1175, xA scale 1.3349, team xA 0.53 = 0.65 x lambda)scoreline_reset=true
team_lambda=0.82
squad_xg_sum=0.7338
squad_xa_sum=0.3993
team_expected_assists=0.533
team_xa_to_xg_ratio=0.65
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 16 by projected rating, fifa_overall 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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0339
goal_rate=0.0
scorer_weight=0.0276
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0132
assist_rate=0.0
provider_weight=0.0111
-
John EganD8200.050.02145%00.46.744.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.9928, quality 0.437)market_value_eur=1500000
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.0309)blend_weight=0.0309
history_matches=9
season_overlap_discount=1.0
per90_to_match_factor=0.909
prior_reliability=0.1333
competition=Premier League
totalShots: 0.4993 -> 0.4838
wonTackle: 0.8202 -> 0.8089
fouls: 0.2451 -> 0.2375
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': 'Declan Rice', '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.82 (squad xG sum 0.7338, xG scale 1.1175, xA scale 1.3349, team xA 0.53 = 0.65 x lambda)scoreline_reset=true
team_lambda=0.82
squad_xg_sum=0.7338
squad_xa_sum=0.3993
team_expected_assists=0.533
team_xa_to_xg_ratio=0.65
expected_assists: 0.0207 -> 0.0276
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 72.0)match_squad_rank=12
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0446
goal_rate=0.0
scorer_weight=0.0365
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0272
assist_rate=0.0
provider_weight=0.0221
-
Semi AjayiD8900.040.05ok00.26.843.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 0.9928, quality 0.437)market_value_eur=930000
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.0263)blend_weight=0.0263
history_matches=9
season_overlap_discount=1.0
per90_to_match_factor=0.9874
prior_reliability=0.1133
competition=Premier League
wonTackle: 1.2722 -> 1.254
goals: 0.0528 -> 0.0667
onTargetScoringAttempt: 0.0528 -> 0.0667
wasFouled: 0.0621 -> 0.0757
fouls: 0.4317 -> 0.4203
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Bukayo Saka', 'matchup_zone': '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.82 (squad xG sum 0.7338, xG scale 1.1175, xA scale 1.3349, team xA 0.53 = 0.65 x lambda)scoreline_reset=true
team_lambda=0.82
squad_xg_sum=0.7338
squad_xa_sum=0.3993
team_expected_assists=0.533
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 70.0)match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.043
goal_rate=0.0667
scorer_weight=0.055
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0079
assist_rate=0.0
provider_weight=0.0071
-
Nobel MendyD7700.080.04104%10.36.848.929FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0058, quality 0.641)market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.0058
reference_quality=0.505
history_matches=30
history_shrink=0.1429
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0081)blend_weight=0.0081
history_matches=30
season_overlap_discount=1.0
per90_to_match_factor=0.8589
prior_reliability=0.0867
competition=Premier League
onTargetScoringAttempt: 0.2585 -> 0.2667
interceptionWon: 0.9919 -> 0.9839
fouls: 1.5087 -> 1.5019
totalShots: 0.4929 -> 0.4992
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Bukayo Saka', 'matchup_zone': 'Shape fallback'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 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.82 (squad xG sum 0.7338, xG scale 1.1175, xA scale 1.3349, team xA 0.53 = 0.65 x lambda)scoreline_reset=true
team_lambda=0.82
squad_xg_sum=0.7338
squad_xa_sum=0.3993
team_expected_assists=0.533
team_xa_to_xg_ratio=0.65
expected_goals: 0.071 -> 0.0793
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 75.0)match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0762
goal_rate=0.0999
scorer_weight=0.0982
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0096
assist_rate=0.0
provider_weight=0.0084
-
Ryan GilesD8300.000.00ok00.16.642.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.0074, quality 0.574)market_value_eur=14500000
quality_factor=0.5737
boost_factor=1.0074
reference_quality=0.505
history_matches=9
history_shrink=0.3571
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0294)blend_weight=0.0294
history_matches=9
season_overlap_discount=1.0
per90_to_match_factor=0.9237
prior_reliability=0.1267
competition=Premier League
totalCross: 6.7403 -> 6.7279
fouls: 0.3353 -> 0.3254
interceptionWon: 0.7394 -> 0.732
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Declan Rice, Ben White', 'matchup_zone': 'RWB vs LW + LB'}
-
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.82 (squad xG sum 0.7338, xG scale 1.1175, xA scale 1.3349, team xA 0.53 = 0.65 x lambda)scoreline_reset=true
team_lambda=0.82
squad_xg_sum=0.7338
squad_xa_sum=0.3993
team_expected_assists=0.533
team_xa_to_xg_ratio=0.65
expected_assists: 0.0547 -> 0.073
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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0016
goal_rate=0.0
scorer_weight=0.0016
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0704
assist_rate=0.1052
provider_weight=0.0912
-
Regan SlaterM8500.060.02154%10.66.843.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.0009, quality 0.513)market_value_eur=9200000
quality_factor=0.513
boost_factor=1.0009
reference_quality=0.505
history_matches=9
history_shrink=0.3571
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0309)blend_weight=0.0309
history_matches=9
season_overlap_discount=1.0
per90_to_match_factor=0.9434
prior_reliability=0.1333
competition=Premier League
totalShots: 1.0386 -> 1.0065
fouls: 0.6782 -> 0.701
interceptionWon: 0.4561 -> 0.442
goalAssist: 0.0794 -> 0.0915
onTargetScoringAttempt: 0.3058 -> 0.2963
totalCross: 1.1502 -> 1.1438
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': 'Myles Lewis-Skelly', 'matchup_zone': 'Left Mid vs Right Back — Wide Channel', 'duel_win_rate': 0.275, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.7273, 'skill_edge': -0.1655, 'height_edge': -0.02, 'attacker_skill': 0.5251, 'defender_skill': 0.8928, 'attacker_role': 'LM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Myles Lewis-Skelly', 'market_value': 69000000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.8928}], 'xg_override': 0.0521}
totalShots: 1.0291 -> 0.7485
shotOffTarget: 0.7328 -> 0.533
onTargetScoringAttempt: 0.2963 -> 0.2155
aerialWon: 0.9208 -> 0.9
expectedGoals: 0.0717 -> 0.0521
goals: 0.0699 -> 0.0508
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.82 (squad xG sum 0.7338, xG scale 1.1175, xA scale 1.3349, team xA 0.53 = 0.65 x lambda)scoreline_reset=true
team_lambda=0.82
squad_xg_sum=0.7338
squad_xa_sum=0.3993
team_expected_assists=0.533
team_xa_to_xg_ratio=0.65
expected_goals: 0.0521 -> 0.0582
expected_assists: 0.07 -> 0.0934
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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0565
goal_rate=0.0508
scorer_weight=0.0575
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0892
assist_rate=0.0915
provider_weight=0.1101
-
Elliot StroudM7200.050.00901%10.26.732.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 0.9998, quality 0.503)market_value_eur=8400000
quality_factor=0.5035
boost_factor=0.9998
reference_quality=0.505
history_matches=7
history_shrink=0.4167
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0253)blend_weight=0.0253
history_matches=7
season_overlap_discount=1.0
per90_to_match_factor=0.8026
prior_reliability=0.0933
competition=Premier League
totalCross: 0.4872 -> 0.5183
interceptionWon: 0.4733 -> 0.4903
wonTackle: 0.5923 -> 0.6063
wasFouled: 0.2047 -> 0.1995
onTargetScoringAttempt: 0.2013 -> 0.1962
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Ben White', 'matchup_zone': 'Right Mid vs Left Back — Wide Channel', 'duel_win_rate': 0.324, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.8002, 'skill_edge': -0.1319, 'height_edge': -0.004, 'attacker_skill': 0.5146, 'defender_skill': 0.8077, 'attacker_role': 'RM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Ben White', 'market_value': 32000000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.8077}], 'xg_override': 0.042}
aerialWon: 0.5216 -> 1.2
totalShots: 0.7192 -> 0.5755
shotOffTarget: 0.522 -> 0.4177
onTargetScoringAttempt: 0.1962 -> 0.157
goals: 0.0592 -> 0.0474
expectedGoals: 0.0525 -> 0.042
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.82 (squad xG sum 0.7338, xG scale 1.1175, xA scale 1.3349, team xA 0.53 = 0.65 x lambda)scoreline_reset=true
team_lambda=0.82
squad_xg_sum=0.7338
squad_xa_sum=0.3993
team_expected_assists=0.533
team_xa_to_xg_ratio=0.65
expected_assists: 0.0433 -> 0.0578
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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0458
goal_rate=0.0474
scorer_weight=0.0497
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0562
assist_rate=0.0646
provider_weight=0.071
-
Matt CrooksM7200.04-n/a00.06.732.812FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 0.9908, quality 0.437)market_value_eur=1000000
quality_factor=0.4374
boost_factor=0.9908
reference_quality=0.505
history_matches=6
history_shrink=0.4545
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0197)blend_weight=0.0197
history_matches=6
season_overlap_discount=1.0
per90_to_match_factor=0.7976
prior_reliability=0.0667
competition=Premier League
wonTackle: 1.2986 -> 1.3202
totalShots: 0.5707 -> 0.5595
fouls: 2.0268 -> 2.0183
wasFouled: 0.4066 -> 0.4143
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Bruno Guimarães', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.291, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.7657, 'skill_edge': -0.2034, 'height_edge': 0.044, 'attacker_skill': 0.4374, 'defender_skill': 0.8893, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Bruno Guimarães', 'market_value': 77000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8893}], 'xg_override': 0.0315}
aerialWon: 1.0767 -> 1.4
totalShots: 0.5673 -> 0.4344
shotOffTarget: 0.3986 -> 0.3052
onTargetScoringAttempt: 0.1687 -> 0.1292
goals: 0.0611 -> 0.0468
expectedGoals: 0.0411 -> 0.0315
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.82 (squad xG sum 0.7338, xG scale 1.1175, xA scale 1.3349, team xA 0.53 = 0.65 x lambda)scoreline_reset=true
team_lambda=0.82
squad_xg_sum=0.7338
squad_xa_sum=0.3993
team_expected_assists=0.533
team_xa_to_xg_ratio=0.65
expected_assists: 0.0265 -> 0.0354
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 71.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.0346
goal_rate=0.0468
scorer_weight=0.0418
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0348
assist_rate=0.052
provider_weight=0.0442
-
Tim IroegbunamM8100.080.03189%10.46.844.429XGBoost 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': 'Bruno Guimarães', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.321, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.8105, 'skill_edge': -0.1289, 'height_edge': 0.0, 'attacker_skill': 0.6029, 'defender_skill': 0.8893, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Bruno Guimarães', 'market_value': 77000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8893}], 'xg_override': 0.0747}
totalShots: 1.1492 -> 0.9314
shotOffTarget: 0.8265 -> 0.6699
onTargetScoringAttempt: 0.3227 -> 0.2615
aerialWon: 1.1209 -> 1.1
expectedGoals: 0.0922 -> 0.0747
goals: 0.0673 -> 0.0545
expectedGoalsOnTarget: 0.0576 -> 0.0467
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.82 (squad xG sum 0.7338, xG scale 1.1175, xA scale 1.3349, team xA 0.53 = 0.65 x lambda)scoreline_reset=true
team_lambda=0.82
squad_xg_sum=0.7338
squad_xa_sum=0.3993
team_expected_assists=0.533
team_xa_to_xg_ratio=0.65
expected_goals: 0.0747 -> 0.0835
expected_assists: 0.0387 -> 0.0517
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 76.0)match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0801
goal_rate=0.0545
scorer_weight=0.07
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0504
assist_rate=0.0539
provider_weight=0.0606
-
Oliver McBurnieF8700.250.1657%20.96.844.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.9988, quality 0.494)market_value_eur=7600000
quality_factor=0.4939
boost_factor=0.9988
reference_quality=0.505
history_matches=9
history_shrink=0.3571
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0309)blend_weight=0.0309
history_matches=9
season_overlap_discount=1.0
per90_to_match_factor=0.9674
prior_reliability=0.1333
competition=Premier League
totalShots: 1.9287 -> 1.899
wasFouled: 1.6175 -> 1.6423
goals: 0.3555 -> 0.3445
goalAssist: 0.2815 -> 0.2728
interceptionWon: 0.2675 -> 0.2592
onTargetScoringAttempt: 0.7013 -> 0.7095
fouls: 1.2368 -> 1.2434
totalOffside: 0.195 -> 0.189
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'William Saliba, Gabriel Magalhães', '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.7145, 'skill_edge': -0.1802, 'height_edge': -0.014, 'attacker_skill': 0.4939, 'defender_skill': 0.8944, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'William Saliba', 'market_value': 94000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8981}, {'player': 'Gabriel Magalhães', 'market_value': 70000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8907}], 'xg_override': 0.2232}
totalShots: 1.9369 -> 1.3839
shotOffTarget: 1.2274 -> 0.877
onTargetScoringAttempt: 0.7095 -> 0.5069
goals: 0.3445 -> 0.2461
expectedGoals: 0.3124 -> 0.2232
expectedGoalsOnTarget: 0.238 -> 0.1701
bigChanceMissed: 0.2131 -> 0.1523
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.82 (squad xG sum 0.7338, xG scale 1.1175, xA scale 1.3349, team xA 0.53 = 0.65 x lambda)scoreline_reset=true
team_lambda=0.82
squad_xg_sum=0.7338
squad_xa_sum=0.3993
team_expected_assists=0.533
team_xa_to_xg_ratio=0.65
expected_goals: 0.2232 -> 0.2495
expected_assists: 0.0313 -> 0.0418
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 75.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.2208
goal_rate=0.2461
scorer_weight=0.2704
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0409
assist_rate=0.2728
provider_weight=0.0522
-
Team totals00.8286.7
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 MouzakitisM22.8m53.5%Market-value substitute prior
Brooke Norton-CuffyM22.6m52.5%Market-value substitute prior
Robinio VazF26.0m59.1%Market-value substitute prior
Antagonist / tactical summary
Home midfield dominates with ~53% possession expected (Declan Rice vs Tim Iroegbunam). Total antagonist xG — Home: 0.87, Away: 0.45. 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 53.3% / 46.7%, dominance ratio 0.62, key duel: Declan Rice vs Tim Iroegbunam
Declan Rice xG 0.08Eberechi Eze xG 0.14Martin Ødegaard xG 0.26Oliver McBurnie xG 0.22Regan Slater xG 0.05Elliot Stroud xG 0.04

Summary

Antagonist matchup analysis for Arsenal vs Hull. Most likely scoreline: 1-0. Lambdas derived from 4 home and 7 away individual player duels. Head-to-head: Arsenal 8W-2D-0L vs Hull over 10 meetings.
Tactical parity between 4-2-3-1 and 5-4-1. Match outcome driven primarily by individual player quality. Home midfield dominates with ~53% possession expected (Declan Rice vs Tim Iroegbunam). Total antagonist xG — Home: 0.87, Away: 0.45. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.

Forest vs Man City

Premier League · 20261107 · 3-4-2-1 vs 4-2-3-1
Predicted 0-1Winner: Man CityWinning H 1-0 (6.1%)Winning A 0-1 (10.3%)Confidence 0.69λ home/away 1.07 / 1.78Most-likely P 10.3%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset Tracing
Antagonist + XGBoost match analysis for Forest vs Man City. Player statistics regressed using position-specific XGBoost models (G, D, M, F) with 2026-2027 FBref priors. Micro-duels resolved across 3-4-2-1 vs 4-2-3-1 (duel lambdas: Home 1.242, Away 2.083). Final calibrated Poisson lambdas: Home 1.067, Away 1.780 (most likely score 0-1).
Home Starters 11/11 XGBoost (10 FBref) Away Starters 11/11 XGBoost (10 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.24 / 2.08 Final λ (H/A) 1.07 / 1.78
FBref Team Priors: Nottingham Forest (Gls/90: 1.0, GA/90: 1.0 → E[λ]: 2.069) vs Manchester City (Gls/90: 3.0, GA/90: 3.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

MetricForestMan City
League position19.001.00
Points per game0.941.94
Attack index0.821.21
Defense (concede) index0.881.04
Form multiplier0.951.05
Standing λ multiplier0.871.11

Lambda decomposition (how the goal rates were built)

StageForest λMan City λ
FBref Squad Prior E[λ] (weight 0.192)2.0692.069
Pre-mismatch1.2062.143
Pre-competitive-floor1.1712.364
Pre-calibration (Micro-duels)1.2422.083
Final λ1.0671.780
competition calibration scale 0.85competition observed total goals 2.781quality gap applied Truemismatch score pressure applied Truecompetitive underdog floor applied Falsestage discount 1.0

Scoreline distribution & markets

Top 5 scorelinesP
1-111.1%
0-110.3%
1-29.8%
0-29.2%
1-06.1%
Home win22.6%
Draw23.4%
Away win54.0%
Over 2.554.2%
BTTS yes54.6%
Pregame fair line — favorite Man City (54.0%), fair total 2.85, fair spread -0.71

Projected players vs season baseline

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

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Matz SelsG9000.00-n/a0.07.057.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=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.9972
prior_reliability=0.1333
competition=Premier League
saves: 2.8442 -> 2.836
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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.0832}
-
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.07 (squad xG sum 1.5371, xG scale 0.6942, xA scale 0.7186, team xA 0.69 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.067
squad_xg_sum=1.5371
squad_xa_sum=0.9652
team_expected_assists=0.6935
team_xa_to_xg_ratio=0.65
shots_faced: 19.8 -> 16.9
expected_saves: 4.85 -> 4.13
high_pressure_saves: 1.67 -> 1.42
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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.0916
-
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.6575
-
MurilloD8800.080.0633%10.86.956.026FBref 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.0121, quality 0.821)market_value_eur=49000000
quality_factor=0.8206
boost_factor=1.0121
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.9806
prior_reliability=0.1333
competition=Premier League
interceptionWon: 1.333 -> 1.3236
totalShots: 1.3045 -> 1.2955
wonTackle: 1.1854 -> 1.1777
fouls: 1.14 -> 1.1328
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Enzo Fernández', '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.07 (squad xG sum 1.5371, xG scale 0.6942, xA scale 0.7186, team xA 0.69 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.067
squad_xg_sum=1.5371
squad_xa_sum=0.9652
team_expected_assists=0.6935
team_xa_to_xg_ratio=0.65
expected_goals: 0.1121 -> 0.0778
expected_assists: 0.0474 -> 0.0341
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 82.0)match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0749
goal_rate=0.0028
scorer_weight=0.0622
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0335
assist_rate=0.0668
provider_weight=0.0409
-
Neco WilliamsD8900.070.06ok11.26.859.339FBref 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.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=0.9864
prior_reliability=0.1333
competition=Premier League
wonTackle: 1.2558 -> 1.2745
totalCross: 6.1286 -> 6.1101
interceptionWon: 1.0569 -> 1.0479
totalShots: 1.1601 -> 1.1544
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 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.07 (squad xG sum 1.5371, xG scale 0.6942, xA scale 0.7186, team xA 0.69 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.067
squad_xg_sum=1.5371
squad_xa_sum=0.9652
team_expected_assists=0.6935
team_xa_to_xg_ratio=0.65
expected_goals: 0.1001 -> 0.0695
expected_assists: 0.128 -> 0.092
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 80.0)match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0671
goal_rate=0.1548
scorer_weight=0.0869
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0879
assist_rate=0.0269
provider_weight=0.0736
-
Ola AinaD7800.010.0134%10.56.851.532FBref 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.594)market_value_eur=16399999
quality_factor=0.5942
boost_factor=1.0046
reference_quality=0.505
history_matches=24
history_shrink=0.1724
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0134)blend_weight=0.0134
history_matches=24
season_overlap_discount=1.0
per90_to_match_factor=0.8722
prior_reliability=0.12
competition=Premier League
totalCross: 1.7844 -> 1.7995
wonTackle: 1.4219 -> 1.4093
fouls: 0.7515 -> 0.7609
interceptionWon: 1.1149 -> 1.1064
onTargetScoringAttempt: 0.0742 -> 0.0799
totalShots: 0.5761 -> 0.5817
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 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.07 (squad xG sum 1.5371, xG scale 0.6942, xA scale 0.7186, team xA 0.69 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.067
squad_xg_sum=1.5371
squad_xa_sum=0.9652
team_expected_assists=0.6935
team_xa_to_xg_ratio=0.65
expected_assists: 0.0586 -> 0.0421
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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0098
goal_rate=0.0
scorer_weight=0.0078
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0412
assist_rate=0.0
provider_weight=0.0337
-
Morgan Gibbs-WhiteM8900.160.2945%21.87.161.738FBref 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.0112, quality 0.878)market_value_eur=76000000
quality_factor=0.8781
boost_factor=1.0112
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.9912
prior_reliability=0.1333
competition=Premier League
totalCross: 3.8645 -> 3.8482
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.412, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9445, 'skill_edge': -0.0058, 'height_edge': -0.032, 'attacker_skill': 0.8855, 'defender_skill': 0.8984, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Elliot Anderson', 'market_value': 109000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8984}], 'xg_override': 0.2309}
aerialWon: 0.3993 -> 0.8
totalShots: 2.1948 -> 2.073
shotOffTarget: 1.4163 -> 1.3377
onTargetScoringAttempt: 0.7779 -> 0.7347
bigChanceMissed: 0.3845 -> 0.3632
goals: 0.2735 -> 0.2583
expectedGoals: 0.2445 -> 0.2309
expectedGoalsOnTarget: 0.1835 -> 0.1733
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.07 (squad xG sum 1.5371, xG scale 0.6942, xA scale 0.7186, team xA 0.69 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.067
squad_xg_sum=1.5371
squad_xa_sum=0.9652
team_expected_assists=0.6935
team_xa_to_xg_ratio=0.65
expected_goals: 0.2309 -> 0.1603
expected_assists: 0.1793 -> 0.1288
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.1481
goal_rate=0.2583
scorer_weight=0.1759
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.1209
assist_rate=0.1876
provider_weight=0.1335
-
James McAteeM8600.050.0379%10.67.031.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 1.0066, quality 0.629)market_value_eur=19800000
quality_factor=0.6291
boost_factor=1.0066
reference_quality=0.505
history_matches=23
history_shrink=0.1786
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0139)blend_weight=0.0139
history_matches=23
season_overlap_discount=1.0
per90_to_match_factor=0.9569
prior_reliability=0.12
competition=Premier League
totalShots: 1.31 -> 1.2918
fouls: 1.0172 -> 1.003
interceptionWon: 1.0154 -> 1.0013
totalCross: 3.1018 -> 3.1104
wasFouled: 1.6649 -> 1.6713
wonTackle: 1.4361 -> 1.4309
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 Wingback vs Right Back — Overlapping Run', 'duel_win_rate': 0.303, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.8576, 'skill_edge': -0.0729, 'height_edge': -0.024, 'attacker_skill': 0.7044, 'defender_skill': 0.8663, 'attacker_role': 'LWB', 'attacker_mv_price_index': 0.7, 'defender_adjusted_parts': [{'player': 'Abdukodir Khusanov', 'market_value': 47000000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.8663}], 'xg_override': 0.0677}
aerialWon: 0.3329 -> 1.1
totalShots: 1.3056 -> 1.1197
shotOffTarget: 0.9915 -> 0.8503
onTargetScoringAttempt: 0.3141 -> 0.2694
goals: 0.1013 -> 0.0869
expectedGoals: 0.0789 -> 0.0677
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.07 (squad xG sum 1.5371, xG scale 0.6942, xA scale 0.7186, team xA 0.69 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.067
squad_xg_sum=1.5371
squad_xa_sum=0.9652
team_expected_assists=0.6935
team_xa_to_xg_ratio=0.65
expected_goals: 0.0677 -> 0.047
expected_assists: 0.161 -> 0.1157
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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0459
goal_rate=0.0869
scorer_weight=0.0547
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.1093
assist_rate=0.0907
provider_weight=0.0926
-
Xaver SchlagerM7900.030.03ok10.96.944.814FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0070, quality 0.570)market_value_eur=14200000
quality_factor=0.5704
boost_factor=1.007
reference_quality=0.505
history_matches=9
history_shrink=0.3571
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0186)blend_weight=0.0186
history_matches=9
season_overlap_discount=1.0
per90_to_match_factor=0.8817
prior_reliability=0.08
competition=Premier League
fouls: 1.3902 -> 1.3644
interceptionWon: 1.2399 -> 1.2169
wonTackle: 1.9064 -> 1.8983
totalCross: 0.353 -> 0.3601
totalShots: 1.1076 -> 1.1145
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 Guéhi', 'matchup_zone': 'Right Wingback vs Left Back — Overlapping Run', 'duel_win_rate': 0.251, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.781, 'skill_edge': -0.117, 'height_edge': -0.032, 'attacker_skill': 0.6339, 'defender_skill': 0.8938, 'attacker_role': 'RWB', 'attacker_mv_price_index': 0.7, 'defender_adjusted_parts': [{'player': 'Marc Guéhi', 'market_value': 71000000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.8938}], 'xg_override': 0.0444}
aerialWon: 0.5381 -> 0.9
totalShots: 1.1145 -> 0.8704
shotOffTarget: 0.8856 -> 0.6917
onTargetScoringAttempt: 0.2179 -> 0.1702
bigChanceMissed: 0.0921 -> 0.0719
goals: 0.0766 -> 0.0598
expectedGoals: 0.0568 -> 0.0444
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.07 (squad xG sum 1.5371, xG scale 0.6942, xA scale 0.7186, team xA 0.69 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.067
squad_xg_sum=1.5371
squad_xa_sum=0.9652
team_expected_assists=0.6935
team_xa_to_xg_ratio=0.65
expected_goals: 0.0444 -> 0.0308
expected_assists: 0.054 -> 0.0388
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.0303
goal_rate=0.0598
scorer_weight=0.0358
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0381
assist_rate=0.0527
provider_weight=0.0383
-
Daniel MuñozM8200.070.06ok10.76.851.332XGBoost 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.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
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.369, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.8804, 'skill_edge': -0.0973, 'height_edge': 0.016, 'attacker_skill': 0.6821, 'defender_skill': 0.8984, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Elliot Anderson', 'market_value': 109000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8984}], 'xg_override': 0.0976}
aerialWon: 1.9688 -> 1.1
totalShots: 1.1292 -> 0.9942
shotOffTarget: 0.7593 -> 0.6685
onTargetScoringAttempt: 0.3699 -> 0.3257
bigChanceMissed: 0.3313 -> 0.2917
goals: 0.1166 -> 0.1027
expectedGoals: 0.1109 -> 0.0976
expectedGoalsOnTarget: 0.0853 -> 0.0751
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.07 (squad xG sum 1.5371, xG scale 0.6942, xA scale 0.7186, team xA 0.69 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.067
squad_xg_sum=1.5371
squad_xa_sum=0.9652
team_expected_assists=0.6935
team_xa_to_xg_ratio=0.65
expected_goals: 0.0976 -> 0.0677
expected_assists: 0.0921 -> 0.0662
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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0655
goal_rate=0.1027
scorer_weight=0.07
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0641
assist_rate=0.1027
provider_weight=0.0711
-
Dan NdoyeF6900.160.08114%20.86.833.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.0095, quality 0.746)market_value_eur=34000000
quality_factor=0.7455
boost_factor=1.0095
reference_quality=0.505
history_matches=33
history_shrink=0.1316
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0080)blend_weight=0.008
history_matches=33
season_overlap_discount=1.0
per90_to_match_factor=0.7612
prior_reliability=0.0933
competition=Premier League
fouls: 0.7663 -> 0.7732
totalCross: 0.7986 -> 0.7922
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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, Matheus Nunes', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle', 'duel_win_rate': 0.225, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.9338, 'skill_edge': -0.057, 'height_edge': 0.012, 'attacker_skill': 0.7455, 'defender_skill': 0.8723, 'attacker_role': 'SS', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Elliot Anderson', 'market_value': 109000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8984}, {'player': 'Matheus Nunes', 'market_value': 43000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8462}], 'xg_override': 0.2354}
totalShots: 2.1009 -> 1.9618
shotOffTarget: 1.3998 -> 1.3071
onTargetScoringAttempt: 0.7011 -> 0.6547
bigChanceMissed: 0.6101 -> 0.5697
expectedGoals: 0.2521 -> 0.2354
goals: 0.2316 -> 0.2163
expectedGoalsOnTarget: 0.1768 -> 0.1651
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.07 (squad xG sum 1.5371, xG scale 0.6942, xA scale 0.7186, team xA 0.69 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.067
squad_xg_sum=1.5371
squad_xa_sum=0.9652
team_expected_assists=0.6935
team_xa_to_xg_ratio=0.65
expected_goals: 0.2354 -> 0.1634
expected_assists: 0.0684 -> 0.0492
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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.1507
goal_rate=0.2163
scorer_weight=0.1525
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.048
assist_rate=0.0051
provider_weight=0.0394
-
Liam DelapF7900.190.19ok21.46.752.932FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0095, quality 0.764)market_value_eur=37000000
quality_factor=0.7641
boost_factor=1.0095
reference_quality=0.505
history_matches=36
history_shrink=0.122
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0016)blend_weight=0.0016
history_matches=36
season_overlap_discount=1.0
per90_to_match_factor=0.88
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': 'Matheus Nunes, 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.9391, 'skill_edge': -0.0434, 'height_edge': 0.002, 'attacker_skill': 0.7641, 'defender_skill': 0.8606, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Matheus Nunes', 'market_value': 43000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8462}, {'player': 'Rúben Dias', 'market_value': 55000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8751}], 'xg_override': 0.2672}
totalShots: 2.2508 -> 2.1137
shotOffTarget: 1.5302 -> 1.437
onTargetScoringAttempt: 0.718 -> 0.6743
bigChanceMissed: 0.4986 -> 0.4682
expectedGoals: 0.2845 -> 0.2672
goals: 0.2722 -> 0.2556
expectedGoalsOnTarget: 0.1002 -> 0.0941
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.07 (squad xG sum 1.5371, xG scale 0.6942, xA scale 0.7186, team xA 0.69 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.067
squad_xg_sum=1.5371
squad_xa_sum=0.9652
team_expected_assists=0.6935
team_xa_to_xg_ratio=0.65
expected_goals: 0.2672 -> 0.1855
expected_assists: 0.0632 -> 0.0454
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 77.0)match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.1693
goal_rate=0.2556
scorer_weight=0.1787
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0444
assist_rate=0.0
provider_weight=0.0363
-
Igor JesusF8000.170.15ok21.46.855.629FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.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=0.8877
prior_reliability=0.1333
competition=Premier League
fouls: 1.5816 -> 1.5875
totalShots: 2.0962 -> 2.1016
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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, Matheus Nunes', '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.8649, 'skill_edge': -0.0839, 'height_edge': -0.008, 'attacker_skill': 0.6858, 'defender_skill': 0.8723, 'attacker_role': 'SS', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Elliot Anderson', 'market_value': 109000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8984}, {'player': 'Matheus Nunes', 'market_value': 43000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8462}], 'xg_override': 0.2446}
totalShots: 2.1016 -> 1.8177
shotOffTarget: 1.3054 -> 1.129
onTargetScoringAttempt: 0.7917 -> 0.6847
goals: 0.3096 -> 0.2678
expectedGoals: 0.2828 -> 0.2446
expectedGoalsOnTarget: 0.212 -> 0.1834
bigChanceMissed: 0.2081 -> 0.18
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.07 (squad xG sum 1.5371, xG scale 0.6942, xA scale 0.7186, team xA 0.69 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.067
squad_xg_sum=1.5371
squad_xa_sum=0.9652
team_expected_assists=0.6935
team_xa_to_xg_ratio=0.65
expected_goals: 0.2446 -> 0.1698
expected_assists: 0.0567 -> 0.0407
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 77.0)match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.1562
goal_rate=0.2678
scorer_weight=0.1832
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0399
assist_rate=0.1175
provider_weight=0.0509
-
Team totals01.07166.9
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
John VictorG4.4m11.0%Market-value substitute prior
Ousmane DiomandeD15.0m36.4%Market-value substitute prior
JairD14.6m34.3%Market-value substitute prior
Ibrahim SangaréM22.8m32.3%Market-value substitute prior
Nicolás DomínguezM10.6m70.1%Market-value substitute prior
Callum Hudson OdoiF26.3m60.3%Market-value substitute prior

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.07.060.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.0095, quality 0.809)market_value_eur=46000000
quality_factor=0.8089
boost_factor=1.0095
reference_quality=0.505
history_matches=43
history_shrink=0.1042
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0090)blend_weight=0.009
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League
saves: 2.8616 -> 2.8538
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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, Igor Jesus', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.2421}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_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.4796, xG scale 1.2030, xA scale 1.1857, team xA 1.42 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.78
squad_xg_sum=1.4796
squad_xa_sum=1.201
team_expected_assists=1.424
team_xa_to_xg_ratio=0.8
shots_faced: 11.8 -> 10.1
expected_saves: 2.89 -> 2.47
high_pressure_saves: 0.99 -> 0.85
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 89.0)match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.9743
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.3335
-
Marc GuéhiD8400.090.1432%10.87.160.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.0115, quality 0.872)market_value_eur=71000000
quality_factor=0.8721
boost_factor=1.0115
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.9282
prior_reliability=0.1333
competition=Premier League
wonTackle: 0.5519 -> 0.5637
interceptionWon: 0.8281 -> 0.8332
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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.78 (squad xG sum 1.4796, xG scale 1.2030, xA scale 1.1857, team xA 1.42 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.78
squad_xg_sum=1.4796
squad_xa_sum=1.201
team_expected_assists=1.424
team_xa_to_xg_ratio=0.8
expected_goals: 0.0765 -> 0.092
expected_assists: 0.0506 -> 0.06
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
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0879
goal_rate=0.0698
scorer_weight=0.0871
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0582
assist_rate=0.1191
provider_weight=0.075
-
Rúben DiasD8900.060.03134%10.37.046.026FBref 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.0126, quality 0.840)market_value_eur=55000000
quality_factor=0.8399
boost_factor=1.0126
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.9884
prior_reliability=0.1333
competition=Premier League
fouls: 1.4023 -> 1.3871
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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': '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.4796, xG scale 1.2030, xA scale 1.1857, team xA 1.42 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.78
squad_xg_sum=1.4796
squad_xa_sum=1.201
team_expected_assists=1.424
team_xa_to_xg_ratio=0.8
expected_goals: 0.0492 -> 0.0592
expected_assists: 0.0604 -> 0.0716
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: 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.0112
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.0691
assist_rate=0.0
provider_weight=0.0573
-
Matheus NunesD8600.030.01310%00.16.952.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.0097, quality 0.796)market_value_eur=43000000
quality_factor=0.7957
boost_factor=1.0097
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.9574
prior_reliability=0.0267
competition=Premier League
totalCross: 1.1608 -> 1.1678
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': 'Liam Delap', '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.4796, xG scale 1.2030, xA scale 1.1857, team xA 1.42 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.78
squad_xg_sum=1.4796
squad_xa_sum=1.201
team_expected_assists=1.424
team_xa_to_xg_ratio=0.8
expected_assists: 0.0492 -> 0.0583
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: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0287
goal_rate=0.0005
scorer_weight=0.0233
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0566
assist_rate=0.0421
provider_weight=0.0541
-
Abdukodir KhusanovD8900.040.0269%10.37.047.832FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0144, quality 0.813)market_value_eur=47000000
quality_factor=0.8129
boost_factor=1.0144
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.9877
prior_reliability=0.1333
competition=Premier League
wonTackle: 0.907 -> 0.9281
fouls: 1.2869 -> 1.2695
totalShots: 0.5421 -> 0.5348
wasFouled: 0.4795 -> 0.473
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': '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.78 (squad xG sum 1.4796, xG scale 1.2030, xA scale 1.1857, team xA 1.42 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.78
squad_xg_sum=1.4796
squad_xa_sum=1.201
team_expected_assists=1.424
team_xa_to_xg_ratio=0.8
expected_goals: 0.0334 -> 0.0402
expected_assists: 0.0423 -> 0.0502
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 82.0)match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0394
goal_rate=0.0
scorer_weight=0.0322
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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
-
Elliot AndersonM8700.060.0448%11.07.363.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 1.0113, quality 0.896)market_value_eur=109000000
quality_factor=0.8957
boost_factor=1.0113
reference_quality=0.505
history_matches=47
history_shrink=0.0962
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0067)blend_weight=0.0067
history_matches=47
season_overlap_discount=1.0
per90_to_match_factor=0.967
prior_reliability=0.1067
competition=Premier League
interceptionWon: 1.3574 -> 1.3685
wasFouled: 2.9373 -> 2.9298
wonTackle: 1.384 -> 1.3909
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Dan Ndoye, Igor Jesus, 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.78 (squad xG sum 1.4796, xG scale 1.2030, xA scale 1.1857, team xA 1.42 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.78
squad_xg_sum=1.4796
squad_xa_sum=1.201
team_expected_assists=1.424
team_xa_to_xg_ratio=0.8
expected_goals: 0.049 -> 0.0589
expected_assists: 0.1684 -> 0.1997
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: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0572
goal_rate=0.059
scorer_weight=0.0648
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.181
assist_rate=0.0844
provider_weight=0.1598
-
Enzo FernándezM8300.190.18ok21.57.260.231XGBoost M_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0120, quality 0.897)market_value_eur=116000000
quality_factor=0.897
boost_factor=1.012
reference_quality=0.505
history_matches=44
history_shrink=0.102
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Murillo', 'matchup_zone': 'LW vs CB', 'duel_win_rate': 0.411, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.987, 'skill_edge': 0.0152, 'height_edge': -0.024, 'attacker_skill': 0.897, 'defender_skill': 0.8633, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Murillo', 'market_value': 49000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8633}], 'xg_override': 0.1615}
aerialWon: 0.6552 -> 1.0
totalShots: 1.5751 -> 1.5546
shotOffTarget: 0.9926 -> 0.9797
onTargetScoringAttempt: 0.5825 -> 0.5749
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_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.4796, xG scale 1.2030, xA scale 1.1857, team xA 1.42 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.78
squad_xg_sum=1.4796
squad_xa_sum=1.201
team_expected_assists=1.424
team_xa_to_xg_ratio=0.8
expected_goals: 0.1615 -> 0.1943
expected_assists: 0.1981 -> 0.2349
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 86.0)match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1766
goal_rate=0.1712
scorer_weight=0.2032
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.2094
assist_rate=0.1265
provider_weight=0.1879
-
Rayan CherkiM7300.250.1483%31.67.259.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.0128, quality 0.898)market_value_eur=120000000
quality_factor=0.8975
boost_factor=1.0128
reference_quality=0.505
history_matches=41
history_shrink=0.1087
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0057)blend_weight=0.0057
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=0.8119
prior_reliability=0.08
competition=Premier League
totalCross: 2.2817 -> 2.2917
fouls: 0.9869 -> 0.9966
onTargetScoringAttempt: 0.649 -> 0.6567
goalAssist: 0.2049 -> 0.2114
goals: 0.2675 -> 0.2736
wasFouled: 0.8826 -> 0.8776
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Morgan Gibbs-White', 'matchup_zone': 'CAM vs CM', 'duel_win_rate': 0.446, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 1.0378, 'skill_edge': 0.0057, 'height_edge': 0.02, 'attacker_skill': 0.8982, 'defender_skill': 0.8855, 'attacker_role': 'CAM', 'attacker_mv_price_index': 0.95, 'defender_adjusted_parts': [{'player': 'Morgan Gibbs-White', 'market_value': 76000000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.8855}], 'xg_override': 0.2076}
aerialWon: 0.0 -> 0.9
totalShots: 2.3609 -> 2.4501
shotOffTarget: 1.7042 -> 1.7686
onTargetScoringAttempt: 0.6567 -> 0.6815
expectedGoalsOnTarget: 0.4314 -> 0.4477
goals: 0.2736 -> 0.2839
expectedGoals: 0.2 -> 0.2076
bigChanceMissed: 0.1986 -> 0.2061
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_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.4796, xG scale 1.2030, xA scale 1.1857, team xA 1.42 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.78
squad_xg_sum=1.4796
squad_xa_sum=1.201
team_expected_assists=1.424
team_xa_to_xg_ratio=0.8
expected_goals: 0.2076 -> 0.2497
expected_assists: 0.2018 -> 0.2391
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 86.0)match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.221
goal_rate=0.2839
scorer_weight=0.3121
-
integer_assist_projectionTeam scoreline allocation: 1 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.2127
assist_rate=0.2114
provider_weight=0.2482
-
Phil FodenM7400.160.12ok20.87.050.532FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0117, quality 0.857)market_value_eur=62000000
quality_factor=0.8569
boost_factor=1.0117
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.8271
prior_reliability=0.1267
competition=Premier League
totalCross: 3.771 -> 3.7843
fouls: 0.5569 -> 0.5638
goalAssist: 0.1872 -> 0.1935
wasFouled: 1.0474 -> 1.0537
totalShots: 1.5436 -> 1.5494
onTargetScoringAttempt: 0.5485 -> 0.5435
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Murillo', 'matchup_zone': 'RW vs CB', 'duel_win_rate': 0.369, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9252, 'skill_edge': -0.0029, 'height_edge': -0.048, 'attacker_skill': 0.8569, 'defender_skill': 0.8633, 'attacker_role': 'RW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Murillo', 'market_value': 49000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8633}], 'xg_override': 0.1313}
aerialWon: 0.5132 -> 0.8
totalShots: 1.5494 -> 1.4335
shotOffTarget: 0.9951 -> 0.9207
onTargetScoringAttempt: 0.5435 -> 0.5028
bigChanceMissed: 0.2781 -> 0.2573
goals: 0.1671 -> 0.1546
expectedGoalsOnTarget: 0.1574 -> 0.1456
expectedGoals: 0.1419 -> 0.1313
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_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.4796, xG scale 1.2030, xA scale 1.1857, team xA 1.42 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.78
squad_xg_sum=1.4796
squad_xa_sum=1.201
team_expected_assists=1.424
team_xa_to_xg_ratio=0.8
expected_goals: 0.1313 -> 0.158
expected_assists: 0.1959 -> 0.2323
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 84.0)match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1462
goal_rate=0.1546
scorer_weight=0.1783
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.2073
assist_rate=0.1935
provider_weight=0.23
-
Ayyoub BouaddiM7900.050.002950%10.16.926.213FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0581, quality 0.893)market_value_eur=98000000
quality_factor=0.8926
boost_factor=1.0581
reference_quality=0.505
history_matches=5
history_shrink=0.5
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0022)blend_weight=0.0022
history_matches=5
season_overlap_discount=1.0
per90_to_match_factor=0.8727
prior_reliability=0.0067
competition=Premier League
interceptionWon: 0.3914 -> 0.4096
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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': '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.78 (squad xG sum 1.4796, xG scale 1.2030, xA scale 1.1857, team xA 1.42 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.78
squad_xg_sum=1.4796
squad_xa_sum=1.201
team_expected_assists=1.424
team_xa_to_xg_ratio=0.8
expected_goals: 0.0456 -> 0.0549
expected_assists: 0.0485 -> 0.0575
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 80.0)match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0534
goal_rate=0.0645
scorer_weight=0.0658
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.0827
provider_weight=0.0719
-
Erling HaalandF8810.750.4953%42.97.258.532FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0121, quality 0.900)market_value_eur=240000000
quality_factor=0.9
boost_factor=1.0121
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.9803
prior_reliability=0.1333
competition=Premier League
totalShots: 3.2489 -> 3.2635
onTargetScoringAttempt: 1.4086 -> 1.4178
fouls: 0.6535 -> 0.6477
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Murillo, Neco Williams', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.285, 'pressing_faced': 'HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 1.1245, 'skill_edge': 0.0367, 'height_edge': 0.048, 'attacker_skill': 0.9, 'defender_skill': 0.8184, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Murillo', 'market_value': 49000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8633}, {'player': 'Neco Williams', 'market_value': 29000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7736}], 'xg_override': 0.6263}
totalShots: 3.2635 -> 3.6698
shotOffTarget: 1.8402 -> 2.0693
onTargetScoringAttempt: 1.4178 -> 1.5943
expectedGoalsOnTarget: 0.8394 -> 0.9439
bigChanceMissed: 0.7053 -> 0.7931
goals: 0.6349 -> 0.7139
expectedGoals: 0.557 -> 0.6263
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 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.4796, xG scale 1.2030, xA scale 1.1857, team xA 1.42 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.78
squad_xg_sum=1.4796
squad_xa_sum=1.201
team_expected_assists=1.424
team_xa_to_xg_ratio=0.8
expected_goals: 0.6263 -> 0.7535
expected_assists: 0.0526 -> 0.0624
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 91.0)match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.5293
goal_rate=0.7139
scorer_weight=0.8511
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.0572
provider_weight=0.0652
-
Team totals11.78177.1
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Gerónimo RulliG4.5m11.3%Market-value substitute prior
Nico O'ReillyD15.3m25.3%Market-value substitute prior
Joško GvardiolD15.3m25.2%Market-value substitute prior
Mateo KovačićM22.1m69.9%Market-value substitute prior
Floyd SambaM22.0m49.9%Market-value substitute prior
Antoine SemenyoF27.1m37.0%Market-value substitute prior
Antagonist / tactical summary
Away midfield dictates play with ~52% possession expected (Morgan Gibbs-White vs Rayan Cherki). Total antagonist xG — Home: 1.19, Away: 1.13. 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.43, key duel: Morgan Gibbs-White vs Rayan Cherki
Liam Delap xG 0.27Dan Ndoye xG 0.24Igor Jesus xG 0.24Enzo Fernández xG 0.16Rayan Cherki xG 0.21Phil Foden xG 0.13

Summary

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

Fulham vs Newcastle

Premier League · 20261107 · 4-2-3-1 vs 4-2-3-1
Predicted 1-0Winner: FulhamWinning H 1-0 (9.3%)Winning A 0-1 (7.8%)Confidence 0.66λ home/away 1.51 / 1.27Most-likely P 9.3%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset Tracing
Antagonist + XGBoost match analysis for Fulham vs Newcastle. 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.353, Away 1.192). Final calibrated Poisson lambdas: Home 1.513, Away 1.268 (most likely score 1-0).
Home Starters 11/11 XGBoost (9 FBref) Away Starters 11/11 XGBoost (7 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.35 / 1.19 Final λ (H/A) 1.51 / 1.27
FBref Team Priors: Fulham (Gls/90: 1.0, GA/90: 1.0 → E[λ]: 1.379) vs Newcastle United (Gls/90: 2.0, GA/90: 2.0 → E[λ]: 1.379) | Blend Weight: 0.192
Modeling Pipeline Stages (5 layers)
  1. 1. XGBoost player regressions for volume & event rates with market-value quality scaling
  2. 2. Multi-source prior blending (FBref 2026-2027 tables + Sofascore season history)
  3. 3. Antagonist formation duel matrix resolving 1v1 and zonal matchups
  4. 4. Team-level prior calibration (FBref possession and attack/defense efficiencies)
  5. 5. Bivariate Poisson matrix with Dixon-Coles low-score correction

Standing & form context

MetricFulhamNewcastle
League position15.0012.00
Points per game1.141.37
Attack index0.931.04
Defense (concede) index1.111.00
Form multiplier0.991.01
Standing λ multiplier1.011.02

Lambda decomposition (how the goal rates were built)

StageFulham λNewcastle λ
FBref Squad Prior E[λ] (weight 0.192)1.3791.379
Pre-competitive-floor1.4451.189
Pre-calibration (Micro-duels)1.3531.192
Final λ1.5131.268
competition calibration scale 1.056competition 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.3%
2-19.0%
0-17.8%
1-27.5%
Home win42.9%
Draw25.4%
Away win31.8%
Over 2.552.6%
BTTS yes56.1%
Pregame fair line — favorite Fulham (42.9%), fair total 2.78, 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.

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Bernd LenoG9000.00-n/a0.07.058.634FBref 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=47
history_shrink=0.0962
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0083)blend_weight=0.0083
history_matches=47
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Harvey Barnes, Joe Willock', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.1922}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.51 (squad xG sum 1.1733, xG scale 1.2895, xA scale 1.2895, team xA 1.19 = 0.79 x lambda)scoreline_reset=true
team_lambda=1.513
squad_xg_sum=1.1733
squad_xa_sum=0.9264
team_expected_assists=1.1946
team_xa_to_xg_ratio=0.7896
shots_faced: 11.3 -> 12.0
expected_saves: 2.76 -> 2.93
high_pressure_saves: 0.95 -> 1.01
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 79.0)match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.4297
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.0368
-
Calvin BasseyD9000.070.0470%10.57.053.630FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0070, quality 0.710)market_value_eur=29000000
quality_factor=0.71
boost_factor=1.007
reference_quality=0.505
history_matches=39
history_shrink=0.1136
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0098)blend_weight=0.0098
history_matches=39
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League
fouls: 1.2751 -> 1.2675
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Harvey Barnes', '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.51 (squad xG sum 1.1733, xG scale 1.2895, xA scale 1.2895, team xA 1.19 = 0.79 x lambda)scoreline_reset=true
team_lambda=1.513
squad_xg_sum=1.1733
squad_xa_sum=0.9264
team_expected_assists=1.1946
team_xa_to_xg_ratio=0.7896
expected_goals: 0.0529 -> 0.0682
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.0659
goal_rate=0.0046
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.0197
assist_rate=0.0
provider_weight=0.0159
-
Antonee RobinsonD8700.090.04129%10.36.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 1.0070, quality 0.669)market_value_eur=24000000
quality_factor=0.6685
boost_factor=1.007
reference_quality=0.505
history_matches=30
history_shrink=0.1429
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0118)blend_weight=0.0118
history_matches=30
season_overlap_discount=1.0
per90_to_match_factor=0.9716
prior_reliability=0.1267
competition=Premier League
fouls: 1.4061 -> 1.3896
wonTackle: 1.6098 -> 1.6209
interceptionWon: 1.1706 -> 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': 'Sean Steur', '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.51 (squad xG sum 1.1733, xG scale 1.2895, xA scale 1.2895, team xA 1.19 = 0.79 x lambda)scoreline_reset=true
team_lambda=1.513
squad_xg_sum=1.1733
squad_xa_sum=0.9264
team_expected_assists=1.1946
team_xa_to_xg_ratio=0.7896
expected_goals: 0.0702 -> 0.0905
expected_assists: 0.0732 -> 0.0944
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.0865
goal_rate=0.0389
scorer_weight=0.0724
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0901
assist_rate=0.0
provider_weight=0.0755
-
David AffengruberD8900.080.03147%10.57.056.935XGBoost 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.0032, quality 0.612)market_value_eur=18100000
quality_factor=0.612
boost_factor=1.0032
reference_quality=0.505
history_matches=45
history_shrink=0.1
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Joe Willock', '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.51 (squad xG sum 1.1733, xG scale 1.2895, xA scale 1.2895, team xA 1.19 = 0.79 x lambda)scoreline_reset=true
team_lambda=1.513
squad_xg_sum=1.1733
squad_xa_sum=0.9264
team_expected_assists=1.1946
team_xa_to_xg_ratio=0.7896
expected_goals: 0.0588 -> 0.0758
expected_assists: 0.0296 -> 0.0382
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.073
goal_rate=0.0141
scorer_weight=0.0606
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0375
assist_rate=0.0131
provider_weight=0.0306
-
Timothy CastagneD8700.080.0557%10.46.850.434FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9996, quality 0.494)market_value_eur=7600000
quality_factor=0.4939
boost_factor=0.9996
reference_quality=0.505
history_matches=38
history_shrink=0.1163
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0086)blend_weight=0.0086
history_matches=38
season_overlap_discount=1.0
per90_to_match_factor=0.9632
prior_reliability=0.1133
competition=Premier League
wasFouled: 0.5543 -> 0.569
fouls: 1.1517 -> 1.1661
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Harvey Barnes', '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.51 (squad xG sum 1.1733, xG scale 1.2895, xA scale 1.2895, team xA 1.19 = 0.79 x lambda)scoreline_reset=true
team_lambda=1.513
squad_xg_sum=1.1733
squad_xa_sum=0.9264
team_expected_assists=1.1946
team_xa_to_xg_ratio=0.7896
expected_goals: 0.0613 -> 0.079
expected_assists: 0.1336 -> 0.1723
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.076
goal_rate=0.0
scorer_weight=0.0632
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1583
assist_rate=0.053
provider_weight=0.1378
-
Alex IwobiM8100.210.08174%21.17.252.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.0047, quality 0.641)market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.0047
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.8991
prior_reliability=0.1333
competition=Premier League
totalCross: 4.7632 -> 4.7379
totalShots: 1.9683 -> 1.953
interceptionWon: 0.5573 -> 0.5653
onTargetScoringAttempt: 0.6321 -> 0.6257
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Lewis Hall', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.39, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.8678, 'skill_edge': -0.1059, 'height_edge': 0.016, 'attacker_skill': 0.6408, 'defender_skill': 0.8762, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Lewis Hall', 'market_value': 52000000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.8762}], 'xg_override': 0.1657}
aerialWon: 0.0602 -> 1.1
totalShots: 1.9619 -> 1.7026
shotOffTarget: 1.3362 -> 1.1596
onTargetScoringAttempt: 0.6257 -> 0.543
bigChanceMissed: 0.3515 -> 0.305
goals: 0.2091 -> 0.1815
expectedGoals: 0.191 -> 0.1657
expectedGoalsOnTarget: 0.1098 -> 0.0953
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.51 (squad xG sum 1.1733, xG scale 1.2895, xA scale 1.2895, team xA 1.19 = 0.79 x lambda)scoreline_reset=true
team_lambda=1.513
squad_xg_sum=1.1733
squad_xa_sum=0.9264
team_expected_assists=1.1946
team_xa_to_xg_ratio=0.7896
expected_goals: 0.1657 -> 0.2137
expected_assists: 0.1983 -> 0.2557
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 80.0)match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1924
goal_rate=0.1815
scorer_weight=0.2293
-
integer_assist_projectionTeam scoreline allocation: 1 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.2256
assist_rate=0.1265
provider_weight=0.2046
-
Josh KingM7800.220.10115%21.06.950.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.0092, quality 0.786)market_value_eur=41000000
quality_factor=0.7859
boost_factor=1.0092
reference_quality=0.505
history_matches=41
history_shrink=0.1087
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Lewis Miley, Joelinton', 'matchup_zone': 'Attacking Mid vs Double Pivot — Tight Space Battle', 'duel_win_rate': 0.214, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 0.9615, 'skill_edge': 0.0338, 'height_edge': -0.06, 'attacker_skill': 0.7964, 'defender_skill': 0.7213, 'attacker_role': 'CAM', 'attacker_mv_price_index': 0.95, 'defender_adjusted_parts': [{'player': 'Lewis Miley', 'market_value': 32000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.7679}, {'player': 'Joelinton', 'market_value': 21000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.6747}], 'xg_override': 0.1703}
aerialWon: 0.2495 -> 0.8
totalShots: 2.0531 -> 1.9741
shotOffTarget: 1.2874 -> 1.2378
onTargetScoringAttempt: 0.7657 -> 0.7362
bigChanceMissed: 0.2746 -> 0.264
goals: 0.2107 -> 0.2026
expectedGoalsOnTarget: 0.1808 -> 0.1738
expectedGoals: 0.1771 -> 0.1703
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.51 (squad xG sum 1.1733, xG scale 1.2895, xA scale 1.2895, team xA 1.19 = 0.79 x lambda)scoreline_reset=true
team_lambda=1.513
squad_xg_sum=1.1733
squad_xa_sum=0.9264
team_expected_assists=1.1946
team_xa_to_xg_ratio=0.7896
expected_goals: 0.1703 -> 0.2196
expected_assists: 0.1434 -> 0.1849
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.1972
goal_rate=0.2026
scorer_weight=0.2518
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1688
assist_rate=0.1352
provider_weight=0.1771
-
Shea CharlesM8600.100.05102%10.57.045.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 1.0175, quality 0.669)market_value_eur=24000000
quality_factor=0.6685
boost_factor=1.0175
reference_quality=0.505
history_matches=9
history_shrink=0.3571
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0077)blend_weight=0.0077
history_matches=9
season_overlap_discount=1.0
per90_to_match_factor=0.96
prior_reliability=0.0333
competition=Premier League
totalShots: 0.9258 -> 0.9471
totalCross: 0.1172 -> 0.1311
wasFouled: 1.2587 -> 1.249
wonTackle: 1.1237 -> 1.1299
fouls: 0.6776 -> 0.6724
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Lewis Miley', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.395, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9637, 'skill_edge': -0.0287, 'height_edge': 0.004, 'attacker_skill': 0.704, 'defender_skill': 0.7679, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Lewis Miley', 'market_value': 32000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.7679}], 'xg_override': 0.0768}
aerialWon: 1.5107 -> 1.3
totalShots: 0.9471 -> 0.9127
shotOffTarget: 0.6662 -> 0.642
onTargetScoringAttempt: 0.2576 -> 0.2482
bigChanceMissed: 0.2247 -> 0.2165
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.51 (squad xG sum 1.1733, xG scale 1.2895, xA scale 1.2895, team xA 1.19 = 0.79 x lambda)scoreline_reset=true
team_lambda=1.513
squad_xg_sum=1.1733
squad_xa_sum=0.9264
team_expected_assists=1.1946
team_xa_to_xg_ratio=0.7896
expected_goals: 0.0768 -> 0.099
expected_assists: 0.0829 -> 0.1069
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 73.0)match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0943
goal_rate=0.0711
scorer_weight=0.0945
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1014
assist_rate=0.0582
provider_weight=0.087
-
Sander BergeM8500.080.04116%10.57.054.733FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0055, quality 0.686)market_value_eur=26000000
quality_factor=0.6858
boost_factor=1.0055
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.943
prior_reliability=0.1133
competition=Premier League
wonTackle: 0.8683 -> 0.8618
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Lewis Miley', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.427, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 1.0108, 'skill_edge': -0.0207, 'height_edge': 0.028, 'attacker_skill': 0.7219, 'defender_skill': 0.7679, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Lewis Miley', 'market_value': 32000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.7679}], 'xg_override': 0.0606}
aerialWon: 0.9748 -> 1.4
totalShots: 0.5474 -> 0.5533
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.51 (squad xG sum 1.1733, xG scale 1.2895, xA scale 1.2895, team xA 1.19 = 0.79 x lambda)scoreline_reset=true
team_lambda=1.513
squad_xg_sum=1.1733
squad_xa_sum=0.9264
team_expected_assists=1.1946
team_xa_to_xg_ratio=0.7896
expected_goals: 0.0606 -> 0.0781
expected_assists: 0.0558 -> 0.072
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.0751
goal_rate=0.0593
scorer_weight=0.0772
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0695
assist_rate=0.0571
provider_weight=0.0729
-
Emile Smith RoweM7300.130.0860%10.76.850.630FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0026, quality 0.586)market_value_eur=15600000
quality_factor=0.5857
boost_factor=1.0026
reference_quality=0.505
history_matches=41
history_shrink=0.1087
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0009)blend_weight=0.0009
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=0.8114
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': 'Fabian Schär', 'matchup_zone': 'Right Wing vs Left Back — Flank Battle', 'duel_win_rate': 0.524, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0652, 'skill_edge': 0.0603, 'height_edge': -0.016, 'attacker_skill': 0.5857, 'defender_skill': 0.4516, 'attacker_role': 'RW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Fabian Schär', 'market_value': 2900000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.4516}], 'xg_override': 0.0984}
aerialWon: 0.2709 -> 1.1
totalShots: 1.0901 -> 1.1612
shotOffTarget: 0.7542 -> 0.8034
onTargetScoringAttempt: 0.332 -> 0.3536
bigChanceMissed: 0.1887 -> 0.201
expectedGoals: 0.0924 -> 0.0984
goals: 0.0908 -> 0.0967
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.51 (squad xG sum 1.1733, xG scale 1.2895, xA scale 1.2895, team xA 1.19 = 0.79 x lambda)scoreline_reset=true
team_lambda=1.513
squad_xg_sum=1.1733
squad_xa_sum=0.9264
team_expected_assists=1.1946
team_xa_to_xg_ratio=0.7896
expected_goals: 0.0984 -> 0.1269
expected_assists: 0.0416 -> 0.0536
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 77.0)match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1192
goal_rate=0.0967
scorer_weight=0.1254
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0522
assist_rate=0.0645
provider_weight=0.067
-
Gonzalo GarcíaF8210.350.2448%21.26.750.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.0086, quality 0.758)market_value_eur=36000000
quality_factor=0.7581
boost_factor=1.0086
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.9096
prior_reliability=0.1333
competition=Premier League
fouls: 0.8761 -> 0.8854
totalShots: 1.9645 -> 1.972
wasFouled: 0.262 -> 0.2684
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Sven Botman, Malick Thiaw', '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.8863, 'skill_edge': -0.0314, 'height_edge': -0.046, 'attacker_skill': 0.7581, 'defender_skill': 0.8279, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Sven Botman', 'market_value': 33000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8002}, {'player': 'Malick Thiaw', 'market_value': 46000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8555}], 'xg_override': 0.2728}
totalShots: 1.972 -> 1.7478
shotOffTarget: 1.2588 -> 1.1157
bigChanceMissed: 0.7427 -> 0.6583
onTargetScoringAttempt: 0.7032 -> 0.6232
expectedGoals: 0.3078 -> 0.2728
goals: 0.2412 -> 0.2138
expectedGoalsOnTarget: 0.1307 -> 0.1158
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.51 (squad xG sum 1.1733, xG scale 1.2895, xA scale 1.2895, team xA 1.19 = 0.79 x lambda)scoreline_reset=true
team_lambda=1.513
squad_xg_sum=1.1733
squad_xa_sum=0.9264
team_expected_assists=1.1946
team_xa_to_xg_ratio=0.7896
expected_goals: 0.2728 -> 0.3519
expected_assists: 0.0568 -> 0.0732
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 16 by projected rating, fifa_overall 78.0)match_squad_rank=16
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_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.2966
goal_rate=0.2138
scorer_weight=0.2876
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0706
assist_rate=0.0
provider_weight=0.0586
-
Team totals11.51156.9
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.2m23.0%Market-value substitute prior
Hugo LarssonM22.9m54.0%Market-value substitute prior
Manuel Ángel MoránM22.1m50.2%Market-value substitute prior
Oscar BobbF26.3m35.5%Market-value substitute prior

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Nick PopeG9000.000.01100%0.06.931.830XGBoost 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.9968, quality 0.437)market_value_eur=2900000
quality_factor=0.4374
boost_factor=0.9968
reference_quality=0.505
history_matches=27
history_shrink=0.1562
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Gonzalo García, Josh King', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.3528}
-
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.27 (squad xG sum 0.9590, xG scale 1.3222, xA scale 1.3222, team xA 0.96 = 0.75 x lambda)scoreline_reset=true
team_lambda=1.268
squad_xg_sum=0.959
squad_xa_sum=0.7236
team_expected_assists=0.9567
team_xa_to_xg_ratio=0.7545
shots_faced: 12.9 -> 14.4
expected_saves: 3.16 -> 3.53
high_pressure_saves: 1.08 -> 1.21
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 78.0)match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.3379
-
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.9545
-
Lewis HallD8900.050.0383%10.66.952.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.0114, quality 0.831)market_value_eur=52000000
quality_factor=0.8309
boost_factor=1.0114
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.9861
prior_reliability=0.1333
competition=Premier League
fouls: 0.7338 -> 0.7413
wasFouled: 1.7102 -> 1.7029
wonTackle: 1.2852 -> 1.2921
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 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.27 (squad xG sum 0.9590, xG scale 1.3222, xA scale 1.3222, team xA 0.96 = 0.75 x lambda)scoreline_reset=true
team_lambda=1.268
squad_xg_sum=0.959
squad_xa_sum=0.7236
team_expected_assists=0.9567
team_xa_to_xg_ratio=0.7545
expected_goals: 0.0356 -> 0.0471
expected_assists: 0.0971 -> 0.1284
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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.046
goal_rate=0.1032
scorer_weight=0.0589
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.1205
assist_rate=0.0684
provider_weight=0.1033
-
Sven BotmanD8900.070.06ok10.67.147.931FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0095, quality 0.739)market_value_eur=33000000
quality_factor=0.7389
boost_factor=1.0095
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.9912
prior_reliability=0.1333
competition=Premier League
interceptionWon: 1.1257 -> 1.1125
wonTackle: 0.6733 -> 0.6654
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 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.27 (squad xG sum 0.9590, xG scale 1.3222, xA scale 1.3222, team xA 0.96 = 0.75 x lambda)scoreline_reset=true
team_lambda=1.268
squad_xg_sum=0.959
squad_xa_sum=0.7236
team_expected_assists=0.9567
team_xa_to_xg_ratio=0.7545
expected_goals: 0.0495 -> 0.0654
expected_assists: 0.0381 -> 0.0504
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 81.0)match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0633
goal_rate=0.1396
scorer_weight=0.0818
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0492
assist_rate=0.0
provider_weight=0.0403
-
Malick ThiawD9000.070.1034%00.56.855.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.0095, quality 0.809)market_value_eur=46000000
quality_factor=0.8089
boost_factor=1.0095
reference_quality=0.505
history_matches=43
history_shrink=0.1042
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0090)blend_weight=0.009
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=0.9983
prior_reliability=0.1333
competition=Premier League
wasFouled: 0.3308 -> 0.3413
interceptionWon: 0.9739 -> 0.9651
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 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.27 (squad xG sum 0.9590, xG scale 1.3222, xA scale 1.3222, team xA 0.96 = 0.75 x lambda)scoreline_reset=true
team_lambda=1.268
squad_xg_sum=0.959
squad_xa_sum=0.7236
team_expected_assists=0.9567
team_xa_to_xg_ratio=0.7545
expected_goals: 0.0521 -> 0.0689
expected_assists: 0.0247 -> 0.0327
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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0666
goal_rate=0.0131
scorer_weight=0.0551
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0322
assist_rate=0.0
provider_weight=0.0262
-
Fabian SchärD8800.120.02501%10.17.018.216FBref 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.9958, quality 0.437)market_value_eur=2900000
quality_factor=0.4374
boost_factor=0.9958
reference_quality=0.505
history_matches=19
history_shrink=0.2083
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Emile Smith Rowe', 'matchup_zone': 'Right Wing vs Left Back — Flank Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.27 (squad xG sum 0.9590, xG scale 1.3222, xA scale 1.3222, team xA 0.96 = 0.75 x lambda)scoreline_reset=true
team_lambda=1.268
squad_xg_sum=0.959
squad_xa_sum=0.7236
team_expected_assists=0.9567
team_xa_to_xg_ratio=0.7545
expected_goals: 0.0915 -> 0.121
expected_assists: 0.0315 -> 0.0416
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.114
goal_rate=0.0
scorer_weight=0.0968
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0407
assist_rate=0.0
provider_weight=0.0333
-
Lewis MileyM8200.050.0355%00.26.950.622FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0097, quality 0.732)market_value_eur=32000000
quality_factor=0.732
boost_factor=1.0097
reference_quality=0.505
history_matches=30
history_shrink=0.1429
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0111)blend_weight=0.0111
history_matches=30
season_overlap_discount=1.0
per90_to_match_factor=0.9129
prior_reliability=0.12
competition=Premier League
totalCross: 1.8178 -> 1.7975
wasFouled: 0.1804 -> 0.1897
wonTackle: 1.1649 -> 1.1576
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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.445, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 1.0363, 'skill_edge': 0.0287, 'height_edge': -0.004, 'attacker_skill': 0.7679, '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.038}
aerialWon: 1.7925 -> 1.2
totalShots: 0.394 -> 0.4083
shotOffTarget: 0.266 -> 0.2757
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.27 (squad xG sum 0.9590, xG scale 1.3222, xA scale 1.3222, team xA 0.96 = 0.75 x lambda)scoreline_reset=true
team_lambda=1.268
squad_xg_sum=0.959
squad_xa_sum=0.7236
team_expected_assists=0.9567
team_xa_to_xg_ratio=0.7545
expected_goals: 0.038 -> 0.0502
expected_assists: 0.0765 -> 0.1011
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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.049
goal_rate=0.0469
scorer_weight=0.0553
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0962
assist_rate=0.0742
provider_weight=0.0993
-
Nico GonzálezM7700.060.01613%10.27.134.428XGBoost 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.0138, quality 0.837)market_value_eur=54000000
quality_factor=0.837
boost_factor=1.0138
reference_quality=0.505
history_matches=31
history_shrink=0.1389
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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, Sander Berge', 'matchup_zone': 'Attacking Mid vs Double Pivot — Tight Space Battle', 'duel_win_rate': 0.275, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 1.052, 'skill_edge': 0.0594, 'height_edge': -0.024, 'attacker_skill': 0.8449, 'defender_skill': 0.713, 'attacker_role': 'CAM', 'attacker_mv_price_index': 0.95, 'defender_adjusted_parts': [{'player': 'Shea Charles', 'market_value': 24000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.704}, {'player': 'Sander Berge', 'market_value': 26000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.7219}], 'xg_override': 0.0434}
aerialWon: 1.1459 -> 1.2
totalShots: 0.5823 -> 0.6126
shotOffTarget: 0.4404 -> 0.4633
onTargetScoringAttempt: 0.1419 -> 0.1493
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.27 (squad xG sum 0.9590, xG scale 1.3222, xA scale 1.3222, team xA 0.96 = 0.75 x lambda)scoreline_reset=true
team_lambda=1.268
squad_xg_sum=0.959
squad_xa_sum=0.7236
team_expected_assists=0.9567
team_xa_to_xg_ratio=0.7545
expected_goals: 0.0434 -> 0.0574
expected_assists: 0.0741 -> 0.098
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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0558
goal_rate=0.0468
scorer_weight=0.0595
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0934
assist_rate=0.0665
provider_weight=0.092
-
JoelintonM8600.100.0747%11.06.848.121XGBoost 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.0058, quality 0.641)market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.0058
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': 'Shea Charles', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.395, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 0.963, 'skill_edge': -0.0132, 'height_edge': -0.012, 'attacker_skill': 0.6747, '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.0787}
aerialWon: 3.3331 -> 1.2
totalShots: 1.0305 -> 0.9924
shotOffTarget: 0.7464 -> 0.7188
onTargetScoringAttempt: 0.2841 -> 0.2736
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.27 (squad xG sum 0.9590, xG scale 1.3222, xA scale 1.3222, team xA 0.96 = 0.75 x lambda)scoreline_reset=true
team_lambda=1.268
squad_xg_sum=0.959
squad_xa_sum=0.7236
team_expected_assists=0.9567
team_xa_to_xg_ratio=0.7545
expected_goals: 0.0787 -> 0.1041
expected_assists: 0.0516 -> 0.0682
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.0989
goal_rate=0.0815
scorer_weight=0.1064
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0659
assist_rate=0.0732
provider_weight=0.0827
-
Joe WillockM7200.210.07204%20.96.944.233FBref 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.0046, quality 0.618)market_value_eur=18700000
quality_factor=0.6181
boost_factor=1.0046
reference_quality=0.505
history_matches=32
history_shrink=0.1351
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0070)blend_weight=0.007
history_matches=32
season_overlap_discount=1.0
per90_to_match_factor=0.8034
prior_reliability=0.08
competition=Premier League
fouls: 0.7199 -> 0.7384
wasFouled: 1.1597 -> 1.1516
totalCross: 0.4003 -> 0.4069
totalShots: 1.888 -> 1.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': 'David Affengruber', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.454, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9619, 'skill_edge': -0.0299, 'height_edge': 0.004, 'attacker_skill': 0.6181, '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.1568}
aerialWon: 0.3971 -> 1.2
totalShots: 1.8941 -> 1.8219
shotOffTarget: 1.2799 -> 1.2311
onTargetScoringAttempt: 0.6087 -> 0.5855
expectedGoals: 0.163 -> 0.1568
goals: 0.157 -> 0.151
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.27 (squad xG sum 0.9590, xG scale 1.3222, xA scale 1.3222, team xA 0.96 = 0.75 x lambda)scoreline_reset=true
team_lambda=1.268
squad_xg_sum=0.959
squad_xa_sum=0.7236
team_expected_assists=0.9567
team_xa_to_xg_ratio=0.7545
expected_goals: 0.1568 -> 0.2073
expected_assists: 0.1083 -> 0.1432
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.1872
goal_rate=0.151
scorer_weight=0.2015
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.1334
assist_rate=0.1131
provider_weight=0.1475
-
Sean SteurM7400.04-n/a00.06.830.713FBref 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.0185, quality 0.641)market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.0185
reference_quality=0.505
history_matches=6
history_shrink=0.4545
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0157)blend_weight=0.0157
history_matches=6
season_overlap_discount=1.0
per90_to_match_factor=0.8189
prior_reliability=0.0533
competition=Premier League
wonTackle: 0.7714 -> 0.7593
totalShots: 0.4913 -> 0.4836
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Antonee Robinson', 'matchup_zone': 'Right Wing vs Left Back — Flank Battle', 'duel_win_rate': 0.432, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 0.9295, 'skill_edge': -0.048, 'height_edge': 0.0, 'attacker_skill': 0.6408, 'defender_skill': 0.7474, 'attacker_role': 'RW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Antonee Robinson', 'market_value': 24000000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.7474}], 'xg_override': 0.0327}
aerialWon: 0.0 -> 1.1
totalShots: 0.489 -> 0.4545
shotOffTarget: 0.352 -> 0.3272
onTargetScoringAttempt: 0.137 -> 0.1273
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.27 (squad xG sum 0.9590, xG scale 1.3222, xA scale 1.3222, team xA 0.96 = 0.75 x lambda)scoreline_reset=true
team_lambda=1.268
squad_xg_sum=0.959
squad_xa_sum=0.7236
team_expected_assists=0.9567
team_xa_to_xg_ratio=0.7545
expected_goals: 0.0327 -> 0.0432
expected_assists: 0.0345 -> 0.0456
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 72.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.0423
goal_rate=0.0554
scorer_weight=0.054
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0446
assist_rate=0.0533
provider_weight=0.0557
-
Harvey BarnesF8500.350.15138%31.76.957.939FBref 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.770)market_value_eur=38000000
quality_factor=0.7699
boost_factor=1.0079
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.943
prior_reliability=0.1333
competition=Premier League
totalCross: 3.6855 -> 3.6658
totalShots: 2.2026 -> 2.1918
onTargetScoringAttempt: 0.7315 -> 0.7252
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Calvin Bassey, Timothy Castagne', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.238, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.0566, 'skill_edge': 0.0545, 'height_edge': -0.016, 'attacker_skill': 0.7699, 'defender_skill': 0.6488, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Calvin Bassey', 'market_value': 29000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7736}, {'player': 'Timothy Castagne', 'market_value': 7600000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.524}], 'xg_override': 0.2652}
totalShots: 2.1962 -> 2.3205
shotOffTarget: 1.471 -> 1.5543
onTargetScoringAttempt: 0.7252 -> 0.7662
goals: 0.2942 -> 0.3109
expectedGoals: 0.251 -> 0.2652
expectedGoalsOnTarget: 0.2049 -> 0.2165
bigChanceMissed: 0.1296 -> 0.1369
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.27 (squad xG sum 0.9590, xG scale 1.3222, xA scale 1.3222, team xA 0.96 = 0.75 x lambda)scoreline_reset=true
team_lambda=1.268
squad_xg_sum=0.959
squad_xa_sum=0.7236
team_expected_assists=0.9567
team_xa_to_xg_ratio=0.7545
expected_goals: 0.2652 -> 0.3507
expected_assists: 0.1131 -> 0.1496
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 80.0)match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.2958
goal_rate=0.3109
scorer_weight=0.4016
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.1389
assist_rate=0.2277
provider_weight=0.187
-
Team totals01.27116.9
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Lukáš HorníčekG5.3m15.1%Market-value substitute prior
Tino LivramentoD15.0m36.4%Market-value substitute prior
Amar DedićD14.7m23.9%Market-value substitute prior
Aladji BambaM18.5m71.0%Market-value substitute prior
Mason MileyM22.0m49.9%Market-value substitute prior
Matías Fernández-PardoF26.9m63.3%Market-value substitute prior
Antagonist / tactical summary
Midfield is evenly contested — Josh King vs Nico González will be the pivotal duel. Total antagonist xG — Home: 0.84, Away: 0.61. 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.7% / 50.3%, dominance ratio 0.49, key duel: Josh King vs Nico González
Alex Iwobi xG 0.17Emile Smith Rowe xG 0.10Josh King xG 0.17Joe Willock xG 0.16Sean Steur xG 0.03Nico González xG 0.04

Summary

Antagonist matchup analysis for Fulham vs Newcastle. Most likely scoreline: 1-0. Lambdas derived from 6 home and 6 away individual player duels. Head-to-head: Fulham 3W-0D-7L vs Newcastle 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 — Josh King vs Nico González will be the pivotal duel. Total antagonist xG — Home: 0.84, Away: 0.61. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.

Valencia vs Real Madrid

LaLiga · 20261107 · 4-4-2 vs 4-2-3-1
Predicted 0-2Winner: Real MadridWinning H 2-1 (4.1%)Winning A 0-2 (10.5%)Confidence 0.73λ home/away 0.94 / 2.26Most-likely P 10.5%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset Tracing
Antagonist + XGBoost match analysis for Valencia vs Real Madrid. Player statistics regressed using position-specific XGBoost models (G, D, M, F) with 2026-2027 FBref priors. Micro-duels resolved across 4-4-2 vs 4-2-3-1 (duel lambdas: Home 0.859, Away 2.463). Final calibrated Poisson lambdas: Home 0.935, Away 2.256 (most likely score 0-2).
Home Starters 11/11 XGBoost (8 FBref) Away Starters 11/11 XGBoost (8 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 0.86 / 2.46 Final λ (H/A) 0.94 / 2.26
FBref Team Priors: Valencia (Gls/90: 0.3333333333333333, GA/90: 0.33 → E[λ]: 0.822) vs Real Madrid (Gls/90: 3.0, GA/90: 3.33 → E[λ]: 0.733) | 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

MetricValenciaReal Madrid
League position19.003.00
Points per game0.892.01
Attack index0.761.30
Defense (concede) index0.851.06
Form multiplier0.951.05
Standing λ multiplier0.831.15

Lambda decomposition (how the goal rates were built)

StageValencia λReal Madrid λ
FBref Squad Prior E[λ] (weight 0.228)0.8220.733
Pre-mismatch1.0772.678
Pre-calibration (Micro-duels)0.8592.463
Final λ0.9352.256
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
0-210.5%
1-29.8%
0-19.2%
1-18.7%
0-37.9%
Home win14.2%
Draw18.7%
Away win67.2%
Over 2.561.8%
BTTS yes54.4%
Pregame fair line — favorite Real Madrid (67.2%), fair total 3.19, 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.

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Stole DimitrievskiG9000.00-n/a0.06.963.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 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
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0186)blend_weight=0.0186
history_matches=30
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': 'Kylian Mbappé, Arda Güler', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 2.4627}
-
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.94 (squad xG sum 0.7768, xG scale 1.2036, xA scale 1.2036, team xA 0.72 = 0.77 x lambda)scoreline_reset=true
team_lambda=0.935
squad_xg_sum=0.7768
squad_xa_sum=0.5964
team_expected_assists=0.7179
team_xa_to_xg_ratio=0.7678
shots_faced: 23.4 -> 21.4
expected_saves: 5.73 -> 5.23
high_pressure_saves: 1.97 -> 1.8
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 77.0)match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.0185
-
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.7168
-
José CopeteD8800.040.0299%10.66.850.69XGBoost 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.9972, quality 0.456)market_value_eur=4500000
quality_factor=0.456
boost_factor=0.9972
reference_quality=0.505
history_matches=21
history_shrink=0.1923
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Thiago Pitarch', 'matchup_zone': 'Right Wing vs Left Back — Flank Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.94 (squad xG sum 0.7768, xG scale 1.2036, xA scale 1.2036, team xA 0.72 = 0.77 x lambda)scoreline_reset=true
team_lambda=0.935
squad_xg_sum=0.7768
squad_xa_sum=0.5964
team_expected_assists=0.7179
team_xa_to_xg_ratio=0.7678
expected_goals: 0.0313 -> 0.0377
expected_assists: 0.0277 -> 0.0333
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_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.037
goal_rate=0.0
scorer_weight=0.0302
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0328
assist_rate=0.0
provider_weight=0.0266
-
José Luis GayàD8300.050.0391%10.46.855.031FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9983, quality 0.454)market_value_eur=4300000
quality_factor=0.4535
boost_factor=0.9983
reference_quality=0.505
history_matches=40
history_shrink=0.1111
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0038)blend_weight=0.0038
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=0.9267
prior_reliability=0.0533
competition=La Liga
wasFouled: 0.8235 -> 0.8292
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Arda Güler', 'matchup_zone': '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 0.94 (squad xG sum 0.7768, xG scale 1.2036, xA scale 1.2036, team xA 0.72 = 0.77 x lambda)scoreline_reset=true
team_lambda=0.935
squad_xg_sum=0.7768
squad_xa_sum=0.5964
team_expected_assists=0.7179
team_xa_to_xg_ratio=0.7678
expected_goals: 0.0453 -> 0.0545
expected_assists: 0.0598 -> 0.072
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 80.0)match_squad_rank=12
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.053
goal_rate=0.0052
scorer_weight=0.0436
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0695
assist_rate=0.0313
provider_weight=0.0576
-
Mouctar DiakhabyD7300.040.01300%00.26.737.110FBref 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.9944, quality 0.437)market_value_eur=1500000
quality_factor=0.4374
boost_factor=0.9944
reference_quality=0.505
history_matches=13
history_shrink=0.2778
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0301)blend_weight=0.0301
history_matches=13
season_overlap_discount=1.0
per90_to_match_factor=0.8106
prior_reliability=0.1667
competition=La Liga
interceptionWon: 1.0322 -> 1.0499
wonTackle: 0.6469 -> 0.6372
fouls: 0.6461 -> 0.6364
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Kylian Mbappé', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 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.94 (squad xG sum 0.7768, xG scale 1.2036, xA scale 1.2036, team xA 0.72 = 0.77 x lambda)scoreline_reset=true
team_lambda=0.935
squad_xg_sum=0.7768
squad_xa_sum=0.5964
team_expected_assists=0.7179
team_xa_to_xg_ratio=0.7678
expected_goals: 0.033 -> 0.0397
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 15 by projected rating, fifa_overall 76.0)match_squad_rank=15
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0389
goal_rate=0.0342
scorer_weight=0.0403
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0089
assist_rate=0.0
provider_weight=0.0078
-
César TárregaD8300.050.02133%10.46.949.631FBref 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.0003, quality 0.514)market_value_eur=9300000
quality_factor=0.5142
boost_factor=1.0003
reference_quality=0.505
history_matches=39
history_shrink=0.1136
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0148)blend_weight=0.0148
history_matches=39
season_overlap_discount=1.0
per90_to_match_factor=0.9186
prior_reliability=0.2
competition=La Liga
interceptionWon: 1.2556 -> 1.2416
wonTackle: 0.9316 -> 0.9405
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Kylian Mbappé', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 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.94 (squad xG sum 0.7768, xG scale 1.2036, xA scale 1.2036, team xA 0.72 = 0.77 x lambda)scoreline_reset=true
team_lambda=0.935
squad_xg_sum=0.7768
squad_xa_sum=0.5964
team_expected_assists=0.7179
team_xa_to_xg_ratio=0.7678
expected_goals: 0.0425 -> 0.0512
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 75.0)match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0499
goal_rate=0.0
scorer_weight=0.041
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.007
assist_rate=0.0
provider_weight=0.0063
-
Javier GuerraM8100.160.1057%11.16.959.037FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0053, quality 0.686)market_value_eur=26000000
quality_factor=0.6858
boost_factor=1.0053
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.901
prior_reliability=0.18
competition=La Liga
fouls: 1.1056 -> 1.0929
totalShots: 1.6755 -> 1.668
onTargetScoringAttempt: 0.5347 -> 0.5286
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 Carreras', 'matchup_zone': 'Left Mid vs Right Back — Wide Channel', 'duel_win_rate': 0.388, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.8943, 'skill_edge': -0.0759, 'height_edge': 0.004, 'attacker_skill': 0.7091, 'defender_skill': 0.8778, 'attacker_role': 'LM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Álvaro Carreras', 'market_value': 53000000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.8778}], 'xg_override': 0.1348}
aerialWon: 0.618 -> 1.2
totalShots: 1.6694 -> 1.4929
shotOffTarget: 1.1408 -> 1.0202
onTargetScoringAttempt: 0.5286 -> 0.4727
bigChanceMissed: 0.2735 -> 0.2446
goals: 0.1959 -> 0.1752
expectedGoals: 0.1507 -> 0.1348
expectedGoalsOnTarget: 0.1226 -> 0.1096
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.94 (squad xG sum 0.7768, xG scale 1.2036, xA scale 1.2036, team xA 0.72 = 0.77 x lambda)scoreline_reset=true
team_lambda=0.935
squad_xg_sum=0.7768
squad_xa_sum=0.5964
team_expected_assists=0.7179
team_xa_to_xg_ratio=0.7678
expected_goals: 0.1348 -> 0.1621
expected_assists: 0.126 -> 0.1517
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 82.0)match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.1496
goal_rate=0.1752
scorer_weight=0.1975
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.1408
assist_rate=0.1375
provider_weight=0.1616
-
PepeluM8500.050.1050%00.56.953.240XGBoost 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.9995, quality 0.490)market_value_eur=7300000
quality_factor=0.4903
boost_factor=0.9995
reference_quality=0.505
history_matches=41
history_shrink=0.1087
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Federico Valverde', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.289, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.7629, 'skill_edge': -0.1773, 'height_edge': 0.016, 'attacker_skill': 0.5, 'defender_skill': 0.894, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Federico Valverde', 'market_value': 87000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.894}], 'xg_override': 0.0406}
aerialWon: 0.5012 -> 1.2
totalShots: 0.5882 -> 0.4487
shotOffTarget: 0.4094 -> 0.3123
onTargetScoringAttempt: 0.1788 -> 0.1364
expectedGoalsOnTarget: 0.1549 -> 0.1182
goals: 0.0642 -> 0.049
expectedGoals: 0.0532 -> 0.0406
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.94 (squad xG sum 0.7768, xG scale 1.2036, xA scale 1.2036, team xA 0.72 = 0.77 x lambda)scoreline_reset=true
team_lambda=0.935
squad_xg_sum=0.7768
squad_xa_sum=0.5964
team_expected_assists=0.7179
team_xa_to_xg_ratio=0.7678
expected_goals: 0.0406 -> 0.0489
expected_assists: 0.0391 -> 0.0471
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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0477
goal_rate=0.049
scorer_weight=0.0534
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.046
assist_rate=0.0516
provider_weight=0.0537
-
Guido RodríguezM8600.040.04ok00.67.059.429FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 0.9973, quality 0.445)market_value_eur=3600000
quality_factor=0.4449
boost_factor=0.9973
reference_quality=0.505
history_matches=29
history_shrink=0.1471
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0127)blend_weight=0.0127
history_matches=29
season_overlap_discount=1.0
per90_to_match_factor=0.9508
prior_reliability=0.1333
competition=La Liga
interceptionWon: 1.3963 -> 1.4088
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Federico Valverde', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.266, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.7297, 'skill_edge': -0.1999, 'height_edge': 0.016, 'attacker_skill': 0.4498, 'defender_skill': 0.894, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Federico Valverde', 'market_value': 87000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.894}], 'xg_override': 0.0303}
totalShots: 0.5557 -> 0.4055
shotOffTarget: 0.3968 -> 0.2895
aerialWon: 1.2549 -> 1.2
onTargetScoringAttempt: 0.1589 -> 0.1159
goals: 0.0561 -> 0.0409
expectedGoals: 0.0415 -> 0.0303
expectedGoalsOnTarget: 0.0325 -> 0.0237
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.94 (squad xG sum 0.7768, xG scale 1.2036, xA scale 1.2036, team xA 0.72 = 0.77 x lambda)scoreline_reset=true
team_lambda=0.935
squad_xg_sum=0.7768
squad_xa_sum=0.5964
team_expected_assists=0.7179
team_xa_to_xg_ratio=0.7678
expected_goals: 0.0303 -> 0.0365
expected_assists: 0.0355 -> 0.0427
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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0358
goal_rate=0.0409
scorer_weight=0.0413
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0418
assist_rate=0.0471
provider_weight=0.0485
-
Filip UgrinićM7400.050.0438%10.76.863.331FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 0.9988, quality 0.471)market_value_eur=5700000
quality_factor=0.4708
boost_factor=0.9988
reference_quality=0.505
history_matches=37
history_shrink=0.119
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0114)blend_weight=0.0114
history_matches=37
season_overlap_discount=1.0
per90_to_match_factor=0.8234
prior_reliability=0.1467
competition=La Liga
wasFouled: 1.0776 -> 1.0994
totalShots: 0.6637 -> 0.6822
totalCross: 2.8281 -> 2.8427
onTargetScoringAttempt: 0.205 -> 0.2114
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Raúl Asencio', 'matchup_zone': 'Right Mid vs Left Back — Wide Channel', 'duel_win_rate': 0.381, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.8844, 'skill_edge': -0.0826, 'height_edge': 0.004, 'attacker_skill': 0.4785, 'defender_skill': 0.6621, 'attacker_role': 'RM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Raúl Asencio', 'market_value': 16300000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.6621}], 'xg_override': 0.044}
aerialWon: 0.3855 -> 1.2
totalShots: 0.6822 -> 0.6033
shotOffTarget: 0.4587 -> 0.4057
onTargetScoringAttempt: 0.2114 -> 0.187
goals: 0.058 -> 0.0513
expectedGoals: 0.0497 -> 0.044
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.94 (squad xG sum 0.7768, xG scale 1.2036, xA scale 1.2036, team xA 0.72 = 0.77 x lambda)scoreline_reset=true
team_lambda=0.935
squad_xg_sum=0.7768
squad_xa_sum=0.5964
team_expected_assists=0.7179
team_xa_to_xg_ratio=0.7678
expected_goals: 0.044 -> 0.053
expected_assists: 0.0845 -> 0.1017
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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0516
goal_rate=0.0513
scorer_weight=0.0571
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0967
assist_rate=0.07
provider_weight=0.0907
-
Arnaut DanjumaF8300.110.0837%11.06.952.835FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9977, quality 0.437)market_value_eur=2800000
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.0092)blend_weight=0.0092
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=0.9237
prior_reliability=0.1267
competition=La Liga
totalShots: 1.5769 -> 1.5943
wasFouled: 0.7597 -> 0.7705
fouls: 0.7168 -> 0.7236
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Dean Huijsen, Ibrahima Konaté', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.6245, 'skill_edge': -0.1954, 'height_edge': -0.06, 'attacker_skill': 0.4374, 'defender_skill': 0.8717, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Dean Huijsen', 'market_value': 66000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8879}, {'player': 'Ibrahima Konaté', 'market_value': 46000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8555}], 'xg_override': 0.0906}
totalShots: 1.5943 -> 0.9956
shotOffTarget: 0.9717 -> 0.6068
onTargetScoringAttempt: 0.6088 -> 0.3802
bigChanceMissed: 0.4115 -> 0.257
goals: 0.1932 -> 0.1207
expectedGoals: 0.1451 -> 0.0906
expectedGoalsOnTarget: 0.107 -> 0.0668
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.94 (squad xG sum 0.7768, xG scale 1.2036, xA scale 1.2036, team xA 0.72 = 0.77 x lambda)scoreline_reset=true
team_lambda=0.935
squad_xg_sum=0.7768
squad_xa_sum=0.5964
team_expected_assists=0.7179
team_xa_to_xg_ratio=0.7678
expected_goals: 0.0906 -> 0.1091
expected_assists: 0.0938 -> 0.1129
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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.1034
goal_rate=0.1207
scorer_weight=0.1325
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.1068
assist_rate=0.032
provider_weight=0.0903
-
Diego LópezF7200.120.03335%10.46.849.623XGBoost 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.0005, quality 0.518)market_value_eur=9600000
quality_factor=0.5177
boost_factor=1.0005
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': 'Dean Huijsen, Ibrahima Konaté', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.6777, 'skill_edge': -0.1593, 'height_edge': -0.06, 'attacker_skill': 0.5177, 'defender_skill': 0.8717, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Dean Huijsen', 'market_value': 66000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8879}, {'player': 'Ibrahima Konaté', 'market_value': 46000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8555}], 'xg_override': 0.0961}
totalShots: 1.4313 -> 0.97
shotOffTarget: 0.996 -> 0.675
onTargetScoringAttempt: 0.4353 -> 0.295
goals: 0.1757 -> 0.1191
expectedGoals: 0.1418 -> 0.0961
bigChanceMissed: 0.096 -> 0.0651
expectedGoalsOnTarget: 0.0893 -> 0.0605
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.94 (squad xG sum 0.7768, xG scale 1.2036, xA scale 1.2036, team xA 0.72 = 0.77 x lambda)scoreline_reset=true
team_lambda=0.935
squad_xg_sum=0.7768
squad_xa_sum=0.5964
team_expected_assists=0.7179
team_xa_to_xg_ratio=0.7678
expected_goals: 0.0961 -> 0.1157
expected_assists: 0.0851 -> 0.1024
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 77.0)match_squad_rank=11
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.1093
goal_rate=0.1191
scorer_weight=0.1339
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0973
assist_rate=0.1327
provider_weight=0.128
-
Team totals00.94106.8
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Kayne van OevelenG4.5m11.1%Market-value substitute prior
Arnau MartínezD13.9m22.5%Market-value substitute prior
Justin De HaasD13.8m22.2%Market-value substitute prior
Harvey ElliottM22.7m53.1%Market-value substitute prior
Aaron MayolM22.1m50.3%Market-value substitute prior
Hugo DuroF22.6m59.8%Market-value substitute prior

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Thibaut CourtoisG9000.00-n/a0.07.061.626FBref 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.0022, quality 0.574)market_value_eur=14500000
quality_factor=0.5737
boost_factor=1.0022
reference_quality=0.505
history_matches=41
history_shrink=0.1087
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0141)blend_weight=0.0141
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.2
competition=La Liga
saves: 2.7796 -> 2.7639
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 Guerra, Diego López', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 0.8591}
-
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.26 (squad xG sum 1.7009, xG scale 1.3264, xA scale 1.6253, team xA 1.47 = 0.65 x lambda)scoreline_reset=true
team_lambda=2.256
squad_xg_sum=1.7009
squad_xa_sum=0.9022
team_expected_assists=1.4664
team_xa_to_xg_ratio=0.65
shots_faced: 8.2 -> 8.9
expected_saves: 2.01 -> 2.18
high_pressure_saves: 0.69 -> 0.75
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
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.5662
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.4244
-
Ibrahima KonatéD8900.040.0280%00.36.959.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.0091, quality 0.809)market_value_eur=46000000
quality_factor=0.8089
boost_factor=1.0091
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.9923
prior_reliability=0.1333
competition=La Liga
wonTackle: 0.8508 -> 0.8606
fouls: 1.0684 -> 1.0634
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Arnaut Danjuma', '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.26 (squad xG sum 1.7009, xG scale 1.3264, xA scale 1.6253, team xA 1.47 = 0.65 x lambda)scoreline_reset=true
team_lambda=2.256
squad_xg_sum=1.7009
squad_xa_sum=0.9022
team_expected_assists=1.4664
team_xa_to_xg_ratio=0.65
expected_goals: 0.0323 -> 0.0428
expected_assists: 0.0095 -> 0.0154
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 84.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.0419
goal_rate=0.0042
scorer_weight=0.0342
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0153
assist_rate=0.0
provider_weight=0.0129
-
Raúl AsencioD8700.070.0485%00.37.037.021XGBoost 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.0047, quality 0.593)market_value_eur=16300000
quality_factor=0.5932
boost_factor=1.0047
reference_quality=0.505
history_matches=23
history_shrink=0.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': 'Filip Ugrinić', 'matchup_zone': 'Right Mid vs Left Back — Wide Channel'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.26 (squad xG sum 1.7009, xG scale 1.3264, xA scale 1.6253, team xA 1.47 = 0.65 x lambda)scoreline_reset=true
team_lambda=2.256
squad_xg_sum=1.7009
squad_xa_sum=0.9022
team_expected_assists=1.4664
team_xa_to_xg_ratio=0.65
expected_goals: 0.0531 -> 0.0704
expected_assists: 0.0363 -> 0.059
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 80.0)match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.068
goal_rate=0.0692
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.0573
assist_rate=0.0
provider_weight=0.0472
-
Dean HuijsenD8400.090.0573%10.57.159.028FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0131, quality 0.864)market_value_eur=66000000
quality_factor=0.8644
boost_factor=1.0131
reference_quality=0.505
history_matches=36
history_shrink=0.122
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0159)blend_weight=0.0159
history_matches=36
season_overlap_discount=1.0
per90_to_match_factor=0.9372
prior_reliability=0.2
competition=La Liga
totalShots: 0.497 -> 0.504
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Arnaut Danjuma', '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.26 (squad xG sum 1.7009, xG scale 1.3264, xA scale 1.6253, team xA 1.47 = 0.65 x lambda)scoreline_reset=true
team_lambda=2.256
squad_xg_sum=1.7009
squad_xa_sum=0.9022
team_expected_assists=1.4664
team_xa_to_xg_ratio=0.65
expected_goals: 0.0644 -> 0.0854
expected_assists: 0.0283 -> 0.046
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 81.0)match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0819
goal_rate=0.0206
scorer_weight=0.0683
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.045
assist_rate=0.0126
provider_weight=0.0368
-
Álvaro CarrerasD7700.050.02240%00.16.941.129FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0130, quality 0.834)market_value_eur=53000000
quality_factor=0.834
boost_factor=1.013
reference_quality=0.505
history_matches=33
history_shrink=0.1316
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0068)blend_weight=0.0068
history_matches=33
season_overlap_discount=1.0
per90_to_match_factor=0.8523
prior_reliability=0.08
competition=La Liga
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=true
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Javier Guerra', 'matchup_zone': 'Left Mid vs Right Back — Wide Channel'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.26 (squad xG sum 1.7009, xG scale 1.3264, xA scale 1.6253, team xA 1.47 = 0.65 x lambda)scoreline_reset=true
team_lambda=2.256
squad_xg_sum=1.7009
squad_xa_sum=0.9022
team_expected_assists=1.4664
team_xa_to_xg_ratio=0.65
expected_goals: 0.0388 -> 0.0515
expected_assists: 0.0771 -> 0.1253
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 81.0)match_squad_rank=12
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0502
goal_rate=0.163
scorer_weight=0.0644
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1178
assist_rate=0.1207
provider_weight=0.1566
-
Federico ValverdeM8100.100.0734%11.27.068.629FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0119, quality 0.887)market_value_eur=87000000
quality_factor=0.8873
boost_factor=1.0119
reference_quality=0.505
history_matches=43
history_shrink=0.1042
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0126)blend_weight=0.0126
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=0.8953
prior_reliability=0.1867
competition=La Liga
wonTackle: 0.6509 -> 0.6629
wasFouled: 0.4778 -> 0.4718
interceptionWon: 1.3539 -> 1.3489
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Pepelu', 'matchup_zone': 'Holding Mid vs Central Mid — Midfield Anchor Duel', 'duel_win_rate': 0.561, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.2371, 'skill_edge': 0.1773, 'height_edge': -0.016, 'attacker_skill': 0.894, 'defender_skill': 0.5, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Pepelu', 'market_value': 7300000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.5}], 'xg_override': 0.0726}
aerialWon: 0.6714 -> 1.1
totalShots: 0.7386 -> 0.9137
shotOffTarget: 0.4916 -> 0.6082
onTargetScoringAttempt: 0.2453 -> 0.3035
expectedGoals: 0.0587 -> 0.0726
goals: 0.0574 -> 0.071
expectedGoalsOnTarget: 0.0508 -> 0.0628
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.26 (squad xG sum 1.7009, xG scale 1.3264, xA scale 1.6253, team xA 1.47 = 0.65 x lambda)scoreline_reset=true
team_lambda=2.256
squad_xg_sum=1.7009
squad_xa_sum=0.9022
team_expected_assists=1.4664
team_xa_to_xg_ratio=0.65
expected_goals: 0.0726 -> 0.0963
expected_assists: 0.0666 -> 0.1082
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.0918
goal_rate=0.071
scorer_weight=0.095
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1026
assist_rate=0.0742
provider_weight=0.1153
-
Aurélien TchouaméniM8300.090.0646%11.27.061.527XGBoost 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.0126, quality 0.875)market_value_eur=73000000
quality_factor=0.8747
boost_factor=1.0126
reference_quality=0.505
history_matches=39
history_shrink=0.1136
-
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': 'Pepelu', 'matchup_zone': 'Holding Mid vs Central Mid — Midfield Anchor Duel', 'duel_win_rate': 0.586, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.2733, 'skill_edge': 0.1739, 'height_edge': 0.012, 'attacker_skill': 0.8865, 'defender_skill': 0.5, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Pepelu', 'market_value': 7300000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.5}], 'xg_override': 0.066}
totalShots: 0.837 -> 1.0658
shotOffTarget: 0.6569 -> 0.8364
aerialWon: 1.2886 -> 1.2
onTargetScoringAttempt: 0.1801 -> 0.2293
expectedGoals: 0.0518 -> 0.066
goals: 0.0489 -> 0.0623
bigChanceMissed: 0.04 -> 0.0509
expectedGoalsOnTarget: 0.0347 -> 0.0442
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.26 (squad xG sum 1.7009, xG scale 1.3264, xA scale 1.6253, team xA 1.47 = 0.65 x lambda)scoreline_reset=true
team_lambda=2.256
squad_xg_sum=1.7009
squad_xa_sum=0.9022
team_expected_assists=1.4664
team_xa_to_xg_ratio=0.65
expected_goals: 0.066 -> 0.0875
expected_assists: 0.041 -> 0.0666
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0838
goal_rate=0.0623
scorer_weight=0.0847
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0644
assist_rate=0.0579
provider_weight=0.079
-
Jude BellinghamM8300.240.1553%21.57.164.927FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0138, quality 0.899)market_value_eur=151000000
quality_factor=0.8995
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.9241
prior_reliability=0.18
competition=La Liga
totalShots: 1.6784 -> 1.693
wasFouled: 3.3107 -> 3.2983
onTargetScoringAttempt: 0.5848 -> 0.5956
goalAssist: 0.1251 -> 0.1327
goals: 0.1529 -> 0.1601
interceptionWon: 0.5104 -> 0.5035
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Pepelu', 'matchup_zone': 'CAM vs CM', 'duel_win_rate': 0.612, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.282, 'skill_edge': 0.1798, 'height_edge': 0.012, 'attacker_skill': 0.8996, 'defender_skill': 0.5, 'attacker_role': 'CAM', 'attacker_mv_price_index': 0.95, 'defender_adjusted_parts': [{'player': 'Pepelu', 'market_value': 7300000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.5}], 'xg_override': 0.1778}
aerialWon: 0.6141 -> 1.2
totalShots: 1.693 -> 2.1704
shotOffTarget: 1.0936 -> 1.402
onTargetScoringAttempt: 0.5956 -> 0.7636
expectedGoalsOnTarget: 0.1937 -> 0.2483
goals: 0.1601 -> 0.2052
expectedGoals: 0.1387 -> 0.1778
bigChanceMissed: 0.1282 -> 0.1644
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.26 (squad xG sum 1.7009, xG scale 1.3264, xA scale 1.6253, team xA 1.47 = 0.65 x lambda)scoreline_reset=true
team_lambda=2.256
squad_xg_sum=1.7009
squad_xa_sum=0.9022
team_expected_assists=1.4664
team_xa_to_xg_ratio=0.65
expected_goals: 0.1778 -> 0.2358
expected_assists: 0.1378 -> 0.224
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 90.0)match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.2101
goal_rate=0.2052
scorer_weight=0.2642
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.2007
assist_rate=0.1327
provider_weight=0.2179
-
Arda GülerM7400.310.11168%31.37.265.828FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0121, quality 0.892)market_value_eur=97000000
quality_factor=0.8922
boost_factor=1.0121
reference_quality=0.505
history_matches=43
history_shrink=0.1042
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0072)blend_weight=0.0072
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=0.821
prior_reliability=0.1067
competition=La Liga
wonTackle: 0.7624 -> 0.768
wasFouled: 1.771 -> 1.7656
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'José Luis Gayà', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.683, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.2987, 'skill_edge': 0.1872, 'height_edge': 0.016, 'attacker_skill': 0.8922, 'defender_skill': 0.4762, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'José Luis Gayà', 'market_value': 4300000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.4762}], 'xg_override': 0.2317}
aerialWon: 0.2778 -> 0.9
totalShots: 1.9559 -> 2.5401
shotOffTarget: 1.2365 -> 1.6058
onTargetScoringAttempt: 0.7194 -> 0.9343
goals: 0.1788 -> 0.2322
expectedGoals: 0.1784 -> 0.2317
expectedGoalsOnTarget: 0.1261 -> 0.1638
bigChanceMissed: 0.106 -> 0.1377
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.26 (squad xG sum 1.7009, xG scale 1.3264, xA scale 1.6253, team xA 1.47 = 0.65 x lambda)scoreline_reset=true
team_lambda=2.256
squad_xg_sum=1.7009
squad_xa_sum=0.9022
team_expected_assists=1.4664
team_xa_to_xg_ratio=0.65
expected_goals: 0.2317 -> 0.3073
expected_assists: 0.1926 -> 0.313
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 83.0)match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.2646
goal_rate=0.2322
scorer_weight=0.3079
-
integer_assist_projectionTeam scoreline allocation: 1 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.2688
assist_rate=0.1794
provider_weight=0.296
-
Thiago PitarchM7400.080.02321%10.36.928.323XGBoost 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.0108, quality 0.613)market_value_eur=18200000
quality_factor=0.613
boost_factor=1.0108
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': 'José Copete', 'matchup_zone': 'Right Wing vs Left Back — Flank Battle', 'duel_win_rate': 0.496, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0235, 'skill_edge': 0.06, 'height_edge': -0.044, 'attacker_skill': 0.613, 'defender_skill': 0.4797, 'attacker_role': 'RW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'José Copete', 'market_value': 4500000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.4797}], 'xg_override': 0.0566}
aerialWon: 0.2752 -> 1.0
totalShots: 0.7416 -> 0.759
shotOffTarget: 0.5247 -> 0.537
onTargetScoringAttempt: 0.2169 -> 0.222
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.26 (squad xG sum 1.7009, xG scale 1.3264, xA scale 1.6253, team xA 1.47 = 0.65 x lambda)scoreline_reset=true
team_lambda=2.256
squad_xg_sum=1.7009
squad_xa_sum=0.9022
team_expected_assists=1.4664
team_xa_to_xg_ratio=0.65
expected_goals: 0.0566 -> 0.0751
expected_assists: 0.0543 -> 0.0883
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.0723
goal_rate=0.0495
scorer_weight=0.0701
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0845
assist_rate=0.0643
provider_weight=0.0968
-
Kylian MbappéF8921.120.7649%54.17.863.427FBref 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.0129, quality 0.900)market_value_eur=212000000
quality_factor=0.9
boost_factor=1.0129
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.9837
prior_reliability=0.2
competition=La Liga
totalShots: 3.8724 -> 3.9289
onTargetScoringAttempt: 2.0425 -> 2.0785
totalOffside: 1.3559 -> 1.3414
wasFouled: 1.7267 -> 1.7162
totalCross: 1.1122 -> 1.1058
fouls: 0.6096 -> 0.6149
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Mouctar Diakhaby, César Tárrega', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.333, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.1952, 'skill_edge': 0.1828, 'height_edge': -0.05, 'attacker_skill': 0.9, 'defender_skill': 0.4938, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Mouctar Diakhaby', 'market_value': 1500000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'César Tárrega', 'market_value': 9300000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5502}], 'xg_override': 0.8472}
totalShots: 3.9289 -> 4.6958
onTargetScoringAttempt: 2.0785 -> 2.4842
shotOffTarget: 1.8299 -> 2.1871
bigChanceMissed: 1.2781 -> 1.5276
expectedGoalsOnTarget: 1.1434 -> 1.3666
goals: 0.9862 -> 1.1787
expectedGoals: 0.7088 -> 0.8472
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.26 (squad xG sum 1.7009, xG scale 1.3264, xA scale 1.6253, team xA 1.47 = 0.65 x lambda)scoreline_reset=true
team_lambda=2.256
squad_xg_sum=1.7009
squad_xa_sum=0.9022
team_expected_assists=1.4664
team_xa_to_xg_ratio=0.65
expected_goals: 0.8472 -> 1.1238
expected_assists: 0.1804 -> 0.2932
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.675
goal_rate=1.1787
scorer_weight=1.4047
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.2541
assist_rate=0.1516
provider_weight=0.2566
-
Team totals22.26157.1
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Andriy LuninG4.8m12.7%Market-value substitute prior
Trent Alexander-ArnoldD12.9m44.3%Market-value substitute prior
Marc CucurellaD26.6m50.8%Market-value substitute prior
Eduardo CamavingaM17.2m59.4%Market-value substitute prior
Bernardo SilvaM17.9m45.2%Market-value substitute prior
Vinícius JúniorF27.1m37.1%Market-value substitute prior
Antagonist / tactical summary
Away midfield dictates play with ~54% possession expected (Javier Guerra vs Jude Bellingham). Total antagonist xG — Home: 0.44, Away: 1.45. Home danger zone: Left Mid vs Right Back — Wide Channel. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Midfield — possession 46.3% / 53.7%, dominance ratio 0.38, key duel: Javier Guerra vs Jude Bellingham
Arnaut Danjuma xG 0.09Diego López xG 0.10Javier Guerra xG 0.13Arda Güler xG 0.23Thiago Pitarch xG 0.06Jude Bellingham xG 0.18

Summary

Antagonist matchup analysis for Valencia vs Real Madrid. Most likely scoreline: 0-2. Lambdas derived from 6 home and 6 away individual player duels. Head-to-head: Valencia 2W-1D-7L vs Real Madrid over 10 meetings.
Tactical parity between 4-4-2 and 4-2-3-1. Match outcome driven primarily by individual player quality. Away midfield dictates play with ~54% possession expected (Javier Guerra vs Jude Bellingham). Total antagonist xG — Home: 0.44, Away: 1.45. Home danger zone: Left Mid vs Right Back — Wide Channel. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.

Málaga vs Racing Club

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

Standing & form context

MetricMálagaRacing Club
League position20.0015.00
Points per game0.781.20
Attack index0.791.00
Defense (concede) index1.331.18
Form multiplier0.981.02
Standing λ multiplier1.011.07

Lambda decomposition (how the goal rates were built)

StageMálaga λRacing Club λ
Pre-competitive-floor1.0310.934
Pre-calibration (Micro-duels)1.0240.941
Final λ1.4531.200
competition calibration scale 1.35competition observed total goals 2.984quality gap applied Falsemismatch score pressure applied Falsecompetitive underdog floor applied Falsestage discount 1.0

Scoreline distribution & markets

Top 5 scorelinesP
1-112.4%
1-010.1%
2-18.9%
0-18.3%
2-07.4%
Home win42.8%
Draw26.1%
Away win31.1%
Over 2.549.5%
BTTS yes53.6%
Pregame fair line — favorite Málaga (42.8%), fair total 2.65, fair spread 0.25

Projected players vs season baseline

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

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Alfonso HerreroG9000.00-n/a0.07.058.713XGBoost 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.9937, quality 0.437)market_value_eur=420000
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': 'Maguette Gueye, Iñigo Vicente', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 0.9405}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.45 (squad xG sum 0.5938, xG scale 2.4468, xA scale 1.8415, team xA 1.16 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.453
squad_xg_sum=0.5938
squad_xa_sum=0.6312
team_expected_assists=1.1624
team_xa_to_xg_ratio=0.8
shots_faced: 8.9 -> 11.4
expected_saves: 2.17 -> 2.79
high_pressure_saves: 0.75 -> 0.96
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: 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.608
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.0769
-
Ángel RecioD9000.040.01212%00.66.955.712XGBoost 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=1000000
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': 'Iñigo Vicente', '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.45 (squad xG sum 0.5938, xG scale 2.4468, xA scale 1.8415, team xA 1.16 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.453
squad_xg_sum=0.5938
squad_xa_sum=0.6312
team_expected_assists=1.1624
team_xa_to_xg_ratio=0.8
expected_goals: 0.0173 -> 0.0423
expected_assists: 0.0093 -> 0.0171
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 65.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.0414
goal_rate=0.0
scorer_weight=0.0338
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.0144
-
Rafa GarridoD8900.020.01272%00.26.856.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.9937, quality 0.437)market_value_eur=1400000
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': 'André Almeida', '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.45 (squad xG sum 0.5938, xG scale 2.4468, xA scale 1.8415, team xA 1.16 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.453
squad_xg_sum=0.5938
squad_xa_sum=0.6312
team_expected_assists=1.1624
team_xa_to_xg_ratio=0.8
expected_goals: 0.0088 -> 0.0215
expected_assists: 0.0224 -> 0.0412
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: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0213
goal_rate=0.0
scorer_weight=0.0183
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.114
provider_weight=0.0515
-
Einar GalileaD8400.00-n/a00.06.941.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.9922, quality 0.437)market_value_eur=365000
quality_factor=0.4374
boost_factor=0.9922
reference_quality=0.505
history_matches=8
history_shrink=0.3846
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Iván Martín', '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.45 (squad xG sum 0.5938, xG scale 2.4468, xA scale 1.8415, team xA 1.16 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.453
squad_xg_sum=0.5938
squad_xa_sum=0.6312
team_expected_assists=1.1624
team_xa_to_xg_ratio=0.8
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 69.0)match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
goal_rate=0.0
scorer_weight=0.001
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0096
assist_rate=0.0
provider_weight=0.0087
-
Fernando CaleroD8500.070.02208%00.36.853.023XGBoost 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.9972, quality 0.437)market_value_eur=2100000
quality_factor=0.4374
boost_factor=0.9972
reference_quality=0.505
history_matches=31
history_shrink=0.1389
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Iñigo Vicente', '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.45 (squad xG sum 0.5938, xG scale 2.4468, xA scale 1.8415, team xA 1.16 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.453
squad_xg_sum=0.5938
squad_xa_sum=0.6312
team_expected_assists=1.1624
team_xa_to_xg_ratio=0.8
expected_goals: 0.0297 -> 0.0727
expected_assists: 0.0106 -> 0.0195
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_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.0701
goal_rate=0.0
scorer_weight=0.0582
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0193
assist_rate=0.0
provider_weight=0.0161
-
Carlos DotorM8000.160.05231%10.56.958.113XGBoost M_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 0.9932, quality 0.437)market_value_eur=1200000
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': 'Matteo Prati', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.396, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9647, 'skill_edge': -0.016, 'height_edge': -0.008, 'attacker_skill': 0.4374, 'defender_skill': 0.473, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Matteo Prati', 'market_value': 5000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.473}], 'xg_override': 0.0654}
aerialWon: 0.172 -> 1.1
totalShots: 0.8191 -> 0.7902
shotOffTarget: 0.5641 -> 0.5442
onTargetScoringAttempt: 0.2549 -> 0.2459
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.45 (squad xG sum 0.5938, xG scale 2.4468, xA scale 1.8415, team xA 1.16 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.453
squad_xg_sum=0.5938
squad_xa_sum=0.6312
team_expected_assists=1.1624
team_xa_to_xg_ratio=0.8
expected_goals: 0.0654 -> 0.16
expected_assists: 0.0666 -> 0.1226
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 85.0)match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1479
goal_rate=0.0637
scorer_weight=0.1576
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1154
assist_rate=0.0823
provider_weight=0.1391
-
Pablo MartínezM8210.250.06343%20.96.961.427XGBoost 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.9974, quality 0.439)market_value_eur=3100000
quality_factor=0.4387
boost_factor=0.9974
reference_quality=0.505
history_matches=34
history_shrink=0.1282
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Pablo Ramón', 'matchup_zone': 'Left Mid vs Right Back — Wide Channel', 'duel_win_rate': 0.446, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9801, 'skill_edge': 0.0025, 'height_edge': -0.016, 'attacker_skill': 0.4429, 'defender_skill': 0.4374, 'attacker_role': 'LM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Pablo Ramón', 'market_value': 1500000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.4374}], 'xg_override': 0.1032}
aerialWon: 0.3454 -> 1.1
totalShots: 1.6341 -> 1.6016
shotOffTarget: 1.1722 -> 1.1489
onTargetScoringAttempt: 0.4618 -> 0.4526
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.45 (squad xG sum 0.5938, xG scale 2.4468, xA scale 1.8415, team xA 1.16 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.453
squad_xg_sum=0.5938
squad_xa_sum=0.6312
team_expected_assists=1.1624
team_xa_to_xg_ratio=0.8
expected_goals: 0.1032 -> 0.2525
expected_assists: 0.1702 -> 0.3134
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_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.2231
goal_rate=0.1404
scorer_weight=0.3138
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.269
assist_rate=0.1299
provider_weight=0.256
-
Dani LorenzoM8200.150.03394%10.36.956.912XGBoost 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.9932, quality 0.437)market_value_eur=2300000
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': 'Jorge Salinas', 'matchup_zone': 'Right Mid vs Left Back — Wide Channel', 'duel_win_rate': 0.391, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.8979, 'skill_edge': -0.0494, 'height_edge': -0.02, 'attacker_skill': 0.4374, 'defender_skill': 0.5473, 'attacker_role': 'RM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Jorge Salinas', 'market_value': 8500000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.5473}], 'xg_override': 0.0598}
aerialWon: 0.148 -> 0.9
totalShots: 0.6896 -> 0.6192
shotOffTarget: 0.4473 -> 0.4016
onTargetScoringAttempt: 0.2422 -> 0.2175
bigChanceMissed: 0.104 -> 0.0934
goals: 0.0773 -> 0.0694
expectedGoals: 0.0666 -> 0.0598
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.45 (squad xG sum 0.5938, xG scale 2.4468, xA scale 1.8415, team xA 1.16 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.453
squad_xg_sum=0.5938
squad_xa_sum=0.6312
team_expected_assists=1.1624
team_xa_to_xg_ratio=0.8
expected_goals: 0.0598 -> 0.1463
expected_assists: 0.0804 -> 0.1481
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.1361
goal_rate=0.0694
scorer_weight=0.1591
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1377
assist_rate=0.0769
provider_weight=0.1441
-
Izan MerinoM7300.090.002293%00.16.840.813XGBoost 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.9948, quality 0.460)market_value_eur=4800000
quality_factor=0.4597
boost_factor=0.9948
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': 'Matteo Prati', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.463, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0191, 'skill_edge': -0.003, 'height_edge': 0.016, 'attacker_skill': 0.4663, 'defender_skill': 0.473, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Matteo Prati', 'market_value': 5000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.473}], 'xg_override': 0.0355}
aerialWon: 0.0 -> 1.2
totalShots: 0.4362 -> 0.4445
shotOffTarget: 0.3087 -> 0.3146
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.45 (squad xG sum 0.5938, xG scale 2.4468, xA scale 1.8415, team xA 1.16 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.453
squad_xg_sum=0.5938
squad_xa_sum=0.6312
team_expected_assists=1.1624
team_xa_to_xg_ratio=0.8
expected_goals: 0.0355 -> 0.0869
expected_assists: 0.0319 -> 0.0587
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 70.0)match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0832
goal_rate=0.0587
scorer_weight=0.1086
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.057
assist_rate=0.0492
provider_weight=0.0711
-
Ramón EnríquezM7500.07-n/a00.06.947.213XGBoost 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.9932, quality 0.437)market_value_eur=380000
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': 'Matteo Prati', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.398, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9235, 'skill_edge': -0.016, 'height_edge': -0.036, 'attacker_skill': 0.4374, 'defender_skill': 0.473, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Matteo Prati', 'market_value': 5000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.473}], 'xg_override': 0.0289}
aerialWon: 0.1577 -> 0.9
totalShots: 0.3387 -> 0.3128
shotOffTarget: 0.2309 -> 0.2132
onTargetScoringAttempt: 0.1078 -> 0.0996
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.45 (squad xG sum 0.5938, xG scale 2.4468, xA scale 1.8415, team xA 1.16 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.453
squad_xg_sum=0.5938
squad_xa_sum=0.6312
team_expected_assists=1.1624
team_xa_to_xg_ratio=0.8
expected_goals: 0.0289 -> 0.0707
expected_assists: 0.0418 -> 0.077
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: 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.048
scorer_weight=0.0878
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.0593
provider_weight=0.0917
-
David LarrubiaF8100.210.05352%11.16.951.522XGBoost 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.9975, quality 0.478)market_value_eur=6300000
quality_factor=0.4781
boost_factor=0.9975
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': 'Alvaro Mantilla, Jeanuël Belocian', '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.9017, 'skill_edge': -0.0189, 'height_edge': -0.048, 'attacker_skill': 0.4781, 'defender_skill': 0.52, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Alvaro Mantilla', 'market_value': 1200000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'Jeanuël Belocian', 'market_value': 12900000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6027}], 'xg_override': 0.0845}
totalShots: 1.1797 -> 1.0637
shotOffTarget: 0.7219 -> 0.6509
onTargetScoringAttempt: 0.4578 -> 0.4128
goals: 0.1081 -> 0.0975
expectedGoals: 0.0937 -> 0.0845
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.45 (squad xG sum 0.5938, xG scale 2.4468, xA scale 1.8415, team xA 1.16 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.453
squad_xg_sum=0.5938
squad_xa_sum=0.6312
team_expected_assists=1.1624
team_xa_to_xg_ratio=0.8
expected_goals: 0.0845 -> 0.2068
expected_assists: 0.1729 -> 0.3185
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 81.0)match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1868
goal_rate=0.0975
scorer_weight=0.2268
-
integer_assist_projectionTeam scoreline allocation: 1 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.2728
assist_rate=0.0
provider_weight=0.2548
-
Team totals11.4586.9
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Carlos LopezG4.4m10.9%Market-value substitute prior
Adam AznouD13.7m30.6%Market-value substitute prior
Jose SalinasD13.6m29.9%Market-value substitute prior
Jens-Lys CajusteM22.1m50.7%Market-value substitute prior
Aarón OchoaM22.0m49.9%Market-value substitute prior
ChupeteF25.7m57.6%Market-value substitute prior

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Julen AgirrezabalaG9000.00-n/a0.06.839.219XGBoost 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.9989, quality 0.481)market_value_eur=6500000
quality_factor=0.4805
boost_factor=0.9989
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': 'Pablo Martínez, David Larrubia', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.0243}
-
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.20 (squad xG sum 0.7251, xG scale 1.6551, xA scale 1.0606, team xA 0.96 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.2
squad_xg_sum=0.7251
squad_xa_sum=0.9051
team_expected_assists=0.96
team_xa_to_xg_ratio=0.8
shots_faced: 9.7 -> 13.8
expected_saves: 2.37 -> 3.38
high_pressure_saves: 0.82 -> 1.16
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_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.2806
-
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.9553
-
Alvaro MantillaD8700.070.02176%00.26.841.414XGBoost 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=1200000
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': 'David Larrubia', '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.20 (squad xG sum 0.7251, xG scale 1.6551, xA scale 1.0606, team xA 0.96 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.2
squad_xg_sum=0.7251
squad_xa_sum=0.9051
team_expected_assists=0.96
team_xa_to_xg_ratio=0.8
expected_goals: 0.0394 -> 0.0652
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_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0631
goal_rate=0.0
scorer_weight=0.0522
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0236
assist_rate=0.1938
provider_weight=0.0299
-
Jorge SalinasD8900.130.04186%10.66.850.713XGBoost D_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0000, quality 0.505)market_value_eur=8500000
quality_factor=0.5047
boost_factor=1.0
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=true
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Dani Lorenzo', 'matchup_zone': 'Right Mid vs Left Back — Wide Channel'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.20 (squad xG sum 0.7251, xG scale 1.6551, xA scale 1.0606, team xA 0.96 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.2
squad_xg_sum=0.7251
squad_xa_sum=0.9051
team_expected_assists=0.96
team_xa_to_xg_ratio=0.8
expected_goals: 0.0776 -> 0.1284
expected_assists: 0.2604 -> 0.2762
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.1205
goal_rate=0.0
scorer_weight=0.1027
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.2413
assist_rate=0.1019
provider_weight=0.221
-
Pablo RamónD8400.020.01329%10.26.939.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.9922, quality 0.437)market_value_eur=1500000
quality_factor=0.4374
boost_factor=0.9922
reference_quality=0.505
history_matches=8
history_shrink=0.3846
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Pablo Martínez', 'matchup_zone': 'Left Mid vs Right Back — Wide Channel'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 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.20 (squad xG sum 0.7251, xG scale 1.6551, xA scale 1.0606, team xA 0.96 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.2
squad_xg_sum=0.7251
squad_xa_sum=0.9051
team_expected_assists=0.96
team_xa_to_xg_ratio=0.8
expected_goals: 0.0137 -> 0.0227
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 69.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.0224
goal_rate=0.0
scorer_weight=0.0182
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0087
assist_rate=0.0
provider_weight=0.0075
-
Jeanuël BelocianD9000.140.04257%10.56.735.511XGBoost 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.0069, quality 0.556)market_value_eur=12900000
quality_factor=0.5559
boost_factor=1.0069
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': 'David Larrubia', '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.20 (squad xG sum 0.7251, xG scale 1.6551, xA scale 1.0606, team xA 0.96 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.2
squad_xg_sum=0.7251
squad_xa_sum=0.9051
team_expected_assists=0.96
team_xa_to_xg_ratio=0.8
expected_goals: 0.0849 -> 0.1405
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 71.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.1311
goal_rate=0.2715
scorer_weight=0.1756
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0088
assist_rate=0.0
provider_weight=0.0075
-
Iván MartínM8600.070.03166%10.47.156.934XGBoost M_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 0.9979, quality 0.437)market_value_eur=2700000
quality_factor=0.4374
boost_factor=0.9979
reference_quality=0.505
history_matches=43
history_shrink=0.1042
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Einar Galilea', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.464, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9765, 'skill_edge': 0.0, 'height_edge': -0.016, 'attacker_skill': 0.4374, 'defender_skill': 0.4374, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Einar Galilea', 'market_value': 365000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.4374}], 'xg_override': 0.0414}
aerialWon: 0.7754 -> 1.0
totalShots: 0.662 -> 0.6464
shotOffTarget: 0.4461 -> 0.4356
onTargetScoringAttempt: 0.2159 -> 0.2108
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.20 (squad xG sum 0.7251, xG scale 1.6551, xA scale 1.0606, team xA 0.96 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.2
squad_xg_sum=0.7251
squad_xa_sum=0.9051
team_expected_assists=0.96
team_xa_to_xg_ratio=0.8
expected_goals: 0.0414 -> 0.0685
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 77.0)match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0662
goal_rate=0.0663
scorer_weight=0.0856
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0646
assist_rate=0.0788
provider_weight=0.0761
-
Matteo PratiM8100.060.01894%10.26.939.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 0.9946, quality 0.462)market_value_eur=5000000
quality_factor=0.4622
boost_factor=0.9946
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': 'Izan Merino, Ramón Enríquez, Carlos Dotor', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.20 (squad xG sum 0.7251, xG scale 1.6551, xA scale 1.0606, team xA 0.96 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.2
squad_xg_sum=0.7251
squad_xa_sum=0.9051
team_expected_assists=0.96
team_xa_to_xg_ratio=0.8
expected_goals: 0.0377 -> 0.0624
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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0605
goal_rate=0.0511
scorer_weight=0.0719
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0418
assist_rate=0.0566
provider_weight=0.0504
-
André AlmeidaM6900.090.02513%10.26.932.132XGBoost 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.9982, quality 0.465)market_value_eur=5200000
quality_factor=0.4646
boost_factor=0.9982
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': 'Rafa Garrido', 'matchup_zone': 'Right Wing vs Left Back — Flank Battle', 'duel_win_rate': 0.516, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0533, 'skill_edge': 0.0122, 'height_edge': 0.024, 'attacker_skill': 0.4646, 'defender_skill': 0.4374, 'attacker_role': 'RW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Rafa Garrido', 'market_value': 1400000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.4374}], 'xg_override': 0.0572}
aerialWon: 0.0328 -> 0.9
totalShots: 0.732 -> 0.7711
shotOffTarget: 0.5002 -> 0.5269
onTargetScoringAttempt: 0.2318 -> 0.2442
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.20 (squad xG sum 0.7251, xG scale 1.6551, xA scale 1.0606, team xA 0.96 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.2
squad_xg_sum=0.7251
squad_xa_sum=0.9051
team_expected_assists=0.96
team_xa_to_xg_ratio=0.8
expected_goals: 0.0572 -> 0.0947
expected_assists: 0.0967 -> 0.1026
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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0904
goal_rate=0.0703
scorer_weight=0.1063
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0975
assist_rate=0.0776
provider_weight=0.0892
-
Íñigo Sáinz-MazaM8300.06-n/a00.06.79.913XGBoost M_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 0.9855, quality 0.437)market_value_eur=1000000
quality_factor=0.4374
boost_factor=0.9855
reference_quality=0.505
history_matches=2
history_shrink=0.7143
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Ramón Enríquez', 'matchup_zone': 'Midfield lane'}
-
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.20 (squad xG sum 0.7251, xG scale 1.6551, xA scale 1.0606, team xA 0.96 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.2
squad_xg_sum=0.7251
squad_xa_sum=0.9051
team_expected_assists=0.96
team_xa_to_xg_ratio=0.8
expected_goals: 0.0392 -> 0.0649
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 67.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.0628
goal_rate=0.0459
scorer_weight=0.0698
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0381
assist_rate=0.0467
provider_weight=0.0433
-
Maguette GueyeM8700.140.03306%10.26.736.013XGBoost 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=2600000
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': 'Carlos Dotor', 'matchup_zone': 'Attacking Mid vs Single Holding Mid — Space Creator Duel', 'duel_win_rate': 0.472, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0176, 'skill_edge': 0.0, 'height_edge': 0.012, 'attacker_skill': 0.4374, 'defender_skill': 0.4374, 'attacker_role': 'CAM', 'attacker_mv_price_index': 0.95, 'defender_adjusted_parts': [{'player': 'Carlos Dotor', 'market_value': 1200000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4374}], 'xg_override': 0.0851}
aerialWon: 0.0826 -> 1.1
totalShots: 0.9464 -> 0.9631
shotOffTarget: 0.6832 -> 0.6952
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.20 (squad xG sum 0.7251, xG scale 1.6551, xA scale 1.0606, team xA 0.96 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.2
squad_xg_sum=0.7251
squad_xa_sum=0.9051
team_expected_assists=0.96
team_xa_to_xg_ratio=0.8
expected_goals: 0.0851 -> 0.1408
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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.1313
goal_rate=0.0937
scorer_weight=0.1498
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0351
assist_rate=0.0496
provider_weight=0.0425
-
Iñigo VicenteF8600.130.03318%10.57.251.824XGBoost 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.482)market_value_eur=6600000
quality_factor=0.4818
boost_factor=0.9977
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': 'Ángel Recio, Fernando Calero', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.196, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 0.994, 'skill_edge': 0.0199, 'height_edge': -0.024, 'attacker_skill': 0.4818, 'defender_skill': 0.4374, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Ángel Recio', 'market_value': 1000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'Fernando Calero', 'market_value': 2100000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.0787}
totalShots: 1.0533 -> 1.047
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.20 (squad xG sum 0.7251, xG scale 1.6551, xA scale 1.0606, team xA 0.96 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.2
squad_xg_sum=0.7251
squad_xa_sum=0.9051
team_expected_assists=0.96
team_xa_to_xg_ratio=0.8
expected_goals: 0.0787 -> 0.1303
expected_assists: 0.2773 -> 0.2941
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 77.0)match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.1222
goal_rate=0.1093
scorer_weight=0.1613
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.2548
assist_rate=0.3159
provider_weight=0.3288
-
Team totals01.20116.8
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Simon ErikssonG4.4m10.9%Market-value substitute prior
Facundo GonzálezD13.6m29.9%Market-value substitute prior
Pedro FelipeD13.6m29.9%Market-value substitute prior
Aarón MartínM22.1m50.3%Market-value substitute prior
Andrés VallecilloM22.0m49.9%Market-value substitute prior
Yassir ZabiriF26.1m59.7%Market-value substitute prior
Antagonist / tactical summary
Midfield is evenly contested — Izan Merino vs André Almeida will be the pivotal duel. Total antagonist xG — Home: 0.38, Away: 0.26. Home danger zone: Left Mid vs Right Back — Wide Channel. Away danger zone: Attacking Mid vs Single Holding Mid — Space Creator Duel.
Midfield — possession 49.9% / 50.1%, dominance ratio 0.50, key duel: Izan Merino vs André Almeida
David Larrubia xG 0.08Pablo Martínez xG 0.10Dani Lorenzo xG 0.06Iván Martín xG 0.04Maguette Gueye xG 0.09André Almeida xG 0.06

Summary

Antagonist matchup analysis for Málaga vs Racing Club. Most likely scoreline: 1-0. Lambdas derived from 6 home and 4 away individual player duels. Head-to-head: Málaga 4W-3D-3L vs Racing Club over 10 meetings.
Tactical parity between 4-1-4-1 and 4-2-3-1. Match outcome driven primarily by individual player quality. Midfield is evenly contested — Izan Merino vs André Almeida will be the pivotal duel. Total antagonist xG — Home: 0.38, Away: 0.26. Home danger zone: Left Mid vs Right Back — Wide Channel. Away danger zone: Attacking Mid vs Single Holding Mid — Space Creator Duel.

Leeds vs Tottenham

Premier League · 20261107 · 3-4-2-1 vs 4-2-3-1
Predicted 1-1Winner: DrawWinning H 1-0 (8.9%)Winning A 0-1 (8.1%)Confidence 0.65λ home/away 1.46 / 1.33Most-likely P 12.1%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset Tracing
Antagonist + XGBoost match analysis for Leeds vs Tottenham. Player statistics regressed using position-specific XGBoost models (G, D, M, F) with 2026-2027 FBref priors. Micro-duels resolved across 3-4-2-1 vs 4-2-3-1 (duel lambdas: Home 1.289, Away 1.117). Final calibrated Poisson lambdas: Home 1.455, Away 1.326 (most likely score 1-1).
Home Starters 11/11 XGBoost (9 FBref) Away Starters 11/11 XGBoost (10 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.29 / 1.12 Final λ (H/A) 1.46 / 1.33
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

MetricLeedsTottenham
League position11.008.00
Points per game1.281.34
Attack index0.930.88
Defense (concede) index0.880.89
Form multiplier1.001.00
Standing λ multiplier0.920.91

Lambda decomposition (how the goal rates were built)

StageLeeds λTottenham λ
Pre-competitive-floor1.2431.157
Pre-calibration (Micro-duels)1.2891.117
Final λ1.4551.326
competition calibration scale 1.159competition 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.9%
2-18.7%
0-18.1%
1-27.9%
Home win40.2%
Draw25.6%
Away win34.3%
Over 2.552.6%
BTTS yes56.4%
Pregame fair line — favorite Leeds (40.2%), fair total 2.78, fair spread 0.13

Projected players vs season baseline

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

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
James TraffordG9000.00-n/a0.07.221.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 1.0221, quality 0.770)market_value_eur=38000000
quality_factor=0.7699
boost_factor=1.0221
reference_quality=0.505
history_matches=13
history_shrink=0.2778
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0241)blend_weight=0.0241
history_matches=13
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': 'Richarlison, Xavi Simons', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.1168}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.46 (squad xG sum 1.1774, xG scale 1.2358, xA scale 1.2732, team xA 0.95 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.455
squad_xg_sum=1.1774
squad_xa_sum=0.7428
team_expected_assists=0.9458
team_xa_to_xg_ratio=0.65
shots_faced: 10.6 -> 12.6
expected_saves: 2.59 -> 3.08
high_pressure_saves: 0.89 -> 1.06
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.4716
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0
provider_weight=0.0
squad_weight_total=0.8556
-
James JustinD8800.070.06ok10.96.861.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.0031, quality 0.595)market_value_eur=16500000
quality_factor=0.5953
boost_factor=1.0031
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.9763
prior_reliability=0.1333
competition=Premier League
wonTackle: 1.2335 -> 1.2457
totalCross: 2.45 -> 2.4401
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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': '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.46 (squad xG sum 1.1774, xG scale 1.2358, xA scale 1.2732, team xA 0.95 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.455
squad_xg_sum=1.1774
squad_xa_sum=0.7428
team_expected_assists=0.9458
team_xa_to_xg_ratio=0.65
expected_goals: 0.0593 -> 0.0733
expected_assists: 0.1343 -> 0.171
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.0707
goal_rate=0.1231
scorer_weight=0.0916
-
integer_assist_projectionTeam scoreline allocation: 1 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.1572
assist_rate=0.0708
provider_weight=0.1368
-
Tarik MuharemovićD9000.090.0490%10.57.145.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.0311, quality 0.796)market_value_eur=43000000
quality_factor=0.7957
boost_factor=1.0311
reference_quality=0.505
history_matches=9
history_shrink=0.3571
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0309)blend_weight=0.0309
history_matches=9
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League
interceptionWon: 1.1959 -> 1.2208
wasFouled: 0.9384 -> 0.9248
totalCross: 0.0645 -> 0.078
onTargetScoringAttempt: 0.2259 -> 0.2344
totalShots: 0.7409 -> 0.7334
goalAssist: 0.2348 -> 0.2275
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': 'Richarlison', '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.46 (squad xG sum 1.1774, xG scale 1.2358, xA scale 1.2732, team xA 0.95 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.455
squad_xg_sum=1.1774
squad_xa_sum=0.7428
team_expected_assists=0.9458
team_xa_to_xg_ratio=0.65
expected_goals: 0.0688 -> 0.085
expected_assists: 0.0302 -> 0.0385
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: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0815
goal_rate=0.0
scorer_weight=0.068
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0378
assist_rate=0.2275
provider_weight=0.0481
-
Joe RodonD8100.030.0266%00.36.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.0041, quality 0.619)market_value_eur=18800000
quality_factor=0.6191
boost_factor=1.0041
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.9043
prior_reliability=0.0933
competition=Premier League
fouls: 0.842 -> 0.8499
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Richarlison', '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.46 (squad xG sum 1.1774, xG scale 1.2358, xA scale 1.2732, team xA 0.95 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.455
squad_xg_sum=1.1774
squad_xa_sum=0.7428
team_expected_assists=0.9458
team_xa_to_xg_ratio=0.65
expected_goals: 0.0282 -> 0.0348
expected_assists: 0.0249 -> 0.0317
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.0342
goal_rate=0.004
scorer_weight=0.0278
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0312
assist_rate=0.0
provider_weight=0.0254
-
Ethan AmpaduM9000.050.05ok10.57.061.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.0072, quality 0.739)market_value_eur=33000000
quality_factor=0.7389
boost_factor=1.0072
reference_quality=0.505
history_matches=44
history_shrink=0.102
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0088)blend_weight=0.0088
history_matches=44
season_overlap_discount=1.0
per90_to_match_factor=0.998
prior_reliability=0.1333
competition=Premier League
fouls: 2.3232 -> 2.3159
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Archie Gray', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.422, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9583, 'skill_edge': -0.0084, 'height_edge': -0.02, 'attacker_skill': 0.7622, 'defender_skill': 0.7808, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Archie Gray', 'market_value': 34000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.7808}], 'xg_override': 0.0411}
totalShots: 0.5886 -> 0.5641
aerialWon: 1.1228 -> 1.1
shotOffTarget: 0.4337 -> 0.4156
onTargetScoringAttempt: 0.1542 -> 0.1478
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.46 (squad xG sum 1.1774, xG scale 1.2358, xA scale 1.2732, team xA 0.95 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.455
squad_xg_sum=1.1774
squad_xa_sum=0.7428
team_expected_assists=0.9458
team_xa_to_xg_ratio=0.65
expected_goals: 0.0411 -> 0.0508
expected_assists: 0.0655 -> 0.0834
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.0495
goal_rate=0.0465
scorer_weight=0.0538
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.0667
provider_weight=0.0843
-
Gabriel GudmundssonM8300.040.01360%10.36.841.934FBref 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.0062, quality 0.686)market_value_eur=26000000
quality_factor=0.6858
boost_factor=1.0062
reference_quality=0.505
history_matches=39
history_shrink=0.1136
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Archie Gray', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.394, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9173, 'skill_edge': -0.0322, 'height_edge': -0.024, 'attacker_skill': 0.7091, 'defender_skill': 0.7808, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Archie Gray', 'market_value': 34000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.7808}], 'xg_override': 0.0354}
aerialWon: 0.4332 -> 1.1
totalShots: 0.6321 -> 0.5798
shotOffTarget: 0.4324 -> 0.3966
onTargetScoringAttempt: 0.1997 -> 0.1832
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.46 (squad xG sum 1.1774, xG scale 1.2358, xA scale 1.2732, team xA 0.95 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.455
squad_xg_sum=1.1774
squad_xa_sum=0.7428
team_expected_assists=0.9458
team_xa_to_xg_ratio=0.65
expected_goals: 0.0354 -> 0.0437
expected_assists: 0.0719 -> 0.0915
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.0428
goal_rate=0.0436
scorer_weight=0.0479
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0874
assist_rate=0.0828
provider_weight=0.0997
-
Jayden BogleM8300.160.08100%10.66.957.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.0037, quality 0.623)market_value_eur=19200000
quality_factor=0.6231
boost_factor=1.0037
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.9211
prior_reliability=0.1133
competition=Premier League
wasFouled: 1.2203 -> 1.2317
totalCross: 3.1046 -> 3.0933
totalShots: 1.0977 -> 1.0893
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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.475, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.1103, 'skill_edge': 0.0751, 'height_edge': 0.0, 'attacker_skill': 0.6976, 'defender_skill': 0.5308, 'attacker_role': '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.1271}
aerialWon: 1.1604 -> 1.0
totalShots: 1.0949 -> 1.2157
shotOffTarget: 0.7369 -> 0.8182
onTargetScoringAttempt: 0.358 -> 0.3975
expectedGoalsOnTarget: 0.1435 -> 0.1593
expectedGoals: 0.1145 -> 0.1271
bigChanceMissed: 0.1082 -> 0.1201
goals: 0.0915 -> 0.1016
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.46 (squad xG sum 1.1774, xG scale 1.2358, xA scale 1.2732, team xA 0.95 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.455
squad_xg_sum=1.1774
squad_xa_sum=0.7428
team_expected_assists=0.9458
team_xa_to_xg_ratio=0.65
expected_goals: 0.1271 -> 0.1571
expected_assists: 0.1114 -> 0.1418
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.1454
goal_rate=0.1016
scorer_weight=0.1345
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1322
assist_rate=0.0921
provider_weight=0.1248
-
Ao TanakaM7600.090.0571%10.46.938.134FBref 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.0032, quality 0.592)market_value_eur=16200000
quality_factor=0.5921
boost_factor=1.0032
reference_quality=0.505
history_matches=36
history_shrink=0.122
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0026)blend_weight=0.0026
history_matches=36
season_overlap_discount=1.0
per90_to_match_factor=0.845
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': 'Marcos Senesi', 'matchup_zone': 'Right Wingback vs Left Back — Overlapping Run', 'duel_win_rate': 0.373, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9599, 'skill_edge': -0.0113, 'height_edge': -0.016, 'attacker_skill': 0.6608, 'defender_skill': 0.6858, 'attacker_role': 'RWB', 'attacker_mv_price_index': 0.7, 'defender_adjusted_parts': [{'player': 'Marcos Senesi', 'market_value': 18200000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.6858}], 'xg_override': 0.0691}
aerialWon: 0.1947 -> 1.1
totalShots: 0.9906 -> 0.9509
shotOffTarget: 0.7222 -> 0.6932
onTargetScoringAttempt: 0.2684 -> 0.2576
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.46 (squad xG sum 1.1774, xG scale 1.2358, xA scale 1.2732, team xA 0.95 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.455
squad_xg_sum=1.1774
squad_xa_sum=0.7428
team_expected_assists=0.9458
team_xa_to_xg_ratio=0.65
expected_goals: 0.0691 -> 0.0854
expected_assists: 0.0533 -> 0.0679
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.0819
goal_rate=0.0706
scorer_weight=0.0865
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0656
assist_rate=0.055
provider_weight=0.069
-
Dominic Calvert-LewinF8610.420.40ok21.76.856.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.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.0088)blend_weight=0.0088
history_matches=44
season_overlap_discount=1.0
per90_to_match_factor=0.9602
prior_reliability=0.1333
competition=Premier League
totalOffside: 0.645 -> 0.652
wasFouled: 1.2147 -> 1.2082
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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.8567, 'skill_edge': -0.0815, 'height_edge': -0.016, 'attacker_skill': 0.6941, '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.3409}
totalShots: 2.1413 -> 1.8345
shotOffTarget: 1.2045 -> 1.0319
onTargetScoringAttempt: 0.9346 -> 0.8007
bigChanceMissed: 0.6078 -> 0.5207
expectedGoalsOnTarget: 0.4689 -> 0.4017
expectedGoals: 0.3979 -> 0.3409
goals: 0.3654 -> 0.313
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.46 (squad xG sum 1.1774, xG scale 1.2358, xA scale 1.2732, team xA 0.95 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.455
squad_xg_sum=1.1774
squad_xa_sum=0.7428
team_expected_assists=0.9458
team_xa_to_xg_ratio=0.65
expected_goals: 0.3409 -> 0.4212
expected_assists: 0.0317 -> 0.0404
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 79.0)match_squad_rank=14
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 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.313
scorer_weight=0.3911
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0396
assist_rate=0.0026
provider_weight=0.0323
-
Noah OkaforF7200.210.1191%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': 'Archie Gray, Jan Paul van Hecke', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle', 'duel_win_rate': 0.221, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.9281, 'skill_edge': -0.0369, 'height_edge': -0.012, 'attacker_skill': 0.752, 'defender_skill': 0.8339, 'attacker_role': 'SS', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Archie Gray', 'market_value': 34000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.7808}, {'player': 'Jan Paul van Hecke', 'market_value': 65000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.887}], 'xg_override': 0.1697}
totalShots: 1.767 -> 1.64
shotOffTarget: 1.1473 -> 1.0648
onTargetScoringAttempt: 0.6174 -> 0.573
goals: 0.2282 -> 0.2118
expectedGoalsOnTarget: 0.1974 -> 0.1832
expectedGoals: 0.1829 -> 0.1697
bigChanceMissed: 0.1055 -> 0.0979
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.46 (squad xG sum 1.1774, xG scale 1.2358, xA scale 1.2732, team xA 0.95 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.455
squad_xg_sum=1.1774
squad_xa_sum=0.7428
team_expected_assists=0.9458
team_xa_to_xg_ratio=0.65
expected_goals: 0.1697 -> 0.2097
expected_assists: 0.073 -> 0.0929
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.1892
goal_rate=0.2118
scorer_weight=0.2499
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0887
assist_rate=0.0418
provider_weight=0.0743
-
Mateo JosephF7800.150.0884%10.66.748.118XGBoost 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.9974, quality 0.446)market_value_eur=3700000
quality_factor=0.4461
boost_factor=0.9974
reference_quality=0.505
history_matches=29
history_shrink=0.1471
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Archie Gray, 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.6964, 'skill_edge': -0.1745, 'height_edge': -0.032, 'attacker_skill': 0.4461, 'defender_skill': 0.8339, 'attacker_role': 'SS', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Archie Gray', 'market_value': 34000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.7808}, {'player': 'Jan Paul van Hecke', 'market_value': 65000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.887}], 'xg_override': 0.1178}
totalShots: 1.3902 -> 0.9681
shotOffTarget: 0.8378 -> 0.5834
onTargetScoringAttempt: 0.5524 -> 0.3847
bigChanceMissed: 0.3987 -> 0.2777
expectedGoalsOnTarget: 0.2715 -> 0.1891
goals: 0.2073 -> 0.1444
expectedGoals: 0.1691 -> 0.1178
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.46 (squad xG sum 1.1774, xG scale 1.2358, xA scale 1.2732, team xA 0.95 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.455
squad_xg_sum=1.1774
squad_xa_sum=0.7428
team_expected_assists=0.9458
team_xa_to_xg_ratio=0.65
expected_goals: 0.1178 -> 0.1456
expected_assists: 0.0614 -> 0.0782
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=0
goal_probability=0.1355
goal_rate=0.1444
scorer_weight=0.1687
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0752
assist_rate=0.0
provider_weight=0.0626
-
Team totals11.46136.9
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Michael ZettererG4.5m11.1%Market-value substitute prior
Jaka BijolD14.3m23.1%Market-value substitute prior
Nico ElvediD37.6m61.0%Market-value substitute prior
Anton StachM23.1m33.0%Market-value substitute prior
Sean LongstaffM15.0m70.0%Market-value substitute prior
Jean-Mattéo BahoyaF26.2m60.0%Market-value substitute prior

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.06.932.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.0082, quality 0.620)market_value_eur=18900000
quality_factor=0.6201
boost_factor=1.0082
reference_quality=0.505
history_matches=16
history_shrink=0.2381
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0206)blend_weight=0.0206
history_matches=16
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League
saves: 2.847 -> 2.8398
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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.289}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.33 (squad xG sum 1.1399, xG scale 1.1632, xA scale 1.0414, team xA 1.06 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.326
squad_xg_sum=1.1399
squad_xa_sum=1.0186
team_expected_assists=1.0608
team_xa_to_xg_ratio=0.8
shots_faced: 12.2 -> 13.8
expected_saves: 2.98 -> 3.38
high_pressure_saves: 1.03 -> 1.16
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.0
scorer_weight=0.0
squad_weight_total=1.4241
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.0537
-
Jan Paul van HeckeD9000.260.10167%10.77.662.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.0107, quality 0.863)market_value_eur=65000000
quality_factor=0.8627
boost_factor=1.0107
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.9984
prior_reliability=0.1333
competition=Premier League
interceptionWon: 1.168 -> 1.1622
totalShots: 1.1075 -> 1.1022
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': '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.33 (squad xG sum 1.1399, xG scale 1.1632, xA scale 1.0414, team xA 1.06 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.326
squad_xg_sum=1.1399
squad_xa_sum=1.0186
team_expected_assists=1.0608
team_xa_to_xg_ratio=0.8
expected_goals: 0.2257 -> 0.2625
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 81.0)match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.2309
goal_rate=0.2653
scorer_weight=0.3002
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0814
assist_rate=0.0196
provider_weight=0.0679
-
Marcos SenesiD9000.030.03ok00.37.246.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.0037, quality 0.613)market_value_eur=18200000
quality_factor=0.613
boost_factor=1.0037
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.9976
prior_reliability=0.0667
competition=Premier League
wonTackle: 1.0813 -> 1.0956
wasFouled: 1.3453 -> 1.3534
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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.33 (squad xG sum 1.1399, xG scale 1.1632, xA scale 1.0414, team xA 1.06 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.326
squad_xg_sum=1.1399
squad_xa_sum=1.0186
team_expected_assists=1.0608
team_xa_to_xg_ratio=0.8
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 82.0)match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0249
goal_rate=0.0
scorer_weight=0.0202
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0627
assist_rate=0.0664
provider_weight=0.0672
-
Andy RobertsonD7900.070.0499%10.46.643.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 0.9995, quality 0.493)market_value_eur=7500000
quality_factor=0.4927
boost_factor=0.9995
reference_quality=0.505
history_matches=32
history_shrink=0.1351
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0100)blend_weight=0.01
history_matches=32
season_overlap_discount=1.0
per90_to_match_factor=0.8784
prior_reliability=0.1133
competition=Premier League
wasFouled: 0.1507 -> 0.1595
totalCross: 4.8941 -> 4.8865
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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.33 (squad xG sum 1.1399, xG scale 1.1632, xA scale 1.0414, team xA 1.06 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.326
squad_xg_sum=1.1399
squad_xa_sum=1.0186
team_expected_assists=1.0608
team_xa_to_xg_ratio=0.8
expected_goals: 0.061 -> 0.071
expected_assists: 0.1976 -> 0.2058
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 18 by projected rating, fifa_overall 85.0)match_squad_rank=18
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0685
goal_rate=0.0403
scorer_weight=0.0578
-
integer_assist_projectionTeam scoreline allocation: 1 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.186
assist_rate=0.2097
provider_weight=0.2159
-
Micky van de VenD8900.070.0535%10.37.157.231FBref 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.821)market_value_eur=49000000
quality_factor=0.8206
boost_factor=1.0099
reference_quality=0.505
history_matches=43
history_shrink=0.1042
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0045)blend_weight=0.0045
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=0.9853
prior_reliability=0.0667
competition=Premier League
fouls: 0.7554 -> 0.7609
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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.33 (squad xG sum 1.1399, xG scale 1.1632, xA scale 1.0414, team xA 1.06 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.326
squad_xg_sum=1.1399
squad_xa_sum=1.0186
team_expected_assists=1.0608
team_xa_to_xg_ratio=0.8
expected_goals: 0.0563 -> 0.0655
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 81.0)match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0634
goal_rate=0.009
scorer_weight=0.0524
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0234
assist_rate=0.0036
provider_weight=0.019
-
Sandro TonaliM8700.070.06ok11.27.358.430FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0116, quality 0.884)market_value_eur=83000000
quality_factor=0.8845
boost_factor=1.0116
reference_quality=0.505
history_matches=44
history_shrink=0.102
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0080)blend_weight=0.008
history_matches=44
season_overlap_discount=1.0
per90_to_match_factor=0.9636
prior_reliability=0.12
competition=Premier League
wonTackle: 1.4391 -> 1.4319
wasFouled: 0.8447 -> 0.8508
totalCross: 1.7062 -> 1.7011
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Ethan Ampadu', 'matchup_zone': 'CAM vs CM', 'duel_win_rate': 0.472, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 1.077, 'skill_edge': 0.0564, 'height_edge': -0.004, 'attacker_skill': 0.8875, 'defender_skill': 0.7622, 'attacker_role': 'CAM', 'attacker_mv_price_index': 0.95, 'defender_adjusted_parts': [{'player': 'Ethan Ampadu', 'market_value': 33000000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.7622}], 'xg_override': 0.0599}
aerialWon: 0.5449 -> 1.1
totalShots: 1.2346 -> 1.3297
shotOffTarget: 0.9456 -> 1.0184
onTargetScoringAttempt: 0.288 -> 0.3102
goals: 0.0889 -> 0.0957
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.33 (squad xG sum 1.1399, xG scale 1.1632, xA scale 1.0414, team xA 1.06 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.326
squad_xg_sum=1.1399
squad_xa_sum=1.0186
team_expected_assists=1.0608
team_xa_to_xg_ratio=0.8
expected_goals: 0.0599 -> 0.0697
expected_assists: 0.1308 -> 0.1362
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.0673
goal_rate=0.0957
scorer_weight=0.0871
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1273
assist_rate=0.1445
provider_weight=0.1465
-
Archie GrayM7900.060.0448%10.46.949.038FBref 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.0098, quality 0.746)market_value_eur=34000000
quality_factor=0.7455
boost_factor=1.0098
reference_quality=0.505
history_matches=32
history_shrink=0.1351
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0100)blend_weight=0.01
history_matches=32
season_overlap_discount=1.0
per90_to_match_factor=0.8752
prior_reliability=0.1133
competition=Premier League
wasFouled: 0.9615 -> 0.9724
totalShots: 0.6249 -> 0.6187
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Noah Okafor, Mateo Joseph, 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.33 (squad xG sum 1.1399, xG scale 1.1632, xA scale 1.0414, team xA 1.06 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.326
squad_xg_sum=1.1399
squad_xa_sum=1.0186
team_expected_assists=1.0608
team_xa_to_xg_ratio=0.8
expected_goals: 0.0547 -> 0.0636
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.0616
goal_rate=0.0581
scorer_weight=0.0657
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0646
assist_rate=0.0722
provider_weight=0.0715
-
Rodrigo BentancurM8100.050.01226%10.26.949.520FBref 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.0036, quality 0.594)market_value_eur=16399999
quality_factor=0.5942
boost_factor=1.0036
reference_quality=0.505
history_matches=32
history_shrink=0.1351
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0088)blend_weight=0.0088
history_matches=32
season_overlap_discount=1.0
per90_to_match_factor=0.9049
prior_reliability=0.1
competition=Premier League
fouls: 1.0556 -> 1.0781
wonTackle: 1.7571 -> 1.7629
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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': '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.33 (squad xG sum 1.1399, xG scale 1.1632, xA scale 1.0414, team xA 1.06 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.326
squad_xg_sum=1.1399
squad_xa_sum=1.0186
team_expected_assists=1.0608
team_xa_to_xg_ratio=0.8
expected_goals: 0.0391 -> 0.0455
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.0445
goal_rate=0.0467
scorer_weight=0.0494
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0274
assist_rate=0.0492
provider_weight=0.0347
-
Mateus FernandesM8300.100.04138%10.87.160.433FBref 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.0109, quality 0.868)market_value_eur=68000000
quality_factor=0.8677
boost_factor=1.0109
reference_quality=0.505
history_matches=45
history_shrink=0.1
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0065)blend_weight=0.0065
history_matches=45
season_overlap_discount=1.0
per90_to_match_factor=0.9168
prior_reliability=0.1
competition=Premier League
totalCross: 2.9692 -> 2.9777
wasFouled: 0.8038 -> 0.7986
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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.498, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.1144, 'skill_edge': 0.0978, 'height_edge': -0.02, 'attacker_skill': 0.8677, '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.0874}
totalShots: 1.3287 -> 1.4807
shotOffTarget: 0.9826 -> 1.095
aerialWon: 0.9478 -> 1.0
onTargetScoringAttempt: 0.3461 -> 0.3857
goals: 0.111 -> 0.1237
expectedGoals: 0.0784 -> 0.0874
bigChanceMissed: 0.0487 -> 0.0543
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.33 (squad xG sum 1.1399, xG scale 1.1632, xA scale 1.0414, team xA 1.06 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.326
squad_xg_sum=1.1399
squad_xa_sum=1.0186
team_expected_assists=1.0608
team_xa_to_xg_ratio=0.8
expected_goals: 0.0874 -> 0.1017
expected_assists: 0.1233 -> 0.1284
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 80.0)match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0967
goal_rate=0.1237
scorer_weight=0.1271
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1205
assist_rate=0.086
provider_weight=0.1027
-
Xavi SimonsM8000.210.1278%21.56.951.519XGBoost M_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0132, quality 0.796)market_value_eur=43000000
quality_factor=0.7957
boost_factor=1.0132
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': 'James Justin', 'matchup_zone': 'RW vs CB', 'duel_win_rate': 0.469, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0727, 'skill_edge': 0.0654, 'height_edge': -0.016, 'attacker_skill': 0.7957, 'defender_skill': 0.6503, 'attacker_role': 'RW', '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.1833}
aerialWon: 0.1706 -> 1.0
totalShots: 1.8823 -> 2.0192
shotOffTarget: 1.2265 -> 1.3157
onTargetScoringAttempt: 0.6558 -> 0.7035
bigChanceMissed: 0.3218 -> 0.3452
expectedGoalsOnTarget: 0.1911 -> 0.205
goals: 0.1839 -> 0.1973
expectedGoals: 0.1709 -> 0.1833
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.33 (squad xG sum 1.1399, xG scale 1.1632, xA scale 1.0414, team xA 1.06 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.326
squad_xg_sum=1.1399
squad_xa_sum=1.0186
team_expected_assists=1.0608
team_xa_to_xg_ratio=0.8
expected_goals: 0.1833 -> 0.2132
expected_assists: 0.158 -> 0.1645
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 81.0)match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.192
goal_rate=0.1973
scorer_weight=0.226
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.1828
provider_weight=0.1841
-
RicharlisonF8010.340.2067%21.56.748.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 1.0028, quality 0.575)market_value_eur=14600000
quality_factor=0.5748
boost_factor=1.0028
reference_quality=0.505
history_matches=33
history_shrink=0.1316
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0040)blend_weight=0.004
history_matches=33
season_overlap_discount=1.0
per90_to_match_factor=0.89
prior_reliability=0.0467
competition=Premier League
totalShots: 2.1606 -> 2.152
fouls: 0.9924 -> 0.9986
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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, Tarik Muharemović', '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.8618, 'skill_edge': -0.078, 'height_edge': -0.016, 'attacker_skill': 0.5748, 'defender_skill': 0.7482, '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': 'Tarik Muharemović', 'market_value': 43000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8462}], 'xg_override': 0.2887}
totalShots: 2.1573 -> 1.8592
shotOffTarget: 1.3232 -> 1.1403
onTargetScoringAttempt: 0.8341 -> 0.7188
bigChanceMissed: 0.5291 -> 0.456
expectedGoalsOnTarget: 0.3983 -> 0.3433
goals: 0.3489 -> 0.3007
expectedGoals: 0.335 -> 0.2887
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.33 (squad xG sum 1.1399, xG scale 1.1632, xA scale 1.0414, team xA 1.06 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.326
squad_xg_sum=1.1399
squad_xa_sum=1.0186
team_expected_assists=1.0608
team_xa_to_xg_ratio=0.8
expected_goals: 0.2887 -> 0.3358
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: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.2852
goal_rate=0.3007
scorer_weight=0.3477
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0369
assist_rate=0.0375
provider_weight=0.0382
-
Team totals11.33127.0
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Brandon AustinG4.4m10.9%Market-value substitute prior
Pedro PorroD15.0m24.6%Market-value substitute prior
Destiny UdogieD14.2m62.1%Market-value substitute prior
Lucas BergvallM23.4m33.5%Market-value substitute prior
Conor GallagherM23.1m33.0%Market-value substitute prior
Omar MarmoushF26.9m36.7%Market-value substitute prior
Antagonist / tactical summary
Midfield is evenly contested — Ethan Ampadu vs Sandro Tonali will be the pivotal duel. Total antagonist xG — Home: 0.90, Away: 0.62. 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.7% / 51.3%, dominance ratio 0.45, key duel: Ethan Ampadu vs Sandro Tonali
Dominic Calvert-Lewin xG 0.34Noah Okafor xG 0.17Mateo Joseph xG 0.12Mateus Fernandes xG 0.09Sandro Tonali xG 0.06Xavi Simons xG 0.18

Summary

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


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