Soccer predictions: actual data vs predicted data

Slate 20261024 · 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
Atlético Madrid vs Deportivo
LaLiga
2-0Atlético Madrid82.9% / 11.5% / 5.6%69.0%45.4%0.842.90 / 0.66-pending
Rayo Vallecano vs Elche
LaLiga
1-1Draw40.4% / 27.8% / 31.9%43.0%48.7%0.71.29 / 1.11-pending
Racing Club vs Espanyol
LaLiga
1-1Draw33.8% / 25.6% / 40.6%52.4%56.2%0.71.31 / 1.46-pending
Arsenal vs Everton
Premier League
1-0Arsenal56.9% / 22.7% / 20.4%54.7%53.9%0.761.85 / 1.02-pending
Coventry vs Fulham
Premier League
1-1Draw34.1% / 27.2% / 38.7%45.6%50.9%0.71.20 / 1.30-pending
Aston Villa vs Man City
Premier League
0-2Man City10.4% / 15.3% / 74.3%68.1%54.7%0.80.89 / 2.62-pending
Chelsea vs Tottenham
Premier League
1-0Chelsea54.8% / 23.3% / 21.9%53.8%54.0%0.751.79 / 1.04-pending
Valencia vs Villarreal
LaLiga
0-1Villarreal23.2% / 26.9% / 49.9%41.7%45.5%0.740.90 / 1.45-pending

Match detail

Atlético Madrid vs Deportivo

LaLiga · 20261024 · 4-2-3-1 vs 4-2-3-1
Predicted 2-0Winner: Atlético MadridWinning H 2-0 (12.0%)Winning A 0-1 (1.8%)Confidence 0.84λ home/away 2.90 / 0.66Most-likely P 12.0%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset Tracing
Antagonist + XGBoost match analysis for Atlético Madrid 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 2.657, Away 0.808). Final calibrated Poisson lambdas: Home 2.903, Away 0.655 (most likely score 2-0).
Home Starters 11/11 XGBoost (9 FBref) Away Starters 11/11 XGBoost (10 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 2.66 / 0.81 Final λ (H/A) 2.90 / 0.66
Modeling Pipeline Stages (5 layers)
  1. 1. XGBoost player regressions for volume & event rates with market-value quality scaling
  2. 2. Multi-source prior blending (FBref 2026-2027 tables + Sofascore season history)
  3. 3. Antagonist formation duel matrix resolving 1v1 and zonal matchups
  4. 4. Team-level prior calibration (FBref possession and attack/defense efficiencies)
  5. 5. Bivariate Poisson matrix with Dixon-Coles low-score correction

Standing & form context

MetricAtlético MadridDeportivo
League position2.009.00
Points per game2.011.28
Attack index1.220.93
Defense (concede) index0.900.86
Form multiplier1.040.96
Standing λ multiplier1.050.91

Lambda decomposition (how the goal rates were built)

StageAtlético Madrid λDeportivo λ
Pre-mismatch2.7900.768
Pre-calibration (Micro-duels)2.6570.808
Final λ2.9030.655
competition calibration scale 1.0competition observed total goals 0.0quality gap applied Truemismatch score pressure applied Truecompetitive underdog floor applied Falsestage discount 1.0

Scoreline distribution & markets

Top 5 scorelinesP
2-012.0%
3-011.6%
4-08.4%
1-08.3%
2-17.9%
Home win82.9%
Draw11.5%
Away win5.6%
Over 2.569.0%
BTTS yes45.4%
Pregame fair line — favorite Atlético Madrid (82.9%), fair total 3.56, fair spread 2.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.

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Marc PubillD8000.090.04142%10.46.850.228FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0151, quality 0.817)market_value_eur=48000000
quality_factor=0.8168
boost_factor=1.0151
reference_quality=0.505
history_matches=26
history_shrink=0.1613
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0119)blend_weight=0.0119
history_matches=26
season_overlap_discount=1.0
per90_to_match_factor=0.891
prior_reliability=0.1133
competition=La Liga
interceptionWon: 0.8317 -> 0.8218
totalShots: 0.5277 -> 0.5337
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Yeremay Herná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 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.90 (squad xG sum 1.7339, xG scale 1.6743, xA scale 1.6743, team xA 1.93 = 0.66 x lambda)scoreline_reset=true
team_lambda=2.903
squad_xg_sum=1.7339
squad_xa_sum=1.1509
team_expected_assists=1.9269
team_xa_to_xg_ratio=0.6638
expected_goals: 0.0547 -> 0.0916
expected_assists: 0.0207 -> 0.0347
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 87.0)match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0875
goal_rate=0.1339
scorer_weight=0.1145
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0341
assist_rate=0.0083
provider_weight=0.0286
-
Marcos LlorenteD8300.090.04147%10.67.060.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.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.0076)blend_weight=0.0076
history_matches=38
season_overlap_discount=1.0
per90_to_match_factor=0.921
prior_reliability=0.1
competition=La Liga
fouls: 0.7435 -> 0.7657
totalCross: 1.7694 -> 1.756
interceptionWon: 1.0512 -> 1.0618
wasFouled: 0.239 -> 0.2465
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Yeremay Hernández', 'matchup_zone': 'Shape fallback'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.90 (squad xG sum 1.7339, xG scale 1.6743, xA scale 1.6743, team xA 1.93 = 0.66 x lambda)scoreline_reset=true
team_lambda=2.903
squad_xg_sum=1.7339
squad_xa_sum=1.1509
team_expected_assists=1.9269
team_xa_to_xg_ratio=0.6638
expected_goals: 0.0567 -> 0.0949
expected_assists: 0.0898 -> 0.1504
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
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.0905
goal_rate=0.0
scorer_weight=0.0759
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1396
assist_rate=0.108
provider_weight=0.17
-
Jan OblakG9000.00-n/a0.07.057.727FBref 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.0029, quality 0.590)market_value_eur=16000000
quality_factor=0.59
boost_factor=1.0029
reference_quality=0.505
history_matches=39
history_shrink=0.1136
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0148)blend_weight=0.0148
history_matches=39
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.2
competition=La Liga
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Bil Nsongo, Yeremay Hernández', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 0.8083}
-
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.90 (squad xG sum 1.7339, xG scale 1.6743, xA scale 1.6743, team xA 1.93 = 0.66 x lambda)scoreline_reset=true
team_lambda=2.903
squad_xg_sum=1.7339
squad_xa_sum=1.1509
team_expected_assists=1.9269
team_xa_to_xg_ratio=0.6638
shots_faced: 7.7 -> 6.2
expected_saves: 1.89 -> 1.51
high_pressure_saves: 0.65 -> 0.52
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 88.0)match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
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=3.0444
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.8319
-
Dávid HanckoD8800.110.05124%10.77.154.427FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 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.0148)blend_weight=0.0148
history_matches=39
season_overlap_discount=1.0
per90_to_match_factor=0.9769
prior_reliability=0.2
competition=La Liga
interceptionWon: 1.0738 -> 1.0868
wasFouled: 0.2145 -> 0.2258
wonTackle: 0.7181 -> 0.7267
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Yeremay Herná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 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.90 (squad xG sum 1.7339, xG scale 1.6743, xA scale 1.6743, team xA 1.93 = 0.66 x lambda)scoreline_reset=true
team_lambda=2.903
squad_xg_sum=1.7339
squad_xa_sum=1.1509
team_expected_assists=1.9269
team_xa_to_xg_ratio=0.6638
expected_goals: 0.0664 -> 0.1112
expected_assists: 0.0501 -> 0.0839
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 83.0)match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.1052
goal_rate=0.0
scorer_weight=0.089
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0805
assist_rate=0.1745
provider_weight=0.1049
-
Alejandro GrimaldoM8800.310.2058%21.37.152.119XGBoost 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.0139, quality 0.625)market_value_eur=19400000
quality_factor=0.6251
boost_factor=1.0139
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': 'José María Giménez', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.479, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.999, 'skill_edge': 0.0554, 'height_edge': -0.056, 'attacker_skill': 0.6251, 'defender_skill': 0.5021, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'José María Giménez', 'market_value': 5800000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.5021}], 'xg_override': 0.1848}
aerialWon: 0.4381 -> 0.8
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.90 (squad xG sum 1.7339, xG scale 1.6743, xA scale 1.6743, team xA 1.93 = 0.66 x lambda)scoreline_reset=true
team_lambda=2.903
squad_xg_sum=1.7339
squad_xa_sum=1.1509
team_expected_assists=1.9269
team_xa_to_xg_ratio=0.6638
expected_goals: 0.1848 -> 0.3094
expected_assists: 0.1409 -> 0.2359
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 89.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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.2661
goal_rate=0.1541
scorer_weight=0.269
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.2101
assist_rate=0.1344
provider_weight=0.2279
-
Morten HjulmandM8400.100.03292%10.57.050.611FBref 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.0360, quality 0.817)market_value_eur=48000000
quality_factor=0.8168
boost_factor=1.036
reference_quality=0.505
history_matches=8
history_shrink=0.3846
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0350)blend_weight=0.035
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=0.9328
prior_reliability=0.14
competition=La Liga
interceptionWon: 3.2197 -> 3.1536
fouls: 0.5548 -> 0.582
wonTackle: 1.0476 -> 1.0731
totalShots: 0.8561 -> 0.8418
onTargetScoringAttempt: 0.2078 -> 0.2005
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Diego Villares', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.599, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.263, 'skill_edge': 0.1829, 'height_edge': -0.004, 'attacker_skill': 0.8439, 'defender_skill': 0.4374, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Diego Villares', 'market_value': 1000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4374}], 'xg_override': 0.061}
aerialWon: 1.5172 -> 1.2
totalShots: 0.8487 -> 1.0719
shotOffTarget: 0.6482 -> 0.8187
onTargetScoringAttempt: 0.2005 -> 0.2532
goals: 0.0593 -> 0.0749
expectedGoals: 0.0483 -> 0.061
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.90 (squad xG sum 1.7339, xG scale 1.6743, xA scale 1.6743, team xA 1.93 = 0.66 x lambda)scoreline_reset=true
team_lambda=2.903
squad_xg_sum=1.7339
squad_xa_sum=1.1509
team_expected_assists=1.9269
team_xa_to_xg_ratio=0.6638
expected_goals: 0.061 -> 0.1021
expected_assists: 0.0531 -> 0.0889
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0971
goal_rate=0.0749
scorer_weight=0.1149
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0851
assist_rate=0.0669
provider_weight=0.1008
-
Pablo BarriosM7400.130.03296%10.77.260.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.0165, quality 0.879)market_value_eur=77000000
quality_factor=0.8792
boost_factor=1.0165
reference_quality=0.505
history_matches=29
history_shrink=0.1471
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0147)blend_weight=0.0147
history_matches=29
season_overlap_discount=1.0
per90_to_match_factor=0.818
prior_reliability=0.1533
competition=La Liga
totalCross: 1.3818 -> 1.3668
wasFouled: 0.7955 -> 0.8099
totalShots: 0.9186 -> 0.9104
interceptionWon: 1.5158 -> 1.5092
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Diego Villares', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.603, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.2695, 'skill_edge': 0.2034, 'height_edge': -0.02, 'attacker_skill': 0.8893, 'defender_skill': 0.4374, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Diego Villares', 'market_value': 1000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4374}], 'xg_override': 0.0753}
aerialWon: 0.754 -> 1.1
totalShots: 0.9203 -> 1.1683
shotOffTarget: 0.6781 -> 0.8608
onTargetScoringAttempt: 0.2422 -> 0.3075
expectedGoalsOnTarget: 0.0921 -> 0.1169
goals: 0.06 -> 0.0762
expectedGoals: 0.0593 -> 0.0753
bigChanceMissed: 0.0207 -> 0.0263
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.90 (squad xG sum 1.7339, xG scale 1.6743, xA scale 1.6743, team xA 1.93 = 0.66 x lambda)scoreline_reset=true
team_lambda=2.903
squad_xg_sum=1.7339
squad_xa_sum=1.1509
team_expected_assists=1.9269
team_xa_to_xg_ratio=0.6638
expected_goals: 0.0753 -> 0.1261
expected_assists: 0.1306 -> 0.2187
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.1185
goal_rate=0.0762
scorer_weight=0.127
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1964
assist_rate=0.1249
provider_weight=0.2118
-
Julián AlvarezF7310.490.12319%31.47.052.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.0150, quality 0.895)market_value_eur=107000000
quality_factor=0.8953
boost_factor=1.015
reference_quality=0.505
history_matches=34
history_shrink=0.1282
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0017)blend_weight=0.0017
history_matches=34
season_overlap_discount=1.0
per90_to_match_factor=0.8101
prior_reliability=0.02
competition=La Liga
totalCross: 3.1189 -> 3.1137
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Lucas Noubi, Ximo Navarro', '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.2394, 'skill_edge': 0.2029, 'height_edge': -0.04, 'attacker_skill': 0.8953, 'defender_skill': 0.4445, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Lucas Noubi', 'market_value': 3100000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4515}, {'player': 'Ximo Navarro', 'market_value': 95000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.295}
totalShots: 2.2917 -> 2.8403
shotOffTarget: 1.446 -> 1.7922
onTargetScoringAttempt: 0.8433 -> 1.0452
goals: 0.2884 -> 0.3574
expectedGoals: 0.238 -> 0.295
expectedGoalsOnTarget: 0.1863 -> 0.2309
bigChanceMissed: 0.1519 -> 0.1883
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.90 (squad xG sum 1.7339, xG scale 1.6743, xA scale 1.6743, team xA 1.93 = 0.66 x lambda)scoreline_reset=true
team_lambda=2.903
squad_xg_sum=1.7339
squad_xa_sum=1.1509
team_expected_assists=1.9269
team_xa_to_xg_ratio=0.6638
expected_goals: 0.295 -> 0.4939
expected_assists: 0.0986 -> 0.1651
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 86.0)match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
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.3898
goal_rate=0.3574
scorer_weight=0.5832
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1522
assist_rate=0.2564
provider_weight=0.2064
-
Ademola LookmanF6310.550.22149%31.56.857.228FBref 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.0170, quality 0.800)market_value_eur=44000000
quality_factor=0.8002
boost_factor=1.017
reference_quality=0.505
history_matches=21
history_shrink=0.1923
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0217)blend_weight=0.0217
history_matches=21
season_overlap_discount=1.0
per90_to_match_factor=0.7053
prior_reliability=0.1733
competition=La Liga
wasFouled: 0.8095 -> 0.8213
totalShots: 2.0301 -> 2.0216
interceptionWon: 0.0142 -> 0.0198
totalCross: 0.7723 -> 0.7673
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Lucas Noubi, Ximo Navarro', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.336, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.2001, 'skill_edge': 0.1601, 'height_edge': -0.024, 'attacker_skill': 0.8002, 'defender_skill': 0.4445, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Lucas Noubi', 'market_value': 3100000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4515}, {'player': 'Ximo Navarro', 'market_value': 95000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.3273}
totalShots: 2.0321 -> 2.4388
shotOffTarget: 1.3062 -> 1.5676
onTargetScoringAttempt: 0.7259 -> 0.8712
bigChanceMissed: 0.4286 -> 0.5144
expectedGoals: 0.2727 -> 0.3273
goals: 0.2299 -> 0.2759
expectedGoalsOnTarget: 0.1327 -> 0.1593
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.90 (squad xG sum 1.7339, xG scale 1.6743, xA scale 1.6743, team xA 1.93 = 0.66 x lambda)scoreline_reset=true
team_lambda=2.903
squad_xg_sum=1.7339
squad_xa_sum=1.1509
team_expected_assists=1.9269
team_xa_to_xg_ratio=0.6638
expected_goals: 0.3273 -> 0.5481
expected_assists: 0.1015 -> 0.1699
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 83.0)match_squad_rank=14
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
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.422
goal_rate=0.2759
scorer_weight=0.4734
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1563
assist_rate=0.0
provider_weight=0.1359
-
Alex BaenaF7300.370.09319%31.57.263.438FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0114, quality 0.817)market_value_eur=48000000
quality_factor=0.8168
boost_factor=1.0114
reference_quality=0.505
history_matches=36
history_shrink=0.122
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0095)blend_weight=0.0095
history_matches=36
season_overlap_discount=1.0
per90_to_match_factor=0.8082
prior_reliability=0.12
competition=La Liga
totalCross: 3.5951 -> 3.578
goals: 0.2277 -> 0.2383
interceptionWon: 1.3467 -> 1.3382
totalOffside: 0.1966 -> 0.2033
fouls: 1.1132 -> 1.1197
wasFouled: 1.235 -> 1.2403
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Lucas Noubi, Ximo Navarro', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.344, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.211, 'skill_edge': 0.1676, 'height_edge': -0.024, 'attacker_skill': 0.8168, 'defender_skill': 0.4445, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Lucas Noubi', 'market_value': 3100000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4515}, {'player': 'Ximo Navarro', 'market_value': 95000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.2206}
totalShots: 2.224 -> 2.6933
shotOffTarget: 1.3849 -> 1.6771
onTargetScoringAttempt: 0.8391 -> 1.0162
expectedGoalsOnTarget: 0.2492 -> 0.3018
goals: 0.2383 -> 0.2886
expectedGoals: 0.1822 -> 0.2206
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.90 (squad xG sum 1.7339, xG scale 1.6743, xA scale 1.6743, team xA 1.93 = 0.66 x lambda)scoreline_reset=true
team_lambda=2.903
squad_xg_sum=1.7339
squad_xa_sum=1.1509
team_expected_assists=1.9269
team_xa_to_xg_ratio=0.6638
expected_goals: 0.2206 -> 0.3693
expected_assists: 0.2243 -> 0.3754
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.3088
goal_rate=0.2886
scorer_weight=0.4616
-
integer_assist_projectionTeam scoreline allocation: 1 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.313
assist_rate=0.0615
provider_weight=0.3003
-
Kang-in LeeF7400.330.14134%31.97.156.216XGBoost 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.0278, quality 0.764)market_value_eur=37000000
quality_factor=0.7641
boost_factor=1.0278
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': 'Lucas Noubi, Ximo Navarro', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.316, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.1703, 'skill_edge': 0.1439, 'height_edge': -0.028, 'attacker_skill': 0.7641, 'defender_skill': 0.4445, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Lucas Noubi', 'market_value': 3100000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4515}, {'player': 'Ximo Navarro', 'market_value': 95000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.1988}
totalShots: 2.1216 -> 2.4829
shotOffTarget: 1.4223 -> 1.6645
onTargetScoringAttempt: 0.6993 -> 0.8184
expectedGoalsOnTarget: 0.2602 -> 0.3045
goals: 0.189 -> 0.2212
bigChanceMissed: 0.1853 -> 0.2169
expectedGoals: 0.1699 -> 0.1988
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.90 (squad xG sum 1.7339, xG scale 1.6743, xA scale 1.6743, team xA 1.93 = 0.66 x lambda)scoreline_reset=true
team_lambda=2.903
squad_xg_sum=1.7339
squad_xa_sum=1.1509
team_expected_assists=1.9269
team_xa_to_xg_ratio=0.6638
expected_goals: 0.1988 -> 0.3328
expected_assists: 0.2044 -> 0.3422
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.2831
goal_rate=0.2212
scorer_weight=0.3628
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.2898
assist_rate=0.1007
provider_weight=0.2738
-
Team totals22.90217.0
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Juan MussoG4.4m10.9%Market-value substitute prior
Cristian RomeroD15.0m36.6%Market-value substitute prior
Robin Le NormandD14.3m23.2%Market-value substitute prior
Giuliano SimeoneM29.2m46.5%Market-value substitute prior
Rodrigo MendozaM13.6m45.2%Market-value substitute prior
Jonathan DavidF26.4m60.8%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
Bil NsongoF7600.160.13ok21.66.952.413FBref 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.9958, quality 0.466)market_value_eur=5300000
quality_factor=0.4659
boost_factor=0.9958
reference_quality=0.505
history_matches=9
history_shrink=0.3571
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0248)blend_weight=0.0248
history_matches=9
season_overlap_discount=1.0
per90_to_match_factor=0.8471
prior_reliability=0.1067
competition=La Liga
wonTackle: 0.7266 -> 0.7611
fouls: 1.0715 -> 1.0974
totalCross: 0.3178 -> 0.3362
totalShots: 2.1371 -> 2.1228
wasFouled: 0.6833 -> 0.6926
goals: 0.2747 -> 0.2679
onTargetScoringAttempt: 0.7632 -> 0.7571
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Marc Pubill, Dávid Hancko', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.7121, 'skill_edge': -0.1678, 'height_edge': -0.028, 'attacker_skill': 0.4659, 'defender_skill': 0.8388, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Marc Pubill', 'market_value': 48000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8608}, {'player': 'Dávid Hancko', 'market_value': 36000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8168}], 'xg_override': 0.1913}
totalShots: 2.131 -> 1.5175
shotOffTarget: 1.3739 -> 0.9784
onTargetScoringAttempt: 0.7571 -> 0.5391
expectedGoals: 0.2686 -> 0.1913
goals: 0.2679 -> 0.1908
expectedGoalsOnTarget: 0.1958 -> 0.1394
bigChanceMissed: 0.1746 -> 0.1243
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.66 (squad xG sum 0.7603, xG scale 0.8616, xA scale 0.7390, team xA 0.52 = 0.80 x lambda)scoreline_reset=true
team_lambda=0.655
squad_xg_sum=0.7603
squad_xa_sum=0.709
team_expected_assists=0.524
team_xa_to_xg_ratio=0.8
expected_goals: 0.1913 -> 0.1647
expected_assists: 0.0421 -> 0.0311
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 69.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.1519
goal_rate=0.1908
scorer_weight=0.1644
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0306
assist_rate=0.0
provider_weight=0.0249
-
Yeremay HernándezF7800.090.1642%10.97.054.013FBref 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.0178, quality 0.660)market_value_eur=23000000
quality_factor=0.6595
boost_factor=1.0178
reference_quality=0.505
history_matches=8
history_shrink=0.3846
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0067)blend_weight=0.0067
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=0.8679
prior_reliability=0.0267
competition=La Liga
wonTackle: 1.1939 -> 1.2149
totalCross: 2.4134 -> 2.3973
totalOffside: 0.0 -> 0.0145
totalShots: 1.5867 -> 1.5761
interceptionWon: 0.9585 -> 0.9521
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': 'Marc Pubill, Dávid Hancko', '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.7932, 'skill_edge': -0.0807, 'height_edge': -0.06, 'attacker_skill': 0.6595, 'defender_skill': 0.8388, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Marc Pubill', 'market_value': 48000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8608}, {'player': 'Dávid Hancko', 'market_value': 36000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8168}], 'xg_override': 0.1084}
totalShots: 1.5834 -> 1.256
shotOffTarget: 1.1048 -> 0.8763
onTargetScoringAttempt: 0.4786 -> 0.3796
expectedGoalsOnTarget: 0.3098 -> 0.2457
goals: 0.1468 -> 0.1164
expectedGoals: 0.1366 -> 0.1084
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.66 (squad xG sum 0.7603, xG scale 0.8616, xA scale 0.7390, team xA 0.52 = 0.80 x lambda)scoreline_reset=true
team_lambda=0.655
squad_xg_sum=0.7603
squad_xa_sum=0.709
team_expected_assists=0.524
team_xa_to_xg_ratio=0.8
expected_goals: 0.1084 -> 0.0934
expected_assists: 0.1334 -> 0.0986
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 78.0)match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0892
goal_rate=0.1164
scorer_weight=0.0981
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0939
assist_rate=0.0
provider_weight=0.0789
-
Mario SorianoM8500.040.04ok10.97.253.212FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 0.9962, quality 0.470)market_value_eur=5600000
quality_factor=0.4695
boost_factor=0.9962
reference_quality=0.505
history_matches=9
history_shrink=0.3571
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0387)blend_weight=0.0387
history_matches=9
season_overlap_discount=1.0
per90_to_match_factor=0.9397
prior_reliability=0.1667
competition=La Liga
totalCross: 2.5408 -> 2.4716
fouls: 0.9242 -> 0.903
wasFouled: 1.5581 -> 1.5414
interceptionWon: 0.7633 -> 0.7483
wonTackle: 0.4325 -> 0.4449
goalAssist: 0.1061 -> 0.1165
onTargetScoringAttempt: 0.2602 -> 0.2501
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Jan Oblak', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.251, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.7523, 'skill_edge': -0.1085, 'height_edge': -0.06, 'attacker_skill': 0.4695, 'defender_skill': 0.7107, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Jan Oblak', 'market_value': 16000000, 'role': 'GK', 'price_index': 0.55, 'adjusted_quality': 0.7107}], 'xg_override': 0.0521}
aerialWon: 0.2818 -> 0.6
totalShots: 1.1835 -> 0.8903
shotOffTarget: 0.9259 -> 0.6966
onTargetScoringAttempt: 0.2501 -> 0.1882
expectedGoalsOnTarget: 0.1231 -> 0.0926
goals: 0.0771 -> 0.058
expectedGoals: 0.0693 -> 0.0521
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.66 (squad xG sum 0.7603, xG scale 0.8616, xA scale 0.7390, team xA 0.52 = 0.80 x lambda)scoreline_reset=true
team_lambda=0.655
squad_xg_sum=0.7603
squad_xa_sum=0.709
team_expected_assists=0.524
team_xa_to_xg_ratio=0.8
expected_goals: 0.0521 -> 0.0449
expected_assists: 0.1492 -> 0.1103
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 75.0)match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0439
goal_rate=0.058
scorer_weight=0.0475
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.1044
assist_rate=0.1165
provider_weight=0.0922
-
Diego VillaresM8000.040.04ok10.36.929.012FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 0.9899, quality 0.437)market_value_eur=1000000
quality_factor=0.4374
boost_factor=0.9899
reference_quality=0.505
history_matches=5
history_shrink=0.5
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0152)blend_weight=0.0152
history_matches=5
season_overlap_discount=1.0
per90_to_match_factor=0.8936
prior_reliability=0.0467
competition=La Liga
wonTackle: 0.5702 -> 0.6003
totalShots: 0.8791 -> 0.8658
wasFouled: 0.4538 -> 0.4469
fouls: 0.9401 -> 0.9452
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Morten Hjulmand', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.241, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.737, 'skill_edge': -0.1829, 'height_edge': 0.004, 'attacker_skill': 0.4374, 'defender_skill': 0.8439, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Morten Hjulmand', 'market_value': 48000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8439}], 'xg_override': 0.0485}
aerialWon: 0.7476 -> 1.2
totalShots: 0.8754 -> 0.6452
shotOffTarget: 0.6451 -> 0.4754
onTargetScoringAttempt: 0.2303 -> 0.1697
expectedGoalsOnTarget: 0.1219 -> 0.0898
expectedGoals: 0.0658 -> 0.0485
goals: 0.0618 -> 0.0455
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.66 (squad xG sum 0.7603, xG scale 0.8616, xA scale 0.7390, team xA 0.52 = 0.80 x lambda)scoreline_reset=true
team_lambda=0.655
squad_xg_sum=0.7603
squad_xa_sum=0.709
team_expected_assists=0.524
team_xa_to_xg_ratio=0.8
expected_goals: 0.0485 -> 0.0418
expected_assists: 0.0571 -> 0.0422
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 79.0)match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0409
goal_rate=0.0455
scorer_weight=0.0405
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0413
assist_rate=0.0599
provider_weight=0.0433
-
Lorenzo AmatucciM8900.02-n/a00.06.948.710FBref 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.526)market_value_eur=10300000
quality_factor=0.526
boost_factor=1.0026
reference_quality=0.505
history_matches=7
history_shrink=0.4167
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0542)blend_weight=0.0542
history_matches=7
season_overlap_discount=1.0
per90_to_match_factor=0.9889
prior_reliability=0.2
competition=La Liga
wasFouled: 1.2782 -> 1.2268
wonTackle: 1.2507 -> 1.2901
fouls: 2.168 -> 2.1398
totalShots: 0.5015 -> 0.4743
goalAssist: 0.0551 -> 0.07
onTargetScoringAttempt: 0.1314 -> 0.1243
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Morten Hjulmand', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.234, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.7271, 'skill_edge': -0.1336, 'height_edge': -0.052, 'attacker_skill': 0.547, 'defender_skill': 0.8439, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Morten Hjulmand', 'market_value': 48000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8439}], 'xg_override': 0.0245}
aerialWon: 1.5629 -> 0.8
totalShots: 0.4944 -> 0.3595
shotOffTarget: 0.3701 -> 0.2691
onTargetScoringAttempt: 0.1243 -> 0.0904
goals: 0.0451 -> 0.0328
expectedGoals: 0.0337 -> 0.0245
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.66 (squad xG sum 0.7603, xG scale 0.8616, xA scale 0.7390, team xA 0.52 = 0.80 x lambda)scoreline_reset=true
team_lambda=0.655
squad_xg_sum=0.7603
squad_xa_sum=0.709
team_expected_assists=0.524
team_xa_to_xg_ratio=0.8
expected_assists: 0.0414 -> 0.0306
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 73.0)match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0209
goal_rate=0.0328
scorer_weight=0.0235
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0301
assist_rate=0.07
provider_weight=0.0382
-
Giacomo QuagliataD8800.030.0235%00.56.748.512FBref 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.9942, quality 0.451)market_value_eur=4099999
quality_factor=0.4511
boost_factor=0.9942
reference_quality=0.505
history_matches=9
history_shrink=0.3571
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0464)blend_weight=0.0464
history_matches=9
season_overlap_discount=1.0
per90_to_match_factor=0.9829
prior_reliability=0.2
competition=La Liga
totalCross: 3.7252 -> 3.6587
totalShots: 0.5042 -> 0.4808
wonTackle: 0.7983 -> 0.7764
onTargetScoringAttempt: 0.3309 -> 0.3155
interceptionWon: 1.0296 -> 1.0426
fouls: 1.5137 -> 1.5043
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Ademola Lookman', '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.66 (squad xG sum 0.7603, xG scale 0.8616, xA scale 0.7390, team xA 0.52 = 0.80 x lambda)scoreline_reset=true
team_lambda=0.655
squad_xg_sum=0.7603
squad_xa_sum=0.709
team_expected_assists=0.524
team_xa_to_xg_ratio=0.8
expected_assists: 0.066 -> 0.0488
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 73.0)match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0279
goal_rate=0.0
scorer_weight=0.0226
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0476
assist_rate=0.0
provider_weight=0.039
-
Lucas NoubiD9000.00-n/a10.06.927.912FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9901, quality 0.439)market_value_eur=3100000
quality_factor=0.4387
boost_factor=0.9901
reference_quality=0.505
history_matches=5
history_shrink=0.5
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0650)blend_weight=0.065
history_matches=5
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.2
competition=La Liga
totalShots: 0.581 -> 0.5432
interceptionWon: 1.1855 -> 1.2168
wasFouled: 1.1043 -> 1.0759
fouls: 1.1881 -> 1.1759
wonTackle: 0.86 -> 0.8691
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Julián Alvarez', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 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.66 (squad xG sum 0.7603, xG scale 0.8616, xA scale 0.7390, team xA 0.52 = 0.80 x lambda)scoreline_reset=true
team_lambda=0.655
squad_xg_sum=0.7603
squad_xa_sum=0.709
team_expected_assists=0.524
team_xa_to_xg_ratio=0.8
-
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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0
goal_rate=0.0
scorer_weight=0.001
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0075
assist_rate=0.0
provider_weight=0.0062
-
José María GiménezD8400.060.0448%10.56.946.625FBref 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.472)market_value_eur=5800000
quality_factor=0.472
boost_factor=0.9983
reference_quality=0.505
history_matches=24
history_shrink=0.1724
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0030)blend_weight=0.003
history_matches=24
season_overlap_discount=1.0
per90_to_match_factor=0.9347
prior_reliability=0.0267
competition=La Liga
fouls: 1.2257 -> 1.236
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Alejandro Grimaldo', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 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.66 (squad xG sum 0.7603, xG scale 0.8616, xA scale 0.7390, team xA 0.52 = 0.80 x lambda)scoreline_reset=true
team_lambda=0.655
squad_xg_sum=0.7603
squad_xa_sum=0.709
team_expected_assists=0.524
team_xa_to_xg_ratio=0.8
expected_goals: 0.0719 -> 0.0619
expected_assists: 0.0212 -> 0.0157
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 82.0)match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.06
goal_rate=0.0
scorer_weight=0.0495
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0156
assist_rate=0.0426
provider_weight=0.0196
-
Ximo NavarroD8000.030.0236%00.36.743.112FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9922, quality 0.437)market_value_eur=95000
quality_factor=0.4374
boost_factor=0.9922
reference_quality=0.505
history_matches=8
history_shrink=0.3846
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0483)blend_weight=0.0483
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=0.8916
prior_reliability=0.1933
competition=La Liga
fouls: 0.3455 -> 0.3734
wonTackle: 1.1292 -> 1.1043
totalCross: 1.1315 -> 1.1511
wasFouled: 0.6001 -> 0.6157
interceptionWon: 0.9878 -> 0.9995
totalShots: 0.4357 -> 0.4444
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Julián Alvarez', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 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.66 (squad xG sum 0.7603, xG scale 0.8616, xA scale 0.7390, team xA 0.52 = 0.80 x lambda)scoreline_reset=true
team_lambda=0.655
squad_xg_sum=0.7603
squad_xa_sum=0.709
team_expected_assists=0.524
team_xa_to_xg_ratio=0.8
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 72.0)match_squad_rank=14
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0283
goal_rate=0.0
scorer_weight=0.023
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0093
assist_rate=0.0
provider_weight=0.0074
-
Leo RománG9000.00-n/a0.07.063.933FBref 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.0001, quality 0.507)market_value_eur=8700000
quality_factor=0.5071
boost_factor=1.0001
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=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': 'Ademola Lookman, Julián Alvarez', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 2.657}
-
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.66 (squad xG sum 0.7603, xG scale 0.8616, xA scale 0.7390, team xA 0.52 = 0.80 x lambda)scoreline_reset=true
team_lambda=0.655
squad_xg_sum=0.7603
squad_xa_sum=0.709
team_expected_assists=0.524
team_xa_to_xg_ratio=0.8
shots_faced: 25.2 -> 27.6
expected_saves: 6.16 -> 6.76
high_pressure_saves: 2.13 -> 2.32
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=0.6442
-
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.457
-
Luismi CruzF6900.080.0555%10.56.947.122XGBoost 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.9928, quality 0.437)market_value_eur=2100000
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': 'Marc Pubill, Dávid Hancko', '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.6463, 'skill_edge': -0.1806, 'height_edge': -0.06, 'attacker_skill': 0.4374, 'defender_skill': 0.8388, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Marc Pubill', 'market_value': 48000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8608}, {'player': 'Dávid Hancko', 'market_value': 36000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8168}], 'xg_override': 0.0949}
totalShots: 1.1487 -> 0.7424
shotOffTarget: 0.7253 -> 0.4688
onTargetScoringAttempt: 0.4234 -> 0.2736
expectedGoals: 0.1468 -> 0.0949
goals: 0.1383 -> 0.0894
expectedGoalsOnTarget: 0.1112 -> 0.0719
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.66 (squad xG sum 0.7603, xG scale 0.8616, xA scale 0.7390, team xA 0.52 = 0.80 x lambda)scoreline_reset=true
team_lambda=0.655
squad_xg_sum=0.7603
squad_xa_sum=0.709
team_expected_assists=0.524
team_xa_to_xg_ratio=0.8
expected_goals: 0.0949 -> 0.0818
expected_assists: 0.1163 -> 0.0859
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 74.0)match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0785
goal_rate=0.0894
scorer_weight=0.0787
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0823
assist_rate=0.0827
provider_weight=0.0687
-
Team totals00.66106.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
Marc CasadóM22.6m52.9%Market-value substitute prior
AngeliñoM22.0m50.1%Market-value substitute prior
Jonathan Asp JensenF25.4m56.5%Market-value substitute prior
Antagonist / tactical summary
Home midfield dominates with ~54% possession expected (Pablo Barrios vs Lorenzo Amatucci). Total antagonist xG — Home: 1.36, Away: 0.52. 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 54.0% / 46.0%, dominance ratio 0.62, key duel: Pablo Barrios vs Lorenzo Amatucci
Alejandro Grimaldo xG 0.18Julián Alvarez xG 0.29Ademola Lookman xG 0.33Mario Soriano xG 0.05Yeremay Hernández xG 0.11Bil Nsongo xG 0.19

Summary

Antagonist matchup analysis for Atlético Madrid vs Deportivo. Most likely scoreline: 2-0. Lambdas derived from 7 home and 6 away individual player duels. Head-to-head: Atlético Madrid 7W-3D-0L 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. Home midfield dominates with ~54% possession expected (Pablo Barrios vs Lorenzo Amatucci). Total antagonist xG — Home: 1.36, Away: 0.52. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.

Rayo Vallecano vs Elche

LaLiga · 20261024 · 4-2-3-1 vs 4-2-3-1
Predicted 1-1Winner: DrawWinning H 1-0 (11.6%)Winning A 0-1 (10.0%)Confidence 0.7λ home/away 1.29 / 1.11Most-likely P 13.1%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset Tracing
Antagonist + XGBoost match analysis for Rayo Vallecano vs Elche. 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.286, Away 1.111). Final calibrated Poisson lambdas: Home 1.286, Away 1.111 (most likely score 1-1).
Home Starters 11/11 XGBoost (5 FBref) Away Starters 11/11 XGBoost (8 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.29 / 1.11 Final λ (H/A) 1.29 / 1.11
FBref Team Priors: Rayo Vallecano (Gls/90: 1.3333333333333333, GA/90: 1.33 → E[λ]: 0.988) vs Elche (Gls/90: 1.0, GA/90: 1.0 → E[λ]: 0.985) | Blend Weight: 0.228
Modeling Pipeline Stages (5 layers)
  1. 1. XGBoost player regressions for volume & event rates with market-value quality scaling
  2. 2. Multi-source prior blending (FBref 2026-2027 tables + Sofascore season history)
  3. 3. Antagonist formation duel matrix resolving 1v1 and zonal matchups
  4. 4. Team-level prior calibration (FBref possession and attack/defense efficiencies)
  5. 5. Bivariate Poisson matrix with Dixon-Coles low-score correction

Standing & form context

MetricRayo VallecanoElche
League position13.0018.00
Points per game1.221.01
Attack index0.990.87
Defense (concede) index1.051.15
Form multiplier1.010.99
Standing λ multiplier1.021.00

Lambda decomposition (how the goal rates were built)

StageRayo Vallecano λElche λ
FBref Squad Prior E[λ] (weight 0.228)0.9880.985
Pre-competitive-floor1.2861.111
Pre-calibration (Micro-duels)1.2861.111
Final λ1.2861.111
competition calibration scale 1.0competition observed total goals 0.0quality gap applied Falsemismatch score pressure applied Falsecompetitive underdog floor applied Falsestage discount 1.0

Scoreline distribution & markets

Top 5 scorelinesP
1-113.1%
1-011.6%
0-110.0%
0-09.2%
2-18.4%
Home win40.4%
Draw27.8%
Away win31.9%
Over 2.543.0%
BTTS yes48.7%
Pregame fair line — favorite Rayo Vallecano (40.4%), fair total 2.40, fair spread 0.17

Projected players vs season baseline

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

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Mujaid SadickD8500.00-n/a00.06.833.08XGBoost 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.458)market_value_eur=4700000
quality_factor=0.4585
boost_factor=0.9922
reference_quality=0.505
history_matches=4
history_shrink=0.5556
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Fernando Niño', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.29 (squad xG sum 1.0238, xG scale 1.2561, xA scale 1.2561, team xA 0.88 = 0.69 x lambda)scoreline_reset=true
team_lambda=1.286
squad_xg_sum=1.0238
squad_xa_sum=0.7033
team_expected_assists=0.8834
team_xa_to_xg_ratio=0.6869
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 84.0)match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
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.0053
assist_rate=0.0
provider_weight=0.0049
-
Florian LejeuneD9000.090.0656%11.47.161.431FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9979, quality 0.437)market_value_eur=1700000
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
interceptionWon: 1.1718 -> 1.1916
wonTackle: 0.9638 -> 0.9775
totalShots: 1.1128 -> 1.1202
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Fernando Niño', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.29 (squad xG sum 1.0238, xG scale 1.2561, xA scale 1.2561, team xA 0.88 = 0.69 x lambda)scoreline_reset=true
team_lambda=1.286
squad_xg_sum=1.0238
squad_xa_sum=0.7033
team_expected_assists=0.8834
team_xa_to_xg_ratio=0.6869
expected_goals: 0.0751 -> 0.0943
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 79.0)match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.09
goal_rate=0.0555
scorer_weight=0.0795
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0159
assist_rate=0.011
provider_weight=0.0156
-
Iván BalliuD8000.030.003416%00.06.627.529FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9961, quality 0.437)market_value_eur=1100000
quality_factor=0.4374
boost_factor=0.9961
reference_quality=0.505
history_matches=21
history_shrink=0.1923
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0167)blend_weight=0.0167
history_matches=21
season_overlap_discount=1.0
per90_to_match_factor=0.8852
prior_reliability=0.1333
competition=La Liga
totalCross: 0.8623 -> 0.8553
totalShots: 0.3318 -> 0.3263
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Lucas Cepeda', '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.29 (squad xG sum 1.0238, xG scale 1.2561, xA scale 1.2561, team xA 0.88 = 0.69 x lambda)scoreline_reset=true
team_lambda=1.286
squad_xg_sum=1.0238
squad_xa_sum=0.7033
team_expected_assists=0.8834
team_xa_to_xg_ratio=0.6869
expected_goals: 0.0232 -> 0.0291
expected_assists: 0.037 -> 0.0465
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 18 by projected rating, fifa_overall 74.0)match_squad_rank=18
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 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.0
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.0454
assist_rate=0.0
provider_weight=0.0372
-
Emil AuderoG9000.00-n/a0.06.934.08XGBoost G_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost G_service raw output over 3 target models--
market_value_boostMarket-value quality scaling (boost 0.9887, quality 0.437)market_value_eur=2700000
quality_factor=0.4374
boost_factor=0.9887
reference_quality=0.505
history_matches=4
history_shrink=0.5556
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Fernando Niño, Lucas Cepeda', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.1114}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.29 (squad xG sum 1.0238, xG scale 1.2561, xA scale 1.2561, team xA 0.88 = 0.69 x lambda)scoreline_reset=true
team_lambda=1.286
squad_xg_sum=1.0238
squad_xa_sum=0.7033
team_expected_assists=0.8834
team_xa_to_xg_ratio=0.6869
-
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.0
scorer_weight=0.0
squad_weight_total=1.3418
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.8581
-
Adrià PedrosaD8600.050.02217%10.46.745.530FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9973, quality 0.437)market_value_eur=2700000
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.0040)blend_weight=0.004
history_matches=33
season_overlap_discount=1.0
per90_to_match_factor=0.9541
prior_reliability=0.0467
competition=La Liga
fouls: 1.1654 -> 1.1716
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Thomas Lemar', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.29 (squad xG sum 1.0238, xG scale 1.2561, xA scale 1.2561, team xA 0.88 = 0.69 x lambda)scoreline_reset=true
team_lambda=1.286
squad_xg_sum=1.0238
squad_xa_sum=0.7033
team_expected_assists=0.8834
team_xa_to_xg_ratio=0.6869
expected_goals: 0.0383 -> 0.0481
expected_assists: 0.1302 -> 0.1635
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 74.0)match_squad_rank=14
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.047
goal_rate=0.1225
scorer_weight=0.0601
-
integer_assist_projectionTeam scoreline allocation: 1 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.1508
assist_rate=0.144
provider_weight=0.176
-
Unai LópezM8000.070.03190%10.67.151.628FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 0.9975, quality 0.437)market_value_eur=2600000
quality_factor=0.4374
boost_factor=0.9975
reference_quality=0.505
history_matches=36
history_shrink=0.122
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0143)blend_weight=0.0143
history_matches=36
season_overlap_discount=1.0
per90_to_match_factor=0.8883
prior_reliability=0.18
competition=La Liga
totalShots: 1.0254 -> 1.0155
fouls: 1.1166 -> 1.1241
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Matías Dituro', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.36, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9118, 'skill_edge': 0.0, 'height_edge': -0.06, 'attacker_skill': 0.4374, 'defender_skill': 0.4374, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Matías Dituro', 'market_value': 105000, 'role': 'GK', 'price_index': 0.55, 'adjusted_quality': 0.4374}], 'xg_override': 0.0585}
aerialWon: 0.3743 -> 0.8
totalShots: 1.0259 -> 0.9354
shotOffTarget: 0.7289 -> 0.6646
onTargetScoringAttempt: 0.297 -> 0.2708
goals: 0.0848 -> 0.0773
expectedGoals: 0.0642 -> 0.0585
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.29 (squad xG sum 1.0238, xG scale 1.2561, xA scale 1.2561, team xA 0.88 = 0.69 x lambda)scoreline_reset=true
team_lambda=1.286
squad_xg_sum=1.0238
squad_xa_sum=0.7033
team_expected_assists=0.8834
team_xa_to_xg_ratio=0.6869
expected_goals: 0.0585 -> 0.0735
expected_assists: 0.1442 -> 0.1811
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 76.0)match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0709
goal_rate=0.0773
scorer_weight=0.0862
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1656
assist_rate=0.1158
provider_weight=0.1546
-
Pathé Ismaël CissM9000.060.08ok10.56.962.330XGBoost M_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 0.9976, quality 0.437)market_value_eur=1600000
quality_factor=0.4374
boost_factor=0.9976
reference_quality=0.505
history_matches=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': 'Javi Morcillo', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.42, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0, 'skill_edge': 0.0, 'height_edge': 0.0, 'attacker_skill': 0.4374, 'defender_skill': 0.4374, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Javi Morcillo', 'market_value': 2100000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4374}], 'xg_override': 0.0494}
aerialWon: 1.7013 -> 1.1
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.29 (squad xG sum 1.0238, xG scale 1.2561, xA scale 1.2561, team xA 0.88 = 0.69 x lambda)scoreline_reset=true
team_lambda=1.286
squad_xg_sum=1.0238
squad_xa_sum=0.7033
team_expected_assists=0.8834
team_xa_to_xg_ratio=0.6869
expected_goals: 0.0494 -> 0.0621
expected_assists: 0.0319 -> 0.0401
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 82.0)match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_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.0602
goal_rate=0.0526
scorer_weight=0.0641
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0393
assist_rate=0.0495
provider_weight=0.0487
-
Giorgi TsitaishviliF8100.170.1081%20.96.731.914XGBoost 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.9899, quality 0.437)market_value_eur=2700000
quality_factor=0.4374
boost_factor=0.9899
reference_quality=0.505
history_matches=5
history_shrink=0.5
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Roy Revivo, Buba Sangaré', '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.8993, 'skill_edge': -0.0185, 'height_edge': -0.05, 'attacker_skill': 0.4374, 'defender_skill': 0.4785, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Roy Revivo', 'market_value': 4600000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4761}, {'player': 'Buba Sangaré', 'market_value': 4900000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4809}], 'xg_override': 0.1388}
totalShots: 1.5468 -> 1.391
shotOffTarget: 0.9573 -> 0.8609
onTargetScoringAttempt: 0.5894 -> 0.53
bigChanceMissed: 0.2126 -> 0.1912
goals: 0.2012 -> 0.1809
expectedGoals: 0.1543 -> 0.1388
expectedGoalsOnTarget: 0.0599 -> 0.0539
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.29 (squad xG sum 1.0238, xG scale 1.2561, xA scale 1.2561, team xA 0.88 = 0.69 x lambda)scoreline_reset=true
team_lambda=1.286
squad_xg_sum=1.0238
squad_xa_sum=0.7033
team_expected_assists=0.8834
team_xa_to_xg_ratio=0.6869
expected_goals: 0.1388 -> 0.1743
expected_assists: 0.0779 -> 0.0978
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 78.0)match_squad_rank=12
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.16
goal_rate=0.1809
scorer_weight=0.2132
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0932
assist_rate=0.0
provider_weight=0.0782
-
AlemãoF7500.280.09207%20.66.744.531XGBoost 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.9980, quality 0.455)market_value_eur=4400000
quality_factor=0.4548
boost_factor=0.998
reference_quality=0.505
history_matches=33
history_shrink=0.1316
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Roy Revivo, Buba Sangaré', '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.9755, 'skill_edge': -0.0107, 'height_edge': -0.006, 'attacker_skill': 0.4548, 'defender_skill': 0.4785, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Roy Revivo', 'market_value': 4600000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4761}, {'player': 'Buba Sangaré', 'market_value': 4900000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4809}], 'xg_override': 0.2204}
totalShots: 1.6564 -> 1.6158
shotOffTarget: 0.9795 -> 0.9555
onTargetScoringAttempt: 0.6768 -> 0.6602
bigChanceMissed: 0.3269 -> 0.3189
expectedGoals: 0.2259 -> 0.2204
goals: 0.2058 -> 0.2008
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.29 (squad xG sum 1.0238, xG scale 1.2561, xA scale 1.2561, team xA 0.88 = 0.69 x lambda)scoreline_reset=true
team_lambda=1.286
squad_xg_sum=1.0238
squad_xa_sum=0.7033
team_expected_assists=0.8834
team_xa_to_xg_ratio=0.6869
expected_goals: 0.2204 -> 0.2768
expected_assists: 0.0274 -> 0.0344
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 15 by projected rating, fifa_overall 74.0)match_squad_rank=15
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.2418
goal_rate=0.2008
scorer_weight=0.2567
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0338
assist_rate=0.0
provider_weight=0.0275
-
Álvaro GarcíaF8010.280.1860%21.16.854.435FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9977, quality 0.437)market_value_eur=1500000
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.0106)blend_weight=0.0106
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=0.8939
prior_reliability=0.1467
competition=La Liga
totalShots: 1.9809 -> 1.9686
totalCross: 3.3337 -> 3.3242
fouls: 0.4681 -> 0.4761
totalOffside: 0.3058 -> 0.3112
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Roy Revivo, Buba Sangaré', '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.8846, 'skill_edge': -0.0185, 'height_edge': -0.06, 'attacker_skill': 0.4374, 'defender_skill': 0.4785, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Roy Revivo', 'market_value': 4600000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4761}, {'player': 'Buba Sangaré', 'market_value': 4900000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4809}], 'xg_override': 0.2243}
totalShots: 1.9776 -> 1.7494
shotOffTarget: 1.2576 -> 1.1125
onTargetScoringAttempt: 0.72 -> 0.6369
expectedGoalsOnTarget: 0.3353 -> 0.2966
bigChanceMissed: 0.3047 -> 0.2695
goals: 0.278 -> 0.2459
expectedGoals: 0.2536 -> 0.2243
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.29 (squad xG sum 1.0238, xG scale 1.2561, xA scale 1.2561, team xA 0.88 = 0.69 x lambda)scoreline_reset=true
team_lambda=1.286
squad_xg_sum=1.0238
squad_xa_sum=0.7033
team_expected_assists=0.8834
team_xa_to_xg_ratio=0.6869
expected_goals: 0.2243 -> 0.2819
expected_assists: 0.0772 -> 0.097
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 81.0)match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.2457
goal_rate=0.2459
scorer_weight=0.3041
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0924
assist_rate=0.2497
provider_weight=0.1212
-
Isi PalazónM6700.140.1136%11.26.855.722XGBoost 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.437)market_value_eur=3000000
quality_factor=0.4374
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': 'Javi Morcillo', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.367, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.922, 'skill_edge': 0.003, 'height_edge': -0.056, 'attacker_skill': 0.444, 'defender_skill': 0.4374, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Javi Morcillo', 'market_value': 2100000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4374}], 'xg_override': 0.1141}
totalShots: 1.5077 -> 1.3901
shotOffTarget: 1.0291 -> 0.9488
aerialWon: 0.8711 -> 0.8
onTargetScoringAttempt: 0.4786 -> 0.4413
bigChanceMissed: 0.1481 -> 0.1365
expectedGoals: 0.1238 -> 0.1141
goals: 0.1183 -> 0.1091
expectedGoalsOnTarget: 0.0729 -> 0.0672
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.29 (squad xG sum 1.0238, xG scale 1.2561, xA scale 1.2561, team xA 0.88 = 0.69 x lambda)scoreline_reset=true
team_lambda=1.286
squad_xg_sum=1.0238
squad_xa_sum=0.7033
team_expected_assists=0.8834
team_xa_to_xg_ratio=0.6869
expected_goals: 0.1141 -> 0.1433
expected_assists: 0.107 -> 0.1344
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 79.0)match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_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.1335
goal_rate=0.1091
scorer_weight=0.1389
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1258
assist_rate=0.0926
provider_weight=0.1221
-
Team totals11.29136.8
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Augusto BatallaG4.5m13.4%Market-value substitute prior
Andrei RațiuD14.4m23.4%Market-value substitute prior
Abdul MuminD13.6m29.9%Market-value substitute prior
Pedro DíazM23.1m69.2%Market-value substitute prior
Óscar ValentínM29.7m43.5%Market-value substitute prior
Jorge de FrutosF25.7m57.6%Market-value substitute prior

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Fernando NiñoF7510.410.2847%21.26.958.011FBref 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.9936, quality 0.445)market_value_eur=3600000
quality_factor=0.4449
boost_factor=0.9936
reference_quality=0.505
history_matches=9
history_shrink=0.3571
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0387)blend_weight=0.0387
history_matches=9
season_overlap_discount=1.0
per90_to_match_factor=0.8302
prior_reliability=0.1667
competition=La Liga
totalShots: 2.086 -> 2.0564
fouls: 0.8201 -> 0.8012
totalOffside: 0.1347 -> 0.1295
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Mujaid Sadick, Florian Lejeune', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.204, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.0063, 'skill_edge': -0.0057, 'height_edge': 0.01, 'attacker_skill': 0.4449, 'defender_skill': 0.4576, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Mujaid Sadick', 'market_value': 4700000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4777}, {'player': 'Florian Lejeune', 'market_value': 1700000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.3468}
totalShots: 2.0831 -> 2.0963
onTargetScoringAttempt: 1.0585 -> 1.0652
shotOffTarget: 1.0246 -> 1.0311
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.11 (squad xG sum 0.9390, xG scale 1.1832, xA scale 1.1135, team xA 0.89 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.111
squad_xg_sum=0.939
squad_xa_sum=0.7982
team_expected_assists=0.8888
team_xa_to_xg_ratio=0.8
expected_goals: 0.3468 -> 0.4105
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 81.0)match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_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.3367
goal_rate=0.4068
scorer_weight=0.4726
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0457
assist_rate=0.0
provider_weight=0.0374
-
Germán ValeraF8500.110.04195%10.56.858.342XGBoost F_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9992, quality 0.477)market_value_eur=6200000
quality_factor=0.4769
boost_factor=0.9992
reference_quality=0.505
history_matches=45
history_shrink=0.1
-
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': 'Mujaid Sadick, Florian Lejeune', '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.9246, 'skill_edge': 0.0087, 'height_edge': -0.06, 'attacker_skill': 0.4769, 'defender_skill': 0.4576, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Mujaid Sadick', 'market_value': 4700000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4777}, {'player': 'Florian Lejeune', 'market_value': 1700000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.094}
totalShots: 1.0171 -> 0.9404
shotOffTarget: 0.6366 -> 0.5886
onTargetScoringAttempt: 0.3805 -> 0.3518
goals: 0.1407 -> 0.1301
expectedGoals: 0.1017 -> 0.094
bigChanceMissed: 0.0669 -> 0.0619
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.11 (squad xG sum 0.9390, xG scale 1.1832, xA scale 1.1135, team xA 0.89 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.111
squad_xg_sum=0.939
squad_xa_sum=0.7982
team_expected_assists=0.8888
team_xa_to_xg_ratio=0.8
expected_goals: 0.094 -> 0.1112
expected_assists: 0.1524 -> 0.1697
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 82.0)match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_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.1052
goal_rate=0.1301
scorer_weight=0.139
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1561
assist_rate=0.0411
provider_weight=0.1358
-
Lucas CepedaF7700.130.05184%20.86.943.130FBref 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.9958, quality 0.437)market_value_eur=2600000
quality_factor=0.4374
boost_factor=0.9958
reference_quality=0.505
history_matches=19
history_shrink=0.2083
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0081)blend_weight=0.0081
history_matches=19
season_overlap_discount=1.0
per90_to_match_factor=0.8544
prior_reliability=0.06
competition=La Liga
totalCross: 1.5309 -> 1.5647
totalShots: 1.4 -> 1.4277
fouls: 0.8041 -> 0.8207
interceptionWon: 0.329 -> 0.3418
wasFouled: 2.3268 -> 2.3156
onTargetScoringAttempt: 0.5487 -> 0.5599
wonTackle: 1.0264 -> 1.0181
goalAssist: 0.0 -> 0.0077
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Mujaid Sadick, Florian Lejeune', '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.9249, 'skill_edge': -0.0091, 'height_edge': -0.042, 'attacker_skill': 0.4374, 'defender_skill': 0.4576, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Mujaid Sadick', 'market_value': 4700000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4777}, {'player': 'Florian Lejeune', 'market_value': 1700000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.1104}
totalShots: 1.4277 -> 1.3205
shotOffTarget: 0.8513 -> 0.7874
onTargetScoringAttempt: 0.5599 -> 0.5179
goals: 0.1645 -> 0.1521
expectedGoals: 0.1194 -> 0.1104
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.11 (squad xG sum 0.9390, xG scale 1.1832, xA scale 1.1135, team xA 0.89 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.111
squad_xg_sum=0.939
squad_xa_sum=0.7982
team_expected_assists=0.8888
team_xa_to_xg_ratio=0.8
expected_goals: 0.1104 -> 0.1306
expected_assists: 0.105 -> 0.1169
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 71.0)match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1224
goal_rate=0.1521
scorer_weight=0.1633
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1103
assist_rate=0.0077
provider_weight=0.0935
-
Gonzalo VillarM8100.090.03249%10.46.953.427FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 0.9961, quality 0.437)market_value_eur=1700000
quality_factor=0.4374
boost_factor=0.9961
reference_quality=0.505
history_matches=21
history_shrink=0.1923
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0250)blend_weight=0.025
history_matches=21
season_overlap_discount=1.0
per90_to_match_factor=0.899
prior_reliability=0.2
competition=La Liga
wasFouled: 2.1057 -> 2.1579
totalCross: 1.2925 -> 1.3276
fouls: 1.6609 -> 1.6793
onTargetScoringAttempt: 0.2615 -> 0.2774
totalShots: 0.7097 -> 0.7218
goalAssist: 0.0876 -> 0.0929
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Pathé Ismaël Ciss, Isi Palazón', 'matchup_zone': 'Attacking Mid vs Double Pivot — Tight Space Battle', 'duel_win_rate': 0.259, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.0272, 'skill_edge': -0.0015, 'height_edge': 0.02, 'attacker_skill': 0.4374, 'defender_skill': 0.4407, 'attacker_role': 'CAM', 'attacker_mv_price_index': 0.95, 'defender_adjusted_parts': [{'player': 'Pathé Ismaël Ciss', 'market_value': 1600000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4374}, {'player': 'Isi Palazón', 'market_value': 3000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.444}], 'xg_override': 0.0745}
aerialWon: 0.7743 -> 1.1
totalShots: 0.7255 -> 0.7452
shotOffTarget: 0.4481 -> 0.4603
onTargetScoringAttempt: 0.2774 -> 0.2849
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.11 (squad xG sum 0.9390, xG scale 1.1832, xA scale 1.1135, team xA 0.89 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.111
squad_xg_sum=0.939
squad_xa_sum=0.7982
team_expected_assists=0.8888
team_xa_to_xg_ratio=0.8
expected_goals: 0.0745 -> 0.0881
expected_assists: 0.0794 -> 0.0884
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 72.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.0843
goal_rate=0.0818
scorer_weight=0.0933
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0846
assist_rate=0.0929
provider_weight=0.0976
-
Javi MorcilloM8700.040.01178%10.26.741.321FBref 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.9940, quality 0.437)market_value_eur=2100000
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.0051)blend_weight=0.0051
history_matches=12
season_overlap_discount=1.0
per90_to_match_factor=0.9649
prior_reliability=0.0267
competition=La Liga
fouls: 0.6484 -> 0.6574
wonTackle: 1.1736 -> 1.1799
interceptionWon: 1.0933 -> 1.0877
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Pathé Ismaël Ciss', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.42, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0, 'skill_edge': 0.0, 'height_edge': 0.0, 'attacker_skill': 0.4374, 'defender_skill': 0.4374, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Pathé Ismaël Ciss', 'market_value': 1600000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4374}], 'xg_override': 0.0321}
aerialWon: 0.847 -> 1.1
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.11 (squad xG sum 0.9390, xG scale 1.1832, xA scale 1.1135, team xA 0.89 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.111
squad_xg_sum=0.939
squad_xa_sum=0.7982
team_expected_assists=0.8888
team_xa_to_xg_ratio=0.8
expected_goals: 0.0321 -> 0.038
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 79.0)match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_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.0373
goal_rate=0.0417
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.0291
assist_rate=0.0384
provider_weight=0.0341
-
Roy RevivoD8800.010.0245%10.26.850.98XGBoost D_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9935, quality 0.457)market_value_eur=4600000
quality_factor=0.4572
boost_factor=0.9935
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': 'Alemão', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.11 (squad xG sum 0.9390, xG scale 1.1832, xA scale 1.1135, team xA 0.89 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.111
squad_xg_sum=0.939
squad_xa_sum=0.7982
team_expected_assists=0.8888
team_xa_to_xg_ratio=0.8
expected_assists: 0.1551 -> 0.1728
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: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.011
goal_rate=0.0
scorer_weight=0.0093
-
integer_assist_projectionTeam scoreline allocation: 1 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.1587
assist_rate=0.3871
provider_weight=0.216
-
Federico RedondoM6800.030.01561%00.16.833.234FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 0.9954, quality 0.437)market_value_eur=2400000
quality_factor=0.4374
boost_factor=0.9954
reference_quality=0.505
history_matches=17
history_shrink=0.2273
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0148)blend_weight=0.0148
history_matches=17
season_overlap_discount=1.0
per90_to_match_factor=0.7547
prior_reliability=0.1
competition=La Liga
fouls: 0.9905 -> 0.9833
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Pathé Ismaël Ciss', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.44, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0294, 'skill_edge': 0.0, 'height_edge': 0.02, 'attacker_skill': 0.4374, 'defender_skill': 0.4374, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Pathé Ismaël Ciss', 'market_value': 1600000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4374}], 'xg_override': 0.0283}
aerialWon: 0.1472 -> 1.2
totalShots: 0.4631 -> 0.4767
shotOffTarget: 0.353 -> 0.3634
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.11 (squad xG sum 0.9390, xG scale 1.1832, xA scale 1.1135, team xA 0.89 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.111
squad_xg_sum=0.939
squad_xa_sum=0.7982
team_expected_assists=0.8888
team_xa_to_xg_ratio=0.8
expected_goals: 0.0283 -> 0.0335
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 70.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.0329
goal_rate=0.0388
scorer_weight=0.038
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.0384
provider_weight=0.0401
-
Víctor ChustD9000.050.02103%10.46.963.930FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9977, quality 0.437)market_value_eur=2700000
quality_factor=0.4374
boost_factor=0.9977
reference_quality=0.505
history_matches=40
history_shrink=0.1111
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0144)blend_weight=0.0144
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=0.995
prior_reliability=0.2
competition=La Liga
totalCross: 1.085 -> 1.0981
wonTackle: 0.944 -> 0.9495
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Alemão', 'matchup_zone': 'Shape fallback'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.11 (squad xG sum 0.9390, xG scale 1.1832, xA scale 1.1135, team xA 0.89 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.111
squad_xg_sum=0.939
squad_xa_sum=0.7982
team_expected_assists=0.8888
team_xa_to_xg_ratio=0.8
expected_goals: 0.0384 -> 0.0454
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 74.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.0444
goal_rate=0.0413
scorer_weight=0.0469
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0388
assist_rate=0.0658
provider_weight=0.0495
-
Buba SangaréD7400.010.01ok00.16.652.125FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9974, quality 0.461)market_value_eur=4900000
quality_factor=0.4609
boost_factor=0.9974
reference_quality=0.505
history_matches=20
history_shrink=0.2
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0251)blend_weight=0.0251
history_matches=20
season_overlap_discount=1.0
per90_to_match_factor=0.8246
prior_reliability=0.1933
competition=La Liga
wonTackle: 0.9869 -> 1.005
totalCross: 0.9656 -> 0.9556
interceptionWon: 0.6732 -> 0.6634
fouls: 1.1181 -> 1.1257
goals: 0.0717 -> 0.077
onTargetScoringAttempt: 0.0717 -> 0.0769
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Alemão', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.11 (squad xG sum 0.9390, xG scale 1.1832, xA scale 1.1135, team xA 0.89 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.111
squad_xg_sum=0.939
squad_xa_sum=0.7982
team_expected_assists=0.8888
team_xa_to_xg_ratio=0.8
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 17 by projected rating, fifa_overall 69.0)match_squad_rank=17
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0052
goal_rate=0.0769
scorer_weight=0.0065
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.0137
-
Matías DituroG9000.00-n/a0.07.155.732FBref 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.9972, quality 0.437)market_value_eur=105000
quality_factor=0.4374
boost_factor=0.9972
reference_quality=0.505
history_matches=31
history_shrink=0.1389
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0181)blend_weight=0.0181
history_matches=31
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.2
competition=La Liga
saves: 2.8862 -> 2.8762
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Álvaro García, Alemão', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.2861}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.11 (squad xG sum 0.9390, xG scale 1.1832, xA scale 1.1135, team xA 0.89 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.111
squad_xg_sum=0.939
squad_xa_sum=0.7982
team_expected_assists=0.8888
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 76.0)match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.3027
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.8565
-
Thomas LemarM7200.080.07ok10.67.061.728XGBoost 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.9973, quality 0.437)market_value_eur=1900000
quality_factor=0.4374
boost_factor=0.9973
reference_quality=0.505
history_matches=33
history_shrink=0.1316
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Adrià Pedrosa', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.451, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9577, 'skill_edge': -0.0048, 'height_edge': -0.024, 'attacker_skill': 0.4374, 'defender_skill': 0.4481, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Adrià Pedrosa', 'market_value': 2700000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.4481}], 'xg_override': 0.0712}
aerialWon: 0.0237 -> 0.8
totalShots: 1.0005 -> 0.9582
shotOffTarget: 0.6506 -> 0.6231
onTargetScoringAttempt: 0.3499 -> 0.3351
expectedGoalsOnTarget: 0.1251 -> 0.1198
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.11 (squad xG sum 0.9390, xG scale 1.1832, xA scale 1.1135, team xA 0.89 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.111
squad_xg_sum=0.939
squad_xa_sum=0.7982
team_expected_assists=0.8888
team_xa_to_xg_ratio=0.8
expected_goals: 0.0712 -> 0.0842
expected_assists: 0.1146 -> 0.1276
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 77.0)match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0808
goal_rate=0.0938
scorer_weight=0.0999
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1198
assist_rate=0.0855
provider_weight=0.105
-
Team totals11.11136.9
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Iñaki PeñaG4.4m11.0%Market-value substitute prior
Kevin LomónacoD13.8m31.0%Market-value substitute prior
Rubén SánchezD13.6m29.9%Market-value substitute prior
Martim NetoM24.8m50.0%Market-value substitute prior
Marc AguadoM22.0m30.8%Market-value substitute prior
Facundo BuonanotteF26.4m53.4%Market-value substitute prior
Antagonist / tactical summary
Midfield is evenly contested — Isi Palazón vs Federico Redondo will be the pivotal duel. Total antagonist xG — Home: 0.81, Away: 0.76. 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.49, key duel: Isi Palazón vs Federico Redondo
Unai López xG 0.06Alemão xG 0.22Giorgi Tsitaishvili xG 0.14Thomas Lemar xG 0.07Gonzalo Villar xG 0.07Fernando Niño xG 0.35

Summary

Antagonist matchup analysis for Rayo Vallecano vs Elche. Most likely scoreline: 1-1. Lambdas derived from 6 home and 7 away individual player duels. Head-to-head: Rayo Vallecano 4W-2D-4L vs Elche 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 — Isi Palazón vs Federico Redondo will be the pivotal duel. Total antagonist xG — Home: 0.81, Away: 0.76. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.

Racing Club vs Espanyol

LaLiga · 20261024 · 4-2-3-1 vs 5-4-1
Predicted 1-1Winner: DrawWinning H 1-0 (8.1%)Winning A 0-1 (9.0%)Confidence 0.7λ home/away 1.31 / 1.46Most-likely P 12.1%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset Tracing
Antagonist + XGBoost match analysis for Racing Club vs Espanyol. 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 1.303, Away 1.470). Final calibrated Poisson lambdas: Home 1.312, Away 1.460 (most likely score 1-1).
Home Starters 11/11 XGBoost (9 FBref) Away Starters 11/11 XGBoost (8 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.30 / 1.47 Final λ (H/A) 1.31 / 1.46
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

MetricRacing ClubEspanyol
League position16.0015.00
Points per game1.081.08
Attack index1.020.87
Defense (concede) index0.901.42
Form multiplier1.001.00
Standing λ multiplier0.971.09

Lambda decomposition (how the goal rates were built)

StageRacing Club λEspanyol λ
Pre-competitive-floor1.3121.460
Pre-calibration (Micro-duels)1.3031.470
Final λ1.3121.460
competition calibration scale 1.0competition observed total goals 0.0quality gap applied Falsemismatch score pressure applied Falsecompetitive underdog floor applied Falsestage discount 1.0

Scoreline distribution & markets

Top 5 scorelinesP
1-112.1%
0-19.0%
1-28.7%
1-08.1%
2-17.9%
Home win33.8%
Draw25.6%
Away win40.6%
Over 2.552.4%
BTTS yes56.2%
Pregame fair line — favorite Espanyol (40.6%), fair total 2.77, fair spread -0.15

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.

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Yassir ZabiriF8110.480.3344%31.56.853.712FBref 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.0156, quality 0.650)market_value_eur=22000000
quality_factor=0.6503
boost_factor=1.0156
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.9049
prior_reliability=0.0867
competition=La Liga
goals: 0.4029 -> 0.4368
totalOffside: 0.2588 -> 0.2816
onTargetScoringAttempt: 1.0145 -> 1.0362
totalShots: 2.4291 -> 2.4503
wasFouled: 0.6991 -> 0.685
fouls: 1.6086 -> 1.6183
wonTackle: 0.4055 -> 0.3973
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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, Vanja Drkušić', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.26, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.0879, 'skill_edge': 0.0838, 'height_edge': -0.024, 'attacker_skill': 0.6503, 'defender_skill': 0.464, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Leandro Cabrera', 'market_value': 930000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'Vanja Drkušić', 'market_value': 5500000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4907}], 'xg_override': 0.4102}
totalShots: 2.4508 -> 2.6662
shotOffTarget: 1.4146 -> 1.5389
onTargetScoringAttempt: 1.0362 -> 1.1273
expectedGoalsOnTarget: 0.5924 -> 0.6445
goals: 0.4368 -> 0.4752
expectedGoals: 0.3771 -> 0.4102
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.31 (squad xG sum 1.1245, xG scale 1.1667, xA scale 1.1667, team xA 0.98 = 0.74 x lambda)scoreline_reset=true
team_lambda=1.312
squad_xg_sum=1.1245
squad_xa_sum=0.8366
team_expected_assists=0.9761
team_xa_to_xg_ratio=0.744
expected_goals: 0.4102 -> 0.4785
expected_assists: 0.0365 -> 0.0426
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 66.0)match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.3803
goal_rate=0.4752
scorer_weight=0.5461
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0417
assist_rate=0.0
provider_weight=0.0341
-
Iñigo VicenteF8600.100.04170%10.57.153.522FBref 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.9975, quality 0.482)market_value_eur=6600000
quality_factor=0.4818
boost_factor=0.9975
reference_quality=0.505
history_matches=9
history_shrink=0.3571
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0433)blend_weight=0.0433
history_matches=9
season_overlap_discount=1.0
per90_to_match_factor=0.954
prior_reliability=0.1867
competition=La Liga
totalCross: 5.3659 -> 5.2515
totalShots: 0.953 -> 0.9266
interceptionWon: 0.8246 -> 0.8036
wonTackle: 1.1227 -> 1.1036
onTargetScoringAttempt: 0.3828 -> 0.3662
wasFouled: 2.3061 -> 2.2948
totalOffside: 0.1733 -> 0.1806
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': 'Leandro Cabrera, Vanja Drkušić', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 0.9529, 'skill_edge': 0.008, 'height_edge': -0.04, 'attacker_skill': 0.4818, 'defender_skill': 0.464, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Leandro Cabrera', 'market_value': 930000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'Vanja Drkušić', 'market_value': 5500000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4907}], 'xg_override': 0.0844}
totalShots: 0.9364 -> 0.8923
shotOffTarget: 0.5702 -> 0.5433
onTargetScoringAttempt: 0.3662 -> 0.349
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.31 (squad xG sum 1.1245, xG scale 1.1667, xA scale 1.1667, team xA 0.98 = 0.74 x lambda)scoreline_reset=true
team_lambda=1.312
squad_xg_sum=1.1245
squad_xa_sum=0.8366
team_expected_assists=0.9761
team_xa_to_xg_ratio=0.744
expected_goals: 0.0844 -> 0.0985
expected_assists: 0.2503 -> 0.2921
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 77.0)match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0938
goal_rate=0.0907
scorer_weight=0.1031
-
integer_assist_projectionTeam scoreline allocation: 1 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.2533
assist_rate=0.3902
provider_weight=0.3651
-
Sergio CanalesF7800.110.10ok21.86.853.221FBref 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.9930, quality 0.440)market_value_eur=3200000
quality_factor=0.4399
boost_factor=0.993
reference_quality=0.505
history_matches=9
history_shrink=0.3571
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0387)blend_weight=0.0387
history_matches=9
season_overlap_discount=1.0
per90_to_match_factor=0.8682
prior_reliability=0.1667
competition=La Liga
totalCross: 2.4412 -> 2.3602
totalShots: 1.6812 -> 1.7381
wasFouled: 1.9878 -> 1.9512
wonTackle: 0.6319 -> 0.6074
onTargetScoringAttempt: 0.5576 -> 0.5767
interceptionWon: 0.4066 -> 0.3909
fouls: 0.6698 -> 0.6573
totalOffside: 0.2048 -> 0.1969
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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, Vanja Drkušić', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 0.9135, 'skill_edge': -0.0109, 'height_edge': -0.048, 'attacker_skill': 0.4399, 'defender_skill': 0.464, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Leandro Cabrera', 'market_value': 930000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'Vanja Drkušić', 'market_value': 5500000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4907}], 'xg_override': 0.0978}
totalShots: 1.7381 -> 1.5878
shotOffTarget: 1.1236 -> 1.0264
onTargetScoringAttempt: 0.5767 -> 0.5268
expectedGoalsOnTarget: 0.1622 -> 0.1482
goals: 0.1325 -> 0.121
expectedGoals: 0.1071 -> 0.0978
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.31 (squad xG sum 1.1245, xG scale 1.1667, xA scale 1.1667, team xA 0.98 = 0.74 x lambda)scoreline_reset=true
team_lambda=1.312
squad_xg_sum=1.1245
squad_xa_sum=0.8366
team_expected_assists=0.9761
team_xa_to_xg_ratio=0.744
expected_goals: 0.0978 -> 0.1141
expected_assists: 0.1242 -> 0.1449
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 78.0)match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1078
goal_rate=0.121
scorer_weight=0.132
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1349
assist_rate=0.0
provider_weight=0.1159
-
Andrés MartínF7900.280.35ok21.56.938.514FBref 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.9994, quality 0.501)market_value_eur=8199999
quality_factor=0.5011
boost_factor=0.9994
reference_quality=0.505
history_matches=5
history_shrink=0.5
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0563)blend_weight=0.0563
history_matches=5
season_overlap_discount=1.0
per90_to_match_factor=0.8752
prior_reliability=0.1733
competition=La Liga
totalShots: 2.0191 -> 2.073
interceptionWon: 0.9498 -> 0.9721
onTargetScoringAttempt: 0.665 -> 0.6832
totalCross: 3.8228 -> 3.835
fouls: 0.8916 -> 0.8983
goals: 0.2193 -> 0.2259
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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, Vanja Drkušić', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 0.9657, 'skill_edge': 0.0167, 'height_edge': -0.04, 'attacker_skill': 0.5011, 'defender_skill': 0.464, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Leandro Cabrera', 'market_value': 930000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'Vanja Drkušić', 'market_value': 5500000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4907}], 'xg_override': 0.2407}
totalShots: 2.073 -> 2.0019
shotOffTarget: 1.3541 -> 1.3077
onTargetScoringAttempt: 0.6832 -> 0.6598
bigChanceMissed: 0.6604 -> 0.6377
expectedGoalsOnTarget: 0.6358 -> 0.614
expectedGoals: 0.2492 -> 0.2407
goals: 0.2259 -> 0.2182
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.31 (squad xG sum 1.1245, xG scale 1.1667, xA scale 1.1667, team xA 0.98 = 0.74 x lambda)scoreline_reset=true
team_lambda=1.312
squad_xg_sum=1.1245
squad_xa_sum=0.8366
team_expected_assists=0.9761
team_xa_to_xg_ratio=0.744
expected_goals: 0.2407 -> 0.2808
expected_assists: 0.1361 -> 0.1588
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 77.0)match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.2448
goal_rate=0.2182
scorer_weight=0.2591
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1468
assist_rate=0.0
provider_weight=0.127
-
Iván MartínM8500.050.0390%10.47.058.132FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 0.9978, quality 0.437)market_value_eur=2700000
quality_factor=0.4374
boost_factor=0.9978
reference_quality=0.505
history_matches=42
history_shrink=0.1064
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0069)blend_weight=0.0069
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.9463
prior_reliability=0.1
competition=La Liga
wonTackle: 0.9693 -> 0.98
totalCross: 0.333 -> 0.3394
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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, Pol Lozano, Javier Hernández', '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.31 (squad xG sum 1.1245, xG scale 1.1667, xA scale 1.1667, team xA 0.98 = 0.74 x lambda)scoreline_reset=true
team_lambda=1.312
squad_xg_sum=1.1245
squad_xa_sum=0.8366
team_expected_assists=0.9761
team_xa_to_xg_ratio=0.744
expected_goals: 0.0446 -> 0.052
expected_assists: 0.071 -> 0.0828
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 77.0)match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0507
goal_rate=0.0682
scorer_weight=0.065
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0795
assist_rate=0.0712
provider_weight=0.0829
-
Jorge SalinasD8900.060.0375%10.36.748.812FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0000, quality 0.505)market_value_eur=8500000
quality_factor=0.5047
boost_factor=1.0
reference_quality=0.505
history_matches=9
history_shrink=0.3571
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0464)blend_weight=0.0464
history_matches=9
season_overlap_discount=1.0
per90_to_match_factor=0.9872
prior_reliability=0.2
competition=La Liga
wasFouled: 1.7542 -> 1.7186
fouls: 1.3915 -> 1.3575
interceptionWon: 1.3402 -> 1.3238
totalShots: 0.5731 -> 0.5616
totalCross: 1.4693 -> 1.4775
goalAssist: 0.1266 -> 0.1207
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Omar El Hilali', 'matchup_zone': 'RWB vs LW + LB'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.31 (squad xG sum 1.1245, xG scale 1.1667, xA scale 1.1667, team xA 0.98 = 0.74 x lambda)scoreline_reset=true
team_lambda=1.312
squad_xg_sum=1.1245
squad_xa_sum=0.8366
team_expected_assists=0.9761
team_xa_to_xg_ratio=0.744
expected_goals: 0.0478 -> 0.0558
expected_assists: 0.114 -> 0.133
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 72.0)match_squad_rank=14
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0543
goal_rate=0.0
scorer_weight=0.0446
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1245
assist_rate=0.1207
provider_weight=0.1384
-
Jeanuël BelocianD9000.030.0244%10.36.735.49XGBoost 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.0076, quality 0.556)market_value_eur=12900000
quality_factor=0.5559
boost_factor=1.0076
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.31 (squad xG sum 1.1245, xG scale 1.1667, xA scale 1.1667, team xA 0.98 = 0.74 x lambda)scoreline_reset=true
team_lambda=1.312
squad_xg_sum=1.1245
squad_xa_sum=0.8366
team_expected_assists=0.9761
team_xa_to_xg_ratio=0.744
-
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: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0301
goal_rate=0.0
scorer_weight=0.0245
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0105
assist_rate=0.0
provider_weight=0.009
-
Pablo RamónD8500.010.00145%00.26.939.312FBref 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.9916, quality 0.437)market_value_eur=1500000
quality_factor=0.4374
boost_factor=0.9916
reference_quality=0.505
history_matches=7
history_shrink=0.4167
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0325)blend_weight=0.0325
history_matches=7
season_overlap_discount=1.0
per90_to_match_factor=0.939
prior_reliability=0.12
competition=La Liga
wonTackle: 0.9878 -> 1.0235
interceptionWon: 1.1301 -> 1.1612
totalShots: 0.4745 -> 0.4591
wasFouled: 1.2948 -> 1.2866
onTargetScoringAttempt: 0.1725 -> 0.1669
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 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.31 (squad xG sum 1.1245, xG scale 1.1667, xA scale 1.1667, team xA 0.98 = 0.74 x lambda)scoreline_reset=true
team_lambda=1.312
squad_xg_sum=1.1245
squad_xa_sum=0.8366
team_expected_assists=0.9761
team_xa_to_xg_ratio=0.744
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 69.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.006
goal_rate=0.0
scorer_weight=0.0054
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0115
assist_rate=0.0
provider_weight=0.0097
-
Alvaro MantillaD8700.010.01ok00.26.742.812XGBoost 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=1200000
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': '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.31 (squad xG sum 1.1245, xG scale 1.1667, xA scale 1.1667, team xA 0.98 = 0.74 x lambda)scoreline_reset=true
team_lambda=1.312
squad_xg_sum=1.1245
squad_xa_sum=0.8366
team_expected_assists=0.9761
team_xa_to_xg_ratio=0.744
-
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_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.0132
goal_rate=0.0
scorer_weight=0.0108
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0244
assist_rate=0.0
provider_weight=0.0198
-
Julen AgirrezabalaG9000.00-n/a0.07.140.217FBref 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.481)market_value_eur=6500000
quality_factor=0.4805
boost_factor=0.9989
reference_quality=0.505
history_matches=27
history_shrink=0.1562
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0203)blend_weight=0.0203
history_matches=27
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.2
competition=La Liga
saves: 2.7346 -> 2.7468
wasFouled: 0.2586 -> 0.2669
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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, Javier Hernández', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.4702}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.31 (squad xG sum 1.1245, xG scale 1.1667, xA scale 1.1667, team xA 0.98 = 0.74 x lambda)scoreline_reset=true
team_lambda=1.312
squad_xg_sum=1.1245
squad_xa_sum=0.8366
team_expected_assists=0.9761
team_xa_to_xg_ratio=0.744
shots_faced: 14.0 -> 13.9
expected_saves: 3.43 -> 3.41
high_pressure_saves: 1.18 -> 1.17
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.0
scorer_weight=0.0
squad_weight_total=1.3832
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.9828
-
Matteo PratiM8400.050.01528%10.36.840.310FBref 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.9942, quality 0.462)market_value_eur=5000000
quality_factor=0.4622
boost_factor=0.9942
reference_quality=0.505
history_matches=6
history_shrink=0.4545
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0079)blend_weight=0.0079
history_matches=6
season_overlap_discount=1.0
per90_to_match_factor=0.9349
prior_reliability=0.0267
competition=La Liga
fouls: 0.1646 -> 0.1817
interceptionWon: 0.6897 -> 0.7027
wonTackle: 1.4858 -> 1.4741
wasFouled: 0.9249 -> 0.9176
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Pol Lozano', '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.31 (squad xG sum 1.1245, xG scale 1.1667, xA scale 1.1667, team xA 0.98 = 0.74 x lambda)scoreline_reset=true
team_lambda=1.312
squad_xg_sum=1.1245
squad_xa_sum=0.8366
team_expected_assists=0.9761
team_xa_to_xg_ratio=0.744
expected_goals: 0.0405 -> 0.0473
expected_assists: 0.0395 -> 0.0461
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 72.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.0462
goal_rate=0.0454
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.0451
assist_rate=0.0647
provider_weight=0.0576
-
Team totals11.31146.9
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Simon ErikssonG4.4m10.9%Market-value substitute prior
Facundo GonzálezD13.6m29.9%Market-value substitute prior
Pedro FelipeD13.6m29.9%Market-value substitute prior
Gustavo PuertaM22.7m32.2%Market-value substitute prior
André AlmeidaM22.1m50.6%Market-value substitute prior
Pablo GarcíaF25.5m57.0%Market-value substitute prior

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Edu ExpósitoM8200.140.0868%11.47.065.231FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 0.9985, quality 0.456)market_value_eur=4500000
quality_factor=0.456
boost_factor=0.9985
reference_quality=0.505
history_matches=45
history_shrink=0.1
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0117)blend_weight=0.0117
history_matches=45
season_overlap_discount=1.0
per90_to_match_factor=0.9072
prior_reliability=0.18
competition=La Liga
totalCross: 3.6204 -> 3.5898
totalShots: 1.2737 -> 1.2945
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.448, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9973, 'skill_edge': 0.0101, 'height_edge': -0.012, 'attacker_skill': 0.4622, 'defender_skill': 0.4396, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Iván Martín', 'market_value': 2700000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4396}], 'xg_override': 0.1068}
aerialWon: 0.905 -> 0.9
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_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.1085, xG scale 1.3171, xA scale 1.3171, team xA 0.96 = 0.66 x lambda)scoreline_reset=true
team_lambda=1.46
squad_xg_sum=1.1085
squad_xa_sum=0.7277
team_expected_assists=0.9585
team_xa_to_xg_ratio=0.6565
expected_goals: 0.1068 -> 0.1407
expected_assists: 0.15 -> 0.1975
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 77.0)match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1313
goal_rate=0.1155
scorer_weight=0.1485
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1792
assist_rate=0.1021
provider_weight=0.158
-
Javier HernándezM7700.200.08164%21.16.854.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.9972, quality 0.479)market_value_eur=6400000
quality_factor=0.4793
boost_factor=0.9972
reference_quality=0.505
history_matches=9
history_shrink=0.3571
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0387)blend_weight=0.0387
history_matches=9
season_overlap_discount=1.0
per90_to_match_factor=0.8594
prior_reliability=0.1667
competition=La Liga
totalCross: 2.0138 -> 1.9492
wasFouled: 1.2904 -> 1.3336
fouls: 1.7226 -> 1.7624
goalAssist: 0.2242 -> 0.2554
totalShots: 1.6947 -> 1.6694
interceptionWon: 0.4909 -> 0.4719
onTargetScoringAttempt: 0.5692 -> 0.5605
wonTackle: 0.4748 -> 0.483
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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.439, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9687, 'skill_edge': 0.0227, 'height_edge': -0.044, 'attacker_skill': 0.488, '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.1515}
aerialWon: 0.1654 -> 0.9
totalShots: 1.686 -> 1.6333
shotOffTarget: 1.1255 -> 1.0903
onTargetScoringAttempt: 0.5605 -> 0.543
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_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.1085, xG scale 1.3171, xA scale 1.3171, team xA 0.96 = 0.66 x lambda)scoreline_reset=true
team_lambda=1.46
squad_xg_sum=1.1085
squad_xa_sum=0.7277
team_expected_assists=0.9585
team_xa_to_xg_ratio=0.6565
expected_goals: 0.1515 -> 0.1995
expected_assists: 0.128 -> 0.1686
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 86.0)match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1809
goal_rate=0.1388
scorer_weight=0.1869
-
integer_assist_projectionTeam scoreline allocation: 1 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.1552
assist_rate=0.2554
provider_weight=0.2107
-
Roger HinojoD7800.010.01113%00.16.654.611FBref 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.9929, quality 0.439)market_value_eur=3100000
quality_factor=0.4387
boost_factor=0.9929
reference_quality=0.505
history_matches=9
history_shrink=0.3571
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0464)blend_weight=0.0464
history_matches=9
season_overlap_discount=1.0
per90_to_match_factor=0.8664
prior_reliability=0.2
competition=La Liga
wonTackle: 1.1399 -> 1.1674
totalShots: 0.324 -> 0.309
interceptionWon: 0.8387 -> 0.8266
fouls: 0.9735 -> 0.9685
wasFouled: 0.3961 -> 0.3911
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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, Julen Agirrezabala', 'matchup_zone': 'LWB vs RW + RB'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.46 (squad xG sum 1.1085, xG scale 1.3171, xA scale 1.3171, team xA 0.96 = 0.66 x lambda)scoreline_reset=true
team_lambda=1.46
squad_xg_sum=1.1085
squad_xa_sum=0.7277
team_expected_assists=0.9585
team_xa_to_xg_ratio=0.6565
expected_assists: 0.033 -> 0.0435
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 18 by projected rating, fifa_overall 68.0)match_squad_rank=18
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.011
goal_rate=0.0
scorer_weight=0.0095
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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
-
Leandro CabreraD9000.070.06ok11.06.861.829XGBoost 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=930000
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': 'Yassir Zabiri', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.46 (squad xG sum 1.1085, xG scale 1.3171, xA scale 1.3171, team xA 0.96 = 0.66 x lambda)scoreline_reset=true
team_lambda=1.46
squad_xg_sum=1.1085
squad_xa_sum=0.7277
team_expected_assists=0.9585
team_xa_to_xg_ratio=0.6565
expected_goals: 0.0556 -> 0.0732
expected_assists: 0.0296 -> 0.039
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.0706
goal_rate=0.0072
scorer_weight=0.0586
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0382
assist_rate=0.0
provider_weight=0.0312
-
Vanja DrkušićD8300.00-n/a00.06.718.811FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9939, quality 0.468)market_value_eur=5500000
quality_factor=0.4683
boost_factor=0.9939
reference_quality=0.505
history_matches=4
history_shrink=0.5556
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0313)blend_weight=0.0313
history_matches=4
season_overlap_discount=1.0
per90_to_match_factor=0.9219
prior_reliability=0.0867
competition=La Liga
fouls: 0.6423 -> 0.6888
wasFouled: 0.6761 -> 0.7215
interceptionWon: 0.6788 -> 0.6575
wonTackle: 0.8876 -> 0.9042
totalShots: 0.3653 -> 0.3539
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Yassir Zabiri', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.46 (squad xG sum 1.1085, xG scale 1.3171, xA scale 1.3171, team xA 0.96 = 0.66 x lambda)scoreline_reset=true
team_lambda=1.46
squad_xg_sum=1.1085
squad_xa_sum=0.7277
team_expected_assists=0.9585
team_xa_to_xg_ratio=0.6565
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 15 by projected rating, fifa_overall 80.0)match_squad_rank=15
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
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.0024
assist_rate=0.0
provider_weight=0.0023
-
Clemens RiedelD8600.010.00396%00.16.742.831FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.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.908 -> 0.8979
wonTackle: 0.6238 -> 0.6294
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Iñigo Vicente', 'matchup_zone': 'Shape fallback'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.46 (squad xG sum 1.1085, xG scale 1.3171, xA scale 1.3171, team xA 0.96 = 0.66 x lambda)scoreline_reset=true
team_lambda=1.46
squad_xg_sum=1.1085
squad_xa_sum=0.7277
team_expected_assists=0.9585
team_xa_to_xg_ratio=0.6565
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 70.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.0059
goal_rate=0.0
scorer_weight=0.0054
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0111
assist_rate=0.0069
provider_weight=0.0109
-
Omar El HilaliD8800.00-n/a00.06.860.830FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0026, quality 0.589)market_value_eur=15900000
quality_factor=0.5889
boost_factor=1.0026
reference_quality=0.505
history_matches=44
history_shrink=0.102
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0133)blend_weight=0.0133
history_matches=44
season_overlap_discount=1.0
per90_to_match_factor=0.983
prior_reliability=0.2
competition=La Liga
totalCross: 2.5741 -> 2.5878
wasFouled: 0.8407 -> 0.8295
wonTackle: 1.1883 -> 1.1812
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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, Julen Agirrezabala', 'matchup_zone': 'RWB vs LW + LB'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.46 (squad xG sum 1.1085, xG scale 1.3171, xA scale 1.3171, team xA 0.96 = 0.66 x lambda)scoreline_reset=true
team_lambda=1.46
squad_xg_sum=1.1085
squad_xa_sum=0.7277
team_expected_assists=0.9585
team_xa_to_xg_ratio=0.6565
expected_assists: 0.0952 -> 0.1254
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 75.0)match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.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.1179
assist_rate=0.0915
provider_weight=0.1222
-
Ángel FortuñoG9000.00-n/a0.06.97.032XGBoost 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.9873, quality 0.437)market_value_eur=290000
quality_factor=0.4374
boost_factor=0.9873
reference_quality=0.505
history_matches=3
history_shrink=0.625
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Yassir Zabiri, Andrés Martín', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.3032}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_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.1085, xG scale 1.3171, xA scale 1.3171, team xA 0.96 = 0.66 x lambda)scoreline_reset=true
team_lambda=1.46
squad_xg_sum=1.1085
squad_xa_sum=0.7277
team_expected_assists=0.9585
team_xa_to_xg_ratio=0.6565
shots_faced: 12.4 -> 12.5
expected_saves: 3.04 -> 3.06
high_pressure_saves: 1.04 -> 1.05
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 89.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.0
scorer_weight=0.0
squad_weight_total=1.4744
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.8905
-
Pol LozanoM7800.120.03341%10.56.748.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.9988, quality 0.472)market_value_eur=5800000
quality_factor=0.472
boost_factor=0.9988
reference_quality=0.505
history_matches=38
history_shrink=0.1163
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0020)blend_weight=0.002
history_matches=38
season_overlap_discount=1.0
per90_to_match_factor=0.8632
prior_reliability=0.0267
competition=La Liga
wonTackle: 1.1313 -> 1.1377
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.46, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0149, 'skill_edge': 0.0181, 'height_edge': -0.008, 'attacker_skill': 0.4799, 'defender_skill': 0.4396, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Iván Martín', 'market_value': 2700000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4396}], 'xg_override': 0.09}
aerialWon: 0.3888 -> 0.9
totalShots: 0.9862 -> 1.0009
shotOffTarget: 0.6455 -> 0.6551
onTargetScoringAttempt: 0.3375 -> 0.3425
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.46 (squad xG sum 1.1085, xG scale 1.3171, xA scale 1.3171, team xA 0.96 = 0.66 x lambda)scoreline_reset=true
team_lambda=1.46
squad_xg_sum=1.1085
squad_xa_sum=0.7277
team_expected_assists=0.9585
team_xa_to_xg_ratio=0.6565
expected_goals: 0.09 -> 0.1185
expected_assists: 0.0592 -> 0.078
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.1117
goal_rate=0.0764
scorer_weight=0.107
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.075
assist_rate=0.0571
provider_weight=0.0765
-
Bryan ZaragozaF7700.170.1240%11.17.058.315XGBoost 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.9994, quality 0.493)market_value_eur=7500000
quality_factor=0.4927
boost_factor=0.9994
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': 'Jeanuël Belocian, Alvaro Mantilla', '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.8937, 'skill_edge': -0.0123, 'height_edge': -0.06, 'attacker_skill': 0.4927, 'defender_skill': 0.52, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Jeanuël Belocian', 'market_value': 12900000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6027}, {'player': 'Alvaro Mantilla', 'market_value': 1200000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.1274}
totalShots: 1.6634 -> 1.4866
shotOffTarget: 1.1176 -> 0.9988
onTargetScoringAttempt: 0.5457 -> 0.4877
expectedGoalsOnTarget: 0.1941 -> 0.1735
goals: 0.1546 -> 0.1382
expectedGoals: 0.1426 -> 0.1274
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_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.1085, xG scale 1.3171, xA scale 1.3171, team xA 0.96 = 0.66 x lambda)scoreline_reset=true
team_lambda=1.46
squad_xg_sum=1.1085
squad_xa_sum=0.7277
team_expected_assists=0.9585
team_xa_to_xg_ratio=0.6565
expected_goals: 0.1274 -> 0.1678
expected_assists: 0.1447 -> 0.1906
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 77.0)match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1545
goal_rate=0.1382
scorer_weight=0.178
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.0442
provider_weight=0.1525
-
Roberto FernándezF8310.580.28110%21.56.862.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.0039, quality 0.641)market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.0039
reference_quality=0.505
history_matches=47
history_shrink=0.0962
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0121)blend_weight=0.0121
history_matches=47
season_overlap_discount=1.0
per90_to_match_factor=0.9256
prior_reliability=0.1933
competition=La Liga
totalOffside: 0.9933 -> 0.9813
fouls: 1.5359 -> 1.5289
goals: 0.4238 -> 0.4302
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': 'Jeanuël Belocian, Alvaro Mantilla', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.262, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.0916, 'skill_edge': 0.0543, 'height_edge': 0.008, 'attacker_skill': 0.6408, 'defender_skill': 0.52, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Jeanuël Belocian', 'market_value': 12900000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6027}, {'player': 'Alvaro Mantilla', 'market_value': 1200000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.4418}
totalShots: 2.2815 -> 2.4905
shotOffTarget: 1.231 -> 1.3438
onTargetScoringAttempt: 1.0505 -> 1.1467
bigChanceMissed: 0.6125 -> 0.6686
goals: 0.4302 -> 0.4696
expectedGoalsOnTarget: 0.4095 -> 0.447
expectedGoals: 0.4047 -> 0.4418
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.46 (squad xG sum 1.1085, xG scale 1.3171, xA scale 1.3171, team xA 0.96 = 0.66 x lambda)scoreline_reset=true
team_lambda=1.46
squad_xg_sum=1.1085
squad_xa_sum=0.7277
team_expected_assists=0.9585
team_xa_to_xg_ratio=0.6565
expected_goals: 0.4418 -> 0.5819
expected_assists: 0.0389 -> 0.0512
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 74.0)match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.4412
goal_rate=0.4696
scorer_weight=0.6148
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0499
assist_rate=0.0258
provider_weight=0.0437
-
Team totals11.46106.8
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Marko DmitrovićG4.4m13.1%Market-value substitute prior
Quilindschy HartmanD14.2m32.5%Market-value substitute prior
Unai NúñezD13.6m21.7%Market-value substitute prior
Urko GonzálezM22.4m31.5%Market-value substitute prior
Gabriel MoscardoM34.7m69.6%Market-value substitute prior
Tyrhys DolanF25.7m34.2%Market-value substitute prior
Antagonist / tactical summary
Midfield is evenly contested — Matteo Prati vs Javier Hernández will be the pivotal duel. Total antagonist xG — Home: 0.83, Away: 1.02. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Midfield — possession 49.4% / 50.6%, dominance ratio 0.47, key duel: Matteo Prati vs Javier Hernández
Yassir Zabiri xG 0.41Iñigo Vicente xG 0.08Sergio Canales xG 0.10Roberto Fernández xG 0.44Bryan Zaragoza xG 0.13Javier Hernández xG 0.15

Summary

Antagonist matchup analysis for Racing Club vs Espanyol. Most likely scoreline: 1-1. Lambdas derived from 4 home and 7 away individual player duels. Head-to-head: Racing Club 5W-1D-4L vs Espanyol over 10 meetings.
Tactical parity between 4-2-3-1 and 5-4-1. Match outcome driven primarily by individual player quality. Midfield is evenly contested — Matteo Prati vs Javier Hernández will be the pivotal duel. Total antagonist xG — Home: 0.83, Away: 1.02. 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 Everton

Premier League · 20261024 · 4-2-3-1 vs 4-2-3-1
Predicted 1-0Winner: ArsenalWinning H 1-0 (10.4%)Winning A 0-1 (5.7%)Confidence 0.76λ home/away 1.85 / 1.02Most-likely P 10.4%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset Tracing
Antagonist + XGBoost match analysis for Arsenal vs Everton. 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.712, Away 1.134). Final calibrated Poisson lambdas: Home 1.854, Away 1.016 (most likely score 1-0).
Home Starters 11/11 XGBoost (11 FBref) Away Starters 11/11 XGBoost (10 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.71 / 1.13 Final λ (H/A) 1.85 / 1.02
FBref Team Priors: Arsenal (Gls/90: 2.0, GA/90: 2.0 → E[λ]: 2.069) vs Everton (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

MetricArsenalEverton
League position2.008.00
Points per game2.011.40
Attack index1.090.88
Defense (concede) index0.840.86
Form multiplier1.030.97
Standing λ multiplier0.970.89

Lambda decomposition (how the goal rates were built)

StageArsenal λEverton λ
FBref Squad Prior E[λ] (weight 0.192)2.0692.069
Pre-mismatch1.7851.085
Pre-competitive-floor1.9371.062
Pre-calibration (Micro-duels)1.7121.134
Final λ1.8541.016
competition calibration scale 1.0competition observed total goals 0.0quality gap applied Truemismatch score pressure applied Truecompetitive underdog floor applied Falsestage discount 1.0

Scoreline distribution & markets

Top 5 scorelinesP
1-110.7%
1-010.4%
2-19.9%
2-09.7%
3-16.1%
Home win56.9%
Draw22.7%
Away win20.4%
Over 2.554.7%
BTTS yes53.9%
Pregame fair line — favorite Arsenal (56.9%), fair total 2.87, fair spread 0.84

Projected players vs season baseline

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

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Kai HavertzF7510.530.23131%31.36.850.724FBref 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.0214, quality 0.848)market_value_eur=58000000
quality_factor=0.8478
boost_factor=1.0214
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.8356
prior_reliability=0.1333
competition=Premier League
totalOffside: 0.9991 -> 1.0339
totalShots: 2.3967 -> 2.3685
wasFouled: 0.8931 -> 0.9071
totalCross: 0.7537 -> 0.7401
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Vitaliy Mykolenko, Jarrad Branthwaite', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.242, 'pressing_faced': 'HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 1.0622, 'skill_edge': 0.0203, 'height_edge': 0.022, 'attacker_skill': 0.8478, 'defender_skill': 0.8027, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Vitaliy Mykolenko', 'market_value': 26000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7498}, {'player': 'Jarrad Branthwaite', 'market_value': 46000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8555}], 'xg_override': 0.4071}
totalShots: 2.3961 -> 2.5452
shotOffTarget: 1.5301 -> 1.6253
onTargetScoringAttempt: 0.866 -> 0.9199
bigChanceMissed: 0.591 -> 0.6278
expectedGoals: 0.3833 -> 0.4071
expectedGoalsOnTarget: 0.3577 -> 0.3799
goals: 0.3443 -> 0.3657
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.85 (squad xG sum 1.4345, xG scale 1.2924, xA scale 1.2924, team xA 1.35 = 0.73 x lambda)scoreline_reset=true
team_lambda=1.854
squad_xg_sum=1.4345
squad_xa_sum=1.0469
team_expected_assists=1.3531
team_xa_to_xg_ratio=0.7298
expected_goals: 0.4071 -> 0.5261
expected_assists: 0.0477 -> 0.0616
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 81.0)match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.4091
goal_rate=0.3657
scorer_weight=0.4784
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0597
assist_rate=0.0695
provider_weight=0.0753
-
Noni MaduekeF7100.160.04263%20.86.941.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.0134, quality 0.817)market_value_eur=48000000
quality_factor=0.8168
boost_factor=1.0134
reference_quality=0.505
history_matches=30
history_shrink=0.1429
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0019)blend_weight=0.0019
history_matches=30
season_overlap_discount=1.0
per90_to_match_factor=0.7883
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': 'Vitaliy Mykolenko, Jarrad Branthwaite', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.184, 'pressing_faced': 'HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.977, 'skill_edge': 0.0064, 'height_edge': -0.022, 'attacker_skill': 0.8168, 'defender_skill': 0.8027, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Vitaliy Mykolenko', 'market_value': 26000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7498}, {'player': 'Jarrad Branthwaite', 'market_value': 46000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8555}], 'xg_override': 0.12}
totalShots: 1.9812 -> 1.9356
shotOffTarget: 1.4466 -> 1.4133
onTargetScoringAttempt: 0.5346 -> 0.5223
goals: 0.2156 -> 0.2106
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.85 (squad xG sum 1.4345, xG scale 1.2924, xA scale 1.2924, team xA 1.35 = 0.73 x lambda)scoreline_reset=true
team_lambda=1.854
squad_xg_sum=1.4345
squad_xa_sum=1.0469
team_expected_assists=1.3531
team_xa_to_xg_ratio=0.7298
expected_goals: 0.12 -> 0.1551
expected_assists: 0.1334 -> 0.1724
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 80.0)match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1437
goal_rate=0.2106
scorer_weight=0.1939
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1584
assist_rate=0.0375
provider_weight=0.1379
-
Martin ØdegaardM8100.260.10173%20.67.352.924FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0160, quality 0.888)market_value_eur=88000000
quality_factor=0.8879
boost_factor=1.016
reference_quality=0.505
history_matches=31
history_shrink=0.1389
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0096)blend_weight=0.0096
history_matches=31
season_overlap_discount=1.0
per90_to_match_factor=0.9036
prior_reliability=0.1067
competition=Premier League
wonTackle: 0.4598 -> 0.4717
totalShots: 1.3413 -> 1.35
fouls: 0.556 -> 0.5506
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Ainsley Maitland-Niles', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.616, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.2001, 'skill_edge': 0.1361, 'height_edge': 0.0, 'attacker_skill': 0.8879, 'defender_skill': 0.5854, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Ainsley Maitland-Niles', 'market_value': 10900000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.5854}], 'xg_override': 0.2028}
aerialWon: 0.0593 -> 1.0
totalShots: 1.35 -> 1.6201
shotOffTarget: 0.815 -> 0.9781
onTargetScoringAttempt: 0.5265 -> 0.6319
expectedGoals: 0.169 -> 0.2028
goals: 0.1618 -> 0.1942
bigChanceMissed: 0.1431 -> 0.1717
expectedGoalsOnTarget: 0.1061 -> 0.1273
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.85 (squad xG sum 1.4345, xG scale 1.2924, xA scale 1.2924, team xA 1.35 = 0.73 x lambda)scoreline_reset=true
team_lambda=1.854
squad_xg_sum=1.4345
squad_xa_sum=1.0469
team_expected_assists=1.3531
team_xa_to_xg_ratio=0.7298
expected_goals: 0.2028 -> 0.2621
expected_assists: 0.2046 -> 0.2645
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.2306
goal_rate=0.1942
scorer_weight=0.2532
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.2324
assist_rate=0.1876
provider_weight=0.2468
-
Eberechi EzeM7000.150.0880%11.16.850.331FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0123, quality 0.859)market_value_eur=63000000
quality_factor=0.8589
boost_factor=1.0123
reference_quality=0.505
history_matches=38
history_shrink=0.1163
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0035)blend_weight=0.0035
history_matches=38
season_overlap_discount=1.0
per90_to_match_factor=0.7766
prior_reliability=0.0467
competition=Premier League
wasFouled: 1.8715 -> 1.8766
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Merlin Röhl', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.471, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0751, 'skill_edge': 0.1031, 'height_edge': -0.052, 'attacker_skill': 0.876, 'defender_skill': 0.6469, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Merlin Röhl', 'market_value': 18400000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.6469}], 'xg_override': 0.1162}
aerialWon: 0.4691 -> 1.0
totalShots: 1.3238 -> 1.4232
shotOffTarget: 0.8916 -> 0.9586
onTargetScoringAttempt: 0.4312 -> 0.4636
expectedGoalsOnTarget: 0.2805 -> 0.3016
expectedGoals: 0.1081 -> 0.1162
goals: 0.1075 -> 0.1156
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.85 (squad xG sum 1.4345, xG scale 1.2924, xA scale 1.2924, team xA 1.35 = 0.73 x lambda)scoreline_reset=true
team_lambda=1.854
squad_xg_sum=1.4345
squad_xa_sum=1.0469
team_expected_assists=1.3531
team_xa_to_xg_ratio=0.7298
expected_goals: 0.1162 -> 0.1502
expected_assists: 0.0533 -> 0.0689
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 84.0)match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1395
goal_rate=0.1156
scorer_weight=0.1497
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0666
assist_rate=0.0697
provider_weight=0.0798
-
Myles Lewis-SkellyD7500.030.01175%10.36.833.535FBref 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.0182, quality 0.869)market_value_eur=69000000
quality_factor=0.8692
boost_factor=1.0182
reference_quality=0.505
history_matches=25
history_shrink=0.1667
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0130)blend_weight=0.013
history_matches=25
season_overlap_discount=1.0
per90_to_match_factor=0.8307
prior_reliability=0.12
competition=Premier League
fouls: 1.5076 -> 1.494
wonTackle: 0.6257 -> 0.6176
totalShots: 0.5526 -> 0.5576
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Kiernan Dewsbury-Hall', '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.85 (squad xG sum 1.4345, xG scale 1.2924, xA scale 1.2924, team xA 1.35 = 0.73 x lambda)scoreline_reset=true
team_lambda=1.854
squad_xg_sum=1.4345
squad_xa_sum=1.0469
team_expected_assists=1.3531
team_xa_to_xg_ratio=0.7298
expected_goals: 0.0259 -> 0.0335
expected_assists: 0.1022 -> 0.1321
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 78.0)match_squad_rank=11
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0329
goal_rate=0.0
scorer_weight=0.0268
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1237
assist_rate=0.0
provider_weight=0.1057
-
Declan RiceM8600.090.04106%10.67.360.231FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0122, quality 0.897)market_value_eur=114000000
quality_factor=0.8967
boost_factor=1.0122
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.9607
prior_reliability=0.1133
competition=Premier League
totalCross: 3.6522 -> 3.6589
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Merlin Röhl', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.521, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.149, 'skill_edge': 0.1133, 'height_edge': -0.012, 'attacker_skill': 0.8988, 'defender_skill': 0.6469, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Merlin Röhl', 'market_value': 18400000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.6469}], 'xg_override': 0.0684}
totalShots: 0.7637 -> 0.8775
shotOffTarget: 0.565 -> 0.6492
aerialWon: 1.1627 -> 1.2
onTargetScoringAttempt: 0.1943 -> 0.2233
goals: 0.0856 -> 0.0984
expectedGoals: 0.0595 -> 0.0684
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.85 (squad xG sum 1.4345, xG scale 1.2924, xA scale 1.2924, team xA 1.35 = 0.73 x lambda)scoreline_reset=true
team_lambda=1.854
squad_xg_sum=1.4345
squad_xa_sum=1.0469
team_expected_assists=1.3531
team_xa_to_xg_ratio=0.7298
expected_goals: 0.0684 -> 0.0884
expected_assists: 0.1927 -> 0.2491
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.0846
goal_rate=0.0984
scorer_weight=0.1105
-
integer_assist_projectionTeam scoreline allocation: 1 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.2205
assist_rate=0.2106
provider_weight=0.2675
-
Riccardo CalafioriD8100.200.09131%10.86.845.724FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0140, quality 0.859)market_value_eur=63000000
quality_factor=0.8589
boost_factor=1.014
reference_quality=0.505
history_matches=33
history_shrink=0.1316
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0108)blend_weight=0.0108
history_matches=33
season_overlap_discount=1.0
per90_to_match_factor=0.8983
prior_reliability=0.1267
competition=Premier League
goalAssist: 0.1298 -> 0.1386
wonTackle: 0.9445 -> 0.9394
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Thierno Barry', '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.85 (squad xG sum 1.4345, xG scale 1.2924, xA scale 1.2924, team xA 1.35 = 0.73 x lambda)scoreline_reset=true
team_lambda=1.854
squad_xg_sum=1.4345
squad_xa_sum=1.0469
team_expected_assists=1.3531
team_xa_to_xg_ratio=0.7298
expected_goals: 0.1551 -> 0.2005
expected_assists: 0.1133 -> 0.1464
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 82.0)match_squad_rank=14
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1817
goal_rate=0.1307
scorer_weight=0.1766
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1362
assist_rate=0.1386
provider_weight=0.1691
-
Gabriel MagalhãesD9000.190.08122%10.87.060.331FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0125, quality 0.871)market_value_eur=70000000
quality_factor=0.8707
boost_factor=1.0125
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.9997
prior_reliability=0.1333
competition=Premier League
wonTackle: 0.7934 -> 0.7856
fouls: 0.7862 -> 0.7932
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Thierno Barry', '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.85 (squad xG sum 1.4345, xG scale 1.2924, xA scale 1.2924, team xA 1.35 = 0.73 x lambda)scoreline_reset=true
team_lambda=1.854
squad_xg_sum=1.4345
squad_xa_sum=1.0469
team_expected_assists=1.3531
team_xa_to_xg_ratio=0.7298
expected_goals: 0.1448 -> 0.1871
expected_assists: 0.0395 -> 0.0511
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 88.0)match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1706
goal_rate=0.0067
scorer_weight=0.1497
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0498
assist_rate=0.0258
provider_weight=0.0433
-
Ezri KonsaD9000.060.0439%00.36.853.229FBref 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.0110, quality 0.834)market_value_eur=53000000
quality_factor=0.834
boost_factor=1.011
reference_quality=0.505
history_matches=40
history_shrink=0.1111
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0005)blend_weight=0.0005
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=0.9999
prior_reliability=0.0067
competition=Premier League
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Thierno Barry', '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.85 (squad xG sum 1.4345, xG scale 1.2924, xA scale 1.2924, team xA 1.35 = 0.73 x lambda)scoreline_reset=true
team_lambda=1.854
squad_xg_sum=1.4345
squad_xa_sum=1.0469
team_expected_assists=1.3531
team_xa_to_xg_ratio=0.7298
expected_goals: 0.0434 -> 0.0561
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.0546
goal_rate=0.0
scorer_weight=0.0449
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.012
assist_rate=0.0
provider_weight=0.0102
-
Ben WhiteD7300.030.01204%00.16.836.025FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0148, quality 0.732)market_value_eur=32000000
quality_factor=0.732
boost_factor=1.0148
reference_quality=0.505
history_matches=18
history_shrink=0.2174
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0188)blend_weight=0.0188
history_matches=18
season_overlap_discount=1.0
per90_to_match_factor=0.8063
prior_reliability=0.1333
competition=Premier League
totalCross: 1.6929 -> 1.7066
wasFouled: 0.9031 -> 0.8937
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Jack Grealish', '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.85 (squad xG sum 1.4345, xG scale 1.2924, xA scale 1.2924, team xA 1.35 = 0.73 x lambda)scoreline_reset=true
team_lambda=1.854
squad_xg_sum=1.4345
squad_xa_sum=1.0469
team_expected_assists=1.3531
team_xa_to_xg_ratio=0.7298
expected_goals: 0.0246 -> 0.0318
expected_assists: 0.07 -> 0.0905
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 15 by projected rating, fifa_overall 86.0)match_squad_rank=15
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0313
goal_rate=0.0
scorer_weight=0.0254
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0865
assist_rate=0.2391
provider_weight=0.1131
-
David RayaG9000.00-n/a0.07.057.930FBref Prior G_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost G_service raw output over 3 target models--
market_value_boostMarket-value quality scaling (boost 1.0072, quality 0.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=1.0
prior_reliability=0.1333
competition=Premier League
saves: 2.9882 -> 2.9662
wasFouled: 0.8363 -> 0.8289
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Thierno Barry, Kiernan Dewsbury-Hall', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.134}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.85 (squad xG sum 1.4345, xG scale 1.2924, xA scale 1.2924, team xA 1.35 = 0.73 x lambda)scoreline_reset=true
team_lambda=1.854
squad_xg_sum=1.4345
squad_xa_sum=1.0469
team_expected_assists=1.3531
team_xa_to_xg_ratio=0.7298
shots_faced: 10.8 -> 9.7
expected_saves: 2.65 -> 2.38
high_pressure_saves: 0.91 -> 0.81
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 88.0)match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.7964
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.3507
-
Team totals11.85137.0
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Illan MeslierG4.6m11.9%Market-value substitute prior
William SalibaD15.4m38.0%Market-value substitute prior
Jurriën TimberD15.3m37.7%Market-value substitute prior
Martín ZubimendiM18.9m72.8%Market-value substitute prior
Bruno GuimarãesM21.7m72.8%Market-value substitute prior
Bukayo SakaF27.1m37.1%Market-value substitute prior

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Thierno BarryF8400.360.31ok21.56.956.331FBref 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.0076, quality 0.758)market_value_eur=36000000
quality_factor=0.7581
boost_factor=1.0076
reference_quality=0.505
history_matches=45
history_shrink=0.1
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0069)blend_weight=0.0069
history_matches=45
season_overlap_discount=1.0
per90_to_match_factor=0.9382
prior_reliability=0.1067
competition=Premier League
fouls: 0.8802 -> 0.8741
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Gabriel Magalhães, Riccardo Calafiori', '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.9494, 'skill_edge': -0.0584, 'height_edge': 0.024, 'attacker_skill': 0.7581, 'defender_skill': 0.888, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Gabriel Magalhães', 'market_value': 70000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8907}, {'player': 'Riccardo Calafiori', 'market_value': 63000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8852}], 'xg_override': 0.3662}
totalShots: 2.4491 -> 2.3252
bigChanceMissed: 1.3705 -> 1.3012
shotOffTarget: 1.3038 -> 1.2378
onTargetScoringAttempt: 1.1453 -> 1.0873
expectedGoalsOnTarget: 0.4588 -> 0.4356
goals: 0.4559 -> 0.4328
expectedGoals: 0.3857 -> 0.3662
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.02 (squad xG sum 1.0471, xG scale 0.9703, xA scale 0.8122, team xA 0.81 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.016
squad_xg_sum=1.0471
squad_xa_sum=1.0007
team_expected_assists=0.8128
team_xa_to_xg_ratio=0.8
expected_goals: 0.3662 -> 0.3553
expected_assists: 0.0306 -> 0.0249
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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.299
goal_rate=0.4328
scorer_weight=0.4121
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0246
assist_rate=0.0
provider_weight=0.0199
-
Jack GrealishF8600.070.01448%10.57.039.425FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0066, quality 0.641)market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.0066
reference_quality=0.505
history_matches=26
history_shrink=0.1613
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0007)blend_weight=0.0007
history_matches=26
season_overlap_discount=1.0
per90_to_match_factor=0.9558
prior_reliability=0.0067
competition=Premier League
fouls: 0.7406 -> 0.7468
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Gabriel Magalhães, Riccardo Calafiori', '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.7836, 'skill_edge': -0.1112, 'height_edge': -0.036, 'attacker_skill': 0.6408, 'defender_skill': 0.888, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Gabriel Magalhães', 'market_value': 70000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8907}, {'player': 'Riccardo Calafiori', 'market_value': 63000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8852}], 'xg_override': 0.0735}
totalShots: 1.1843 -> 0.928
shotOffTarget: 0.7994 -> 0.6264
onTargetScoringAttempt: 0.3849 -> 0.3016
bigChanceMissed: 0.1377 -> 0.1079
goals: 0.1151 -> 0.0902
expectedGoals: 0.0938 -> 0.0735
expectedGoalsOnTarget: 0.0644 -> 0.0505
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.02 (squad xG sum 1.0471, xG scale 0.9703, xA scale 0.8122, team xA 0.81 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.016
squad_xg_sum=1.0471
squad_xa_sum=1.0007
team_expected_assists=0.8128
team_xa_to_xg_ratio=0.8
expected_assists: 0.1761 -> 0.143
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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0688
goal_rate=0.0902
scorer_weight=0.0809
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.1332
assist_rate=0.1648
provider_weight=0.1358
-
Kiernan Dewsbury-HallM8900.170.15ok21.57.258.928FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0103, quality 0.800)market_value_eur=44000000
quality_factor=0.8002
boost_factor=1.0103
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.9879
prior_reliability=0.1333
competition=Premier League
totalCross: 3.601 -> 3.6095
wonTackle: 0.7884 -> 0.7954
wasFouled: 2.0119 -> 2.0066
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
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 Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.438, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9388, 'skill_edge': -0.0417, 'height_edge': 0.0, 'attacker_skill': 0.8002, 'defender_skill': 0.8928, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Myles Lewis-Skelly', 'market_value': 69000000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.8928}], 'xg_override': 0.1743}
aerialWon: 0.3465 -> 1.0
totalShots: 2.1154 -> 1.9859
shotOffTarget: 1.3009 -> 1.2213
onTargetScoringAttempt: 0.8127 -> 0.763
bigChanceMissed: 0.2619 -> 0.2459
goals: 0.2377 -> 0.2232
expectedGoalsOnTarget: 0.2069 -> 0.1942
expectedGoals: 0.1857 -> 0.1743
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.02 (squad xG sum 1.0471, xG scale 0.9703, xA scale 0.8122, team xA 0.81 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.016
squad_xg_sum=1.0471
squad_xa_sum=1.0007
team_expected_assists=0.8128
team_xa_to_xg_ratio=0.8
expected_goals: 0.1743 -> 0.1691
expected_assists: 0.1759 -> 0.1429
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.1556
goal_rate=0.2232
scorer_weight=0.206
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.1332
assist_rate=0.1308
provider_weight=0.1144
-
Merlin RöhlM8400.050.01354%10.26.831.132FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0066, quality 0.615)market_value_eur=18400000
quality_factor=0.615
boost_factor=1.0066
reference_quality=0.505
history_matches=20
history_shrink=0.2
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0165)blend_weight=0.0165
history_matches=20
season_overlap_discount=1.0
per90_to_match_factor=0.9317
prior_reliability=0.1267
competition=Premier League
totalCross: 1.4174 -> 1.4344
fouls: 1.4086 -> 1.3935
wonTackle: 1.0995 -> 1.1137
totalShots: 0.7914 -> 0.7784
wasFouled: 1.0024 -> 0.994
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Eberechi Eze', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.369, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9249, 'skill_edge': -0.1031, 'height_edge': 0.052, 'attacker_skill': 0.6469, 'defender_skill': 0.876, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Eberechi Eze', 'market_value': 63000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.876}], 'xg_override': 0.0494}
aerialWon: 1.1384 -> 1.3
totalShots: 0.7873 -> 0.7282
shotOffTarget: 0.5452 -> 0.5043
onTargetScoringAttempt: 0.2421 -> 0.2239
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.02 (squad xG sum 1.0471, xG scale 0.9703, xA scale 0.8122, team xA 0.81 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.016
squad_xg_sum=1.0471
squad_xa_sum=1.0007
team_expected_assists=0.8128
team_xa_to_xg_ratio=0.8
expected_assists: 0.0586 -> 0.0476
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 74.0)match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0468
goal_rate=0.0597
scorer_weight=0.0529
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0465
assist_rate=0.0654
provider_weight=0.0506
-
Harrison ArmstrongM8400.080.0498%10.46.841.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 1.0132, quality 0.725)market_value_eur=31000000
quality_factor=0.7249
boost_factor=1.0132
reference_quality=0.505
history_matches=20
history_shrink=0.2
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0165)blend_weight=0.0165
history_matches=20
season_overlap_discount=1.0
per90_to_match_factor=0.9288
prior_reliability=0.1267
competition=Premier League
interceptionWon: 0.4556 -> 0.4803
fouls: 1.1461 -> 1.1675
totalShots: 1.0055 -> 0.9889
wonTackle: 0.9462 -> 0.9548
goalAssist: 0.0878 -> 0.0944
onTargetScoringAttempt: 0.3776 -> 0.3714
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': 'Eberechi Eze, Declan Rice', 'matchup_zone': 'Attacking Mid vs Double Pivot — Tight Space Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.9119, 'skill_edge': -0.068, 'height_edge': 0.008, 'attacker_skill': 0.7364, 'defender_skill': 0.8874, 'attacker_role': 'CAM', 'attacker_mv_price_index': 0.95, 'defender_adjusted_parts': [{'player': 'Eberechi Eze', 'market_value': 63000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.876}, {'player': 'Declan Rice', 'market_value': 114000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8988}], 'xg_override': 0.0844}
aerialWon: 0.6285 -> 1.2
totalShots: 0.9993 -> 0.9113
shotOffTarget: 0.6279 -> 0.5726
onTargetScoringAttempt: 0.3714 -> 0.3387
bigChanceMissed: 0.1998 -> 0.1822
goals: 0.0944 -> 0.0861
expectedGoals: 0.0925 -> 0.0844
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.02 (squad xG sum 1.0471, xG scale 0.9703, xA scale 0.8122, team xA 0.81 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.016
squad_xg_sum=1.0471
squad_xa_sum=1.0007
team_expected_assists=0.8128
team_xa_to_xg_ratio=0.8
expected_assists: 0.0655 -> 0.0532
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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0786
goal_rate=0.0861
scorer_weight=0.0829
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0518
assist_rate=0.0944
provider_weight=0.0665
-
James GarnerM8700.060.0398%10.67.260.431FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0099, quality 0.834)market_value_eur=53000000
quality_factor=0.834
boost_factor=1.0099
reference_quality=0.505
history_matches=45
history_shrink=0.1
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0035)blend_weight=0.0035
history_matches=45
season_overlap_discount=1.0
per90_to_match_factor=0.9673
prior_reliability=0.0533
competition=Premier League
wonTackle: 1.5012 -> 1.5128
fouls: 0.9578 -> 0.9629
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Eberechi Eze', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.428, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 1.0114, 'skill_edge': -0.0083, 'height_edge': 0.016, 'attacker_skill': 0.8576, 'defender_skill': 0.876, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Eberechi Eze', 'market_value': 63000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.876}], 'xg_override': 0.0588}
aerialWon: 0.3956 -> 1.1
totalShots: 0.8486 -> 0.8583
shotOffTarget: 0.6239 -> 0.631
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.02 (squad xG sum 1.0471, xG scale 0.9703, xA scale 0.8122, team xA 0.81 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.016
squad_xg_sum=1.0471
squad_xa_sum=1.0007
team_expected_assists=0.8128
team_xa_to_xg_ratio=0.8
expected_assists: 0.1187 -> 0.0964
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 82.0)match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0555
goal_rate=0.0547
scorer_weight=0.0549
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0919
assist_rate=0.1014
provider_weight=0.0865
-
Vitaliy MykolenkoD9000.010.01ok00.26.751.730FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.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
-
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.9994
prior_reliability=0.1333
competition=Premier League
wonTackle: 1.3485 -> 1.3352
totalCross: 2.4151 -> 2.4061
interceptionWon: 1.0985 -> 1.0926
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Kai Havertz', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 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.02 (squad xG sum 1.0471, xG scale 0.9703, xA scale 0.8122, team xA 0.81 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.016
squad_xg_sum=1.0471
squad_xa_sum=1.0007
team_expected_assists=0.8128
team_xa_to_xg_ratio=0.8
expected_assists: 0.0646 -> 0.0525
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.0065
goal_rate=0.0
scorer_weight=0.0057
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0511
assist_rate=0.0081
provider_weight=0.042
-
Jarrad BranthwaiteD9000.040.0342%10.56.854.022FBref 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.0207, quality 0.809)market_value_eur=46000000
quality_factor=0.8089
boost_factor=1.0207
reference_quality=0.505
history_matches=17
history_shrink=0.2273
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0197)blend_weight=0.0197
history_matches=17
season_overlap_discount=1.0
per90_to_match_factor=0.9956
prior_reliability=0.1333
competition=Premier League
wasFouled: 0.8179 -> 0.8018
totalCross: 0.3679 -> 0.3607
interceptionWon: 1.1565 -> 1.1631
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Kai Havertz', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 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.02 (squad xG sum 1.0471, xG scale 0.9703, xA scale 0.8122, team xA 0.81 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.016
squad_xg_sum=1.0471
squad_xa_sum=1.0007
team_expected_assists=0.8128
team_xa_to_xg_ratio=0.8
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 79.0)match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.039
goal_rate=0.0368
scorer_weight=0.038
-
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.0066
-
James TarkowskiD9000.040.0743%10.77.060.330FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9988, quality 0.465)market_value_eur=5200000
quality_factor=0.4646
boost_factor=0.9988
reference_quality=0.505
history_matches=44
history_shrink=0.102
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0088)blend_weight=0.0088
history_matches=44
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League
interceptionWon: 1.3154 -> 1.3303
wasFouled: 1.6147 -> 1.6225
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Kai Havertz', '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.02 (squad xG sum 1.0471, xG scale 0.9703, xA scale 0.8122, team xA 0.81 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.016
squad_xg_sum=1.0471
squad_xa_sum=1.0007
team_expected_assists=0.8128
team_xa_to_xg_ratio=0.8
expected_assists: 0.0411 -> 0.0334
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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0363
goal_rate=0.1296
scorer_weight=0.0462
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0328
assist_rate=0.1676
provider_weight=0.0417
-
Ainsley Maitland-NilesD7800.010.0131%00.36.638.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.0042, quality 0.533)market_value_eur=10900000
quality_factor=0.533
boost_factor=1.0042
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': 'Martin Ødegaard', '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.02 (squad xG sum 1.0471, xG scale 0.9703, xA scale 0.8122, team xA 0.81 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.016
squad_xg_sum=1.0471
squad_xa_sum=1.0007
team_expected_assists=0.8128
team_xa_to_xg_ratio=0.8
expected_assists: 0.1829 -> 0.1484
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 16 by projected rating, fifa_overall 77.0)match_squad_rank=16
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0051
goal_rate=0.0
scorer_weight=0.0046
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.1379
assist_rate=0.2678
provider_weight=0.1855
-
Jordan PickfordG9000.00-n/a0.07.058.431FBref 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.0019, quality 0.567)market_value_eur=13900000
quality_factor=0.5671
boost_factor=1.0019
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
wasFouled: 0.3273 -> 0.3375
saves: 2.9404 -> 2.9496
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Kai Havertz, Martin Ødegaard', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.7125}
-
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.02 (squad xG sum 1.0471, xG scale 0.9703, xA scale 0.8122, team xA 0.81 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.016
squad_xg_sum=1.0471
squad_xa_sum=1.0007
team_expected_assists=0.8128
team_xa_to_xg_ratio=0.8
shots_faced: 16.3 -> 17.6
expected_saves: 3.99 -> 4.31
high_pressure_saves: 1.37 -> 1.48
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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.1461
-
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.8126
-
Team totals01.02136.9
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Mark TraversG4.4m10.9%Market-value substitute prior
Jake O'BrienD14.2m32.7%Market-value substitute prior
Nathan PattersonD13.9m31.6%Market-value substitute prior
Hayden HackneyM26.4m52.5%Market-value substitute prior
Carlos AlcarazM11.8m70.3%Market-value substitute prior
Brennan JohnsonF21.8m74.3%Market-value substitute prior
Antagonist / tactical summary
Midfield is evenly contested — Declan Rice vs James Garner will be the pivotal duel. Total antagonist xG — Home: 0.91, Away: 0.81. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Midfield — possession 50.7% / 49.3%, dominance ratio 0.53, key duel: Declan Rice vs James Garner
Martin Ødegaard xG 0.20Kai Havertz xG 0.41Noni Madueke xG 0.12Kiernan Dewsbury-Hall xG 0.17Harrison Armstrong xG 0.08Thierno Barry xG 0.37

Summary

Antagonist matchup analysis for Arsenal vs Everton. Most likely scoreline: 1-0. Lambdas derived from 5 home and 6 away individual player duels. Head-to-head: Arsenal 7W-2D-1L vs Everton 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 — Declan Rice vs James Garner will be the pivotal duel. Total antagonist xG — Home: 0.91, Away: 0.81. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.

Coventry vs Fulham

Premier League · 20261024 · 4-2-3-1 vs 4-2-3-1
Predicted 1-1Winner: DrawWinning H 1-0 (9.8%)Winning A 0-1 (10.5%)Confidence 0.7λ home/away 1.20 / 1.30Most-likely P 12.9%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset Tracing
Antagonist + XGBoost match analysis for Coventry vs Fulham. Player statistics regressed using position-specific XGBoost models (G, D, M, F) with 2026-2027 FBref priors. Micro-duels resolved across 4-2-3-1 vs 4-2-3-1 (duel lambdas: Home 1.162, Away 1.342). Final calibrated Poisson lambdas: Home 1.201, Away 1.297 (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.16 / 1.34 Final λ (H/A) 1.20 / 1.30
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

MetricCoventryFulham
League position17.0018.00
Points per game1.091.01
Attack index0.900.84
Defense (concede) index0.941.20
Form multiplier1.000.99
Standing λ multiplier0.941.00

Lambda decomposition (how the goal rates were built)

StageCoventry λFulham λ
Pre-competitive-floor1.2011.297
Pre-calibration (Micro-duels)1.1621.342
Final λ1.2011.297
competition calibration scale 1.0competition observed total goals 0.0quality gap applied Truemismatch score pressure applied Falsecompetitive underdog floor applied Falsestage discount 1.0

Scoreline distribution & markets

Top 5 scorelinesP
1-112.9%
0-110.5%
1-09.8%
0-08.3%
1-28.3%
Home win34.1%
Draw27.2%
Away win38.7%
Over 2.545.6%
BTTS yes50.9%
Pregame fair line — favorite Fulham (38.7%), fair total 2.50, fair spread -0.10

Projected players vs season baseline

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

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Taiwo AwoniyiF7210.300.1770%20.76.736.827FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9994, quality 0.494)market_value_eur=7600000
quality_factor=0.4939
boost_factor=0.9994
reference_quality=0.505
history_matches=22
history_shrink=0.1852
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0096)blend_weight=0.0096
history_matches=22
season_overlap_discount=1.0
per90_to_match_factor=0.8046
prior_reliability=0.08
competition=Premier League
totalOffside: 0.7141 -> 0.7201
onTargetScoringAttempt: 0.7081 -> 0.7138
totalShots: 2.0316 -> 2.0371
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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.18, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 0.8857, 'skill_edge': -0.0697, 'height_edge': -0.008, 'attacker_skill': 0.4939, '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.2662}
totalShots: 2.0373 -> 1.8044
shotOffTarget: 1.3235 -> 1.1722
onTargetScoringAttempt: 0.7138 -> 0.6322
expectedGoalsOnTarget: 0.3999 -> 0.3542
bigChanceMissed: 0.3785 -> 0.3352
expectedGoals: 0.3006 -> 0.2662
goals: 0.2711 -> 0.2401
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.20 (squad xG sum 1.0809, xG scale 1.1111, xA scale 1.1940, team xA 0.78 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.201
squad_xg_sum=1.0809
squad_xa_sum=0.6538
team_expected_assists=0.7807
team_xa_to_xg_ratio=0.65
expected_goals: 0.2662 -> 0.2958
expected_assists: 0.0436 -> 0.0521
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 74.0)match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.2561
goal_rate=0.2401
scorer_weight=0.2714
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0508
assist_rate=0.0
provider_weight=0.0417
-
Ephron Mason-ClarkF6500.200.03633%10.26.726.919FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0133, quality 0.603)market_value_eur=17200000
quality_factor=0.6027
boost_factor=1.0133
reference_quality=0.505
history_matches=6
history_shrink=0.4545
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0118)blend_weight=0.0118
history_matches=6
season_overlap_discount=1.0
per90_to_match_factor=0.7172
prior_reliability=0.04
competition=Premier League
totalCross: 1.9996 -> 2.0607
wasFouled: 0.6853 -> 0.7055
totalShots: 1.4335 -> 1.4166
fouls: 1.1834 -> 1.1977
onTargetScoringAttempt: 0.4607 -> 0.4553
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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.18, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 0.9283, 'skill_edge': -0.0208, 'height_edge': -0.028, 'attacker_skill': 0.6027, '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.1769}
totalShots: 1.4281 -> 1.3258
shotOffTarget: 0.9728 -> 0.9031
onTargetScoringAttempt: 0.4553 -> 0.4227
expectedGoals: 0.1906 -> 0.1769
goals: 0.1487 -> 0.138
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.20 (squad xG sum 1.0809, xG scale 1.1111, xA scale 1.1940, team xA 0.78 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.201
squad_xg_sum=1.0809
squad_xa_sum=0.6538
team_expected_assists=0.7807
team_xa_to_xg_ratio=0.65
expected_goals: 0.1769 -> 0.1966
expected_assists: 0.0627 -> 0.0749
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 75.0)match_squad_rank=11
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1785
goal_rate=0.138
scorer_weight=0.1629
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0722
assist_rate=0.0
provider_weight=0.0599
-
Jack RudoniM7900.210.17ok20.96.947.715XGBoost 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.0170, quality 0.641)market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.017
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': 'David Affengruber', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.46, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.971, 'skill_edge': -0.0197, 'height_edge': 0.0, 'attacker_skill': 0.6408, '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.1918}
aerialWon: 1.1146 -> 1.2
totalShots: 1.751 -> 1.7002
shotOffTarget: 1.1036 -> 1.0716
onTargetScoringAttempt: 0.6473 -> 0.6285
expectedGoalsOnTarget: 0.4327 -> 0.4202
bigChanceMissed: 0.3665 -> 0.3559
goals: 0.2275 -> 0.2209
expectedGoals: 0.1975 -> 0.1918
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.20 (squad xG sum 1.0809, xG scale 1.1111, xA scale 1.1940, team xA 0.78 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.201
squad_xg_sum=1.0809
squad_xa_sum=0.6538
team_expected_assists=0.7807
team_xa_to_xg_ratio=0.65
expected_goals: 0.1918 -> 0.2131
expected_assists: 0.1483 -> 0.177
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: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1919
goal_rate=0.2209
scorer_weight=0.2387
-
integer_assist_projectionTeam scoreline allocation: 1 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.1622
assist_rate=0.1214
provider_weight=0.153
-
Brandon Thomas-AsanteF8200.150.03347%20.66.742.914FBref 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.0113, quality 0.595)market_value_eur=16500000
quality_factor=0.5953
boost_factor=1.0113
reference_quality=0.505
history_matches=7
history_shrink=0.4167
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0199)blend_weight=0.0199
history_matches=7
season_overlap_discount=1.0
per90_to_match_factor=0.9066
prior_reliability=0.0733
competition=Premier League
totalShots: 1.7295 -> 1.6952
totalCross: 0.694 -> 0.7129
interceptionWon: 2.6488 -> 2.6617
wasFouled: 3.1159 -> 3.1031
goalAssist: 0.5872 -> 0.5755
onTargetScoringAttempt: 0.4917 -> 0.4819
fouls: 0.3173 -> 0.311
totalOffside: 0.3173 -> 0.311
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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.18, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 0.9352, 'skill_edge': -0.0241, 'height_edge': -0.02, 'attacker_skill': 0.5953, '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.1336}
totalShots: 1.7197 -> 1.6083
shotOffTarget: 1.2378 -> 1.1576
onTargetScoringAttempt: 0.4819 -> 0.4507
goals: 0.1804 -> 0.1687
expectedGoals: 0.1429 -> 0.1336
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
assists: 1.0 -> 0
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.20 (squad xG sum 1.0809, xG scale 1.1111, xA scale 1.1940, team xA 0.78 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.201
squad_xg_sum=1.0809
squad_xa_sum=0.6538
team_expected_assists=0.7807
team_xa_to_xg_ratio=0.65
expected_goals: 0.1336 -> 0.1484
expected_assists: 0.031 -> 0.037
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 73.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.1379
goal_rate=0.1687
scorer_weight=0.1768
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0363
assist_rate=0.5755
provider_weight=0.0462
-
Matt GrimesM8700.030.01203%00.36.839.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.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.0361)blend_weight=0.0361
history_matches=7
season_overlap_discount=1.0
per90_to_match_factor=0.9718
prior_reliability=0.1333
competition=Premier League
totalCross: 2.3455 -> 2.4362
fouls: 0.9812 -> 0.9458
wonTackle: 0.7664 -> 0.7387
interceptionWon: 0.493 -> 0.4752
wasFouled: 0.5942 -> 0.6078
onTargetScoringAttempt: 0.1396 -> 0.1346
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Sander Berge', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.249, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 0.749, 'skill_edge': -0.1107, 'height_edge': -0.06, 'attacker_skill': 0.4759, 'defender_skill': 0.7219, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Sander Berge', 'market_value': 26000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.7219}], 'xg_override': 0.0257}
totalShots: 0.5749 -> 0.4306
shotOffTarget: 0.4386 -> 0.3285
aerialWon: 0.9206 -> 1.0
onTargetScoringAttempt: 0.1346 -> 0.1008
goals: 0.052 -> 0.0389
expectedGoals: 0.0343 -> 0.0257
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.20 (squad xG sum 1.0809, xG scale 1.1111, xA scale 1.1940, team xA 0.78 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.201
squad_xg_sum=1.0809
squad_xa_sum=0.6538
team_expected_assists=0.7807
team_xa_to_xg_ratio=0.65
expected_assists: 0.0625 -> 0.0746
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.0282
goal_rate=0.0389
scorer_weight=0.0336
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0719
assist_rate=0.0636
provider_weight=0.0753
-
Caleb YirenkyiM7600.040.001233%10.16.737.812FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0193, quality 0.660)market_value_eur=23000000
quality_factor=0.6595
boost_factor=1.0193
reference_quality=0.505
history_matches=7
history_shrink=0.4167
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0271)blend_weight=0.0271
history_matches=7
season_overlap_discount=1.0
per90_to_match_factor=0.8434
prior_reliability=0.1
competition=Premier League
interceptionWon: 1.0581 -> 1.0294
fouls: 2.2731 -> 2.2572
wonTackle: 0.4672 -> 0.4545
totalCross: 0.3674 -> 0.3727
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Sander Berge', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.356, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 0.9055, 'skill_edge': -0.0123, 'height_edge': -0.052, 'attacker_skill': 0.6946, 'defender_skill': 0.7219, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Sander Berge', 'market_value': 26000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.7219}], 'xg_override': 0.0344}
totalShots: 0.6114 -> 0.5536
shotOffTarget: 0.4683 -> 0.424
aerialWon: 1.082 -> 1.1
onTargetScoringAttempt: 0.14 -> 0.1268
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.20 (squad xG sum 1.0809, xG scale 1.1111, xA scale 1.1940, team xA 0.78 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.201
squad_xg_sum=1.0809
squad_xa_sum=0.6538
team_expected_assists=0.7807
team_xa_to_xg_ratio=0.65
expected_assists: 0.0385 -> 0.046
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 73.0)match_squad_rank=12
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0375
goal_rate=0.0386
scorer_weight=0.0401
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.0532
provider_weight=0.0536
-
Jay DaSilvaD9000.080.0540%00.36.645.315FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0045, quality 0.541)market_value_eur=11600000
quality_factor=0.5411
boost_factor=1.0045
reference_quality=0.505
history_matches=7
history_shrink=0.4167
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0361)blend_weight=0.0361
history_matches=7
season_overlap_discount=1.0
per90_to_match_factor=0.995
prior_reliability=0.1333
competition=Premier League
interceptionWon: 0.781 -> 0.7708
totalCross: 2.7522 -> 2.7426
onTargetScoringAttempt: 0.2587 -> 0.2673
fouls: 0.7021 -> 0.6947
goalAssist: 0.1885 -> 0.1817
goals: 0.1602 -> 0.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': 'Gonzalo García', 'matchup_zone': 'Shape fallback'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.20 (squad xG sum 1.0809, xG scale 1.1111, xA scale 1.1940, team xA 0.78 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.201
squad_xg_sum=1.0809
squad_xa_sum=0.6538
team_expected_assists=0.7807
team_xa_to_xg_ratio=0.65
expected_goals: 0.0692 -> 0.0769
expected_assists: 0.0826 -> 0.0986
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 16 by projected rating, fifa_overall 73.0)match_squad_rank=16
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.074
goal_rate=0.1544
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.0939
assist_rate=0.1817
provider_weight=0.1232
-
Ethan PinnockD8800.020.00303%00.16.715.132XGBoost 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=2800000
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=true
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Gonzalo García', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.20 (squad xG sum 1.0809, xG scale 1.1111, xA scale 1.1940, team xA 0.78 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.201
squad_xg_sum=1.0809
squad_xa_sum=0.6538
team_expected_assists=0.7807
team_xa_to_xg_ratio=0.65
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 75.0)match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.019
goal_rate=0.0
scorer_weight=0.0154
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0188
assist_rate=0.0
provider_weight=0.0152
-
Bobby ThomasD8900.090.0589%11.07.042.412FBref 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.0170, quality 0.641)market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.017
reference_quality=0.505
history_matches=7
history_shrink=0.4167
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0343)blend_weight=0.0343
history_matches=7
season_overlap_discount=1.0
per90_to_match_factor=0.9899
prior_reliability=0.1267
competition=Premier League
interceptionWon: 1.194 -> 1.153
wasFouled: 0.9388 -> 0.9781
fouls: 0.7937 -> 0.8201
totalCross: 0.0997 -> 0.1142
totalShots: 0.8295 -> 0.8194
wonTackle: 0.6963 -> 0.6903
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Gonzalo García', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.20 (squad xG sum 1.0809, xG scale 1.1111, xA scale 1.1940, team xA 0.78 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.201
squad_xg_sum=1.0809
squad_xa_sum=0.6538
team_expected_assists=0.7807
team_xa_to_xg_ratio=0.65
expected_goals: 0.0793 -> 0.0881
expected_assists: 0.052 -> 0.0621
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 74.0)match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0843
goal_rate=0.0
scorer_weight=0.0705
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0602
assist_rate=0.0
provider_weight=0.0497
-
Milan van EwijkD9000.00-n/a00.06.738.614FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0211, quality 0.660)market_value_eur=23000000
quality_factor=0.6595
boost_factor=1.0211
reference_quality=0.505
history_matches=6
history_shrink=0.4545
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0394)blend_weight=0.0394
history_matches=6
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League
wonTackle: 1.3396 -> 1.3065
wasFouled: 0.8102 -> 0.7783
interceptionWon: 1.155 -> 1.1292
totalCross: 0.9911 -> 1.0111
totalShots: 0.3802 -> 0.3652
fouls: 0.7293 -> 0.74
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Alex Iwobi', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.20 (squad xG sum 1.0809, xG scale 1.1111, xA scale 1.1940, team xA 0.78 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.201
squad_xg_sum=1.0809
squad_xa_sum=0.6538
team_expected_assists=0.7807
team_xa_to_xg_ratio=0.65
expected_assists: 0.0717 -> 0.0856
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 75.0)match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.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.082
assist_rate=0.0
provider_weight=0.0685
-
Carl RushworthG9000.00-n/a0.06.637.212FBref 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.0170, quality 0.641)market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.017
reference_quality=0.505
history_matches=7
history_shrink=0.4167
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0361)blend_weight=0.0361
history_matches=7
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League
saves: 3.1502 -> 3.0906
wasFouled: 0.1379 -> 0.1329
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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.342}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.20 (squad xG sum 1.0809, xG scale 1.1111, xA scale 1.1940, team xA 0.78 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.201
squad_xg_sum=1.0809
squad_xa_sum=0.6538
team_expected_assists=0.7807
team_xa_to_xg_ratio=0.65
shots_faced: 12.7 -> 12.3
expected_saves: 3.1 -> 3.01
high_pressure_saves: 1.07 -> 1.04
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 17 by projected rating, fifa_overall 76.0)match_squad_rank=17
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.2197
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0
provider_weight=0.0
squad_weight_total=0.7398
-
Team totals11.20106.8
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Daniel BentleyG4.4m10.9%Market-value substitute prior
Aurèle AmendaD14.2m22.9%Market-value substitute prior
Liam KitchingD14.1m32.5%Market-value substitute prior
Victor TorpM23.9m70.3%Market-value substitute prior
Josh EcclesM22.3m51.3%Market-value substitute prior
Sidiki CherifF26.1m59.5%Market-value substitute prior

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Antonee RobinsonD8600.060.0467%10.36.749.430FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0074, quality 0.669)market_value_eur=24000000
quality_factor=0.6685
boost_factor=1.0074
reference_quality=0.505
history_matches=28
history_shrink=0.1515
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0125)blend_weight=0.0125
history_matches=28
season_overlap_discount=1.0
per90_to_match_factor=0.9607
prior_reliability=0.1267
competition=Premier League
wonTackle: 1.5398 -> 1.5521
fouls: 0.8352 -> 0.8248
interceptionWon: 1.0843 -> 1.0771
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Taiwo Awoniyi', 'matchup_zone': 'Shape fallback'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.30 (squad xG sum 1.3718, xG scale 0.9454, xA scale 0.9454, team xA 0.89 = 0.69 x lambda)scoreline_reset=true
team_lambda=1.297
squad_xg_sum=1.3718
squad_xa_sum=0.9435
team_expected_assists=0.8921
team_xa_to_xg_ratio=0.6878
-
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.0601
goal_rate=0.0491
scorer_weight=0.0532
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0547
assist_rate=0.0
provider_weight=0.045
-
Calvin BasseyD9000.050.04ok10.47.152.528FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0073, quality 0.710)market_value_eur=29000000
quality_factor=0.71
boost_factor=1.0073
reference_quality=0.505
history_matches=37
history_shrink=0.119
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0103)blend_weight=0.0103
history_matches=37
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League
fouls: 1.2004 -> 1.1932
wonTackle: 1.0007 -> 0.9955
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Brandon Thomas-Asante', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.30 (squad xG sum 1.3718, xG scale 0.9454, xA scale 0.9454, team xA 0.89 = 0.69 x lambda)scoreline_reset=true
team_lambda=1.297
squad_xg_sum=1.3718
squad_xa_sum=0.9435
team_expected_assists=0.8921
team_xa_to_xg_ratio=0.6878
-
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.045
goal_rate=0.0066
scorer_weight=0.0368
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0164
assist_rate=0.0
provider_weight=0.0132
-
David AffengruberD8900.040.0348%10.57.055.933FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0033, quality 0.612)market_value_eur=18100000
quality_factor=0.612
boost_factor=1.0033
reference_quality=0.505
history_matches=43
history_shrink=0.1042
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0135)blend_weight=0.0135
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=0.988
prior_reliability=0.2
competition=La Liga
totalShots: 0.5543 -> 0.5691
fouls: 1.1488 -> 1.1377
wasFouled: 0.6829 -> 0.6915
interceptionWon: 1.1796 -> 1.1859
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Jack Rudoni', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.30 (squad xG sum 1.3718, xG scale 0.9454, xA scale 0.9454, team xA 0.89 = 0.69 x lambda)scoreline_reset=true
team_lambda=1.297
squad_xg_sum=1.3718
squad_xa_sum=0.9435
team_expected_assists=0.8921
team_xa_to_xg_ratio=0.6878
-
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.0389
goal_rate=0.0198
scorer_weight=0.0318
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0319
assist_rate=0.0181
provider_weight=0.0262
-
Timothy CastagneD8600.070.0539%10.46.849.132FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9996, quality 0.494)market_value_eur=7600000
quality_factor=0.4939
boost_factor=0.9996
reference_quality=0.505
history_matches=36
history_shrink=0.122
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0090)blend_weight=0.009
history_matches=36
season_overlap_discount=1.0
per90_to_match_factor=0.9557
prior_reliability=0.1133
competition=Premier League
fouls: 1.2111 -> 1.2255
wasFouled: 0.7704 -> 0.7837
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Brandon Thomas-Asante', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.30 (squad xG sum 1.3718, xG scale 0.9454, xA scale 0.9454, team xA 0.89 = 0.69 x lambda)scoreline_reset=true
team_lambda=1.297
squad_xg_sum=1.3718
squad_xa_sum=0.9435
team_expected_assists=0.8921
team_xa_to_xg_ratio=0.6878
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 75.0)match_squad_rank=11
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.07
goal_rate=0.0
scorer_weight=0.0581
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0785
assist_rate=0.0719
provider_weight=0.073
-
Bernd LenoG9000.00-n/a0.07.057.832FBref 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=45
history_shrink=0.1
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0087)blend_weight=0.0087
history_matches=45
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Taiwo Awoniyi, Jack Rudoni', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.1616}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.30 (squad xG sum 1.3718, xG scale 0.9454, xA scale 0.9454, team xA 0.89 = 0.69 x lambda)scoreline_reset=true
team_lambda=1.297
squad_xg_sum=1.3718
squad_xa_sum=0.9435
team_expected_assists=0.8921
team_xa_to_xg_ratio=0.6878
shots_faced: 11.0 -> 11.4
expected_saves: 2.69 -> 2.79
high_pressure_saves: 0.93 -> 0.96
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 79.0)match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.3663
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.758
-
Sander BergeM8400.080.04109%10.57.153.631FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.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.0078)blend_weight=0.0078
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.9333
prior_reliability=0.1133
competition=Premier League
wonTackle: 0.8444 -> 0.8378
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Matt Grimes', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.591, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.251, 'skill_edge': 0.1107, 'height_edge': 0.06, 'attacker_skill': 0.7219, 'defender_skill': 0.4759, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Matt Grimes', 'market_value': 5200000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4759}], 'xg_override': 0.0852}
aerialWon: 0.9697 -> 1.4
totalShots: 0.8742 -> 1.0936
shotOffTarget: 0.5689 -> 0.7117
onTargetScoringAttempt: 0.3053 -> 0.3819
goals: 0.0775 -> 0.097
expectedGoalsOnTarget: 0.0736 -> 0.0921
expectedGoals: 0.0681 -> 0.0852
bigChanceMissed: 0.0637 -> 0.0797
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.30 (squad xG sum 1.3718, xG scale 0.9454, xA scale 0.9454, team xA 0.89 = 0.69 x lambda)scoreline_reset=true
team_lambda=1.297
squad_xg_sum=1.3718
squad_xa_sum=0.9435
team_expected_assists=0.8921
team_xa_to_xg_ratio=0.6878
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 79.0)match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0774
goal_rate=0.097
scorer_weight=0.0876
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.07
assist_rate=0.0879
provider_weight=0.079
-
Shea CharlesM8500.050.01268%10.37.040.912FBref 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.0204, quality 0.669)market_value_eur=24000000
quality_factor=0.6685
boost_factor=1.0204
reference_quality=0.505
history_matches=7
history_shrink=0.4167
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0090)blend_weight=0.009
history_matches=7
season_overlap_discount=1.0
per90_to_match_factor=0.9404
prior_reliability=0.0333
competition=Premier League
totalShots: 0.5539 -> 0.5814
totalCross: 0.1988 -> 0.214
wonTackle: 0.8767 -> 0.8858
wasFouled: 0.782 -> 0.7749
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Matt Grimes', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.567, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.2156, 'skill_edge': 0.1027, 'height_edge': 0.044, 'attacker_skill': 0.704, 'defender_skill': 0.4759, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Matt Grimes', 'market_value': 5200000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4759}], 'xg_override': 0.0497}
aerialWon: 1.1519 -> 1.3
totalShots: 0.5814 -> 0.7067
shotOffTarget: 0.4257 -> 0.5175
onTargetScoringAttempt: 0.127 -> 0.1544
goals: 0.0429 -> 0.0521
expectedGoals: 0.0409 -> 0.0497
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.30 (squad xG sum 1.3718, xG scale 0.9454, xA scale 0.9454, team xA 0.89 = 0.69 x lambda)scoreline_reset=true
team_lambda=1.297
squad_xg_sum=1.3718
squad_xa_sum=0.9435
team_expected_assists=0.8921
team_xa_to_xg_ratio=0.6878
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 73.0)match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0459
goal_rate=0.0521
scorer_weight=0.0481
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0622
assist_rate=0.058
provider_weight=0.0588
-
Oscar BobbF7200.140.0961%20.66.948.238FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0081, quality 0.694)market_value_eur=27000000
quality_factor=0.6941
boost_factor=1.0081
reference_quality=0.505
history_matches=30
history_shrink=0.1429
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0093)blend_weight=0.0093
history_matches=30
season_overlap_discount=1.0
per90_to_match_factor=0.8046
prior_reliability=0.1
competition=Premier League
totalShots: 1.4798 -> 1.4661
fouls: 0.217 -> 0.2249
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Ethan Pinnock, Bobby Thomas', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.194, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 0.991, 'skill_edge': 0.0539, 'height_edge': -0.06, 'attacker_skill': 0.6941, 'defender_skill': 0.5744, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Ethan Pinnock', 'market_value': 2800000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4465}, {'player': 'Bobby Thomas', 'market_value': 21000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7022}], 'xg_override': 0.1524}
totalShots: 1.4749 -> 1.4617
shotOffTarget: 0.9472 -> 0.9387
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.30 (squad xG sum 1.3718, xG scale 0.9454, xA scale 0.9454, team xA 0.89 = 0.69 x lambda)scoreline_reset=true
team_lambda=1.297
squad_xg_sum=1.3718
squad_xa_sum=0.9435
team_expected_assists=0.8921
team_xa_to_xg_ratio=0.6878
expected_goals: 0.1524 -> 0.1441
expected_assists: 0.1192 -> 0.1127
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 76.0)match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1342
goal_rate=0.1927
scorer_weight=0.1728
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1066
assist_rate=0.01
provider_weight=0.0902
-
Josh KingM7700.180.1175%20.97.049.829XGBoost 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.0096, quality 0.786)market_value_eur=41000000
quality_factor=0.7859
boost_factor=1.0096
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': 'Matt Grimes, Caleb Yirenkyi', 'matchup_zone': 'Attacking Mid vs Double Pivot — Tight Space Battle', 'duel_win_rate': 0.303, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.0926, 'skill_edge': 0.095, 'height_edge': -0.032, 'attacker_skill': 0.7964, 'defender_skill': 0.5852, 'attacker_role': 'CAM', 'attacker_mv_price_index': 0.95, 'defender_adjusted_parts': [{'player': 'Matt Grimes', 'market_value': 5200000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4759}, {'player': 'Caleb Yirenkyi', 'market_value': 23000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.6946}], 'xg_override': 0.1949}
aerialWon: 0.1325 -> 0.8
totalShots: 2.0206 -> 2.2077
shotOffTarget: 1.1587 -> 1.266
onTargetScoringAttempt: 0.8619 -> 0.9417
bigChanceMissed: 0.3849 -> 0.4205
expectedGoalsOnTarget: 0.2268 -> 0.2478
goals: 0.2167 -> 0.2368
expectedGoals: 0.1784 -> 0.1949
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.30 (squad xG sum 1.3718, xG scale 0.9454, xA scale 0.9454, team xA 0.89 = 0.69 x lambda)scoreline_reset=true
team_lambda=1.297
squad_xg_sum=1.3718
squad_xa_sum=0.9435
team_expected_assists=0.8921
team_xa_to_xg_ratio=0.6878
expected_goals: 0.1949 -> 0.1843
expected_assists: 0.141 -> 0.1333
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 78.0)match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1683
goal_rate=0.2368
scorer_weight=0.2158
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1248
assist_rate=0.1028
provider_weight=0.1066
-
Gonzalo GarcíaF8210.340.2442%21.16.749.832FBref 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.758)market_value_eur=36000000
quality_factor=0.7581
boost_factor=1.009
reference_quality=0.505
history_matches=37
history_shrink=0.119
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0103)blend_weight=0.0103
history_matches=37
season_overlap_discount=1.0
per90_to_match_factor=0.9136
prior_reliability=0.1333
competition=Premier League
fouls: 1.0137 -> 1.0221
totalShots: 2.093 -> 2.0997
wasFouled: 0.3708 -> 0.3764
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Ethan Pinnock, Bobby Thomas', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.251, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.0745, 'skill_edge': 0.0827, 'height_edge': -0.032, 'attacker_skill': 0.7581, 'defender_skill': 0.5744, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Ethan Pinnock', 'market_value': 2800000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4465}, {'player': 'Bobby Thomas', 'market_value': 21000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7022}], 'xg_override': 0.3547}
totalShots: 2.0997 -> 2.2561
shotOffTarget: 1.1943 -> 1.2833
onTargetScoringAttempt: 0.8941 -> 0.9607
bigChanceMissed: 0.8251 -> 0.8866
expectedGoals: 0.3301 -> 0.3547
goals: 0.3038 -> 0.3264
expectedGoalsOnTarget: 0.1851 -> 0.1989
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.30 (squad xG sum 1.3718, xG scale 0.9454, xA scale 0.9454, team xA 0.89 = 0.69 x lambda)scoreline_reset=true
team_lambda=1.297
squad_xg_sum=1.3718
squad_xa_sum=0.9435
team_expected_assists=0.8921
team_xa_to_xg_ratio=0.6878
expected_goals: 0.3547 -> 0.3354
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 78.0)match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.2849
goal_rate=0.3264
scorer_weight=0.312
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.0
provider_weight=0.0548
-
Alex IwobiM8300.150.06136%21.17.451.735FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0050, quality 0.641)market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.005
reference_quality=0.505
history_matches=36
history_shrink=0.122
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0106)blend_weight=0.0106
history_matches=36
season_overlap_discount=1.0
per90_to_match_factor=0.924
prior_reliability=0.1333
competition=Premier League
totalCross: 4.3923 -> 4.3703
totalShots: 2.0182 -> 2.0018
interceptionWon: 0.3538 -> 0.3647
onTargetScoringAttempt: 0.67 -> 0.6629
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Milan van Ewijk', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.468, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 0.9828, 'skill_edge': -0.0437, 'height_edge': 0.032, 'attacker_skill': 0.6408, 'defender_skill': 0.7379, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Milan van Ewijk', 'market_value': 23000000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.7379}], 'xg_override': 0.1571}
aerialWon: 0.0833 -> 1.1
totalShots: 2.0111 -> 1.9765
shotOffTarget: 1.3482 -> 1.325
onTargetScoringAttempt: 0.6629 -> 0.6515
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.30 (squad xG sum 1.3718, xG scale 0.9454, xA scale 0.9454, team xA 0.89 = 0.69 x lambda)scoreline_reset=true
team_lambda=1.297
squad_xg_sum=1.3718
squad_xa_sum=0.9435
team_expected_assists=0.8921
team_xa_to_xg_ratio=0.6878
expected_goals: 0.1571 -> 0.1485
expected_assists: 0.2215 -> 0.2094
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.138
goal_rate=0.211
scorer_weight=0.1856
-
integer_assist_projectionTeam scoreline allocation: 1 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.1889
assist_rate=0.1322
provider_weight=0.1675
-
Team totals11.30167.0
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Benjamin LecomteG4.4m10.9%Market-value substitute prior
Joachim AndersenD14.4m23.3%Market-value substitute prior
Ryan SessegnonD18.0m61.8%Market-value substitute prior
Hugo LarssonM23.1m54.9%Market-value substitute prior
Emile Smith RoweM18.4m70.6%Market-value substitute prior
KevinF19.0m73.9%Market-value substitute prior
Antagonist / tactical summary
Midfield is evenly contested — Caleb Yirenkyi vs Josh King will be the pivotal duel. Total antagonist xG — Home: 0.83, Away: 0.99. 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.45, key duel: Caleb Yirenkyi vs Josh King
Jack Rudoni xG 0.19Brandon Thomas-Asante xG 0.13Taiwo Awoniyi xG 0.27Alex Iwobi xG 0.16Josh King xG 0.19Gonzalo García xG 0.35

Summary

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

Aston Villa vs Man City

Premier League · 20261024 · 4-2-3-1 vs 4-2-3-1
Predicted 0-2Winner: Man CityWinning H 2-1 (3.1%)Winning A 0-2 (10.3%)Confidence 0.8λ home/away 0.89 / 2.62Most-likely P 10.3%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset Tracing
Antagonist + XGBoost match analysis for Aston Villa vs Man City. 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.031, Away 2.271). Final calibrated Poisson lambdas: Home 0.890, Away 2.619 (most likely score 0-2).
Home Starters 11/11 XGBoost (9 FBref) Away Starters 11/11 XGBoost (10 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.03 / 2.27 Final λ (H/A) 0.89 / 2.62
Modeling Pipeline Stages (5 layers)
  1. 1. XGBoost player regressions for volume & event rates with market-value quality scaling
  2. 2. Multi-source prior blending (FBref 2026-2027 tables + Sofascore season history)
  3. 3. Antagonist formation duel matrix resolving 1v1 and zonal matchups
  4. 4. Team-level prior calibration (FBref possession and attack/defense efficiencies)
  5. 5. Bivariate Poisson matrix with Dixon-Coles low-score correction

Standing & form context

MetricAston VillaMan City
League position12.001.00
Points per game1.242.24
Attack index0.941.25
Defense (concede) index0.841.09
Form multiplier0.951.05
Standing λ multiplier0.901.14

Lambda decomposition (how the goal rates were built)

StageAston Villa λMan City λ
Pre-mismatch0.9932.516
Pre-calibration (Micro-duels)1.0312.271
Final λ0.8902.619
competition calibration scale 1.0competition observed total goals 0.0quality gap applied Truemismatch score pressure applied Truecompetitive underdog floor applied Falsestage discount 1.0

Scoreline distribution & markets

Top 5 scorelinesP
0-210.3%
1-29.1%
0-39.0%
1-38.0%
0-17.8%
Home win10.4%
Draw15.3%
Away win74.3%
Over 2.568.1%
BTTS yes54.7%
Pregame fair line — favorite Man City (74.3%), fair total 3.51, fair spread -1.73

Projected players vs season baseline

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

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Victor LindelöfD8700.030.0243%00.16.835.830FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9977, quality 0.460)market_value_eur=4800000
quality_factor=0.4597
boost_factor=0.9977
reference_quality=0.505
history_matches=24
history_shrink=0.1724
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0149)blend_weight=0.0149
history_matches=24
season_overlap_discount=1.0
per90_to_match_factor=0.966
prior_reliability=0.1333
competition=Premier League
interceptionWon: 0.7915 -> 0.7797
wonTackle: 0.5485 -> 0.5403
totalShots: 0.366 -> 0.3605
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Iliman Ndiaye', 'matchup_zone': 'Shape fallback'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 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.89 (squad xG sum 1.2961, xG scale 0.6867, xA scale 0.7646, team xA 0.58 = 0.65 x lambda)scoreline_reset=true
team_lambda=0.89
squad_xg_sum=1.2961
squad_xa_sum=0.7566
team_expected_assists=0.5785
team_xa_to_xg_ratio=0.65
expected_goals: 0.0497 -> 0.0341
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.0335
goal_rate=0.0
scorer_weight=0.0273
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0127
assist_rate=0.0099
provider_weight=0.0115
-
Matty CashD8700.020.03ok00.66.755.328FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0040, quality 0.629)market_value_eur=19800000
quality_factor=0.6291
boost_factor=1.004
reference_quality=0.505
history_matches=41
history_shrink=0.1087
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0090)blend_weight=0.009
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=0.9653
prior_reliability=0.1267
competition=Premier League
totalCross: 2.4923 -> 2.47
wonTackle: 1.2279 -> 1.2396
wasFouled: 1.0426 -> 1.0515
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 0.89 (squad xG sum 1.2961, xG scale 0.6867, xA scale 0.7646, team xA 0.58 = 0.65 x lambda)scoreline_reset=true
team_lambda=0.89
squad_xg_sum=1.2961
squad_xa_sum=0.7566
team_expected_assists=0.5785
team_xa_to_xg_ratio=0.65
expected_goals: 0.0328 -> 0.0225
expected_assists: 0.0384 -> 0.0294
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.0222
goal_rate=0.0054
scorer_weight=0.018
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.029
assist_rate=0.0563
provider_weight=0.0354
-
Zion SuzukiG9000.00-n/a0.07.034.612FBref 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.0300, quality 0.725)market_value_eur=31000000
quality_factor=0.7249
boost_factor=1.03
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=1.0
prior_reliability=0.0667
competition=Premier League
saves: 2.9816 -> 2.9425
wasFouled: 0.7407 -> 0.7261
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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, Phil Foden', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 2.271}
-
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.89 (squad xG sum 1.2961, xG scale 0.6867, xA scale 0.7646, team xA 0.58 = 0.65 x lambda)scoreline_reset=true
team_lambda=0.89
squad_xg_sum=1.2961
squad_xa_sum=0.7566
team_expected_assists=0.5785
team_xa_to_xg_ratio=0.65
shots_faced: 21.6 -> 24.9
expected_saves: 5.29 -> 6.1
high_pressure_saves: 1.82 -> 2.1
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 76.0)match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=0.9371
-
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.5267
-
Tyrone MingsD8900.040.05ok10.46.839.327FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9965, quality 0.440)market_value_eur=3200000
quality_factor=0.4399
boost_factor=0.9965
reference_quality=0.505
history_matches=23
history_shrink=0.1786
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0015)blend_weight=0.0015
history_matches=23
season_overlap_discount=1.0
per90_to_match_factor=0.9889
prior_reliability=0.0133
competition=Premier League
wonTackle: 0.5724 -> 0.5791
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 0.89 (squad xG sum 1.2961, xG scale 0.6867, xA scale 0.7646, team xA 0.58 = 0.65 x lambda)scoreline_reset=true
team_lambda=0.89
squad_xg_sum=1.2961
squad_xa_sum=0.7566
team_expected_assists=0.5785
team_xa_to_xg_ratio=0.65
expected_goals: 0.0565 -> 0.0388
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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0381
goal_rate=0.0
scorer_weight=0.031
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0128
assist_rate=0.0
provider_weight=0.0103
-
Ian MaatsenD8300.040.04ok10.66.748.928FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0090, quality 0.739)market_value_eur=33000000
quality_factor=0.7389
boost_factor=1.009
reference_quality=0.505
history_matches=34
history_shrink=0.1282
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0106)blend_weight=0.0106
history_matches=34
season_overlap_discount=1.0
per90_to_match_factor=0.9273
prior_reliability=0.1267
competition=Premier League
totalCross: 2.0573 -> 2.0407
fouls: 0.9954 -> 1.0107
wonTackle: 1.3705 -> 1.3612
totalShots: 0.6853 -> 0.6935
interceptionWon: 1.227 -> 1.2347
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Phil Foden', '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.89 (squad xG sum 1.2961, xG scale 0.6867, xA scale 0.7646, team xA 0.58 = 0.65 x lambda)scoreline_reset=true
team_lambda=0.89
squad_xg_sum=1.2961
squad_xa_sum=0.7566
team_expected_assists=0.5785
team_xa_to_xg_ratio=0.65
expected_goals: 0.0536 -> 0.0368
expected_assists: 0.1208 -> 0.0924
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 15 by projected rating, fifa_overall 79.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.0361
goal_rate=0.0
scorer_weight=0.0294
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0883
assist_rate=0.0496
provider_weight=0.0739
-
Boubacar KamaraM8800.030.01171%10.27.045.414FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0158, quality 0.821)market_value_eur=49000000
quality_factor=0.8206
boost_factor=1.0158
reference_quality=0.505
history_matches=25
history_shrink=0.1667
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0144)blend_weight=0.0144
history_matches=25
season_overlap_discount=1.0
per90_to_match_factor=0.9738
prior_reliability=0.1333
competition=Premier League
wasFouled: 2.3863 -> 2.3589
fouls: 1.6548 -> 1.6661
totalShots: 0.6447 -> 0.6354
wonTackle: 1.4994 -> 1.4918
interceptionWon: 0.8465 -> 0.8413
totalCross: 0.1376 -> 0.1426
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Ayyoub Bouaddi', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.394, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9611, 'skill_edge': -0.0225, 'height_edge': -0.004, 'attacker_skill': 0.847, 'defender_skill': 0.8969, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Ayyoub Bouaddi', 'market_value': 98000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8969}], 'xg_override': 0.0447}
aerialWon: 1.5099 -> 1.1
totalShots: 0.6421 -> 0.6171
shotOffTarget: 0.4673 -> 0.4491
onTargetScoringAttempt: 0.1748 -> 0.168
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.89 (squad xG sum 1.2961, xG scale 0.6867, xA scale 0.7646, team xA 0.58 = 0.65 x lambda)scoreline_reset=true
team_lambda=0.89
squad_xg_sum=1.2961
squad_xa_sum=0.7566
team_expected_assists=0.5785
team_xa_to_xg_ratio=0.65
expected_goals: 0.0447 -> 0.0307
expected_assists: 0.0454 -> 0.0347
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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0302
goal_rate=0.0437
scorer_weight=0.0304
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0341
assist_rate=0.0641
provider_weight=0.0415
-
João GomesM8200.020.02ok00.46.853.027FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.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.0020)blend_weight=0.002
history_matches=39
season_overlap_discount=1.0
per90_to_match_factor=0.9066
prior_reliability=0.0267
competition=Premier League
wonTackle: 1.9402 -> 1.9453
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Ayyoub Bouaddi', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.337, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.8781, 'skill_edge': -0.0469, 'height_edge': -0.036, 'attacker_skill': 0.7926, 'defender_skill': 0.8969, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Ayyoub Bouaddi', 'market_value': 98000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8969}], 'xg_override': 0.0324}
aerialWon: 0.6518 -> 0.9
totalShots: 0.5675 -> 0.4984
shotOffTarget: 0.3859 -> 0.3389
onTargetScoringAttempt: 0.1816 -> 0.1595
expectedGoalsOnTarget: 0.0479 -> 0.0421
goals: 0.0452 -> 0.0397
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.89 (squad xG sum 1.2961, xG scale 0.6867, xA scale 0.7646, team xA 0.58 = 0.65 x lambda)scoreline_reset=true
team_lambda=0.89
squad_xg_sum=1.2961
squad_xa_sum=0.7566
team_expected_assists=0.5785
team_xa_to_xg_ratio=0.65
expected_goals: 0.0324 -> 0.0222
expected_assists: 0.0585 -> 0.0447
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 78.0)match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.022
goal_rate=0.0397
scorer_weight=0.0242
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0437
assist_rate=0.0794
provider_weight=0.0533
-
Nicolas JacksonF8000.260.1577%31.57.138.911FBref 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.0403, quality 0.800)market_value_eur=44000000
quality_factor=0.8002
boost_factor=1.0403
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.8917
prior_reliability=0.0533
competition=Premier League
totalShots: 2.7605 -> 2.717
onTargetScoringAttempt: 1.1641 -> 1.1458
totalCross: 0.423 -> 0.4339
wasFouled: 0.5247 -> 0.5164
totalOffside: 0.4928 -> 0.485
goals: 0.4875 -> 0.4798
fouls: 0.3349 -> 0.3296
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Joško Gvardiol, Rúben Dias', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.9397, 'skill_edge': -0.037, 'height_edge': -0.004, 'attacker_skill': 0.8002, 'defender_skill': 0.8826, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Joško Gvardiol', 'market_value': 69000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.89}, {'player': 'Rúben Dias', 'market_value': 55000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8751}], 'xg_override': 0.3779}
totalShots: 2.7421 -> 2.5768
shotOffTarget: 1.5963 -> 1.5
onTargetScoringAttempt: 1.1458 -> 1.0767
goals: 0.4798 -> 0.4509
bigChanceMissed: 0.4315 -> 0.4055
expectedGoals: 0.4021 -> 0.3779
expectedGoalsOnTarget: 0.3297 -> 0.3098
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.89 (squad xG sum 1.2961, xG scale 0.6867, xA scale 0.7646, team xA 0.58 = 0.65 x lambda)scoreline_reset=true
team_lambda=0.89
squad_xg_sum=1.2961
squad_xa_sum=0.7566
team_expected_assists=0.5785
team_xa_to_xg_ratio=0.65
expected_goals: 0.3779 -> 0.2597
expected_assists: 0.1112 -> 0.085
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 79.0)match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.2287
goal_rate=0.4509
scorer_weight=0.304
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0815
assist_rate=0.0
provider_weight=0.068
-
Ibrahim MbayeF8000.110.03226%20.56.927.310XGBoost 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.0342, quality 0.710)market_value_eur=29000000
quality_factor=0.71
boost_factor=1.0342
reference_quality=0.505
history_matches=4
history_shrink=0.5556
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Joško Gvardiol, Rúben Dias', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.8153, 'skill_edge': -0.0777, 'height_edge': -0.048, 'attacker_skill': 0.71, 'defender_skill': 0.8826, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Joško Gvardiol', 'market_value': 69000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.89}, {'player': 'Rúben Dias', 'market_value': 55000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8751}], 'xg_override': 0.1624}
totalShots: 1.705 -> 1.3901
onTargetScoringAttempt: 0.9265 -> 0.7554
shotOffTarget: 0.7784 -> 0.6346
bigChanceMissed: 0.3245 -> 0.2646
goals: 0.2362 -> 0.1926
expectedGoals: 0.1992 -> 0.1624
expectedGoalsOnTarget: 0.0852 -> 0.0695
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.89 (squad xG sum 1.2961, xG scale 0.6867, xA scale 0.7646, team xA 0.58 = 0.65 x lambda)scoreline_reset=true
team_lambda=0.89
squad_xg_sum=1.2961
squad_xa_sum=0.7566
team_expected_assists=0.5785
team_xa_to_xg_ratio=0.65
expected_goals: 0.1624 -> 0.1115
expected_assists: 0.0807 -> 0.0617
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 76.0)match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.1055
goal_rate=0.1926
scorer_weight=0.1274
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0598
assist_rate=0.0
provider_weight=0.0494
-
Emiliano BuendíaF7600.100.11ok11.36.949.842XGBoost 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.0022, quality 0.575)market_value_eur=14600000
quality_factor=0.5748
boost_factor=1.0022
reference_quality=0.505
history_matches=43
history_shrink=0.1042
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Joško Gvardiol, Rúben Dias', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.7082, 'skill_edge': -0.1385, 'height_edge': -0.06, 'attacker_skill': 0.5748, 'defender_skill': 0.8826, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Joško Gvardiol', 'market_value': 69000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.89}, {'player': 'Rúben Dias', 'market_value': 55000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8751}], 'xg_override': 0.1423}
totalShots: 1.8899 -> 1.3385
shotOffTarget: 1.2554 -> 0.8891
onTargetScoringAttempt: 0.6345 -> 0.4494
bigChanceMissed: 0.2251 -> 0.1594
goals: 0.2081 -> 0.1474
expectedGoals: 0.2009 -> 0.1423
expectedGoalsOnTarget: 0.0753 -> 0.0533
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.89 (squad xG sum 1.2961, xG scale 0.6867, xA scale 0.7646, team xA 0.58 = 0.65 x lambda)scoreline_reset=true
team_lambda=0.89
squad_xg_sum=1.2961
squad_xa_sum=0.7566
team_expected_assists=0.5785
team_xa_to_xg_ratio=0.65
expected_goals: 0.1423 -> 0.0977
expected_assists: 0.1032 -> 0.0789
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.0931
goal_rate=0.1474
scorer_weight=0.1003
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0759
assist_rate=0.0026
provider_weight=0.0631
-
AlyssonF6800.100.011549%10.16.731.519FBref 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.0093, quality 0.592)market_value_eur=16200000
quality_factor=0.5921
boost_factor=1.0093
reference_quality=0.505
history_matches=9
history_shrink=0.3571
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0046)blend_weight=0.0046
history_matches=9
season_overlap_discount=1.0
per90_to_match_factor=0.7592
prior_reliability=0.02
competition=Premier League
wonTackle: 0.5844 -> 0.6052
totalShots: 1.3581 -> 1.3518
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Joško Gvardiol, Rúben Dias', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.7902, 'skill_edge': -0.1307, 'height_edge': -0.012, 'attacker_skill': 0.5921, 'defender_skill': 0.8826, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Joško Gvardiol', 'market_value': 69000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.89}, {'player': 'Rúben Dias', 'market_value': 55000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8751}], 'xg_override': 0.1388}
totalShots: 1.356 -> 1.0715
shotOffTarget: 0.9052 -> 0.7153
onTargetScoringAttempt: 0.4508 -> 0.3562
expectedGoals: 0.1757 -> 0.1388
goals: 0.1395 -> 0.1102
expectedGoalsOnTarget: 0.0285 -> 0.0225
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.89 (squad xG sum 1.2961, xG scale 0.6867, xA scale 0.7646, team xA 0.58 = 0.65 x lambda)scoreline_reset=true
team_lambda=0.89
squad_xg_sum=1.2961
squad_xa_sum=0.7566
team_expected_assists=0.5785
team_xa_to_xg_ratio=0.65
expected_goals: 0.1388 -> 0.0953
expected_assists: 0.0591 -> 0.0452
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.0909
goal_rate=0.1102
scorer_weight=0.0809
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0442
assist_rate=0.0
provider_weight=0.0362
-
Team totals00.89146.9
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Marco BizotG4.4m13.1%Market-value substitute prior
Matteo RuggeriD11.5m62.3%Market-value substitute prior
Taylor Harwood-BellisD14.6m34.5%Market-value substitute prior
Johan ManzambiM23.7m57.7%Market-value substitute prior
Amadou OnanaM23.4m56.1%Market-value substitute prior
Alejandro GarnachoF16.8m73.9%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
Erling HaalandF8820.990.5098%42.87.757.630FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0126, quality 0.900)market_value_eur=240000000
quality_factor=0.9
boost_factor=1.0126
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.9746
prior_reliability=0.1333
competition=Premier League
totalShots: 3.1105 -> 3.1267
onTargetScoringAttempt: 1.3899 -> 1.3995
fouls: 0.9053 -> 0.897
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Matty Cash, Tyrone Mings', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.368, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.2469, 'skill_edge': 0.148, 'height_edge': 0.02, 'attacker_skill': 0.9, 'defender_skill': 0.5712, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Matty Cash', 'market_value': 19800000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6892}, {'player': 'Tyrone Mings', 'market_value': 3200000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4531}], 'xg_override': 0.6708}
totalShots: 3.1267 -> 3.8987
shotOffTarget: 1.7206 -> 2.1454
onTargetScoringAttempt: 1.3995 -> 1.745
goals: 0.8726 -> 1.088
expectedGoalsOnTarget: 0.8287 -> 1.0333
bigChanceMissed: 0.7667 -> 0.956
expectedGoals: 0.538 -> 0.6708
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
goals: 1.0 -> 0
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.62 (squad xG sum 1.7834, xG scale 1.4686, xA scale 1.4686, team xA 1.82 = 0.69 x lambda)scoreline_reset=true
team_lambda=2.619
squad_xg_sum=1.7834
squad_xa_sum=1.2382
team_expected_assists=1.8184
team_xa_to_xg_ratio=0.6943
expected_goals: 0.6708 -> 0.9851
expected_assists: 0.0667 -> 0.098
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.6266
goal_rate=1.088
scorer_weight=1.2314
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0934
assist_rate=0.0792
provider_weight=0.1085
-
Jérémy DokuF8200.290.06399%31.07.446.329XGBoost 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.0144, quality 0.871)market_value_eur=70000000
quality_factor=0.8707
boost_factor=1.0144
reference_quality=0.505
history_matches=33
history_shrink=0.1316
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Matty Cash, Tyrone Mings', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.275, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.1099, 'skill_edge': 0.1348, 'height_edge': -0.06, 'attacker_skill': 0.8707, 'defender_skill': 0.5712, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Matty Cash', 'market_value': 19800000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6892}, {'player': 'Tyrone Mings', 'market_value': 3200000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4531}], 'xg_override': 0.1981}
totalShots: 2.5036 -> 2.7787
shotOffTarget: 1.5456 -> 1.7155
onTargetScoringAttempt: 0.9579 -> 1.0632
expectedGoalsOnTarget: 0.3733 -> 0.4143
goals: 0.3209 -> 0.3562
expectedGoals: 0.1785 -> 0.1981
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.62 (squad xG sum 1.7834, xG scale 1.4686, xA scale 1.4686, team xA 1.82 = 0.69 x lambda)scoreline_reset=true
team_lambda=2.619
squad_xg_sum=1.7834
squad_xa_sum=1.2382
team_expected_assists=1.8184
team_xa_to_xg_ratio=0.6943
expected_goals: 0.1981 -> 0.2909
expected_assists: 0.2283 -> 0.3351
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 84.0)match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.2524
goal_rate=0.3562
scorer_weight=0.3636
-
integer_assist_projectionTeam scoreline allocation: 1 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.2847
assist_rate=0.3009
provider_weight=0.4189
-
Phil FodenM7400.310.13137%20.87.049.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.0123, quality 0.857)market_value_eur=62000000
quality_factor=0.8569
boost_factor=1.0123
reference_quality=0.505
history_matches=38
history_shrink=0.1163
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0096)blend_weight=0.0096
history_matches=38
season_overlap_discount=1.0
per90_to_match_factor=0.8271
prior_reliability=0.1267
competition=Premier League
totalCross: 3.7732 -> 3.7871
fouls: 0.5573 -> 0.5645
onTargetScoringAttempt: 0.6966 -> 0.6899
wasFouled: 1.048 -> 1.0546
goalAssist: 0.1941 -> 0.2006
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Ian Maatsen', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.472, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9875, 'skill_edge': 0.0195, 'height_edge': -0.028, 'attacker_skill': 0.8569, 'defender_skill': 0.8135, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Ian Maatsen', 'market_value': 33000000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.8135}], 'xg_override': 0.2078}
aerialWon: 0.5135 -> 0.8
totalShots: 1.7276 -> 1.706
shotOffTarget: 1.0267 -> 1.0139
onTargetScoringAttempt: 0.6899 -> 0.6813
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.62 (squad xG sum 1.7834, xG scale 1.4686, xA scale 1.4686, team xA 1.82 = 0.69 x lambda)scoreline_reset=true
team_lambda=2.619
squad_xg_sum=1.7834
squad_xa_sum=1.2382
team_expected_assists=1.8184
team_xa_to_xg_ratio=0.6943
expected_goals: 0.2078 -> 0.3052
expected_assists: 0.1972 -> 0.2896
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.263
goal_rate=0.2236
scorer_weight=0.3239
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.2514
assist_rate=0.2006
provider_weight=0.2936
-
Ayyoub BouaddiM8700.060.002862%10.17.025.111FBref 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.0646, quality 0.893)market_value_eur=98000000
quality_factor=0.8926
boost_factor=1.0646
reference_quality=0.505
history_matches=4
history_shrink=0.5556
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0024)blend_weight=0.0024
history_matches=4
season_overlap_discount=1.0
per90_to_match_factor=0.9703
prior_reliability=0.0067
competition=Premier League
interceptionWon: 0.5392 -> 0.5614
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Boubacar Kamara', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.446, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 1.0389, 'skill_edge': 0.0225, 'height_edge': 0.004, 'attacker_skill': 0.8969, 'defender_skill': 0.847, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Boubacar Kamara', 'market_value': 49000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.847}], 'xg_override': 0.0429}
aerialWon: 0.3341 -> 1.2
totalShots: 0.6167 -> 0.6407
shotOffTarget: 0.4703 -> 0.4886
onTargetScoringAttempt: 0.1464 -> 0.1521
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.62 (squad xG sum 1.7834, xG scale 1.4686, xA scale 1.4686, team xA 1.82 = 0.69 x lambda)scoreline_reset=true
team_lambda=2.619
squad_xg_sum=1.7834
squad_xa_sum=1.2382
team_expected_assists=1.8184
team_xa_to_xg_ratio=0.6943
expected_goals: 0.0429 -> 0.063
expected_assists: 0.0554 -> 0.0814
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 80.0)match_squad_rank=12
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0611
goal_rate=0.0691
scorer_weight=0.0788
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0782
assist_rate=0.0545
provider_weight=0.0807
-
Enzo FernándezM8600.200.18ok21.57.259.629FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0125, quality 0.897)market_value_eur=116000000
quality_factor=0.897
boost_factor=1.0125
reference_quality=0.505
history_matches=42
history_shrink=0.1064
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0014)blend_weight=0.0014
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.9531
prior_reliability=0.02
competition=Premier League
totalCross: 3.76 -> 3.7548
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Boubacar Kamara', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.415, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9932, 'skill_edge': 0.0234, 'height_edge': -0.028, 'attacker_skill': 0.8989, 'defender_skill': 0.847, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Boubacar Kamara', 'market_value': 49000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.847}], 'xg_override': 0.1341}
aerialWon: 0.9077 -> 1.0
totalShots: 1.5575 -> 1.5469
shotOffTarget: 0.9709 -> 0.9643
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.62 (squad xG sum 1.7834, xG scale 1.4686, xA scale 1.4686, team xA 1.82 = 0.69 x lambda)scoreline_reset=true
team_lambda=2.619
squad_xg_sum=1.7834
squad_xa_sum=1.2382
team_expected_assists=1.8184
team_xa_to_xg_ratio=0.6943
expected_goals: 0.1341 -> 0.1969
expected_assists: 0.192 -> 0.282
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 86.0)match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.1787
goal_rate=0.1869
scorer_weight=0.2461
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.2457
assist_rate=0.1246
provider_weight=0.2256
-
Joško GvardiolD8400.100.0734%10.56.846.017FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0182, quality 0.869)market_value_eur=69000000
quality_factor=0.8692
boost_factor=1.0182
reference_quality=0.505
history_matches=25
history_shrink=0.1667
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0130)blend_weight=0.013
history_matches=25
season_overlap_discount=1.0
per90_to_match_factor=0.9321
prior_reliability=0.12
competition=Premier League
wasFouled: 0.8217 -> 0.811
totalCross: 0.3339 -> 0.343
wonTackle: 0.9509 -> 0.9453
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Nicolas Jackson', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.62 (squad xG sum 1.7834, xG scale 1.4686, xA scale 1.4686, team xA 1.82 = 0.69 x lambda)scoreline_reset=true
team_lambda=2.619
squad_xg_sum=1.7834
squad_xa_sum=1.2382
team_expected_assists=1.8184
team_xa_to_xg_ratio=0.6943
expected_goals: 0.065 -> 0.0955
expected_assists: 0.1279 -> 0.1878
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 85.0)match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
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.0911
goal_rate=0.141
scorer_weight=0.1194
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1712
assist_rate=0.3181
provider_weight=0.2347
-
Marc GuéhiD9000.130.14ok10.87.262.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 1.0117, quality 0.872)market_value_eur=71000000
quality_factor=0.8721
boost_factor=1.0117
reference_quality=0.505
history_matches=42
history_shrink=0.1064
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0092)blend_weight=0.0092
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League
wonTackle: 0.63 -> 0.6426
interceptionWon: 0.8325 -> 0.8387
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Alysson', 'matchup_zone': 'Shape fallback'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.62 (squad xG sum 1.7834, xG scale 1.4686, xA scale 1.4686, team xA 1.82 = 0.69 x lambda)scoreline_reset=true
team_lambda=2.619
squad_xg_sum=1.7834
squad_xa_sum=1.2382
team_expected_assists=1.8184
team_xa_to_xg_ratio=0.6943
expected_goals: 0.09 -> 0.1322
expected_assists: 0.0587 -> 0.0862
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
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.1238
goal_rate=0.0818
scorer_weight=0.1245
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0826
assist_rate=0.1401
provider_weight=0.1077
-
Rúben DiasD8900.100.03266%10.37.144.424FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0132, quality 0.840)market_value_eur=55000000
quality_factor=0.8399
boost_factor=1.0132
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.984
prior_reliability=0.1333
competition=Premier League
fouls: 1.4058 -> 1.3898
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Nicolas Jackson', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.62 (squad xG sum 1.7834, xG scale 1.4686, xA scale 1.4686, team xA 1.82 = 0.69 x lambda)scoreline_reset=true
team_lambda=2.619
squad_xg_sum=1.7834
squad_xa_sum=1.2382
team_expected_assists=1.8184
team_xa_to_xg_ratio=0.6943
expected_goals: 0.0683 -> 0.1003
expected_assists: 0.0747 -> 0.1097
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 87.0)match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
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.0954
goal_rate=0.0157
scorer_weight=0.0802
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1039
assist_rate=0.0
provider_weight=0.0878
-
Abdukodir KhusanovD8800.040.0289%00.27.046.130FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0154, quality 0.813)market_value_eur=47000000
quality_factor=0.8129
boost_factor=1.0154
reference_quality=0.505
history_matches=25
history_shrink=0.1667
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0144)blend_weight=0.0144
history_matches=25
season_overlap_discount=1.0
per90_to_match_factor=0.9829
prior_reliability=0.1333
competition=Premier League
wonTackle: 0.9081 -> 0.9305
fouls: 0.8307 -> 0.8187
totalCross: 0.4608 -> 0.4683
totalShots: 0.4756 -> 0.4687
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Emiliano Buendía', 'matchup_zone': 'Shape fallback'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.62 (squad xG sum 1.7834, xG scale 1.4686, xA scale 1.4686, team xA 1.82 = 0.69 x lambda)scoreline_reset=true
team_lambda=2.619
squad_xg_sum=1.7834
squad_xa_sum=1.2382
team_expected_assists=1.8184
team_xa_to_xg_ratio=0.6943
expected_goals: 0.0291 -> 0.0427
expected_assists: 0.0437 -> 0.0642
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=0
goal_probability=0.0418
goal_rate=0.0
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.0622
assist_rate=0.0
provider_weight=0.0514
-
Gianluigi DonnarummaG9000.00-n/a0.07.060.031FBref Prior G_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost G_service raw output over 3 target models--
market_value_boostMarket-value quality scaling (boost 1.0099, quality 0.809)market_value_eur=46000000
quality_factor=0.8089
boost_factor=1.0099
reference_quality=0.505
history_matches=41
history_shrink=0.1087
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0094)blend_weight=0.0094
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League
saves: 2.8948 -> 2.8864
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Nicolas Jackson, Ibrahim Mbaye', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.031}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.62 (squad xG sum 1.7834, xG scale 1.4686, xA scale 1.4686, team xA 1.82 = 0.69 x lambda)scoreline_reset=true
team_lambda=2.619
squad_xg_sum=1.7834
squad_xa_sum=1.2382
team_expected_assists=1.8184
team_xa_to_xg_ratio=0.6943
shots_faced: 9.8 -> 8.5
expected_saves: 2.4 -> 2.08
high_pressure_saves: 0.82 -> 0.71
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 89.0)match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=3.0662
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.923
-
Iliman NdiayeF8300.300.13127%21.17.048.839FBref 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.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.0098)blend_weight=0.0098
history_matches=39
season_overlap_discount=1.0
per90_to_match_factor=0.9269
prior_reliability=0.1333
competition=Premier League
totalCross: 2.3712 -> 2.357
wasFouled: 1.367 -> 1.3581
wonTackle: 1.1595 -> 1.1526
onTargetScoringAttempt: 0.7401 -> 0.7465
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=true
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Matty Cash, Tyrone Mings', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.289, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.1315, 'skill_edge': 0.1295, 'height_edge': -0.04, 'attacker_skill': 0.8589, 'defender_skill': 0.5712, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Matty Cash', 'market_value': 19800000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6892}, {'player': 'Tyrone Mings', 'market_value': 3200000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4531}], 'xg_override': 0.2073}
totalShots: 1.7678 -> 2.0003
shotOffTarget: 1.0213 -> 1.1556
onTargetScoringAttempt: 0.7465 -> 0.8447
bigChanceMissed: 0.2446 -> 0.2768
goals: 0.2101 -> 0.2377
expectedGoals: 0.1832 -> 0.2073
expectedGoalsOnTarget: 0.1372 -> 0.1552
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.62 (squad xG sum 1.7834, xG scale 1.4686, xA scale 1.4686, team xA 1.82 = 0.69 x lambda)scoreline_reset=true
team_lambda=2.619
squad_xg_sum=1.7834
squad_xa_sum=1.2382
team_expected_assists=1.8184
team_xa_to_xg_ratio=0.6943
expected_goals: 0.2073 -> 0.3044
expected_assists: 0.131 -> 0.1924
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 82.0)match_squad_rank=11
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.2624
goal_rate=0.2377
scorer_weight=0.3404
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.175
assist_rate=0.2394
provider_weight=0.2405
-
Team totals22.62197.1
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Gerónimo RulliG4.5m11.5%Market-value substitute prior
Nico O'ReillyD15.3m25.3%Market-value substitute prior
Matheus NunesD25.5m63.3%Market-value substitute prior
Rayan CherkiM26.1m53.7%Market-value substitute prior
Elliot AndersonM23.8m34.4%Market-value substitute prior
Antoine SemenyoF27.1m37.0%Market-value substitute prior
Antagonist / tactical summary
Midfield is evenly contested — Boubacar Kamara vs Enzo Fernández will be the pivotal duel. Total antagonist xG — Home: 0.90, Away: 1.46. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Midfield — possession 49.5% / 50.5%, dominance ratio 0.46, key duel: Boubacar Kamara vs Enzo Fernández
Nicolas Jackson xG 0.38Ibrahim Mbaye xG 0.16Emiliano Buendía xG 0.14Phil Foden xG 0.21Erling Haaland xG 0.67Jérémy Doku xG 0.20

Summary

Antagonist matchup analysis for Aston Villa vs Man City. Most likely scoreline: 0-2. Lambdas derived from 6 home and 6 away individual player duels. Head-to-head: Aston Villa 4W-1D-5L vs Man City 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 — Boubacar Kamara vs Enzo Fernández will be the pivotal duel. Total antagonist xG — Home: 0.90, Away: 1.46. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.

Chelsea vs Tottenham

Premier League · 20261024 · 3-4-2-1 vs 4-2-3-1
Predicted 1-0Winner: ChelseaWinning H 1-0 (10.5%)Winning A 0-1 (6.1%)Confidence 0.75λ home/away 1.79 / 1.04Most-likely P 10.5%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset Tracing
Antagonist + XGBoost match analysis for Chelsea 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.727, Away 1.081). Final calibrated Poisson lambdas: Home 1.789, Away 1.042 (most likely score 1-0).
Home Starters 11/11 XGBoost (8 FBref) Away Starters 11/11 XGBoost (10 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.73 / 1.08 Final λ (H/A) 1.79 / 1.04
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

MetricChelseaTottenham
League position4.0016.00
Points per game1.631.09
Attack index1.320.81
Defense (concede) index0.941.17
Form multiplier1.030.97
Standing λ multiplier1.100.97

Lambda decomposition (how the goal rates were built)

StageChelsea λTottenham λ
Pre-competitive-floor1.7891.042
Pre-calibration (Micro-duels)1.7271.081
Final λ1.7891.042
competition calibration scale 1.0competition observed total goals 0.0quality gap applied Truemismatch score pressure applied Falsecompetitive underdog floor applied Falsestage discount 1.0

Scoreline distribution & markets

Top 5 scorelinesP
1-111.1%
1-010.5%
2-19.8%
2-09.4%
0-16.1%
Home win54.8%
Draw23.3%
Away win21.9%
Over 2.553.8%
BTTS yes54.0%
Pregame fair line — favorite Chelsea (54.8%), fair total 2.83, fair spread 0.75

Projected players vs season baseline

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

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
João PedroF8510.540.43ok32.17.060.027FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0126, quality 0.890)market_value_eur=92000000
quality_factor=0.89
boost_factor=1.0126
reference_quality=0.505
history_matches=41
history_shrink=0.1087
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0094)blend_weight=0.0094
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=0.9492
prior_reliability=0.1333
competition=Premier League
totalShots: 2.625 -> 2.6405
goalAssist: 0.2805 -> 0.2868
totalCross: 0.5376 -> 0.5325
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Conor Gallagher, Micky van de Ven', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle', 'duel_win_rate': 0.299, 'pressing_faced': 'HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 1.0427, 'skill_edge': 0.0351, 'height_edge': -0.006, 'attacker_skill': 0.89, 'defender_skill': 0.8121, 'attacker_role': 'SS', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Conor Gallagher', 'market_value': 31000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.761}, {'player': 'Micky van de Ven', 'market_value': 49000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8633}], 'xg_override': 0.4265}
totalShots: 2.6405 -> 2.7532
shotOffTarget: 1.6171 -> 1.6862
onTargetScoringAttempt: 1.0117 -> 1.0549
expectedGoalsOnTarget: 0.5532 -> 0.5768
goals: 0.4442 -> 0.4632
bigChanceMissed: 0.4122 -> 0.4298
expectedGoals: 0.409 -> 0.4265
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.79 (squad xG sum 1.4165, xG scale 1.2629, xA scale 1.3652, team xA 1.16 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.789
squad_xg_sum=1.4165
squad_xa_sum=0.8518
team_expected_assists=1.1628
team_xa_to_xg_ratio=0.65
expected_goals: 0.4265 -> 0.5385
expected_assists: 0.0664 -> 0.0906
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 83.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.4164
goal_rate=0.4632
scorer_weight=0.58
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0866
assist_rate=0.2868
provider_weight=0.1133
-
Cole PalmerM8800.300.31ok32.47.061.634FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0153, quality 0.894)market_value_eur=101000000
quality_factor=0.8936
boost_factor=1.0153
reference_quality=0.505
history_matches=33
history_shrink=0.1316
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0108)blend_weight=0.0108
history_matches=33
season_overlap_discount=1.0
per90_to_match_factor=0.9809
prior_reliability=0.1267
competition=Premier League
totalShots: 2.689 -> 2.7099
goals: 0.2541 -> 0.2625
onTargetScoringAttempt: 0.8536 -> 0.861
fouls: 0.9969 -> 0.9917
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Antonín Kinský', 'matchup_zone': 'Left Wingback vs Right Back — Overlapping Run', 'duel_win_rate': 0.468, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 1.0707, 'skill_edge': 0.0681, 'height_edge': -0.02, 'attacker_skill': 0.8993, 'defender_skill': 0.7479, 'attacker_role': 'LWB', 'attacker_mv_price_index': 0.7, 'defender_adjusted_parts': [{'player': 'Antonín Kinský', 'market_value': 18900000, 'role': 'GK', 'price_index': 0.55, 'adjusted_quality': 0.7479}], 'xg_override': 0.2365}
aerialWon: 0.068 -> 1.2
totalShots: 2.7099 -> 2.9015
shotOffTarget: 1.8354 -> 1.9652
onTargetScoringAttempt: 0.861 -> 0.9219
goals: 0.2625 -> 0.2811
expectedGoals: 0.2209 -> 0.2365
bigChanceMissed: 0.1756 -> 0.188
expectedGoalsOnTarget: 0.1586 -> 0.1698
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.79 (squad xG sum 1.4165, xG scale 1.2629, xA scale 1.3652, team xA 1.16 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.789
squad_xg_sum=1.4165
squad_xa_sum=0.8518
team_expected_assists=1.1628
team_xa_to_xg_ratio=0.65
expected_goals: 0.2365 -> 0.2987
expected_assists: 0.1539 -> 0.2101
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 85.0)match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.2582
goal_rate=0.2811
scorer_weight=0.3452
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1895
assist_rate=0.1962
provider_weight=0.2537
-
Jorrel HatoD7500.000.0172%00.26.750.634FBref 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.0115)blend_weight=0.0115
history_matches=27
season_overlap_discount=1.0
per90_to_match_factor=0.8383
prior_reliability=0.1133
competition=Premier League
wasFouled: 0.2239 -> 0.2327
wonTackle: 1.038 -> 1.0317
interceptionWon: 0.9281 -> 0.9231
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Omar Marmoush', 'matchup_zone': 'Shape fallback'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.79 (squad xG sum 1.4165, xG scale 1.2629, xA scale 1.3652, team xA 1.16 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.789
squad_xg_sum=1.4165
squad_xa_sum=0.8518
team_expected_assists=1.1628
team_xa_to_xg_ratio=0.65
expected_assists: 0.0388 -> 0.053
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 78.0)match_squad_rank=14
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0028
goal_rate=0.0
scorer_weight=0.0027
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0516
assist_rate=0.2203
provider_weight=0.0663
-
Moisés CaicedoM8500.050.0353%10.77.057.026FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0143, quality 0.895)market_value_eur=104000000
quality_factor=0.8945
boost_factor=1.0143
reference_quality=0.505
history_matches=36
history_shrink=0.122
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0011)blend_weight=0.0011
history_matches=36
season_overlap_discount=1.0
per90_to_match_factor=0.9456
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': 'Conor Gallagher', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.495, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 1.0664, 'skill_edge': 0.0612, 'height_edge': -0.016, 'attacker_skill': 0.8969, 'defender_skill': 0.761, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Conor Gallagher', 'market_value': 31000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.761}], 'xg_override': 0.0387}
aerialWon: 0.4665 -> 1.0
totalShots: 0.6983 -> 0.7447
shotOffTarget: 0.553 -> 0.5897
onTargetScoringAttempt: 0.1453 -> 0.1549
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.79 (squad xG sum 1.4165, xG scale 1.2629, xA scale 1.3652, team xA 1.16 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.789
squad_xg_sum=1.4165
squad_xa_sum=0.8518
team_expected_assists=1.1628
team_xa_to_xg_ratio=0.65
expected_goals: 0.0387 -> 0.0489
expected_assists: 0.044 -> 0.0601
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 86.0)match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0477
goal_rate=0.0451
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.0583
assist_rate=0.0502
provider_weight=0.0641
-
Jordan HendersonM8200.100.02493%10.27.153.823XGBoost M_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 0.9975, quality 0.437)market_value_eur=1300000
quality_factor=0.4374
boost_factor=0.9975
reference_quality=0.505
history_matches=35
history_shrink=0.125
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Andy Robertson', 'matchup_zone': 'Right Wingback vs Left Back — Overlapping Run', 'duel_win_rate': 0.378, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9676, 'skill_edge': -0.042, 'height_edge': 0.02, 'attacker_skill': 0.4374, 'defender_skill': 0.5308, 'attacker_role': 'RWB', 'attacker_mv_price_index': 0.7, 'defender_adjusted_parts': [{'player': 'Andy Robertson', 'market_value': 7500000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.5308}], 'xg_override': 0.0762}
aerialWon: 0.8207 -> 1.1
totalShots: 0.9355 -> 0.9052
shotOffTarget: 0.6102 -> 0.5904
onTargetScoringAttempt: 0.3253 -> 0.3148
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.79 (squad xG sum 1.4165, xG scale 1.2629, xA scale 1.3652, team xA 1.16 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.789
squad_xg_sum=1.4165
squad_xa_sum=0.8518
team_expected_assists=1.1628
team_xa_to_xg_ratio=0.65
expected_goals: 0.0762 -> 0.0962
expected_assists: 0.1326 -> 0.181
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.0917
goal_rate=0.0951
scorer_weight=0.1106
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1656
assist_rate=0.1275
provider_weight=0.176
-
Pedro NetoF8300.170.0984%21.06.948.638FBref 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.0112, quality 0.848)market_value_eur=58000000
quality_factor=0.8478
boost_factor=1.0112
reference_quality=0.505
history_matches=41
history_shrink=0.1087
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0042)blend_weight=0.0042
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=0.923
prior_reliability=0.06
competition=Premier League
onTargetScoringAttempt: 0.6583 -> 0.6641
totalShots: 1.7967 -> 1.802
totalCross: 4.3056 -> 4.3004
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': 'Conor Gallagher, Micky van de Ven', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle', 'duel_win_rate': 0.226, 'pressing_faced': 'HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.9354, 'skill_edge': 0.0161, 'height_edge': -0.06, 'attacker_skill': 0.8478, 'defender_skill': 0.8121, 'attacker_role': 'SS', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Conor Gallagher', 'market_value': 31000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.761}, {'player': 'Micky van de Ven', 'market_value': 49000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8633}], 'xg_override': 0.1375}
totalShots: 1.8025 -> 1.6861
shotOffTarget: 1.1384 -> 1.0649
onTargetScoringAttempt: 0.6641 -> 0.6212
expectedGoalsOnTarget: 0.3536 -> 0.3308
bigChanceMissed: 0.2309 -> 0.216
goals: 0.2192 -> 0.205
expectedGoals: 0.147 -> 0.1375
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.79 (squad xG sum 1.4165, xG scale 1.2629, xA scale 1.3652, team xA 1.16 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.789
squad_xg_sum=1.4165
squad_xa_sum=0.8518
team_expected_assists=1.1628
team_xa_to_xg_ratio=0.65
expected_goals: 0.1375 -> 0.1737
expected_assists: 0.1685 -> 0.2299
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 81.0)match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1595
goal_rate=0.205
scorer_weight=0.2171
-
integer_assist_projectionTeam scoreline allocation: 1 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.2054
assist_rate=0.2612
provider_weight=0.2874
-
Levi ColwillD8800.000.0072%00.16.840.115FBref 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.0359, quality 0.840)market_value_eur=55000000
quality_factor=0.8399
boost_factor=1.0359
reference_quality=0.505
history_matches=9
history_shrink=0.3571
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0279)blend_weight=0.0279
history_matches=9
season_overlap_discount=1.0
per90_to_match_factor=0.9828
prior_reliability=0.12
competition=Premier League
wonTackle: 0.6005 -> 0.6294
wasFouled: 0.2437 -> 0.2521
totalShots: 0.3709 -> 0.3759
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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.79 (squad xG sum 1.4165, xG scale 1.2629, xA scale 1.3652, team xA 1.16 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.789
squad_xg_sum=1.4165
squad_xa_sum=0.8518
team_expected_assists=1.1628
team_xa_to_xg_ratio=0.65
expected_assists: 0.0162 -> 0.0221
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 80.0)match_squad_rank=11
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0015
goal_rate=0.0
scorer_weight=0.0015
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0219
assist_rate=0.0
provider_weight=0.0177
-
Maxence LacroixD8800.100.0747%10.76.854.830FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0114, quality 0.861)market_value_eur=64000000
quality_factor=0.8608
boost_factor=1.0114
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.977
prior_reliability=0.1333
competition=Premier League
wonTackle: 0.732 -> 0.7433
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Omar Marmoush', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.79 (squad xG sum 1.4165, xG scale 1.2629, xA scale 1.3652, team xA 1.16 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.789
squad_xg_sum=1.4165
squad_xa_sum=0.8518
team_expected_assists=1.1628
team_xa_to_xg_ratio=0.65
expected_goals: 0.0807 -> 0.1019
expected_assists: 0.0238 -> 0.0325
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 82.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.0969
goal_rate=0.0163
scorer_weight=0.0815
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.032
assist_rate=0.073
provider_weight=0.0406
-
Josh AcheampongD8300.030.003859%00.06.635.829XGBoost 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.0110, quality 0.710)market_value_eur=29000000
quality_factor=0.71
boost_factor=1.011
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': 'Dominic Solanke', 'matchup_zone': 'Shape fallback'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.79 (squad xG sum 1.4165, xG scale 1.2629, xA scale 1.3652, team xA 1.16 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.789
squad_xg_sum=1.4165
squad_xa_sum=0.8518
team_expected_assists=1.1628
team_xa_to_xg_ratio=0.65
expected_goals: 0.0237 -> 0.0299
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 16 by projected rating, fifa_overall 75.0)match_squad_rank=16
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0295
goal_rate=0.0422
scorer_weight=0.0374
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0145
assist_rate=0.0
provider_weight=0.012
-
Mike PendersG9000.00-n/a0.07.06.012FBref Prior G_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost G_service raw output over 3 target models--
market_value_boostMarket-value quality scaling (boost 1.0409, quality 0.669)market_value_eur=24000000
quality_factor=0.6685
boost_factor=1.0409
reference_quality=0.505
history_matches=1
history_shrink=0.8333
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 Solanke, Omar Marmoush', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.081}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.79 (squad xG sum 1.4165, xG scale 1.2629, xA scale 1.3652, team xA 1.16 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.789
squad_xg_sum=1.4165
squad_xa_sum=0.8518
team_expected_assists=1.1628
team_xa_to_xg_ratio=0.65
shots_faced: 10.3 -> 9.9
expected_saves: 2.52 -> 2.42
high_pressure_saves: 0.86 -> 0.83
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 78.0)match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=2.007
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.2634
-
Morgan RogersM8800.320.2248%32.47.161.135FBref 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=115000000
quality_factor=0.8968
boost_factor=1.012
reference_quality=0.505
history_matches=44
history_shrink=0.102
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0084)blend_weight=0.0084
history_matches=44
season_overlap_discount=1.0
per90_to_match_factor=0.9771
prior_reliability=0.1267
competition=Premier League
totalShots: 2.2805 -> 2.2873
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Conor Gallagher', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.532, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 1.1202, 'skill_edge': 0.0618, 'height_edge': 0.02, 'attacker_skill': 0.8983, 'defender_skill': 0.761, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Conor Gallagher', 'market_value': 31000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.761}], 'xg_override': 0.2531}
totalShots: 2.2873 -> 2.5622
shotOffTarget: 1.4027 -> 1.5713
onTargetScoringAttempt: 0.8747 -> 0.9798
aerialWon: 1.2666 -> 1.2
bigChanceMissed: 0.2915 -> 0.3265
goals: 0.2848 -> 0.319
expectedGoalsOnTarget: 0.2296 -> 0.2572
expectedGoals: 0.2259 -> 0.2531
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.79 (squad xG sum 1.4165, xG scale 1.2629, xA scale 1.3652, team xA 1.16 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.789
squad_xg_sum=1.4165
squad_xa_sum=0.8518
team_expected_assists=1.1628
team_xa_to_xg_ratio=0.65
expected_goals: 0.2531 -> 0.3197
expected_assists: 0.1404 -> 0.1917
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 84.0)match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.2736
goal_rate=0.319
scorer_weight=0.3892
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1744
assist_rate=0.1101
provider_weight=0.1612
-
Team totals11.79166.9
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Robert SánchezG5.2m14.7%Market-value substitute prior
Reece JamesD19.5m44.4%Market-value substitute prior
Trevoh ChalobahD15.0m36.3%Market-value substitute prior
Marco PalestraM23.5m56.6%Market-value substitute prior
Valentín BarcoM15.5m72.1%Market-value substitute prior
EstêvãoF27.1m63.9%Market-value substitute prior

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Dominic SolankeF7900.230.1462%21.16.750.127FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0105, quality 0.694)market_value_eur=27000000
quality_factor=0.6941
boost_factor=1.0105
reference_quality=0.505
history_matches=22
history_shrink=0.1852
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0032)blend_weight=0.0032
history_matches=22
season_overlap_discount=1.0
per90_to_match_factor=0.8818
prior_reliability=0.0267
competition=Premier League
wasFouled: 0.6913 -> 0.7032
totalShots: 2.1078 -> 2.1141
totalOffside: 0.4989 -> 0.5044
fouls: 1.6689 -> 1.6635
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Levi Colwill, Maxence Lacroix', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.8561, 'skill_edge': -0.0839, 'height_edge': -0.014, 'attacker_skill': 0.6941, 'defender_skill': 0.8806, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Levi Colwill', 'market_value': 55000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8751}, {'player': 'Maxence Lacroix', 'market_value': 64000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8862}], 'xg_override': 0.2792}
totalShots: 2.1141 -> 1.8099
shotOffTarget: 1.3919 -> 1.1916
onTargetScoringAttempt: 0.7201 -> 0.6165
bigChanceMissed: 0.5207 -> 0.4458
goals: 0.3387 -> 0.29
expectedGoals: 0.3261 -> 0.2792
expectedGoalsOnTarget: 0.2953 -> 0.2528
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.04 (squad xG sum 1.2837, xG scale 0.8117, xA scale 0.8117, team xA 0.75 = 0.72 x lambda)scoreline_reset=true
team_lambda=1.042
squad_xg_sum=1.2837
squad_xa_sum=0.9299
team_expected_assists=0.7549
team_xa_to_xg_ratio=0.7244
expected_goals: 0.2792 -> 0.2266
expected_assists: 0.0564 -> 0.0458
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 15 by projected rating, fifa_overall 79.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.2028
goal_rate=0.29
scorer_weight=0.234
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0448
assist_rate=0.1656
provider_weight=0.0573
-
Omar MarmoushF7900.140.06113%21.06.839.231XGBoost 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.0157, quality 0.840)market_value_eur=55000000
quality_factor=0.8399
boost_factor=1.0157
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': 'Levi Colwill, Maxence Lacroix', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.9349, 'skill_edge': -0.0183, 'height_edge': -0.026, 'attacker_skill': 0.8399, 'defender_skill': 0.8806, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Levi Colwill', 'market_value': 55000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8751}, {'player': 'Maxence Lacroix', 'market_value': 64000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8862}], 'xg_override': 0.1674}
totalShots: 1.8941 -> 1.7708
shotOffTarget: 1.3029 -> 1.2181
onTargetScoringAttempt: 0.5911 -> 0.5526
bigChanceMissed: 0.2281 -> 0.2133
goals: 0.209 -> 0.1954
expectedGoals: 0.1791 -> 0.1674
expectedGoalsOnTarget: 0.1082 -> 0.1012
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.04 (squad xG sum 1.2837, xG scale 0.8117, xA scale 0.8117, team xA 0.75 = 0.72 x lambda)scoreline_reset=true
team_lambda=1.042
squad_xg_sum=1.2837
squad_xa_sum=0.9299
team_expected_assists=0.7549
team_xa_to_xg_ratio=0.7244
expected_goals: 0.1674 -> 0.1359
expected_assists: 0.0534 -> 0.0433
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 82.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.1271
goal_rate=0.1954
scorer_weight=0.1534
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0424
assist_rate=0.1416
provider_weight=0.0541
-
Conor GallagherM7800.080.07ok10.56.849.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.0073, quality 0.725)market_value_eur=31000000
quality_factor=0.7249
boost_factor=1.0073
reference_quality=0.505
history_matches=40
history_shrink=0.1111
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0024)blend_weight=0.0024
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=0.862
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': 'João Pedro, Pedro Neto, Morgan Rogers', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 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.04 (squad xG sum 1.2837, xG scale 0.8117, xA scale 0.8117, team xA 0.75 = 0.72 x lambda)scoreline_reset=true
team_lambda=1.042
squad_xg_sum=1.2837
squad_xa_sum=0.9299
team_expected_assists=0.7549
team_xa_to_xg_ratio=0.7244
expected_goals: 0.0977 -> 0.0793
expected_assists: 0.0617 -> 0.0501
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.0762
goal_rate=0.0879
scorer_weight=0.074
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0489
assist_rate=0.0725
provider_weight=0.0549
-
Mohammed KudusF7400.090.04114%10.67.036.924FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0158, quality 0.821)market_value_eur=49000000
quality_factor=0.8206
boost_factor=1.0158
reference_quality=0.505
history_matches=25
history_shrink=0.1667
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0022)blend_weight=0.0022
history_matches=25
season_overlap_discount=1.0
per90_to_match_factor=0.8269
prior_reliability=0.02
competition=Premier League
totalCross: 4.5542 -> 4.5742
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Levi Colwill, Maxence Lacroix', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.8809, 'skill_edge': -0.027, 'height_edge': -0.054, 'attacker_skill': 0.8206, 'defender_skill': 0.8806, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Levi Colwill', 'market_value': 55000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8751}, {'player': 'Maxence Lacroix', 'market_value': 64000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8862}], 'xg_override': 0.1143}
totalShots: 1.3921 -> 1.2263
shotOffTarget: 0.9448 -> 0.8323
onTargetScoringAttempt: 0.4423 -> 0.3896
goals: 0.1616 -> 0.1424
expectedGoals: 0.1298 -> 0.1143
expectedGoalsOnTarget: 0.0792 -> 0.0698
bigChanceMissed: 0.0505 -> 0.0445
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.04 (squad xG sum 1.2837, xG scale 0.8117, xA scale 0.8117, team xA 0.75 = 0.72 x lambda)scoreline_reset=true
team_lambda=1.042
squad_xg_sum=1.2837
squad_xa_sum=0.9299
team_expected_assists=0.7549
team_xa_to_xg_ratio=0.7244
expected_goals: 0.1143 -> 0.0928
expected_assists: 0.106 -> 0.086
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.0886
goal_rate=0.1424
scorer_weight=0.1087
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0824
assist_rate=0.2401
provider_weight=0.1075
-
Mateus FernandesM8000.060.0450%10.86.957.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 1.0113, quality 0.868)market_value_eur=68000000
quality_factor=0.8677
boost_factor=1.0113
reference_quality=0.505
history_matches=43
history_shrink=0.1042
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0068)blend_weight=0.0068
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=0.8858
prior_reliability=0.1
competition=Premier League
totalCross: 1.7467 -> 1.7629
wasFouled: 0.9347 -> 0.9284
interceptionWon: 0.8562 -> 0.8504
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Levi Colwill', 'matchup_zone': 'LW vs CB', 'duel_win_rate': 0.381, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9422, 'skill_edge': -0.0033, 'height_edge': -0.036, 'attacker_skill': 0.8677, 'defender_skill': 0.8751, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Levi Colwill', 'market_value': 55000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8751}], 'xg_override': 0.0758}
aerialWon: 0.4716 -> 1.0
totalShots: 1.0658 -> 1.0042
shotOffTarget: 0.7674 -> 0.723
onTargetScoringAttempt: 0.2984 -> 0.2812
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.04 (squad xG sum 1.2837, xG scale 0.8117, xA scale 0.8117, team xA 0.75 = 0.72 x lambda)scoreline_reset=true
team_lambda=1.042
squad_xg_sum=1.2837
squad_xa_sum=0.9299
team_expected_assists=0.7549
team_xa_to_xg_ratio=0.7244
expected_goals: 0.0758 -> 0.0615
expected_assists: 0.0893 -> 0.0725
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.0596
goal_rate=0.0792
scorer_weight=0.0632
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0699
assist_rate=0.0868
provider_weight=0.0712
-
Sandro TonaliM8600.060.05ok11.27.355.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.0121, quality 0.884)market_value_eur=83000000
quality_factor=0.8845
boost_factor=1.0121
reference_quality=0.505
history_matches=42
history_shrink=0.1064
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0083)blend_weight=0.0083
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.9503
prior_reliability=0.12
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': 'Morgan Rogers', 'matchup_zone': 'CAM vs CM', 'duel_win_rate': 0.391, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9576, 'skill_edge': -0.0049, 'height_edge': -0.024, 'attacker_skill': 0.8875, 'defender_skill': 0.8983, 'attacker_role': 'CAM', 'attacker_mv_price_index': 0.95, 'defender_adjusted_parts': [{'player': 'Morgan Rogers', 'market_value': 115000000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.8983}], 'xg_override': 0.0678}
aerialWon: 0.5761 -> 1.1
totalShots: 1.1732 -> 1.1235
shotOffTarget: 0.8356 -> 0.8002
onTargetScoringAttempt: 0.3359 -> 0.3217
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.04 (squad xG sum 1.2837, xG scale 0.8117, xA scale 0.8117, team xA 0.75 = 0.72 x lambda)scoreline_reset=true
team_lambda=1.042
squad_xg_sum=1.2837
squad_xa_sum=0.9299
team_expected_assists=0.7549
team_xa_to_xg_ratio=0.7244
expected_goals: 0.0678 -> 0.055
expected_assists: 0.1583 -> 0.1285
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 85.0)match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0535
goal_rate=0.0851
scorer_weight=0.0631
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.1206
assist_rate=0.1196
provider_weight=0.1046
-
Andy RobertsonD8200.040.0339%10.36.839.932FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9995, quality 0.493)market_value_eur=7500000
quality_factor=0.4927
boost_factor=0.9995
reference_quality=0.505
history_matches=30
history_shrink=0.1429
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0105)blend_weight=0.0105
history_matches=30
season_overlap_discount=1.0
per90_to_match_factor=0.906
prior_reliability=0.1133
competition=Premier League
wasFouled: 0.2132 -> 0.2222
totalCross: 4.9744 -> 4.9669
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Jordan Henderson', 'matchup_zone': 'Right Wingback vs Left Back — Overlapping Run'}
-
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.04 (squad xG sum 1.2837, xG scale 0.8117, xA scale 0.8117, team xA 0.75 = 0.72 x lambda)scoreline_reset=true
team_lambda=1.042
squad_xg_sum=1.2837
squad_xa_sum=0.9299
team_expected_assists=0.7549
team_xa_to_xg_ratio=0.7244
expected_goals: 0.0549 -> 0.0446
expected_assists: 0.0879 -> 0.0714
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 85.0)match_squad_rank=11
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0436
goal_rate=0.0598
scorer_weight=0.0467
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0689
assist_rate=0.2965
provider_weight=0.0893
-
Micky van de VenD8800.060.05ok10.36.953.930FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0103, quality 0.821)market_value_eur=49000000
quality_factor=0.8206
boost_factor=1.0103
reference_quality=0.505
history_matches=41
history_shrink=0.1087
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0047)blend_weight=0.0047
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=0.9798
prior_reliability=0.0667
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': 'João Pedro', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 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.04 (squad xG sum 1.2837, xG scale 0.8117, xA scale 0.8117, team xA 0.75 = 0.72 x lambda)scoreline_reset=true
team_lambda=1.042
squad_xg_sum=1.2837
squad_xa_sum=0.9299
team_expected_assists=0.7549
team_xa_to_xg_ratio=0.7244
expected_goals: 0.078 -> 0.0633
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 81.0)match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0613
goal_rate=0.0131
scorer_weight=0.0506
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0084
assist_rate=0.005
provider_weight=0.0077
-
Jan Paul van HeckeD9000.090.0731%10.57.258.331FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0112, quality 0.863)market_value_eur=65000000
quality_factor=0.8627
boost_factor=1.0112
reference_quality=0.505
history_matches=43
history_shrink=0.1042
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0090)blend_weight=0.009
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=0.9979
prior_reliability=0.1333
competition=Premier League
interceptionWon: 1.2641 -> 1.2572
totalCross: 0.6474 -> 0.6416
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'João Pedro', 'matchup_zone': '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.04 (squad xG sum 1.2837, xG scale 0.8117, xA scale 0.8117, team xA 0.75 = 0.72 x lambda)scoreline_reset=true
team_lambda=1.042
squad_xg_sum=1.2837
squad_xa_sum=0.9299
team_expected_assists=0.7549
team_xa_to_xg_ratio=0.7244
expected_goals: 0.1148 -> 0.0932
expected_assists: 0.0723 -> 0.0587
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.089
goal_rate=0.1361
scorer_weight=0.1052
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.057
assist_rate=0.0272
provider_weight=0.047
-
Archie GrayM8300.040.04ok10.46.846.237FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0103, quality 0.746)market_value_eur=34000000
quality_factor=0.7455
boost_factor=1.0103
reference_quality=0.505
history_matches=30
history_shrink=0.1429
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0105)blend_weight=0.0105
history_matches=30
season_overlap_discount=1.0
per90_to_match_factor=0.9261
prior_reliability=0.1133
competition=Premier League
wasFouled: 0.9752 -> 0.9879
totalShots: 0.7225 -> 0.7149
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Cole Palmer', 'matchup_zone': '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.04 (squad xG sum 1.2837, xG scale 0.8117, xA scale 0.8117, team xA 0.75 = 0.72 x lambda)scoreline_reset=true
team_lambda=1.042
squad_xg_sum=1.2837
squad_xa_sum=0.9299
team_expected_assists=0.7549
team_xa_to_xg_ratio=0.7244
expected_goals: 0.0545 -> 0.0442
expected_assists: 0.0599 -> 0.0486
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.0432
goal_rate=0.052
scorer_weight=0.0431
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0474
assist_rate=0.0829
provider_weight=0.0588
-
Antonín KinskýG9000.00-n/a0.07.029.232FBref 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.0091, quality 0.620)market_value_eur=18900000
quality_factor=0.6201
boost_factor=1.0091
reference_quality=0.505
history_matches=14
history_shrink=0.2632
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0228)blend_weight=0.0228
history_matches=14
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League
wasFouled: 0.2807 -> 0.2743
saves: 2.7473 -> 2.7417
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'João Pedro, Morgan Rogers', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.7268}
-
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.04 (squad xG sum 1.2837, xG scale 0.8117, xA scale 0.8117, team xA 0.75 = 0.72 x lambda)scoreline_reset=true
team_lambda=1.042
squad_xg_sum=1.2837
squad_xa_sum=0.9299
team_expected_assists=0.7549
team_xa_to_xg_ratio=0.7244
shots_faced: 16.4 -> 17.0
expected_saves: 4.01 -> 4.16
high_pressure_saves: 1.38 -> 1.43
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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.0921
-
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.7886
-
Team totals01.04156.9
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Guglielmo VicarioG5.0m13.9%Market-value substitute prior
Pedro PorroD15.0m24.6%Market-value substitute prior
Destiny UdogieD14.3m62.3%Market-value substitute prior
Xavi SimonsM23.4m56.3%Market-value substitute prior
Lucas BergvallM23.4m33.5%Market-value substitute prior
SávioF26.9m63.0%Market-value substitute prior
Antagonist / tactical summary
Midfield is evenly contested — Morgan Rogers vs Sandro Tonali will be the pivotal duel. Total antagonist xG — Home: 1.17, Away: 0.70. Home danger zone: Shadow Striker vs CDM + CB — Zone 14 Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Midfield — possession 49.9% / 50.1%, dominance ratio 0.49, key duel: Morgan Rogers vs Sandro Tonali
João Pedro xG 0.43Pedro Neto xG 0.14Cole Palmer xG 0.24Mateus Fernandes xG 0.08Sandro Tonali xG 0.07Omar Marmoush xG 0.17

Summary

Antagonist matchup analysis for Chelsea vs Tottenham. Most likely scoreline: 1-0. Lambdas derived from 6 home and 5 away individual player duels. Head-to-head: Chelsea 7W-1D-2L 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 — Morgan Rogers vs Sandro Tonali will be the pivotal duel. Total antagonist xG — Home: 1.17, Away: 0.70. Home danger zone: Shadow Striker vs CDM + CB — Zone 14 Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.

Valencia vs Villarreal

LaLiga · 20261024 · 4-2-3-1 vs 4-4-2
Predicted 0-1Winner: VillarrealWinning H 1-0 (8.5%)Winning A 0-1 (13.7%)Confidence 0.74λ home/away 0.90 / 1.45Most-likely P 13.7%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset Tracing
Antagonist + XGBoost match analysis for Valencia vs Villarreal. 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-4-2 (duel lambdas: Home 0.919, Away 1.421). Final calibrated Poisson lambdas: Home 0.899, Away 1.451 (most likely score 0-1).
Home Starters 11/11 XGBoost (9 FBref) Away Starters 11/11 XGBoost (8 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 0.92 / 1.42 Final λ (H/A) 0.90 / 1.45
FBref Team Priors: Valencia (Gls/90: 0.3333333333333333, GA/90: 0.33 → E[λ]: 0.328) vs Villarreal (Gls/90: 1.3333333333333333, GA/90: 1.33 → E[λ]: 0.326) | 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

MetricValenciaVillarreal
League position19.0012.00
Points per game0.941.14
Attack index0.800.93
Defense (concede) index0.931.09
Form multiplier0.991.01
Standing λ multiplier0.891.01

Lambda decomposition (how the goal rates were built)

StageValencia λVillarreal λ
FBref Squad Prior E[λ] (weight 0.228)0.3280.326
Pre-competitive-floor0.8991.451
Pre-calibration (Micro-duels)0.9191.421
Final λ0.8991.451
competition calibration scale 1.0competition observed total goals 0.0quality gap applied Truemismatch score pressure applied Falsecompetitive underdog floor applied Falsestage discount 1.0

Scoreline distribution & markets

Top 5 scorelinesP
0-113.7%
1-112.5%
0-210.0%
0-09.6%
1-29.0%
Home win23.2%
Draw26.9%
Away win49.9%
Over 2.541.7%
BTTS yes45.5%
Pregame fair line — favorite Villarreal (49.9%), fair total 2.35, fair spread -0.55

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-2-3-1)

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Stole DimitrievskiG9000.00-n/a0.06.965.331FBref Prior G_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost G_service raw output over 3 target models--
market_value_boostMarket-value quality scaling (boost 0.9970, quality 0.437)market_value_eur=2100000
quality_factor=0.4374
boost_factor=0.997
reference_quality=0.505
history_matches=29
history_shrink=0.1471
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0191)blend_weight=0.0191
history_matches=29
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.2
competition=La Liga
saves: 2.9671 -> 2.9614
wasFouled: 0.2806 -> 0.2752
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Alberto Moleiro, Ayoze Pérez', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.4207}
-
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.90 (squad xG sum 0.8835, xG scale 1.0175, xA scale 1.0175, team xA 0.62 = 0.69 x lambda)scoreline_reset=true
team_lambda=0.899
squad_xg_sum=0.8835
squad_xa_sum=0.6086
team_expected_assists=0.6192
team_xa_to_xg_ratio=0.6888
shots_faced: 13.5 -> 13.8
expected_saves: 3.3 -> 3.38
high_pressure_saves: 1.14 -> 1.16
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=0.9718
-
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.6412
-
Arnaut DanjumaF8200.130.0865%11.06.954.133FBref 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=39
history_shrink=0.1136
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0094)blend_weight=0.0094
history_matches=39
season_overlap_discount=1.0
per90_to_match_factor=0.9113
prior_reliability=0.1267
competition=La Liga
totalShots: 1.5886 -> 1.6059
wasFouled: 0.8962 -> 0.9058
fouls: 0.6665 -> 0.6737
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Renato Veiga, Alexander Freeman', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 0.7654, 'skill_edge': -0.1156, 'height_edge': -0.044, 'attacker_skill': 0.4374, 'defender_skill': 0.6943, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Renato Veiga', 'market_value': 29000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7736}, {'player': 'Alexander Freeman', 'market_value': 13800000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.615}], 'xg_override': 0.1315}
totalShots: 1.6059 -> 1.2292
shotOffTarget: 0.9765 -> 0.7474
onTargetScoringAttempt: 0.6155 -> 0.4711
bigChanceMissed: 0.4954 -> 0.3792
goals: 0.1894 -> 0.145
expectedGoals: 0.1718 -> 0.1315
expectedGoalsOnTarget: 0.0936 -> 0.0716
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.90 (squad xG sum 0.8835, xG scale 1.0175, xA scale 1.0175, team xA 0.62 = 0.69 x lambda)scoreline_reset=true
team_lambda=0.899
squad_xg_sum=0.8835
squad_xa_sum=0.6086
team_expected_assists=0.6192
team_xa_to_xg_ratio=0.6888
-
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.1252
goal_rate=0.145
scorer_weight=0.1438
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0922
assist_rate=0.0377
provider_weight=0.0774
-
Luis RiojaF7800.110.05129%10.86.759.131XGBoost 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.9978, quality 0.437)market_value_eur=1900000
quality_factor=0.4374
boost_factor=0.9978
reference_quality=0.505
history_matches=42
history_shrink=0.1064
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Renato Veiga, Alexander Freeman', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 0.7419, 'skill_edge': -0.1156, 'height_edge': -0.06, 'attacker_skill': 0.4374, 'defender_skill': 0.6943, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Renato Veiga', 'market_value': 29000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7736}, {'player': 'Alexander Freeman', 'market_value': 13800000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.615}], 'xg_override': 0.1126}
totalShots: 1.2095 -> 0.8973
shotOffTarget: 0.8046 -> 0.5969
onTargetScoringAttempt: 0.4049 -> 0.3004
goals: 0.1563 -> 0.116
expectedGoals: 0.1518 -> 0.1126
bigChanceMissed: 0.1 -> 0.0742
expectedGoalsOnTarget: 0.088 -> 0.0653
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.90 (squad xG sum 0.8835, xG scale 1.0175, xA scale 1.0175, team xA 0.62 = 0.69 x lambda)scoreline_reset=true
team_lambda=0.899
squad_xg_sum=0.8835
squad_xa_sum=0.6086
team_expected_assists=0.6192
team_xa_to_xg_ratio=0.6888
-
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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.1083
goal_rate=0.116
scorer_weight=0.117
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0763
assist_rate=0.137
provider_weight=0.0993
-
Javier GuerraM8300.190.1167%31.26.960.334FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0054, quality 0.686)market_value_eur=26000000
quality_factor=0.6858
boost_factor=1.0054
reference_quality=0.505
history_matches=45
history_shrink=0.1
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0117)blend_weight=0.0117
history_matches=45
season_overlap_discount=1.0
per90_to_match_factor=0.9211
prior_reliability=0.18
competition=La Liga
totalShots: 2.1287 -> 2.116
fouls: 0.7672 -> 0.7582
onTargetScoringAttempt: 0.6818 -> 0.6738
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': 'Sergi Cardona', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.546, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0965, 'skill_edge': 0.0616, 'height_edge': 0.004, 'attacker_skill': 0.6858, 'defender_skill': 0.5489, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Sergi Cardona', 'market_value': 8600000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.5489}], 'xg_override': 0.1839}
aerialWon: 0.7275 -> 1.2
totalShots: 2.1207 -> 2.3253
shotOffTarget: 1.4469 -> 1.5865
onTargetScoringAttempt: 0.6738 -> 0.7388
bigChanceMissed: 0.3274 -> 0.359
goals: 0.2202 -> 0.2414
expectedGoals: 0.1677 -> 0.1839
expectedGoalsOnTarget: 0.1444 -> 0.1583
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.90 (squad xG sum 0.8835, xG scale 1.0175, xA scale 1.0175, team xA 0.62 = 0.69 x lambda)scoreline_reset=true
team_lambda=0.899
squad_xg_sum=0.8835
squad_xa_sum=0.6086
team_expected_assists=0.6192
team_xa_to_xg_ratio=0.6888
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 82.0)match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.1706
goal_rate=0.2414
scorer_weight=0.2331
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.1125
assist_rate=0.1179
provider_weight=0.1197
-
Dani RabaF6200.150.04297%20.36.812.832FBref 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.9952, quality 0.437)market_value_eur=1000000
quality_factor=0.4374
boost_factor=0.9952
reference_quality=0.505
history_matches=16
history_shrink=0.2381
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0010)blend_weight=0.001
history_matches=16
season_overlap_discount=1.0
per90_to_match_factor=0.6841
prior_reliability=0.0067
competition=La Liga
totalCross: 0.7902 -> 0.7965
totalShots: 1.5953 -> 1.6007
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Renato Veiga, Alexander Freeman', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 0.8007, 'skill_edge': -0.1156, 'height_edge': -0.02, 'attacker_skill': 0.4374, 'defender_skill': 0.6943, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Renato Veiga', 'market_value': 29000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7736}, {'player': 'Alexander Freeman', 'market_value': 13800000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.615}], 'xg_override': 0.1496}
totalShots: 1.6007 -> 1.2817
shotOffTarget: 0.9174 -> 0.7346
onTargetScoringAttempt: 0.6772 -> 0.5422
bigChanceMissed: 0.2281 -> 0.1826
expectedGoalsOnTarget: 0.2092 -> 0.1675
goals: 0.1963 -> 0.1572
expectedGoals: 0.1868 -> 0.1496
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.90 (squad xG sum 0.8835, xG scale 1.0175, xA scale 1.0175, team xA 0.62 = 0.69 x lambda)scoreline_reset=true
team_lambda=0.899
squad_xg_sum=0.8835
squad_xa_sum=0.6086
team_expected_assists=0.6192
team_xa_to_xg_ratio=0.6888
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 74.0)match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.1412
goal_rate=0.1572
scorer_weight=0.158
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0603
assist_rate=0.14
provider_weight=0.0777
-
Guido RodríguezM8500.040.04ok10.67.061.327FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 0.9973, quality 0.445)market_value_eur=3600000
quality_factor=0.4449
boost_factor=0.9973
reference_quality=0.505
history_matches=28
history_shrink=0.1515
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0131)blend_weight=0.0131
history_matches=28
season_overlap_discount=1.0
per90_to_match_factor=0.9426
prior_reliability=0.1333
competition=La Liga
interceptionWon: 1.4688 -> 1.4805
wonTackle: 1.8352 -> 1.8297
fouls: 1.463 -> 1.4685
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Pape Gueye', 'matchup_zone': 'Holding Mid vs Central Mid — Midfield Anchor Duel', 'duel_win_rate': 0.237, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.7604, 'skill_edge': -0.155, 'height_edge': -0.008, 'attacker_skill': 0.4527, 'defender_skill': 0.7972, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Pape Gueye', 'market_value': 39000000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.7972}], 'xg_override': 0.0345}
totalShots: 0.659 -> 0.5011
shotOffTarget: 0.4627 -> 0.3518
aerialWon: 1.1207 -> 1.2
onTargetScoringAttempt: 0.1963 -> 0.1493
goals: 0.0636 -> 0.0484
expectedGoals: 0.0454 -> 0.0345
expectedGoalsOnTarget: 0.0384 -> 0.0292
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.90 (squad xG sum 0.8835, xG scale 1.0175, xA scale 1.0175, team xA 0.62 = 0.69 x lambda)scoreline_reset=true
team_lambda=0.899
squad_xg_sum=0.8835
squad_xa_sum=0.6086
team_expected_assists=0.6192
team_xa_to_xg_ratio=0.6888
-
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.0345
goal_rate=0.0484
scorer_weight=0.0409
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0327
assist_rate=0.054
provider_weight=0.0415
-
PepeluM8400.020.0870%00.46.954.539XGBoost 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=40
history_shrink=0.1111
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Pape Gueye', 'matchup_zone': 'Holding Mid vs Central Mid — Midfield Anchor Duel', 'duel_win_rate': 0.261, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.7954, 'skill_edge': -0.1312, 'height_edge': -0.008, 'attacker_skill': 0.5057, 'defender_skill': 0.7972, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Pape Gueye', 'market_value': 39000000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.7972}], 'xg_override': 0.0235}
aerialWon: 0.4131 -> 1.2
totalShots: 0.5179 -> 0.412
shotOffTarget: 0.4039 -> 0.3213
onTargetScoringAttempt: 0.114 -> 0.0907
goals: 0.0418 -> 0.0332
expectedGoals: 0.0295 -> 0.0235
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.90 (squad xG sum 0.8835, xG scale 1.0175, xA scale 1.0175, team xA 0.62 = 0.69 x lambda)scoreline_reset=true
team_lambda=0.899
squad_xg_sum=0.8835
squad_xa_sum=0.6086
team_expected_assists=0.6192
team_xa_to_xg_ratio=0.6888
-
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.0236
goal_rate=0.0332
scorer_weight=0.0271
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0324
assist_rate=0.0456
provider_weight=0.0382
-
José Luis GayàD8200.050.0363%10.46.856.629FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9982, quality 0.454)market_value_eur=4300000
quality_factor=0.4535
boost_factor=0.9982
reference_quality=0.505
history_matches=39
history_shrink=0.1136
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0039)blend_weight=0.0039
history_matches=39
season_overlap_discount=1.0
per90_to_match_factor=0.9138
prior_reliability=0.0533
competition=La Liga
wasFouled: 0.6159 -> 0.6225
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Ayoze Pérez', '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.90 (squad xG sum 0.8835, xG scale 1.0175, xA scale 1.0175, team xA 0.62 = 0.69 x lambda)scoreline_reset=true
team_lambda=0.899
squad_xg_sum=0.8835
squad_xa_sum=0.6086
team_expected_assists=0.6192
team_xa_to_xg_ratio=0.6888
-
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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0465
goal_rate=0.0063
scorer_weight=0.0381
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0622
assist_rate=0.0368
provider_weight=0.0514
-
Justin De HaasD8100.000.0060%00.16.842.88FBref 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.9985, quality 0.495)market_value_eur=7700000
quality_factor=0.4951
boost_factor=0.9985
reference_quality=0.505
history_matches=5
history_shrink=0.5
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0108)blend_weight=0.0108
history_matches=5
season_overlap_discount=1.0
per90_to_match_factor=0.905
prior_reliability=0.0333
competition=La Liga
fouls: 0.5004 -> 0.5146
interceptionWon: 1.0433 -> 1.032
wonTackle: 0.6238 -> 0.617
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Ayoze Pérez', '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.90 (squad xG sum 0.8835, xG scale 1.0175, xA scale 1.0175, team xA 0.62 = 0.69 x lambda)scoreline_reset=true
team_lambda=0.899
squad_xg_sum=0.8835
squad_xa_sum=0.6086
team_expected_assists=0.6192
team_xa_to_xg_ratio=0.6888
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 76.0)match_squad_rank=11
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0035
goal_rate=0.0
scorer_weight=0.0033
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0126
assist_rate=0.2264
provider_weight=0.0159
-
César TárregaD8100.030.0249%10.36.850.729FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0003, quality 0.514)market_value_eur=9300000
quality_factor=0.5142
boost_factor=1.0003
reference_quality=0.505
history_matches=38
history_shrink=0.1163
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0151)blend_weight=0.0151
history_matches=38
season_overlap_discount=1.0
per90_to_match_factor=0.9043
prior_reliability=0.2
competition=La Liga
interceptionWon: 1.1654 -> 1.1523
wonTackle: 0.8148 -> 0.8253
totalShots: 0.508 -> 0.514
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Ayoze Pérez', '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.90 (squad xG sum 0.8835, xG scale 1.0175, xA scale 1.0175, team xA 0.62 = 0.69 x lambda)scoreline_reset=true
team_lambda=0.899
squad_xg_sum=0.8835
squad_xa_sum=0.6086
team_expected_assists=0.6192
team_xa_to_xg_ratio=0.6888
-
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.0282
goal_rate=0.0
scorer_weight=0.0229
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0062
assist_rate=0.0
provider_weight=0.0055
-
Pablo MaffeoD8300.020.0155%10.36.861.229FBref 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=2400000
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.0039)blend_weight=0.0039
history_matches=39
season_overlap_discount=1.0
per90_to_match_factor=0.9249
prior_reliability=0.0533
competition=La Liga
totalCross: 2.8595 -> 2.871
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Santi Comesaña', 'matchup_zone': 'Left Mid vs Right Back — Wide Channel'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.90 (squad xG sum 0.8835, xG scale 1.0175, xA scale 1.0175, team xA 0.62 = 0.69 x lambda)scoreline_reset=true
team_lambda=0.899
squad_xg_sum=0.8835
squad_xa_sum=0.6086
team_expected_assists=0.6192
team_xa_to_xg_ratio=0.6888
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 82.0)match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.02
goal_rate=0.0012
scorer_weight=0.0162
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0625
assist_rate=0.0744
provider_weight=0.0708
-
Team totals00.90146.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
José CopeteD13.7m30.2%Market-value substitute prior
Harvey ElliottM22.8m53.5%Market-value substitute prior
Filip UgrinićM29.8m43.8%Market-value substitute prior
Hugo DuroF22.6m59.9%Market-value substitute prior

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Gerard MorenoF7700.240.23ok21.37.057.328FBref 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.9971, quality 0.437)market_value_eur=2400000
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.0093)blend_weight=0.0093
history_matches=30
season_overlap_discount=1.0
per90_to_match_factor=0.852
prior_reliability=0.1
competition=La Liga
fouls: 0.6411 -> 0.651
wasFouled: 0.7311 -> 0.7243
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Justin De Haas, César Tárrega', '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.86, 'skill_edge': -0.0452, 'height_edge': -0.05, 'attacker_skill': 0.4374, 'defender_skill': 0.5379, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Justin De Haas', 'market_value': 7700000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5256}, {'player': 'César Tárrega', 'market_value': 9300000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5502}], 'xg_override': 0.2345}
totalShots: 2.0033 -> 1.7228
shotOffTarget: 1.2136 -> 1.0437
onTargetScoringAttempt: 0.7897 -> 0.6791
expectedGoalsOnTarget: 0.4008 -> 0.3447
goals: 0.2888 -> 0.2484
expectedGoals: 0.2727 -> 0.2345
bigChanceMissed: 0.2678 -> 0.2303
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_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 1.4221, xG scale 1.0203, xA scale 1.0203, team xA 1.08 = 0.75 x lambda)scoreline_reset=true
team_lambda=1.451
squad_xg_sum=1.4221
squad_xa_sum=1.0618
team_expected_assists=1.0833
team_xa_to_xg_ratio=0.7466
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 81.0)match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.2128
goal_rate=0.2484
scorer_weight=0.251
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1032
assist_rate=0.0
provider_weight=0.0871
-
Ayoze PérezF7300.300.26ok21.26.957.929FBref 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.9985, quality 0.467)market_value_eur=5400000
quality_factor=0.4671
boost_factor=0.9985
reference_quality=0.505
history_matches=34
history_shrink=0.1282
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0089)blend_weight=0.0089
history_matches=34
season_overlap_discount=1.0
per90_to_match_factor=0.8112
prior_reliability=0.1067
competition=La Liga
wasFouled: 1.4436 -> 1.4533
totalShots: 2.2772 -> 2.284
onTargetScoringAttempt: 0.8713 -> 0.877
totalOffside: 0.5744 -> 0.5693
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Justin De Haas, César Tárrega', '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.8797, 'skill_edge': -0.0319, 'height_edge': -0.05, 'attacker_skill': 0.4671, 'defender_skill': 0.5379, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Justin De Haas', 'market_value': 7700000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5256}, {'player': 'César Tárrega', 'market_value': 9300000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5502}], 'xg_override': 0.2934}
totalShots: 2.284 -> 2.0092
shotOffTarget: 1.4059 -> 1.2368
onTargetScoringAttempt: 0.877 -> 0.7715
bigChanceMissed: 0.8574 -> 0.7543
goals: 0.3619 -> 0.3184
expectedGoals: 0.3335 -> 0.2934
expectedGoalsOnTarget: 0.2642 -> 0.2324
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_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 1.4221, xG scale 1.0203, xA scale 1.0203, team xA 1.08 = 0.75 x lambda)scoreline_reset=true
team_lambda=1.451
squad_xg_sum=1.4221
squad_xa_sum=1.0618
team_expected_assists=1.0833
team_xa_to_xg_ratio=0.7466
expected_goals: 0.2934 -> 0.2994
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 79.0)match_squad_rank=11
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.2587
goal_rate=0.3184
scorer_weight=0.3212
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0642
assist_rate=0.2563
provider_weight=0.083
-
Alberto MoleiroF8010.390.16150%31.17.261.141FBref 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.0098, quality 0.837)market_value_eur=54000000
quality_factor=0.837
boost_factor=1.0098
reference_quality=0.505
history_matches=46
history_shrink=0.098
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0068)blend_weight=0.0068
history_matches=46
season_overlap_discount=1.0
per90_to_match_factor=0.8926
prior_reliability=0.1067
competition=La Liga
totalShots: 2.8155 -> 2.7964
onTargetScoringAttempt: 1.266 -> 1.2574
wonTackle: 0.6333 -> 0.6404
totalCross: 3.5658 -> 3.5605
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Justin De Haas, César Tárrega', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.275, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.1097, 'skill_edge': 0.1346, 'height_edge': -0.06, 'attacker_skill': 0.837, 'defender_skill': 0.5379, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Justin De Haas', 'market_value': 7700000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5256}, {'player': 'César Tárrega', 'market_value': 9300000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5502}], 'xg_override': 0.386}
totalShots: 2.8069 -> 3.1148
shotOffTarget: 1.5495 -> 1.7195
onTargetScoringAttempt: 1.2574 -> 1.3953
bigChanceMissed: 0.5903 -> 0.6551
expectedGoalsOnTarget: 0.3718 -> 0.4126
expectedGoals: 0.3478 -> 0.386
goals: 0.3142 -> 0.3487
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_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 1.4221, xG scale 1.0203, xA scale 1.0203, team xA 1.08 = 0.75 x lambda)scoreline_reset=true
team_lambda=1.451
squad_xg_sum=1.4221
squad_xa_sum=1.0618
team_expected_assists=1.0833
team_xa_to_xg_ratio=0.7466
expected_goals: 0.386 -> 0.3937
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 79.0)match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.3254
goal_rate=0.3487
scorer_weight=0.36
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1972
assist_rate=0.3282
provider_weight=0.2746
-
Pape GueyeM7900.150.15ok21.27.162.230FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0092, quality 0.775)market_value_eur=39000000
quality_factor=0.7754
boost_factor=1.0092
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.8826
prior_reliability=0.2
competition=La Liga
totalShots: 1.3332 -> 1.3265
totalCross: 0.6713 -> 0.6657
fouls: 0.8141 -> 0.8195
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Guido Rodríguez', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.613, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.2396, 'skill_edge': 0.155, 'height_edge': 0.008, 'attacker_skill': 0.7972, 'defender_skill': 0.4527, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Guido Rodríguez', 'market_value': 3600000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4527}], 'xg_override': 0.1442}
aerialWon: 0.394 -> 1.2
totalShots: 1.3299 -> 1.6485
shotOffTarget: 0.8198 -> 1.0162
onTargetScoringAttempt: 0.5101 -> 0.6323
goals: 0.1426 -> 0.1768
expectedGoals: 0.1163 -> 0.1442
expectedGoalsOnTarget: 0.0843 -> 0.1045
bigChanceMissed: 0.0558 -> 0.0692
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_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 1.4221, xG scale 1.0203, xA scale 1.0203, team xA 1.08 = 0.75 x lambda)scoreline_reset=true
team_lambda=1.451
squad_xg_sum=1.4221
squad_xa_sum=1.0618
team_expected_assists=1.0833
team_xa_to_xg_ratio=0.7466
-
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.1368
goal_rate=0.1768
scorer_weight=0.1718
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1015
assist_rate=0.083
provider_weight=0.0919
-
Santi ComesañaM7000.060.08ok10.46.962.829FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0000, quality 0.503)market_value_eur=8400000
quality_factor=0.5035
boost_factor=1.0
reference_quality=0.505
history_matches=42
history_shrink=0.1064
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0101)blend_weight=0.0101
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.779
prior_reliability=0.1467
competition=La Liga
totalShots: 0.6483 -> 0.6417
fouls: 1.4729 -> 1.4795
wonTackle: 0.7787 -> 0.7852
wasFouled: 0.8838 -> 0.8784
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 Maffeo', 'matchup_zone': 'Left Mid vs Right Back — Wide Channel', 'duel_win_rate': 0.548, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.1298, 'skill_edge': 0.0323, 'height_edge': 0.056, 'attacker_skill': 0.5146, 'defender_skill': 0.4428, 'attacker_role': 'LM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Pablo Maffeo', 'market_value': 2400000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.4428}], 'xg_override': 0.0633}
aerialWon: 0.2212 -> 1.2
totalShots: 0.6464 -> 0.7303
shotOffTarget: 0.4687 -> 0.5295
onTargetScoringAttempt: 0.1777 -> 0.2008
bigChanceMissed: 0.1353 -> 0.1529
expectedGoalsOnTarget: 0.0872 -> 0.0985
goals: 0.0607 -> 0.0686
expectedGoals: 0.056 -> 0.0633
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_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 1.4221, xG scale 1.0203, xA scale 1.0203, team xA 1.08 = 0.75 x lambda)scoreline_reset=true
team_lambda=1.451
squad_xg_sum=1.4221
squad_xa_sum=1.0618
team_expected_assists=1.0833
team_xa_to_xg_ratio=0.7466
-
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.0626
goal_rate=0.0686
scorer_weight=0.0676
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0733
assist_rate=0.0749
provider_weight=0.0763
-
Ilias AkhomachF7300.110.0678%21.07.051.528FBref 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.0014, quality 0.535)market_value_eur=11100000
quality_factor=0.5353
boost_factor=1.0014
reference_quality=0.505
history_matches=28
history_shrink=0.1515
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0033)blend_weight=0.0033
history_matches=28
season_overlap_discount=1.0
per90_to_match_factor=0.8103
prior_reliability=0.0333
competition=La Liga
totalCross: 2.5731 -> 2.6072
totalShots: 1.6345 -> 1.6291
wasFouled: 1.7183 -> 1.7233
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Justin De Haas, César Tárrega', '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.9101, 'skill_edge': -0.0012, 'height_edge': -0.06, 'attacker_skill': 0.5353, 'defender_skill': 0.5379, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Justin De Haas', 'market_value': 7700000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5256}, {'player': 'César Tárrega', 'market_value': 9300000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5502}], 'xg_override': 0.107}
totalShots: 1.6326 -> 1.4858
shotOffTarget: 1.0423 -> 0.9486
onTargetScoringAttempt: 0.5903 -> 0.5372
goals: 0.187 -> 0.1702
expectedGoals: 0.1176 -> 0.107
bigChanceMissed: 0.0639 -> 0.0582
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_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 1.4221, xG scale 1.0203, xA scale 1.0203, team xA 1.08 = 0.75 x lambda)scoreline_reset=true
team_lambda=1.451
squad_xg_sum=1.4221
squad_xa_sum=1.0618
team_expected_assists=1.0833
team_xa_to_xg_ratio=0.7466
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 75.0)match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1034
goal_rate=0.1702
scorer_weight=0.1365
-
integer_assist_projectionTeam scoreline allocation: 1 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.134
assist_rate=0.2277
provider_weight=0.1799
-
Sergi CardonaD8600.030.01104%10.46.746.933FBref Prior D_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0000, quality 0.506)market_value_eur=8600000
quality_factor=0.5059
boost_factor=1.0
reference_quality=0.505
history_matches=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': 'Javier Guerra', '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 1.4221, xG scale 1.0203, xA scale 1.0203, team xA 1.08 = 0.75 x lambda)scoreline_reset=true
team_lambda=1.451
squad_xg_sum=1.4221
squad_xa_sum=1.0618
team_expected_assists=1.0833
team_xa_to_xg_ratio=0.7466
-
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=0
goal_probability=0.0252
goal_rate=0.0491
scorer_weight=0.0319
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1191
assist_rate=0.0095
provider_weight=0.1014
-
Renato VeigaD9000.020.0195%10.27.057.531FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0068, quality 0.710)market_value_eur=29000000
quality_factor=0.71
boost_factor=1.0068
reference_quality=0.505
history_matches=40
history_shrink=0.1111
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0144)blend_weight=0.0144
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=0.9983
prior_reliability=0.2
competition=La Liga
wonTackle: 0.5842 -> 0.5758
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Dani Raba', '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 1.4221, xG scale 1.0203, xA scale 1.0203, team xA 1.08 = 0.75 x lambda)scoreline_reset=true
team_lambda=1.451
squad_xg_sum=1.4221
squad_xa_sum=1.0618
team_expected_assists=1.0833
team_xa_to_xg_ratio=0.7466
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 78.0)match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0188
goal_rate=0.0
scorer_weight=0.0152
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0873
assist_rate=0.0917
provider_weight=0.0927
-
Juan FoythD8000.040.0264%10.37.054.213FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0001, quality 0.506)market_value_eur=8600000
quality_factor=0.5059
boost_factor=1.0001
reference_quality=0.505
history_matches=18
history_shrink=0.2174
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0283)blend_weight=0.0283
history_matches=18
season_overlap_discount=1.0
per90_to_match_factor=0.8936
prior_reliability=0.2
competition=La Liga
interceptionWon: 1.1638 -> 1.1898
totalShots: 0.4912 -> 0.5109
wonTackle: 0.954 -> 0.9691
fouls: 0.7488 -> 0.7361
wasFouled: 0.2827 -> 0.2915
onTargetScoringAttempt: 0.1157 -> 0.1208
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Dani Raba', '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.45 (squad xG sum 1.4221, xG scale 1.0203, xA scale 1.0203, team xA 1.08 = 0.75 x lambda)scoreline_reset=true
team_lambda=1.451
squad_xg_sum=1.4221
squad_xa_sum=1.0618
team_expected_assists=1.0833
team_xa_to_xg_ratio=0.7466
-
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.0397
goal_rate=0.0
scorer_weight=0.0324
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.043
assist_rate=0.0
provider_weight=0.0352
-
Péter GulácsiG9000.00-n/a0.07.133.811FBref Prior G_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost G_service raw output over 3 target models--
market_value_boostMarket-value quality scaling (boost 0.9899, quality 0.437)market_value_eur=970000
quality_factor=0.4374
boost_factor=0.9899
reference_quality=0.505
history_matches=5
history_shrink=0.5
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Javier Guerra, Dani Raba', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 0.919}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_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 1.4221, xG scale 1.0203, xA scale 1.0203, team xA 1.08 = 0.75 x lambda)scoreline_reset=true
team_lambda=1.451
squad_xg_sum=1.4221
squad_xa_sum=1.0618
team_expected_assists=1.0833
team_xa_to_xg_ratio=0.7466
shots_faced: 8.7 -> 8.5
expected_saves: 2.13 -> 2.08
high_pressure_saves: 0.74 -> 0.72
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 82.0)match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.5114
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.1097
-
Alexander FreemanD9000.020.01241%00.16.938.429XGBoost 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.0042, quality 0.566)market_value_eur=13800000
quality_factor=0.566
boost_factor=1.0042
reference_quality=0.505
history_matches=17
history_shrink=0.2273
-
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 Raba', '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 1.4221, xG scale 1.0203, xA scale 1.0203, team xA 1.08 = 0.75 x lambda)scoreline_reset=true
team_lambda=1.451
squad_xg_sum=1.4221
squad_xa_sum=1.0618
team_expected_assists=1.0833
team_xa_to_xg_ratio=0.7466
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 81.0)match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0225
goal_rate=0.0
scorer_weight=0.0182
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0482
assist_rate=0.0
provider_weight=0.0395
-
Team totals11.45167.0
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Luiz JúniorG4.8m12.9%Market-value substitute prior
Carlos RomeroD14.5m23.6%Market-value substitute prior
Santiago MouriñoD14.3m23.2%Market-value substitute prior
Carlos MaciáM23.3m70.3%Market-value substitute prior
Nathan-Dylan SalibaM22.5m52.2%Market-value substitute prior
Georges MikautadzeF26.7m36.3%Market-value substitute prior
Antagonist / tactical summary
Midfield is evenly contested — Javier Guerra vs Pape Gueye will be the pivotal duel. Total antagonist xG — Home: 0.64, Away: 1.23. Home danger zone: Left Wing vs Right Back — Flank Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Midfield — possession 49.2% / 50.8%, dominance ratio 0.47, key duel: Javier Guerra vs Pape Gueye
Javier Guerra xG 0.18Dani Raba xG 0.15Arnaut Danjuma xG 0.13Ayoze Pérez xG 0.29Alberto Moleiro xG 0.39Gerard Moreno xG 0.23

Summary

Antagonist matchup analysis for Valencia vs Villarreal. Most likely scoreline: 0-1. Lambdas derived from 6 home and 6 away individual player duels. Head-to-head: Valencia 2W-3D-5L vs Villarreal over 10 meetings.
4-2-3-1 creates structural superiority against 4-4-2. Home team should exploit wider spaces and numerical advantages in transition. Midfield is evenly contested — Javier Guerra vs Pape Gueye will be the pivotal duel. Total antagonist xG — Home: 0.64, Away: 1.23. Home danger zone: Left Wing vs Right Back — Flank Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.


Generated 2026-10-24 13:38:10 UTC · Soccer prediction reporting