Soccer predictions: actual data vs predicted data

Slate 20261017 · 9 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
Valencia vs Athletic Club
LaLiga
0-0Draw33.9% / 31.3% / 34.8%32.0%39.8%0.690.99 / 1.00-pending
Espanyol vs Atlético Madrid
LaLiga
1-2Atlético Madrid21.1% / 19.5% / 59.5%70.8%66.6%0.761.34 / 2.33-pending
Newcastle vs Aston Villa
Premier League
1-1Draw43.9% / 25.8% / 30.3%50.1%54.0%0.711.49 / 1.19-pending
Real Betis vs Barcelona
LaLiga
1-3Barcelona10.2% / 11.1% / 78.6%89.8%75.8%0.831.49 / 3.81-pending
Everton vs Chelsea
Premier League
1-2Chelsea35.0% / 21.4% / 43.7%72.7%71.8%0.721.78 / 2.00-pending
Villarreal vs Elche
LaLiga
1-0Villarreal61.9% / 21.5% / 16.6%54.1%50.9%0.771.95 / 0.90-pending
Fulham vs Hull
Premier League
1-1Draw42.4% / 28.0% / 29.6%41.5%47.2%0.71.30 / 1.04-pending
Man City vs Ipswich
Premier League
3-1Man City75.2% / 13.6% / 11.2%79.7%66.0%0.793.08 / 1.18-pending
Brentford vs Liverpool
Premier League
1-1Draw35.2% / 24.5% / 40.2%57.2%60.0%0.71.43 / 1.55-pending

Match detail

Valencia vs Athletic Club

LaLiga · 20261017 · 4-2-3-1 vs 4-2-3-1
Predicted 0-0Winner: DrawWinning H 1-0 (13.3%)Winning A 0-1 (13.6%)Confidence 0.69λ home/away 0.99 / 1.00Most-likely P 13.9%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset Tracing
Antagonist + XGBoost match analysis for Valencia vs Athletic Club. Player statistics regressed using position-specific XGBoost models (G, D, M, F) with 2026-2027 FBref priors. Micro-duels resolved across 4-2-3-1 vs 4-2-3-1 (duel lambdas: Home 1.008, Away 0.981). Final calibrated Poisson lambdas: Home 0.986, Away 1.002 (most likely score 0-0).
Home Starters 11/11 XGBoost (10 FBref) Away Starters 11/11 XGBoost (10 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.01 / 0.98 Final λ (H/A) 0.99 / 1.00
FBref Team Priors: Valencia (Gls/90: 0.3333333333333333, GA/90: 0.33 → E[λ]: 0.247) vs Athletic Club (Gls/90: 1.0, GA/90: 1.0 → E[λ]: 0.244) | 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

MetricValenciaAthletic Club
League position19.0010.00
Points per game0.941.35
Attack index0.790.92
Defense (concede) index0.881.08
Form multiplier0.981.02
Standing λ multiplier0.871.00

Lambda decomposition (how the goal rates were built)

StageValencia λAthletic Club λ
FBref Squad Prior E[λ] (weight 0.228)0.2470.244
Pre-competitive-floor0.9861.002
Pre-calibration (Micro-duels)1.0080.981
Final λ0.9861.002
competition calibration scale 1.0competition observed total goals 0.0quality gap applied Falsemismatch score pressure applied Falsecompetitive underdog floor applied Falsestage discount 1.0

Scoreline distribution & markets

Top 5 scorelinesP
0-013.9%
1-113.7%
0-113.6%
1-013.3%
0-26.9%
Home win33.9%
Draw31.3%
Away win34.8%
Over 2.532.0%
BTTS yes39.8%
Pregame fair line — favorite Athletic Club (34.8%), fair total 1.99, fair spread -0.02

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
Hugo DuroF7400.300.2053%20.76.656.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.0008, quality 0.531)market_value_eur=10700000
quality_factor=0.5306
boost_factor=1.0008
reference_quality=0.505
history_matches=44
history_shrink=0.102
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0044)blend_weight=0.0044
history_matches=44
season_overlap_discount=1.0
per90_to_match_factor=0.8213
prior_reliability=0.0667
competition=La Liga
totalShots: 1.5974 -> 1.5903
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Aymeric Laporte, Yeray Álvarez', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.192, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 0.9878, 'skill_edge': 0.0197, 'height_edge': -0.028, 'attacker_skill': 0.5306, 'defender_skill': 0.4869, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Aymeric Laporte', 'market_value': 8400000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5365}, {'player': 'Yeray Álvarez', 'market_value': 930000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.3222}
totalShots: 1.5942 -> 1.5748
shotOffTarget: 0.904 -> 0.893
onTargetScoringAttempt: 0.6902 -> 0.6818
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.99 (squad xG sum 1.0543, xG scale 0.9352, xA scale 1.0957, team xA 0.64 = 0.65 x lambda)scoreline_reset=true
team_lambda=0.986
squad_xg_sum=1.0543
squad_xa_sum=0.5849
team_expected_assists=0.6409
team_xa_to_xg_ratio=0.65
expected_goals: 0.3222 -> 0.3012
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 18 by projected rating, fifa_overall 77.0)match_squad_rank=18
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.2601
goal_rate=0.2591
scorer_weight=0.2501
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0283
assist_rate=0.1289
provider_weight=0.0359
-
Dani RabaF6300.130.02462%20.26.89.030FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9949, quality 0.437)market_value_eur=1000000
quality_factor=0.4374
boost_factor=0.9949
reference_quality=0.505
history_matches=15
history_shrink=0.25
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0011)blend_weight=0.0011
history_matches=15
season_overlap_discount=1.0
per90_to_match_factor=0.6983
prior_reliability=0.0067
competition=La Liga
totalCross: 1.0816 -> 1.088
totalShots: 1.5428 -> 1.5487
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Aymeric Laporte, Yeray Álvarez', '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.9496, 'skill_edge': -0.0223, 'height_edge': -0.012, 'attacker_skill': 0.4374, 'defender_skill': 0.4869, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Aymeric Laporte', 'market_value': 8400000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5365}, {'player': 'Yeray Álvarez', 'market_value': 930000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.1413}
totalShots: 1.5487 -> 1.4706
shotOffTarget: 0.9485 -> 0.9007
onTargetScoringAttempt: 0.5937 -> 0.5638
bigChanceMissed: 0.3122 -> 0.2965
expectedGoalsOnTarget: 0.2863 -> 0.2719
goals: 0.1807 -> 0.1716
expectedGoals: 0.1488 -> 0.1413
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.99 (squad xG sum 1.0543, xG scale 0.9352, xA scale 1.0957, team xA 0.64 = 0.65 x lambda)scoreline_reset=true
team_lambda=0.986
squad_xg_sum=1.0543
squad_xa_sum=0.5849
team_expected_assists=0.6409
team_xa_to_xg_ratio=0.65
expected_goals: 0.1413 -> 0.1321
expected_assists: 0.0658 -> 0.0721
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.1237
goal_rate=0.1716
scorer_weight=0.153
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0696
assist_rate=0.1915
provider_weight=0.0901
-
Javier GuerraM8200.160.1053%21.16.958.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.0055, quality 0.686)market_value_eur=26000000
quality_factor=0.6858
boost_factor=1.0055
reference_quality=0.505
history_matches=44
history_shrink=0.102
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0119)blend_weight=0.0119
history_matches=44
season_overlap_discount=1.0
per90_to_match_factor=0.9077
prior_reliability=0.18
competition=La Liga
totalShots: 1.8708 -> 1.8607
totalCross: 1.615 -> 1.6238
onTargetScoringAttempt: 0.6002 -> 0.593
fouls: 0.5468 -> 0.5403
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Jesús Areso', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.581, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.1485, 'skill_edge': 0.085, 'height_edge': 0.016, 'attacker_skill': 0.6858, 'defender_skill': 0.497, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Jesús Areso', 'market_value': 5500000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.497}], 'xg_override': 0.1689}
aerialWon: 0.6784 -> 1.2
totalShots: 1.8635 -> 2.1403
shotOffTarget: 1.2705 -> 1.4592
onTargetScoringAttempt: 0.593 -> 0.6811
bigChanceMissed: 0.1913 -> 0.2197
goals: 0.1787 -> 0.2052
expectedGoals: 0.1471 -> 0.1689
expectedGoalsOnTarget: 0.0816 -> 0.0937
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.99 (squad xG sum 1.0543, xG scale 0.9352, xA scale 1.0957, team xA 0.64 = 0.65 x lambda)scoreline_reset=true
team_lambda=0.986
squad_xg_sum=1.0543
squad_xa_sum=0.5849
team_expected_assists=0.6409
team_xa_to_xg_ratio=0.65
expected_goals: 0.1689 -> 0.158
expected_assists: 0.1191 -> 0.1305
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 82.0)match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.1462
goal_rate=0.2052
scorer_weight=0.1842
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.1223
assist_rate=0.1203
provider_weight=0.1314
-
Guido RodríguezM8500.050.0434%10.67.058.727FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 0.9972, quality 0.445)market_value_eur=3600000
quality_factor=0.4449
boost_factor=0.9972
reference_quality=0.505
history_matches=27
history_shrink=0.1562
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0135)blend_weight=0.0135
history_matches=27
season_overlap_discount=1.0
per90_to_match_factor=0.9402
prior_reliability=0.1333
competition=La Liga
interceptionWon: 1.1908 -> 1.2065
wonTackle: 1.988 -> 1.9802
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Iñigo Ruiz de Galarreta', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.471, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0748, 'skill_edge': 0.0069, 'height_edge': 0.044, 'attacker_skill': 0.4527, 'defender_skill': 0.4374, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Iñigo Ruiz de Galarreta', 'market_value': 1800000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4374}], 'xg_override': 0.0571}
aerialWon: 1.1431 -> 1.2
totalShots: 0.7055 -> 0.7583
shotOffTarget: 0.5287 -> 0.5682
onTargetScoringAttempt: 0.1768 -> 0.19
goals: 0.0692 -> 0.0744
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.99 (squad xG sum 1.0543, xG scale 0.9352, xA scale 1.0957, team xA 0.64 = 0.65 x lambda)scoreline_reset=true
team_lambda=0.986
squad_xg_sum=1.0543
squad_xa_sum=0.5849
team_expected_assists=0.6409
team_xa_to_xg_ratio=0.65
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 78.0)match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.052
goal_rate=0.0744
scorer_weight=0.062
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0385
assist_rate=0.0549
provider_weight=0.048
-
PepeluM8300.030.0857%10.46.950.839XGBoost 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=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': 'Iñigo Ruiz de Galarreta', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.495, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.1099, 'skill_edge': 0.0307, 'height_edge': 0.044, 'attacker_skill': 0.5057, 'defender_skill': 0.4374, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Iñigo Ruiz de Galarreta', 'market_value': 1800000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4374}], 'xg_override': 0.0368}
aerialWon: 0.4863 -> 1.2
totalShots: 0.526 -> 0.5838
shotOffTarget: 0.4094 -> 0.4544
onTargetScoringAttempt: 0.1166 -> 0.1294
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.99 (squad xG sum 1.0543, xG scale 0.9352, xA scale 1.0957, team xA 0.64 = 0.65 x lambda)scoreline_reset=true
team_lambda=0.986
squad_xg_sum=1.0543
squad_xa_sum=0.5849
team_expected_assists=0.6409
team_xa_to_xg_ratio=0.65
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 76.0)match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0338
goal_rate=0.0437
scorer_weight=0.0371
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0422
assist_rate=0.0547
provider_weight=0.0505
-
José Luis GayàD8200.010.0235%10.36.754.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.9982, quality 0.454)market_value_eur=4300000
quality_factor=0.4535
boost_factor=0.9982
reference_quality=0.505
history_matches=38
history_shrink=0.1163
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0040)blend_weight=0.004
history_matches=38
season_overlap_discount=1.0
per90_to_match_factor=0.908
prior_reliability=0.0533
competition=La Liga
wasFouled: 0.7249 -> 0.7311
totalCross: 2.4743 -> 2.4689
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Álex Berenguer', '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.99 (squad xG sum 1.0543, xG scale 0.9352, xA scale 1.0957, team xA 0.64 = 0.65 x lambda)scoreline_reset=true
team_lambda=0.986
squad_xg_sum=1.0543
squad_xa_sum=0.5849
team_expected_assists=0.6409
team_xa_to_xg_ratio=0.65
expected_assists: 0.0578 -> 0.0633
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 80.0)match_squad_rank=12
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0137
goal_rate=0.0063
scorer_weight=0.012
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0613
assist_rate=0.0433
provider_weight=0.0548
-
Justin De HaasD8300.000.00101%00.16.834.48FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9983, quality 0.495)market_value_eur=7700000
quality_factor=0.4951
boost_factor=0.9983
reference_quality=0.505
history_matches=4
history_shrink=0.5556
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0120)blend_weight=0.012
history_matches=4
season_overlap_discount=1.0
per90_to_match_factor=0.9223
prior_reliability=0.0333
competition=La Liga
fouls: 0.685 -> 0.6989
interceptionWon: 0.9194 -> 0.9083
wonTackle: 0.6472 -> 0.6394
totalShots: 0.444 -> 0.4387
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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ñaki Williams', '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.99 (squad xG sum 1.0543, xG scale 0.9352, xA scale 1.0957, team xA 0.64 = 0.65 x lambda)scoreline_reset=true
team_lambda=0.986
squad_xg_sum=1.0543
squad_xa_sum=0.5849
team_expected_assists=0.6409
team_xa_to_xg_ratio=0.65
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 76.0)match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0044
goal_rate=0.0
scorer_weight=0.004
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0173
assist_rate=0.3095
provider_weight=0.0219
-
Mouctar DiakhabyD7300.030.01180%00.26.841.29FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9944, quality 0.437)market_value_eur=1500000
quality_factor=0.4374
boost_factor=0.9944
reference_quality=0.505
history_matches=13
history_shrink=0.2778
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0301)blend_weight=0.0301
history_matches=13
season_overlap_discount=1.0
per90_to_match_factor=0.8106
prior_reliability=0.1667
competition=La Liga
interceptionWon: 1.0644 -> 1.0812
wonTackle: 0.6524 -> 0.6425
fouls: 0.6461 -> 0.6364
totalShots: 0.481 -> 0.486
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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ñaki Williams', '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.99 (squad xG sum 1.0543, xG scale 0.9352, xA scale 1.0957, team xA 0.64 = 0.65 x lambda)scoreline_reset=true
team_lambda=0.986
squad_xg_sum=1.0543
squad_xa_sum=0.5849
team_expected_assists=0.6409
team_xa_to_xg_ratio=0.65
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 76.0)match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0304
goal_rate=0.0342
scorer_weight=0.0313
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0081
assist_rate=0.0
provider_weight=0.0071
-
Pablo MaffeoD8200.010.01ok00.26.658.329FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9976, quality 0.437)market_value_eur=2400000
quality_factor=0.4374
boost_factor=0.9976
reference_quality=0.505
history_matches=38
history_shrink=0.1163
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0040)blend_weight=0.004
history_matches=38
season_overlap_discount=1.0
per90_to_match_factor=0.9117
prior_reliability=0.0533
competition=La Liga
totalCross: 3.1888 -> 3.1989
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Peio Canales', '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.99 (squad xG sum 1.0543, xG scale 0.9352, xA scale 1.0957, team xA 0.64 = 0.65 x lambda)scoreline_reset=true
team_lambda=0.986
squad_xg_sum=1.0543
squad_xa_sum=0.5849
team_expected_assists=0.6409
team_xa_to_xg_ratio=0.65
expected_assists: 0.0643 -> 0.0705
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 17 by projected rating, fifa_overall 82.0)match_squad_rank=17
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0121
goal_rate=0.0012
scorer_weight=0.0099
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0681
assist_rate=0.0876
provider_weight=0.0849
-
Stole DimitrievskiG9000.00-n/a0.06.963.131FBref 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.9969, quality 0.437)market_value_eur=2100000
quality_factor=0.4374
boost_factor=0.9969
reference_quality=0.505
history_matches=28
history_shrink=0.1515
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0197)blend_weight=0.0197
history_matches=28
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.2
competition=La Liga
saves: 3.1346 -> 3.1254
wasFouled: 0.3306 -> 0.3241
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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ñaki Williams, Robert Navarro', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 0.9807}
-
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.99 (squad xG sum 1.0543, xG scale 0.9352, xA scale 1.0957, team xA 0.64 = 0.65 x lambda)scoreline_reset=true
team_lambda=0.986
squad_xg_sum=1.0543
squad_xa_sum=0.5849
team_expected_assists=0.6409
team_xa_to_xg_ratio=0.65
shots_faced: 9.3 -> 9.5
expected_saves: 2.27 -> 2.32
high_pressure_saves: 0.78 -> 0.8
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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.0105
-
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.6588
-
David OtorbiF8200.140.04240%10.46.932.819FBref 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.9920, quality 0.441)market_value_eur=3300000
quality_factor=0.4412
boost_factor=0.992
reference_quality=0.505
history_matches=7
history_shrink=0.4167
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0072)blend_weight=0.0072
history_matches=7
season_overlap_discount=1.0
per90_to_match_factor=0.9087
prior_reliability=0.0267
competition=La Liga
totalCross: 1.9873 -> 2.0715
wasFouled: 0.3551 -> 0.369
wonTackle: 0.646 -> 0.6578
totalShots: 1.3298 -> 1.3202
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Aymeric Laporte, Yeray Álvarez', '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.9286, 'skill_edge': -0.0206, 'height_edge': -0.028, 'attacker_skill': 0.4412, 'defender_skill': 0.4869, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Aymeric Laporte', 'market_value': 8400000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5365}, {'player': 'Yeray Álvarez', 'market_value': 930000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.1498}
totalShots: 1.3266 -> 1.2319
shotOffTarget: 0.8815 -> 0.8186
onTargetScoringAttempt: 0.4451 -> 0.4133
goals: 0.1964 -> 0.1824
expectedGoals: 0.1613 -> 0.1498
expectedGoalsOnTarget: 0.1157 -> 0.1074
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.99 (squad xG sum 1.0543, xG scale 0.9352, xA scale 1.0957, team xA 0.64 = 0.65 x lambda)scoreline_reset=true
team_lambda=0.986
squad_xg_sum=1.0543
squad_xa_sum=0.5849
team_expected_assists=0.6409
team_xa_to_xg_ratio=0.65
expected_goals: 0.1498 -> 0.1401
expected_assists: 0.0894 -> 0.098
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 64.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.1307
goal_rate=0.1824
scorer_weight=0.163
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0934
assist_rate=0.0
provider_weight=0.0784
-
Team totals00.99126.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
César TárregaD13.9m22.3%Market-value substitute prior
Harvey ElliottM22.8m53.5%Market-value substitute prior
Filip UgrinićM29.8m43.8%Market-value substitute prior
Diego LópezF25.6m57.3%Market-value substitute prior

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Robert NavarroF7300.180.1247%20.87.050.538XGBoost F_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9996, quality 0.493)market_value_eur=7500000
quality_factor=0.4927
boost_factor=0.9996
reference_quality=0.505
history_matches=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': 'Justin De Haas, Mouctar Diakhaby', '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.9251, 'skill_edge': 0.005, 'height_edge': -0.056, 'attacker_skill': 0.4927, 'defender_skill': 0.4815, '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': 'Mouctar Diakhaby', 'market_value': 1500000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.187}
totalShots: 1.9585 -> 1.8119
shotOffTarget: 1.305 -> 1.2073
onTargetScoringAttempt: 0.6535 -> 0.6046
expectedGoalsOnTarget: 0.3527 -> 0.3263
goals: 0.2738 -> 0.2533
expectedGoals: 0.2021 -> 0.187
bigChanceMissed: 0.1668 -> 0.1543
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.00 (squad xG sum 1.0407, xG scale 0.9628, xA scale 0.8417, team xA 0.80 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.002
squad_xg_sum=1.0407
squad_xa_sum=0.9524
team_expected_assists=0.8016
team_xa_to_xg_ratio=0.8
expected_goals: 0.187 -> 0.1801
expected_assists: 0.1583 -> 0.1332
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.1648
goal_rate=0.2533
scorer_weight=0.2251
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.1247
assist_rate=0.0
provider_weight=0.1066
-
Iñigo Ruiz de GalarretaM7200.050.02128%10.67.155.529FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 0.9977, quality 0.437)market_value_eur=1800000
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.795
prior_reliability=0.0533
competition=La Liga
fouls: 1.7392 -> 1.748
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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': 'CDM vs CDM', 'duel_win_rate': 0.369, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9252, 'skill_edge': -0.0069, 'height_edge': -0.044, 'attacker_skill': 0.4374, 'defender_skill': 0.4527, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Guido Rodríguez', 'market_value': 3600000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4527}], 'xg_override': 0.0474}
aerialWon: 0.984 -> 0.9
totalShots: 0.9908 -> 0.9167
shotOffTarget: 0.7397 -> 0.6844
onTargetScoringAttempt: 0.2501 -> 0.2314
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.00 (squad xG sum 1.0407, xG scale 0.9628, xA scale 0.8417, team xA 0.80 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.002
squad_xg_sum=1.0407
squad_xa_sum=0.9524
team_expected_assists=0.8016
team_xa_to_xg_ratio=0.8
expected_assists: 0.1648 -> 0.1387
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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0446
goal_rate=0.0464
scorer_weight=0.0451
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.1295
assist_rate=0.1
provider_weight=0.111
-
Beñat GerenabarrenaM8800.030.00807%00.16.832.910FBref Prior M_service
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.9939, quality 0.465)market_value_eur=5200000
quality_factor=0.4646
boost_factor=0.9939
reference_quality=0.505
history_matches=5
history_shrink=0.5
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0455)blend_weight=0.0455
history_matches=5
season_overlap_discount=1.0
per90_to_match_factor=0.9752
prior_reliability=0.14
competition=La Liga
totalCross: 1.2566 -> 1.3262
wasFouled: 1.1854 -> 1.216
interceptionWon: 2.5892 -> 2.6193
fouls: 2.656 -> 2.6831
wonTackle: 1.8674 -> 1.8881
onTargetScoringAttempt: 0.1349 -> 0.1496
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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': 'CDM vs CDM', 'duel_win_rate': 0.382, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9447, 'skill_edge': 0.0104, 'height_edge': -0.048, 'attacker_skill': 0.4759, 'defender_skill': 0.4527, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Guido Rodríguez', 'market_value': 3600000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4527}], 'xg_override': 0.0294}
aerialWon: 0.9541 -> 0.9
totalShots: 0.522 -> 0.4931
shotOffTarget: 0.3724 -> 0.3518
onTargetScoringAttempt: 0.1496 -> 0.1413
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.00 (squad xG sum 1.0407, xG scale 0.9628, xA scale 0.8417, team xA 0.80 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.002
squad_xg_sum=1.0407
squad_xa_sum=0.9524
team_expected_assists=0.8016
team_xa_to_xg_ratio=0.8
expected_assists: 0.0476 -> 0.0401
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.0279
goal_rate=0.0383
scorer_weight=0.0315
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0393
assist_rate=0.0699
provider_weight=0.0493
-
Yuri BerchicheD8200.040.0289%11.07.155.826FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9976, quality 0.437)market_value_eur=910000
quality_factor=0.4374
boost_factor=0.9976
reference_quality=0.505
history_matches=37
history_shrink=0.119
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0057)blend_weight=0.0057
history_matches=37
season_overlap_discount=1.0
per90_to_match_factor=0.9063
prior_reliability=0.0733
competition=La Liga
totalShots: 1.252 -> 1.2588
wonTackle: 1.0452 -> 1.0393
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.00 (squad xG sum 1.0407, xG scale 0.9628, xA scale 0.8417, team xA 0.80 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.002
squad_xg_sum=1.0407
squad_xa_sum=0.9524
team_expected_assists=0.8016
team_xa_to_xg_ratio=0.8
expected_assists: 0.1701 -> 0.1432
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 79.0)match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0395
goal_rate=0.0
scorer_weight=0.0322
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.1334
assist_rate=0.1756
provider_weight=0.1468
-
Aymeric LaporteD8700.060.07ok00.57.054.725FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9999, quality 0.503)market_value_eur=8400000
quality_factor=0.5035
boost_factor=0.9999
reference_quality=0.505
history_matches=31
history_shrink=0.1389
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0144)blend_weight=0.0144
history_matches=31
season_overlap_discount=1.0
per90_to_match_factor=0.9676
prior_reliability=0.16
competition=La Liga
wonTackle: 0.8362 -> 0.8416
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Hugo Duro', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.00 (squad xG sum 1.0407, xG scale 0.9628, xA scale 0.8417, team xA 0.80 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.002
squad_xg_sum=1.0407
squad_xa_sum=0.9524
team_expected_assists=0.8016
team_xa_to_xg_ratio=0.8
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 84.0)match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0613
goal_rate=0.0
scorer_weight=0.0506
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.011
assist_rate=0.0041
provider_weight=0.0095
-
Yeray ÁlvarezD7900.030.0188%10.26.838.419FBref Prior D_service
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.9937, quality 0.437)market_value_eur=930000
quality_factor=0.4374
boost_factor=0.9937
reference_quality=0.505
history_matches=11
history_shrink=0.3125
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0271)blend_weight=0.0271
history_matches=11
season_overlap_discount=1.0
per90_to_match_factor=0.8828
prior_reliability=0.1333
competition=La Liga
totalCross: 0.6179 -> 0.649
totalShots: 0.5172 -> 0.539
wonTackle: 0.6709 -> 0.6527
wasFouled: 0.809 -> 0.799
goalAssist: 0.114 -> 0.1229
interceptionWon: 1.0644 -> 1.0714
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Hugo Duro', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.00 (squad xG sum 1.0407, xG scale 0.9628, xA scale 0.8417, team xA 0.80 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.002
squad_xg_sum=1.0407
squad_xa_sum=0.9524
team_expected_assists=0.8016
team_xa_to_xg_ratio=0.8
-
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_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0267
goal_rate=0.0
scorer_weight=0.0217
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0138
assist_rate=0.1229
provider_weight=0.0174
-
Jesús AresoD7900.010.0177%00.16.736.429FBref Prior D_service
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.468)market_value_eur=5500000
quality_factor=0.4683
boost_factor=0.9985
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.8791
prior_reliability=0.1067
competition=La Liga
wasFouled: 0.5308 -> 0.5416
interceptionWon: 1.1785 -> 1.1724
wonTackle: 1.0826 -> 1.0775
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.00 (squad xG sum 1.0407, xG scale 0.9628, xA scale 0.8417, team xA 0.80 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.002
squad_xg_sum=1.0407
squad_xa_sum=0.9524
team_expected_assists=0.8016
team_xa_to_xg_ratio=0.8
expected_assists: 0.0499 -> 0.042
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 17 by projected rating, fifa_overall 80.0)match_squad_rank=17
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0106
goal_rate=0.0
scorer_weight=0.0088
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0411
assist_rate=0.0223
provider_weight=0.0336
-
Unai SimónG9000.00-n/a0.07.057.330FBref Prior G_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost G_service raw output over 3 target models--
market_value_boostMarket-value quality scaling (boost 1.0042, quality 0.641)market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.0042
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=1.0
prior_reliability=0.2
competition=La Liga
saves: 2.9236 -> 2.9382
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Hugo Duro, Javier Guerra', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.0083}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.00 (squad xG sum 1.0407, xG scale 0.9628, xA scale 0.8417, team xA 0.80 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.002
squad_xg_sum=1.0407
squad_xa_sum=0.9524
team_expected_assists=0.8016
team_xa_to_xg_ratio=0.8
shots_faced: 9.6 -> 9.4
expected_saves: 2.35 -> 2.3
high_pressure_saves: 0.81 -> 0.79
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.0881
-
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.7312
-
Peio CanalesM8800.090.02244%10.56.933.28FBref Prior M_service
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.0023, quality 0.519)market_value_eur=9700000
quality_factor=0.5189
boost_factor=1.0023
reference_quality=0.505
history_matches=4
history_shrink=0.5556
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0554)blend_weight=0.0554
history_matches=4
season_overlap_discount=1.0
per90_to_match_factor=0.9778
prior_reliability=0.1533
competition=La Liga
wasFouled: 1.1142 -> 1.1467
totalCross: 1.1554 -> 1.1856
onTargetScoringAttempt: 0.3554 -> 0.3828
wonTackle: 0.4545 -> 0.4764
totalShots: 1.0404 -> 1.0537
fouls: 0.1931 -> 0.2059
interceptionWon: 0.2272 -> 0.2382
goals: 0.0954 -> 0.0901
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.522, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0622, 'skill_edge': 0.0343, 'height_edge': 0.008, 'attacker_skill': 0.5189, 'defender_skill': 0.4428, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Pablo Maffeo', 'market_value': 2400000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.4428}], 'xg_override': 0.0886}
aerialWon: 0.3145 -> 0.9
totalShots: 1.0678 -> 1.1342
shotOffTarget: 0.685 -> 0.7276
onTargetScoringAttempt: 0.3828 -> 0.4066
goals: 0.0901 -> 0.0957
expectedGoals: 0.0834 -> 0.0886
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.00 (squad xG sum 1.0407, xG scale 0.9628, xA scale 0.8417, team xA 0.80 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.002
squad_xg_sum=1.0407
squad_xa_sum=0.9524
team_expected_assists=0.8016
team_xa_to_xg_ratio=0.8
expected_assists: 0.1047 -> 0.0881
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.0818
goal_rate=0.0957
scorer_weight=0.0897
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0843
assist_rate=0.0824
provider_weight=0.0754
-
Álex BerenguerF8300.130.0769%11.06.850.730FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9981, quality 0.451)market_value_eur=4099999
quality_factor=0.4511
boost_factor=0.9981
reference_quality=0.505
history_matches=37
history_shrink=0.119
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0119)blend_weight=0.0119
history_matches=37
season_overlap_discount=1.0
per90_to_match_factor=0.9273
prior_reliability=0.1533
competition=La Liga
totalShots: 1.4308 -> 1.4373
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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, Mouctar Diakhaby', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 0.8917, 'skill_edge': -0.0137, 'height_edge': -0.06, 'attacker_skill': 0.4511, 'defender_skill': 0.4815, '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': 'Mouctar Diakhaby', 'market_value': 1500000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.1309}
totalShots: 1.4373 -> 1.2816
shotOffTarget: 0.9185 -> 0.819
onTargetScoringAttempt: 0.5156 -> 0.4598
expectedGoalsOnTarget: 0.2224 -> 0.1983
goals: 0.1775 -> 0.1583
bigChanceMissed: 0.1489 -> 0.1328
expectedGoals: 0.1468 -> 0.1309
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.00 (squad xG sum 1.0407, xG scale 0.9628, xA scale 0.8417, team xA 0.80 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.002
squad_xg_sum=1.0407
squad_xa_sum=0.9524
team_expected_assists=0.8016
team_xa_to_xg_ratio=0.8
expected_assists: 0.1104 -> 0.0929
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 81.0)match_squad_rank=12
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.1184
goal_rate=0.1583
scorer_weight=0.1451
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0887
assist_rate=0.0223
provider_weight=0.0743
-
Iñaki WilliamsF7100.340.2072%21.56.852.434FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9995, quality 0.490)market_value_eur=7300000
quality_factor=0.4903
boost_factor=0.9995
reference_quality=0.505
history_matches=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.7911
prior_reliability=0.1333
competition=La Liga
onTargetScoringAttempt: 0.9339 -> 0.9408
totalShots: 2.2335 -> 2.2266
fouls: 1.0307 -> 1.024
wasFouled: 0.6691 -> 0.6746
totalCross: 1.2806 -> 1.2754
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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, Mouctar Diakhaby', '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.9705, 'skill_edge': 0.0039, 'height_edge': -0.024, 'attacker_skill': 0.4903, 'defender_skill': 0.4815, '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': 'Mouctar Diakhaby', 'market_value': 1500000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.3484}
totalShots: 2.2403 -> 2.1742
shotOffTarget: 1.2995 -> 1.2612
onTargetScoringAttempt: 0.9408 -> 0.913
bigChanceMissed: 0.4186 -> 0.4063
goals: 0.398 -> 0.3863
expectedGoals: 0.359 -> 0.3484
expectedGoalsOnTarget: 0.2817 -> 0.2734
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.00 (squad xG sum 1.0407, xG scale 0.9628, xA scale 0.8417, team xA 0.80 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.002
squad_xg_sum=1.0407
squad_xa_sum=0.9524
team_expected_assists=0.8016
team_xa_to_xg_ratio=0.8
expected_goals: 0.3484 -> 0.3355
expected_assists: 0.0628 -> 0.0529
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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.285
goal_rate=0.3863
scorer_weight=0.3674
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0515
assist_rate=0.3586
provider_weight=0.0661
-
Team totals01.00106.9
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Alex PadillaG4.4m10.9%Market-value substitute prior
Dani VivianD14.3m33.0%Market-value substitute prior
Aitor ParedesD13.8m22.1%Market-value substitute prior
Mikel JauregizarM24.7m52.3%Market-value substitute prior
Oihan SancetM22.9m32.6%Market-value substitute prior
Nico WilliamsF25.8m62.0%Market-value substitute prior
Antagonist / tactical summary
Midfield is evenly contested — Javier Guerra vs Peio Canales will be the pivotal duel. Total antagonist xG — Home: 0.88, Away: 0.83. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Midfield — possession 50.7% / 49.3%, dominance ratio 0.53, key duel: Javier Guerra vs Peio Canales
Javier Guerra xG 0.17Hugo Duro xG 0.32Dani Raba xG 0.14Peio Canales xG 0.09Iñaki Williams xG 0.35Robert Navarro xG 0.19

Summary

Antagonist matchup analysis for Valencia vs Athletic Club. Most likely scoreline: 0-0. Lambdas derived from 6 home and 6 away individual player duels. Head-to-head: Valencia 3W-1D-6L vs Athletic Club 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 — Javier Guerra vs Peio Canales will be the pivotal duel. Total antagonist xG — Home: 0.88, Away: 0.83. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.

Espanyol vs Atlético Madrid

LaLiga · 20261017 · 4-2-3-1 vs 4-2-3-1
Predicted 1-2Winner: Atlético MadridConfidence 0.76λ home/away 1.34 / 2.33Most-likely P 9.3%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset Tracing
Antagonist + XGBoost match analysis for Espanyol vs Atlético Madrid. Player statistics regressed using position-specific XGBoost models (G, D, M, F) with 2026-2027 FBref priors. Micro-duels resolved across 4-2-3-1 vs 4-2-3-1 (duel lambdas: Home 1.472, Away 2.175). Final calibrated Poisson lambdas: Home 1.337, Away 2.325 (most likely score 1-2).
Home Starters 11/11 XGBoost (7 FBref) Away Starters 11/11 XGBoost (8 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.47 / 2.17 Final λ (H/A) 1.34 / 2.33
FBref Team Priors: Espanyol (Gls/90: 1.6666666666666667, GA/90: 1.67 → E[λ]: 2.877) vs Atlético Madrid (Gls/90: 2.333333333333333, GA/90: 2.33 → E[λ]: 2.886) | Blend Weight: 0.228
Modeling Pipeline Stages (5 layers)
  1. 1. XGBoost player regressions for volume & event rates with market-value quality scaling
  2. 2. Multi-source prior blending (FBref 2026-2027 tables + Sofascore season history)
  3. 3. Antagonist formation duel matrix resolving 1v1 and zonal matchups
  4. 4. Team-level prior calibration (FBref possession and attack/defense efficiencies)
  5. 5. Bivariate Poisson matrix with Dixon-Coles low-score correction

Standing & form context

MetricEspanyolAtlético Madrid
League position12.002.00
Points per game1.161.94
Attack index0.961.18
Defense (concede) index0.860.96
Form multiplier0.961.04
Standing λ multiplier0.921.06

Lambda decomposition (how the goal rates were built)

StageEspanyol λAtlético Madrid λ
FBref Squad Prior E[λ] (weight 0.228)2.8772.886
Pre-mismatch1.4402.221
Pre-competitive-floor1.4022.437
Pre-calibration (Micro-duels)1.4722.175
Final λ1.3372.325
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-29.3%
1-18.0%
1-37.2%
0-26.9%
2-26.2%
Home win21.1%
Draw19.5%
Away win59.5%
Over 2.570.8%
BTTS yes66.6%
Pregame fair line — favorite Atlético Madrid (59.5%), fair total 3.66, fair spread -0.99

Projected players vs season baseline

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

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Roberto FernándezF8410.470.2772%21.46.860.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.0040, quality 0.641)market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.004
reference_quality=0.505
history_matches=46
history_shrink=0.098
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0123)blend_weight=0.0123
history_matches=46
season_overlap_discount=1.0
per90_to_match_factor=0.9283
prior_reliability=0.1933
competition=La Liga
totalOffside: 1.2053 -> 1.1905
fouls: 1.6304 -> 1.6221
goals: 0.4367 -> 0.4432
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Robin Le Normand, Cristian Romero', '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.9341, 'skill_edge': -0.0448, 'height_edge': 0.0, 'attacker_skill': 0.6408, 'defender_skill': 0.7403, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Robin Le Normand', 'market_value': 17200000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6589}, {'player': 'Cristian Romero', 'market_value': 37000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8218}], 'xg_override': 0.3744}
totalShots: 2.3003 -> 2.1487
onTargetScoringAttempt: 1.1595 -> 1.0831
shotOffTarget: 1.1408 -> 1.0656
bigChanceMissed: 0.727 -> 0.6791
expectedGoalsOnTarget: 0.4821 -> 0.4503
goals: 0.4432 -> 0.414
expectedGoals: 0.4008 -> 0.3744
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.34 (squad xG sum 1.0719, xG scale 1.2473, xA scale 1.1232, team xA 1.07 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.337
squad_xg_sum=1.0719
squad_xa_sum=0.9523
team_expected_assists=1.0696
team_xa_to_xg_ratio=0.8
expected_goals: 0.3744 -> 0.467
expected_assists: 0.0423 -> 0.0475
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 74.0)match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.3731
goal_rate=0.414
scorer_weight=0.5106
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0464
assist_rate=0.0303
provider_weight=0.0413
-
Bryan ZaragozaF7600.120.13ok11.17.157.414XGBoost 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=24
history_shrink=0.1724
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Robin Le Normand, Cristian Romero', '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.748, 'skill_edge': -0.1115, 'height_edge': -0.06, 'attacker_skill': 0.4927, 'defender_skill': 0.7403, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Robin Le Normand', 'market_value': 17200000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6589}, {'player': 'Cristian Romero', 'market_value': 37000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8218}], 'xg_override': 0.0969}
totalShots: 1.6283 -> 1.218
shotOffTarget: 1.0928 -> 0.8174
onTargetScoringAttempt: 0.5354 -> 0.4005
expectedGoalsOnTarget: 0.2317 -> 0.1733
goals: 0.1711 -> 0.128
expectedGoals: 0.1295 -> 0.0969
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.34 (squad xG sum 1.0719, xG scale 1.2473, xA scale 1.1232, team xA 1.07 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.337
squad_xg_sum=1.0719
squad_xa_sum=0.9523
team_expected_assists=1.0696
team_xa_to_xg_ratio=0.8
expected_goals: 0.0969 -> 0.1209
expected_assists: 0.1507 -> 0.1694
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 77.0)match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1139
goal_rate=0.128
scorer_weight=0.1465
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1558
assist_rate=0.0527
provider_weight=0.1355
-
Javier HernándezM7800.150.07107%21.06.849.612FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 0.9970, quality 0.479)market_value_eur=6400000
quality_factor=0.4793
boost_factor=0.997
reference_quality=0.505
history_matches=8
history_shrink=0.3846
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0417)blend_weight=0.0417
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=0.8669
prior_reliability=0.1667
competition=La Liga
totalCross: 2.0181 -> 1.9484
fouls: 1.8982 -> 1.9347
wasFouled: 1.6031 -> 1.6374
goalAssist: 0.2186 -> 0.2528
totalShots: 1.7569 -> 1.7274
onTargetScoringAttempt: 0.6749 -> 0.6612
goals: 0.189 -> 0.1811
interceptionWon: 0.1262 -> 0.1209
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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.26, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.7646, 'skill_edge': -0.1041, 'height_edge': -0.056, 'attacker_skill': 0.4793, '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.1203}
aerialWon: 0.2056 -> 0.9
totalShots: 1.7431 -> 1.3328
shotOffTarget: 1.0819 -> 0.8272
onTargetScoringAttempt: 0.6612 -> 0.5056
goals: 0.1811 -> 0.1385
expectedGoals: 0.1574 -> 0.1203
expectedGoalsOnTarget: 0.1304 -> 0.0997
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.34 (squad xG sum 1.0719, xG scale 1.2473, xA scale 1.1232, team xA 1.07 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.337
squad_xg_sum=1.0719
squad_xa_sum=0.9523
team_expected_assists=1.0696
team_xa_to_xg_ratio=0.8
expected_goals: 0.1203 -> 0.15
expected_assists: 0.1375 -> 0.1544
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 86.0)match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_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.1393
goal_rate=0.1385
scorer_weight=0.166
-
integer_assist_projectionTeam scoreline allocation: 1 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.1431
assist_rate=0.2528
provider_weight=0.193
-
Tyrhys DolanF7900.110.05123%10.76.754.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.0008, quality 0.532)market_value_eur=10800000
quality_factor=0.5318
boost_factor=1.0008
reference_quality=0.505
history_matches=43
history_shrink=0.1042
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0126)blend_weight=0.0126
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=0.8801
prior_reliability=0.1867
competition=La Liga
interceptionWon: 0.8672 -> 0.8761
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Robin Le Normand, Cristian Romero', '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.7739, 'skill_edge': -0.0938, 'height_edge': -0.06, 'attacker_skill': 0.5318, 'defender_skill': 0.7403, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Robin Le Normand', 'market_value': 17200000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6589}, {'player': 'Cristian Romero', 'market_value': 37000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8218}], 'xg_override': 0.0895}
totalShots: 1.2703 -> 0.9831
shotOffTarget: 0.8314 -> 0.6434
onTargetScoringAttempt: 0.4376 -> 0.3387
goals: 0.1395 -> 0.108
expectedGoals: 0.1157 -> 0.0895
expectedGoalsOnTarget: 0.099 -> 0.0766
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.34 (squad xG sum 1.0719, xG scale 1.2473, xA scale 1.1232, team xA 1.07 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.337
squad_xg_sum=1.0719
squad_xa_sum=0.9523
team_expected_assists=1.0696
team_xa_to_xg_ratio=0.8
expected_goals: 0.0895 -> 0.1116
expected_assists: 0.0892 -> 0.1002
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 74.0)match_squad_rank=12
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1056
goal_rate=0.108
scorer_weight=0.1264
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0953
assist_rate=0.083
provider_weight=0.0957
-
Pol LozanoM7600.040.0298%00.46.846.029FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 0.9988, quality 0.472)market_value_eur=5800000
quality_factor=0.472
boost_factor=0.9988
reference_quality=0.505
history_matches=37
history_shrink=0.119
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0021)blend_weight=0.0021
history_matches=37
season_overlap_discount=1.0
per90_to_match_factor=0.8396
prior_reliability=0.0267
competition=La Liga
wonTackle: 0.977 -> 0.9837
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Giuliano Simeone', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.276, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.789, 'skill_edge': -0.1555, 'height_edge': 0.012, 'attacker_skill': 0.4845, 'defender_skill': 0.8301, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Giuliano Simeone', 'market_value': 44000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8301}], 'xg_override': 0.036}
aerialWon: 0.458 -> 0.9
totalShots: 0.6119 -> 0.4828
shotOffTarget: 0.4221 -> 0.333
onTargetScoringAttempt: 0.1862 -> 0.1469
expectedGoalsOnTarget: 0.0793 -> 0.0626
goals: 0.0555 -> 0.0438
expectedGoals: 0.0456 -> 0.036
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.34 (squad xG sum 1.0719, xG scale 1.2473, xA scale 1.1232, team xA 1.07 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.337
squad_xg_sum=1.0719
squad_xa_sum=0.9523
team_expected_assists=1.0696
team_xa_to_xg_ratio=0.8
expected_goals: 0.036 -> 0.0449
expected_assists: 0.0627 -> 0.0704
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.0439
goal_rate=0.0438
scorer_weight=0.049
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.068
assist_rate=0.0596
provider_weight=0.0685
-
Edu ExpósitoM8300.120.0847%11.47.263.131FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 0.9985, quality 0.456)market_value_eur=4500000
quality_factor=0.456
boost_factor=0.9985
reference_quality=0.505
history_matches=44
history_shrink=0.102
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0119)blend_weight=0.0119
history_matches=44
season_overlap_discount=1.0
per90_to_match_factor=0.923
prior_reliability=0.18
competition=La Liga
totalCross: 3.9074 -> 3.873
totalShots: 1.3963 -> 1.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': 'Giuliano Simeone', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.264, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.7708, 'skill_edge': -0.1639, 'height_edge': 0.008, 'attacker_skill': 0.4658, 'defender_skill': 0.8301, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Giuliano Simeone', 'market_value': 44000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8301}], 'xg_override': 0.0988}
totalShots: 1.4167 -> 1.092
shotOffTarget: 0.8781 -> 0.6768
onTargetScoringAttempt: 0.5161 -> 0.3978
goals: 0.1416 -> 0.1091
expectedGoals: 0.1282 -> 0.0988
aerialWon: 0.8886 -> 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.34 (squad xG sum 1.0719, xG scale 1.2473, xA scale 1.1232, team xA 1.07 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.337
squad_xg_sum=1.0719
squad_xa_sum=0.9523
team_expected_assists=1.0696
team_xa_to_xg_ratio=0.8
expected_goals: 0.0988 -> 0.1232
expected_assists: 0.1469 -> 0.165
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.1159
goal_rate=0.1091
scorer_weight=0.1317
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1521
assist_rate=0.1029
provider_weight=0.132
-
Quilindschy HartmanD8600.020.01227%00.16.729.525FBref 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.0018, quality 0.541)market_value_eur=11600000
quality_factor=0.5411
boost_factor=1.0018
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=true
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Jonathan David', '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.34 (squad xG sum 1.0719, xG scale 1.2473, xA scale 1.1232, team xA 1.07 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.337
squad_xg_sum=1.0719
squad_xa_sum=0.9523
team_expected_assists=1.0696
team_xa_to_xg_ratio=0.8
expected_assists: 0.0847 -> 0.0951
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 75.0)match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0193
goal_rate=0.0
scorer_weight=0.0156
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0907
assist_rate=0.1331
provider_weight=0.1189
-
Leandro CabreraD9000.050.06ok10.96.859.529XGBoost D_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9978, quality 0.437)market_value_eur=930000
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': 'Jonathan David', '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.34 (squad xG sum 1.0719, xG scale 1.2473, xA scale 1.1232, team xA 1.07 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.337
squad_xg_sum=1.0719
squad_xa_sum=0.9523
team_expected_assists=1.0696
team_xa_to_xg_ratio=0.8
expected_goals: 0.0432 -> 0.0539
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 76.0)match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0525
goal_rate=0.0085
scorer_weight=0.0431
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0372
assist_rate=0.0
provider_weight=0.0303
-
Clemens RiedelD8600.010.00454%00.16.840.631FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9974, quality 0.449)market_value_eur=3900000
quality_factor=0.4486
boost_factor=0.9974
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.9501
prior_reliability=0.1133
competition=La Liga
fouls: 1.7557 -> 1.7741
interceptionWon: 0.9404 -> 0.9296
wonTackle: 0.6711 -> 0.6762
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': 'Alejandro Grimaldo', 'matchup_zone': 'Right Wing vs Left Back — Flank Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.34 (squad xG sum 1.0719, xG scale 1.2473, xA scale 1.1232, team xA 1.07 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.337
squad_xg_sum=1.0719
squad_xa_sum=0.9523
team_expected_assists=1.0696
team_xa_to_xg_ratio=0.8
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 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.0066
goal_rate=0.0
scorer_weight=0.006
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0108
assist_rate=0.0082
provider_weight=0.0106
-
Omar El HilaliD8800.00-n/a00.06.858.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.0026, quality 0.589)market_value_eur=15900000
quality_factor=0.5889
boost_factor=1.0026
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.98
prior_reliability=0.2
competition=La Liga
totalCross: 2.6746 -> 2.687
wasFouled: 0.812 -> 0.801
wonTackle: 1.2521 -> 1.244
totalShots: 0.4349 -> 0.429
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Koke', '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.34 (squad xG sum 1.0719, xG scale 1.2473, xA scale 1.1232, team xA 1.07 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.337
squad_xg_sum=1.0719
squad_xa_sum=0.9523
team_expected_assists=1.0696
team_xa_to_xg_ratio=0.8
expected_assists: 0.1115 -> 0.1252
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.1177
assist_rate=0.1077
provider_weight=0.1223
-
Ángel FortuñoG9000.00-n/a0.07.04.632XGBoost 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.9855, quality 0.437)market_value_eur=290000
quality_factor=0.4374
boost_factor=0.9855
reference_quality=0.505
history_matches=2
history_shrink=0.7143
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Jonathan David, Ademola Lookman', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 2.1749}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.34 (squad xG sum 1.0719, xG scale 1.2473, xA scale 1.1232, team xA 1.07 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.337
squad_xg_sum=1.0719
squad_xa_sum=0.9523
team_expected_assists=1.0696
team_xa_to_xg_ratio=0.8
shots_faced: 20.7 -> 22.1
expected_saves: 5.07 -> 5.41
high_pressure_saves: 1.74 -> 1.86
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 89.0)match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.4295
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.0297
-
Team totals11.34116.8
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Marko DmitrovićG4.4m13.1%Market-value substitute prior
Vanja DrkušićD19.9m41.2%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
Javi PuadoF25.5m56.8%Market-value substitute prior

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Jonathan DavidF6610.670.31118%31.47.037.58XGBoost 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': 'Leandro Cabrera, Quilindschy Hartman', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.264, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.0935, 'skill_edge': 0.0896, 'height_edge': -0.026, 'attacker_skill': 0.71, 'defender_skill': 0.5108, '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': 'Quilindschy Hartman', 'market_value': 11600000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5842}], 'xg_override': 0.4631}
totalShots: 2.4171 -> 2.6431
bigChanceMissed: 1.4255 -> 1.5588
shotOffTarget: 1.3173 -> 1.4405
onTargetScoringAttempt: 1.0998 -> 1.2026
expectedGoalsOnTarget: 0.7013 -> 0.7669
goals: 0.4546 -> 0.4971
expectedGoals: 0.4235 -> 0.4631
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
assists: 1.0 -> 0
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.33 (squad xG sum 1.6168, xG scale 1.4380, xA scale 1.4481, team xA 1.51 = 0.65 x lambda)scoreline_reset=true
team_lambda=2.325
squad_xg_sum=1.6168
squad_xa_sum=1.0436
team_expected_assists=1.5113
team_xa_to_xg_ratio=0.65
expected_goals: 0.4631 -> 0.6659
expected_assists: 0.0885 -> 0.1282
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=1
goal_probability=0.4862
goal_rate=0.4971
scorer_weight=0.71
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1203
assist_rate=0.6925
provider_weight=0.1603
-
Ademola LookmanF6610.450.2399%21.56.957.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.0177, quality 0.800)market_value_eur=44000000
quality_factor=0.8002
boost_factor=1.0177
reference_quality=0.505
history_matches=20
history_shrink=0.2
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0225)blend_weight=0.0225
history_matches=20
season_overlap_discount=1.0
per90_to_match_factor=0.7377
prior_reliability=0.1733
competition=La Liga
wasFouled: 0.9645 -> 0.9747
totalShots: 2.0823 -> 2.0739
totalCross: 0.9201 -> 0.9122
interceptionWon: 0.017 -> 0.023
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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, Quilindschy Hartman', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.28, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.1179, 'skill_edge': 0.1302, 'height_edge': -0.05, 'attacker_skill': 0.8002, 'defender_skill': 0.5108, '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': 'Quilindschy Hartman', 'market_value': 11600000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5842}], 'xg_override': 0.3135}
totalShots: 2.0831 -> 2.3287
shotOffTarget: 1.2601 -> 1.4087
onTargetScoringAttempt: 0.823 -> 0.92
bigChanceMissed: 0.5396 -> 0.6032
goals: 0.2837 -> 0.3171
expectedGoals: 0.2804 -> 0.3135
expectedGoalsOnTarget: 0.1582 -> 0.1769
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.33 (squad xG sum 1.6168, xG scale 1.4380, xA scale 1.4481, team xA 1.51 = 0.65 x lambda)scoreline_reset=true
team_lambda=2.325
squad_xg_sum=1.6168
squad_xa_sum=1.0436
team_expected_assists=1.5113
team_xa_to_xg_ratio=0.65
expected_goals: 0.3135 -> 0.4508
expected_assists: 0.1091 -> 0.158
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 83.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=1
goal_probability=0.3629
goal_rate=0.3171
scorer_weight=0.4553
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1462
assist_rate=0.0
provider_weight=0.1264
-
Pablo BarriosM7700.110.03253%10.77.255.514FBref Prior M_service
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.0170, quality 0.879)market_value_eur=77000000
quality_factor=0.8792
boost_factor=1.017
reference_quality=0.505
history_matches=28
history_shrink=0.1515
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0151)blend_weight=0.0151
history_matches=28
season_overlap_discount=1.0
per90_to_match_factor=0.851
prior_reliability=0.1533
competition=La Liga
totalCross: 1.4483 -> 1.432
wasFouled: 0.9393 -> 0.953
totalShots: 0.9418 -> 0.9332
interceptionWon: 1.6066 -> 1.5991
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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, Edu Expósito', 'matchup_zone': 'Attacking Mid vs Double Pivot — Tight Space Battle', 'duel_win_rate': 0.446, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.3021, 'skill_edge': 0.1835, 'height_edge': 0.022, 'attacker_skill': 0.8829, 'defender_skill': 0.4751, 'attacker_role': 'CAM', 'attacker_mv_price_index': 0.95, 'defender_adjusted_parts': [{'player': 'Pol Lozano', 'market_value': 5800000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4845}, {'player': 'Edu Expósito', 'market_value': 4500000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4658}], 'xg_override': 0.078}
aerialWon: 0.7071 -> 1.1
totalShots: 0.9435 -> 1.2285
shotOffTarget: 0.6796 -> 0.8849
onTargetScoringAttempt: 0.2639 -> 0.3436
expectedGoalsOnTarget: 0.1087 -> 0.1415
goals: 0.061 -> 0.0794
expectedGoals: 0.0599 -> 0.078
bigChanceMissed: 0.0271 -> 0.0353
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.33 (squad xG sum 1.6168, xG scale 1.4380, xA scale 1.4481, team xA 1.51 = 0.65 x lambda)scoreline_reset=true
team_lambda=2.325
squad_xg_sum=1.6168
squad_xa_sum=1.0436
team_expected_assists=1.5113
team_xa_to_xg_ratio=0.65
expected_goals: 0.078 -> 0.1122
expected_assists: 0.1178 -> 0.1706
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.1061
goal_rate=0.0794
scorer_weight=0.1134
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1568
assist_rate=0.1155
provider_weight=0.1683
-
Giuliano SimeoneM7600.210.10102%20.86.957.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.0101, quality 0.800)market_value_eur=44000000
quality_factor=0.8002
boost_factor=1.0101
reference_quality=0.505
history_matches=39
history_shrink=0.1136
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0118)blend_weight=0.0118
history_matches=39
season_overlap_discount=1.0
per90_to_match_factor=0.8459
prior_reliability=0.16
competition=La Liga
interceptionWon: 0.6547 -> 0.6636
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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': 'CDM vs CDM', 'duel_win_rate': 0.564, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.211, 'skill_edge': 0.1555, 'height_edge': -0.012, 'attacker_skill': 0.8301, 'defender_skill': 0.4845, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Pol Lozano', 'market_value': 5800000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4845}], 'xg_override': 0.145}
aerialWon: 1.217 -> 0.9
totalShots: 1.1308 -> 1.3694
shotOffTarget: 0.7054 -> 0.8542
onTargetScoringAttempt: 0.4211 -> 0.51
expectedGoals: 0.1197 -> 0.145
expectedGoalsOnTarget: 0.1109 -> 0.1343
bigChanceMissed: 0.1073 -> 0.1299
goals: 0.093 -> 0.1126
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.33 (squad xG sum 1.6168, xG scale 1.4380, xA scale 1.4481, team xA 1.51 = 0.65 x lambda)scoreline_reset=true
team_lambda=2.325
squad_xg_sum=1.6168
squad_xa_sum=1.0436
team_expected_assists=1.5113
team_xa_to_xg_ratio=0.65
expected_goals: 0.145 -> 0.2085
expected_assists: 0.1076 -> 0.1558
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 81.0)match_squad_rank=12
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.1882
goal_rate=0.1126
scorer_weight=0.1738
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1443
assist_rate=0.1065
provider_weight=0.1547
-
KokeM8300.060.02229%10.37.261.329FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 0.9985, quality 0.457)market_value_eur=4600000
quality_factor=0.4572
boost_factor=0.9985
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.9172
prior_reliability=0.12
competition=La Liga
wasFouled: 1.4015 -> 1.4068
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.366, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.8327, 'skill_edge': -0.0898, 'height_edge': -0.024, 'attacker_skill': 0.4572, 'defender_skill': 0.6569, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Omar El Hilali', 'market_value': 15900000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.6569}], 'xg_override': 0.0404}
aerialWon: 0.209 -> 1.0
totalShots: 0.6744 -> 0.5616
shotOffTarget: 0.5203 -> 0.4333
onTargetScoringAttempt: 0.1541 -> 0.1283
goals: 0.0559 -> 0.0465
expectedGoals: 0.0485 -> 0.0404
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.33 (squad xG sum 1.6168, xG scale 1.4380, xA scale 1.4481, team xA 1.51 = 0.65 x lambda)scoreline_reset=true
team_lambda=2.325
squad_xg_sum=1.6168
squad_xa_sum=1.0436
team_expected_assists=1.5113
team_xa_to_xg_ratio=0.65
expected_goals: 0.0404 -> 0.0581
expected_assists: 0.123 -> 0.1781
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 81.0)match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0564
goal_rate=0.0465
scorer_weight=0.062
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1631
assist_rate=0.123
provider_weight=0.1781
-
Johnny CardosoM7900.060.01624%10.26.948.724FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0065, quality 0.618)market_value_eur=18700000
quality_factor=0.6181
boost_factor=1.0065
reference_quality=0.505
history_matches=21
history_shrink=0.1923
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0008)blend_weight=0.0008
history_matches=21
season_overlap_discount=1.0
per90_to_match_factor=0.88
prior_reliability=0.0067
competition=La Liga
wasFouled: 0.7388 -> 0.7456
interceptionWon: 1.3335 -> 1.3398
wonTackle: 1.5205 -> 1.5266
fouls: 1.6242 -> 1.6302
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': 'Pol Lozano', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.535, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.1685, 'skill_edge': 0.0746, 'height_edge': 0.04, 'attacker_skill': 0.6503, 'defender_skill': 0.4845, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Pol Lozano', 'market_value': 5800000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4845}], 'xg_override': 0.0387}
aerialWon: 0.8353 -> 1.2
totalShots: 0.5498 -> 0.6424
shotOffTarget: 0.4173 -> 0.4876
onTargetScoringAttempt: 0.1325 -> 0.1548
goals: 0.0451 -> 0.0527
expectedGoals: 0.0331 -> 0.0387
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.33 (squad xG sum 1.6168, xG scale 1.4380, xA scale 1.4481, team xA 1.51 = 0.65 x lambda)scoreline_reset=true
team_lambda=2.325
squad_xg_sum=1.6168
squad_xa_sum=1.0436
team_expected_assists=1.5113
team_xa_to_xg_ratio=0.65
expected_goals: 0.0387 -> 0.0557
expected_assists: 0.0568 -> 0.0823
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 80.0)match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0542
goal_rate=0.0527
scorer_weight=0.0645
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.079
assist_rate=0.051
provider_weight=0.0778
-
Alejandro GrimaldoM8800.300.2143%21.37.251.218XGBoost 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.0150, quality 0.625)market_value_eur=19400000
quality_factor=0.6251
boost_factor=1.015
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': 'Clemens Riedel', 'matchup_zone': 'Right Wing vs Left Back — Flank Battle', 'duel_win_rate': 0.49, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0149, 'skill_edge': 0.0702, 'height_edge': -0.06, 'attacker_skill': 0.6251, 'defender_skill': 0.4692, 'attacker_role': 'RW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Clemens Riedel', 'market_value': 3900000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.4692}], 'xg_override': 0.2062}
aerialWon: 0.4386 -> 0.8
totalShots: 2.1496 -> 2.1816
shotOffTarget: 1.4366 -> 1.458
onTargetScoringAttempt: 0.7129 -> 0.7235
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.33 (squad xG sum 1.6168, xG scale 1.4380, xA scale 1.4481, team xA 1.51 = 0.65 x lambda)scoreline_reset=true
team_lambda=2.325
squad_xg_sum=1.6168
squad_xa_sum=1.0436
team_expected_assists=1.5113
team_xa_to_xg_ratio=0.65
expected_goals: 0.2062 -> 0.2965
expected_assists: 0.149 -> 0.2159
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 89.0)match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_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.2566
goal_rate=0.1879
scorer_weight=0.2753
-
integer_assist_projectionTeam scoreline allocation: 1 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.1942
assist_rate=0.1317
provider_weight=0.1971
-
Robin Le NormandD8000.030.01344%00.16.751.028FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0039, quality 0.603)market_value_eur=17200000
quality_factor=0.6027
boost_factor=1.0039
reference_quality=0.505
history_matches=33
history_shrink=0.1316
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0103)blend_weight=0.0103
history_matches=33
season_overlap_discount=1.0
per90_to_match_factor=0.8928
prior_reliability=0.12
competition=La Liga
interceptionWon: 1.0099 -> 1.0199
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': '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 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.33 (squad xG sum 1.6168, xG scale 1.4380, xA scale 1.4481, team xA 1.51 = 0.65 x lambda)scoreline_reset=true
team_lambda=2.325
squad_xg_sum=1.6168
squad_xa_sum=1.0436
team_expected_assists=1.5113
team_xa_to_xg_ratio=0.65
expected_goals: 0.0221 -> 0.0318
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 16 by projected rating, fifa_overall 81.0)match_squad_rank=16
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0313
goal_rate=0.1469
scorer_weight=0.0398
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0106
assist_rate=0.0581
provider_weight=0.0134
-
Cristian RomeroD8100.200.08141%10.97.056.518FBref 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.0118, quality 0.764)market_value_eur=37000000
quality_factor=0.7641
boost_factor=1.0118
reference_quality=0.505
history_matches=28
history_shrink=0.1515
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': '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 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.33 (squad xG sum 1.6168, xG scale 1.4380, xA scale 1.4481, team xA 1.51 = 0.65 x lambda)scoreline_reset=true
team_lambda=2.325
squad_xg_sum=1.6168
squad_xa_sum=1.0436
team_expected_assists=1.5113
team_xa_to_xg_ratio=0.65
expected_goals: 0.1379 -> 0.1983
expected_assists: 0.0454 -> 0.0657
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 82.0)match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.1799
goal_rate=0.2601
scorer_weight=0.2479
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0636
assist_rate=0.0044
provider_weight=0.0526
-
Marcos LlorenteD8300.080.04119%10.67.059.631FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0048, quality 0.641)market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.0048
reference_quality=0.505
history_matches=37
history_shrink=0.119
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0077)blend_weight=0.0077
history_matches=37
season_overlap_discount=1.0
per90_to_match_factor=0.921
prior_reliability=0.1
competition=La Liga
fouls: 0.7436 -> 0.7664
totalCross: 1.7696 -> 1.7559
interceptionWon: 1.1007 -> 1.1112
wasFouled: 0.239 -> 0.2467
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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': '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.33 (squad xG sum 1.6168, xG scale 1.4380, xA scale 1.4481, team xA 1.51 = 0.65 x lambda)scoreline_reset=true
team_lambda=2.325
squad_xg_sum=1.6168
squad_xa_sum=1.0436
team_expected_assists=1.5113
team_xa_to_xg_ratio=0.65
expected_goals: 0.0567 -> 0.0815
expected_assists: 0.0898 -> 0.13
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 85.0)match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0783
goal_rate=0.0
scorer_weight=0.0652
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1219
assist_rate=0.108
provider_weight=0.1469
-
Jan OblakG9000.00-n/a0.07.054.927FBref 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.0030, quality 0.590)market_value_eur=16000000
quality_factor=0.59
boost_factor=1.003
reference_quality=0.505
history_matches=38
history_shrink=0.1163
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0151)blend_weight=0.0151
history_matches=38
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.2
competition=La Liga
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Roberto Fernández, Javier Hernández', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.4715}
-
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.33 (squad xG sum 1.6168, xG scale 1.4380, xA scale 1.4481, team xA 1.51 = 0.65 x lambda)scoreline_reset=true
team_lambda=2.325
squad_xg_sum=1.6168
squad_xa_sum=1.0436
team_expected_assists=1.5113
team_xa_to_xg_ratio=0.65
shots_faced: 14.0 -> 12.7
expected_saves: 3.43 -> 3.11
high_pressure_saves: 1.18 -> 1.07
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 88.0)match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=2.409
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.5221
-
Team totals22.33167.0
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Juan MussoG4.4m10.9%Market-value substitute prior
Marc PubillD15.1m24.8%Market-value substitute prior
Dávid HanckoD14.8m24.3%Market-value substitute prior
Morten HjulmandM17.7m46.6%Market-value substitute prior
Rodrigo MendozaM13.6m45.2%Market-value substitute prior
Julián AlvarezF25.9m75.6%Market-value substitute prior
Antagonist / tactical summary
Away midfield dictates play with ~53% possession expected (Javier Hernández vs Pablo Barrios). Total antagonist xG — Home: 0.82, Away: 1.28. 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 46.6% / 53.4%, dominance ratio 0.39, key duel: Javier Hernández vs Pablo Barrios
Javier Hernández xG 0.12Roberto Fernández xG 0.37Bryan Zaragoza xG 0.10Koke xG 0.04Alejandro Grimaldo xG 0.21Pablo Barrios xG 0.08

Summary

Antagonist matchup analysis for Espanyol vs Atlético Madrid. Most likely scoreline: 1-2. Lambdas derived from 6 home and 7 away individual player duels. Head-to-head: Espanyol 1W-5D-4L vs Atlético Madrid over 10 meetings.
Tactical parity between 4-2-3-1 and 4-2-3-1. Match outcome driven primarily by individual player quality. Away midfield dictates play with ~53% possession expected (Javier Hernández vs Pablo Barrios). Total antagonist xG — Home: 0.82, Away: 1.28. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.

Newcastle vs Aston Villa

Premier League · 20261017 · 4-3-3 vs 4-2-3-1
Predicted 1-1Winner: DrawWinning H 1-0 (10.1%)Winning A 0-1 (8.1%)Confidence 0.71λ home/away 1.49 / 1.19Most-likely P 12.3%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset Tracing
Antagonist + XGBoost match analysis for Newcastle vs Aston Villa. Player statistics regressed using position-specific XGBoost models (G, D, M, F) with 2026-2027 FBref priors. Micro-duels resolved across 4-3-3 vs 4-2-3-1 (duel lambdas: Home 1.466, Away 1.210). Final calibrated Poisson lambdas: Home 1.487, Away 1.193 (most likely score 1-1).
Home Starters 11/11 XGBoost (8 FBref) Away Starters 11/11 XGBoost (9 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.47 / 1.21 Final λ (H/A) 1.49 / 1.19
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

MetricNewcastleAston Villa
League position11.0016.00
Points per game1.341.09
Attack index1.040.89
Defense (concede) index1.081.16
Form multiplier1.010.98
Standing λ multiplier1.051.01

Lambda decomposition (how the goal rates were built)

StageNewcastle λAston Villa λ
Pre-competitive-floor1.4871.193
Pre-calibration (Micro-duels)1.4661.210
Final λ1.4871.193
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.3%
1-010.1%
2-19.0%
0-18.1%
2-07.6%
Home win43.9%
Draw25.8%
Away win30.3%
Over 2.550.1%
BTTS yes54.0%
Pregame fair line — favorite Newcastle (43.9%), fair total 2.68, fair spread 0.29

Projected players vs season baseline

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

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Sven BotmanD8900.050.06ok10.56.947.030FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0097, quality 0.739)market_value_eur=33000000
quality_factor=0.7389
boost_factor=1.0097
reference_quality=0.505
history_matches=31
history_shrink=0.1389
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0120)blend_weight=0.012
history_matches=31
season_overlap_discount=1.0
per90_to_match_factor=0.9897
prior_reliability=0.1333
competition=Premier League
interceptionWon: 1.2071 -> 1.1926
wonTackle: 0.8191 -> 0.8092
fouls: 0.4595 -> 0.454
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Nicolas Jackson', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.49 (squad xG sum 1.1746, xG scale 1.2660, xA scale 1.3576, team xA 0.97 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.487
squad_xg_sum=1.1746
squad_xa_sum=0.712
team_expected_assists=0.9666
team_xa_to_xg_ratio=0.65
expected_goals: 0.0385 -> 0.0487
expected_assists: 0.0397 -> 0.0539
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 81.0)match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0475
goal_rate=0.1649
scorer_weight=0.0609
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0525
assist_rate=0.0
provider_weight=0.0431
-
Malick ThiawD9000.080.11ok00.56.855.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.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=0.998
prior_reliability=0.1333
competition=Premier League
wasFouled: 0.3895 -> 0.3999
interceptionWon: 0.9389 -> 0.9301
wonTackle: 0.6124 -> 0.6066
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Nicolas Jackson', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.49 (squad xG sum 1.1746, xG scale 1.2660, xA scale 1.3576, team xA 0.97 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.487
squad_xg_sum=1.1746
squad_xa_sum=0.712
team_expected_assists=0.9666
team_xa_to_xg_ratio=0.65
expected_goals: 0.0613 -> 0.0776
expected_assists: 0.0182 -> 0.0247
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 81.0)match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0747
goal_rate=0.0156
scorer_weight=0.0621
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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
-
Amar DedićD8300.050.01213%10.46.729.211FBref Prior D_service
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.0307, quality 0.710)market_value_eur=29000000
quality_factor=0.71
boost_factor=1.0307
reference_quality=0.505
history_matches=5
history_shrink=0.5
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0433)blend_weight=0.0433
history_matches=5
season_overlap_discount=1.0
per90_to_match_factor=0.9257
prior_reliability=0.1333
competition=Premier League
interceptionWon: 1.0501 -> 1.0046
wonTackle: 1.133 -> 1.104
wasFouled: 0.9059 -> 0.9268
goalAssist: 0.2337 -> 0.2436
totalShots: 0.6381 -> 0.6305
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'John McGinn', 'matchup_zone': 'Shape fallback'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.49 (squad xG sum 1.1746, xG scale 1.2660, xA scale 1.3576, team xA 0.97 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.487
squad_xg_sum=1.1746
squad_xa_sum=0.712
team_expected_assists=0.9666
team_xa_to_xg_ratio=0.65
expected_goals: 0.0365 -> 0.0462
expected_assists: 0.0214 -> 0.0291
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 15 by projected rating, fifa_overall 76.0)match_squad_rank=15
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0451
goal_rate=0.0
scorer_weight=0.037
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0287
assist_rate=0.2436
provider_weight=0.0364
-
Lukáš HorníčekG9000.00-n/a0.07.035.312FBref 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.0235, quality 0.677)market_value_eur=25000000
quality_factor=0.6773
boost_factor=1.0235
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
saves: 3.03 -> 3.0879
fouls: 0.2465 -> 0.2368
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Nicolas Jackson, Johan Manzambi', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.2102}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.49 (squad xG sum 1.1746, xG scale 1.2660, xA scale 1.3576, team xA 0.97 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.487
squad_xg_sum=1.1746
squad_xa_sum=0.712
team_expected_assists=0.9666
team_xa_to_xg_ratio=0.65
shots_faced: 11.5 -> 11.3
expected_saves: 2.81 -> 2.76
high_pressure_saves: 0.97 -> 0.95
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 77.0)match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.5944
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.9789
-
Lewis HallD8800.060.03128%10.66.951.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.0119, quality 0.831)market_value_eur=52000000
quality_factor=0.8309
boost_factor=1.0119
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.9809
prior_reliability=0.1333
competition=Premier League
fouls: 0.5949 -> 0.6042
wonTackle: 1.4003 -> 1.4062
onTargetScoringAttempt: 0.5166 -> 0.5111
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Johan Manzambi', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.49 (squad xG sum 1.1746, xG scale 1.2660, xA scale 1.3576, team xA 0.97 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.487
squad_xg_sum=1.1746
squad_xa_sum=0.712
team_expected_assists=0.9666
team_xa_to_xg_ratio=0.65
expected_goals: 0.0494 -> 0.0625
expected_assists: 0.1073 -> 0.1457
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 83.0)match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0606
goal_rate=0.1434
scorer_weight=0.0781
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1356
assist_rate=0.0948
provider_weight=0.1341
-
Lewis MileyM8100.050.0350%10.26.945.223FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0100, quality 0.732)market_value_eur=32000000
quality_factor=0.732
boost_factor=1.01
reference_quality=0.505
history_matches=29
history_shrink=0.1471
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0115)blend_weight=0.0115
history_matches=29
season_overlap_discount=1.0
per90_to_match_factor=0.8979
prior_reliability=0.12
competition=Premier League
totalCross: 1.2287 -> 1.2146
wasFouled: 0.2134 -> 0.2224
wonTackle: 1.1935 -> 1.1855
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'João Gomes', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.481, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 1.046, 'skill_edge': -0.0167, 'height_edge': 0.048, 'attacker_skill': 0.7554, 'defender_skill': 0.7926, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'João Gomes', 'market_value': 36000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.7926}], 'xg_override': 0.0369}
aerialWon: 1.7516 -> 1.2
totalShots: 0.4895 -> 0.512
shotOffTarget: 0.3554 -> 0.3717
onTargetScoringAttempt: 0.1326 -> 0.1387
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.49 (squad xG sum 1.1746, xG scale 1.2660, xA scale 1.3576, team xA 0.97 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.487
squad_xg_sum=1.1746
squad_xa_sum=0.712
team_expected_assists=0.9666
team_xa_to_xg_ratio=0.65
expected_goals: 0.0369 -> 0.0467
expected_assists: 0.0657 -> 0.0892
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 77.0)match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0456
goal_rate=0.0446
scorer_weight=0.0508
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0853
assist_rate=0.0739
provider_weight=0.0955
-
Nico GonzálezM7200.050.01589%10.17.031.326XGBoost 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.0146, quality 0.837)market_value_eur=54000000
quality_factor=0.837
boost_factor=1.0146
reference_quality=0.505
history_matches=29
history_shrink=0.1471
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'João Gomes', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.517, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 1.0985, 'skill_edge': 0.027, 'height_edge': 0.04, 'attacker_skill': 0.8526, 'defender_skill': 0.7926, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'João Gomes', 'market_value': 36000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.7926}], 'xg_override': 0.0363}
aerialWon: 0.7637 -> 1.2
totalShots: 0.5997 -> 0.6588
shotOffTarget: 0.4438 -> 0.4875
onTargetScoringAttempt: 0.1559 -> 0.1713
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.49 (squad xG sum 1.1746, xG scale 1.2660, xA scale 1.3576, team xA 0.97 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.487
squad_xg_sum=1.1746
squad_xa_sum=0.712
team_expected_assists=0.9666
team_xa_to_xg_ratio=0.65
expected_goals: 0.0363 -> 0.046
expected_assists: 0.0865 -> 0.1174
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 81.0)match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.045
goal_rate=0.0468
scorer_weight=0.0516
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1108
assist_rate=0.0642
provider_weight=0.0982
-
JoelintonM8500.090.08ok11.06.848.718XGBoost M_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0062, quality 0.641)market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.0062
reference_quality=0.505
history_matches=28
history_shrink=0.1515
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'João Gomes', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.407, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9808, 'skill_edge': -0.053, 'height_edge': 0.04, 'attacker_skill': 0.6747, 'defender_skill': 0.7926, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'João Gomes', 'market_value': 36000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.7926}], 'xg_override': 0.0723}
aerialWon: 2.7846 -> 1.2
totalShots: 0.9628 -> 0.9443
shotOffTarget: 0.6874 -> 0.6742
onTargetScoringAttempt: 0.2753 -> 0.27
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.49 (squad xG sum 1.1746, xG scale 1.2660, xA scale 1.3576, team xA 0.97 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.487
squad_xg_sum=1.1746
squad_xa_sum=0.712
team_expected_assists=0.9666
team_xa_to_xg_ratio=0.65
expected_goals: 0.0723 -> 0.0915
expected_assists: 0.0583 -> 0.0791
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 80.0)match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0874
goal_rate=0.0758
scorer_weight=0.0941
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0761
assist_rate=0.0603
provider_weight=0.0806
-
Harvey BarnesF8600.270.13106%21.56.955.337FBref 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.0083, quality 0.770)market_value_eur=38000000
quality_factor=0.7699
boost_factor=1.0083
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.9518
prior_reliability=0.1333
competition=Premier League
totalCross: 2.4973 -> 2.4876
totalShots: 1.8925 -> 1.8841
onTargetScoringAttempt: 0.6189 -> 0.6133
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Victor Lindelöf', 'matchup_zone': 'Right Wing vs Left Back — Flank Battle', 'duel_win_rate': 0.584, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.1533, 'skill_edge': 0.1283, 'height_edge': -0.024, 'attacker_skill': 0.7699, 'defender_skill': 0.4849, 'attacker_role': 'RW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Victor Lindelöf', 'market_value': 4800000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.4849}], 'xg_override': 0.2165}
totalShots: 1.8869 -> 2.1762
shotOffTarget: 1.2736 -> 1.4688
onTargetScoringAttempt: 0.6133 -> 0.7073
goals: 0.2066 -> 0.2383
expectedGoalsOnTarget: 0.2055 -> 0.237
expectedGoals: 0.1877 -> 0.2165
bigChanceMissed: 0.1815 -> 0.2093
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.49 (squad xG sum 1.1746, xG scale 1.2660, xA scale 1.3576, team xA 0.97 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.487
squad_xg_sum=1.1746
squad_xa_sum=0.712
team_expected_assists=0.9666
team_xa_to_xg_ratio=0.65
expected_goals: 0.2165 -> 0.2741
expected_assists: 0.1188 -> 0.1613
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 80.0)match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.2397
goal_rate=0.2383
scorer_weight=0.2965
-
integer_assist_projectionTeam scoreline allocation: 1 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.149
assist_rate=0.3167
provider_weight=0.2016
-
Matías Fernández-PardoF7700.320.05489%20.26.926.610XGBoost 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.0579, quality 0.853)market_value_eur=60000000
quality_factor=0.8526
boost_factor=1.0579
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': 'Aaron Wan-Bissaka, Pau Torres', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.268, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.1005, 'skill_edge': 0.0864, 'height_edge': -0.018, 'attacker_skill': 0.8526, 'defender_skill': 0.6606, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Aaron Wan-Bissaka', 'market_value': 14100000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6191}, {'player': 'Pau Torres', 'market_value': 21000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7022}], 'xg_override': 0.2507}
totalShots: 1.3573 -> 1.4937
bigChanceMissed: 0.8225 -> 0.9052
shotOffTarget: 0.7118 -> 0.7833
onTargetScoringAttempt: 0.6455 -> 0.7104
goals: 0.2522 -> 0.2775
expectedGoals: 0.2278 -> 0.2507
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.49 (squad xG sum 1.1746, xG scale 1.2660, xA scale 1.3576, team xA 0.97 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.487
squad_xg_sum=1.1746
squad_xa_sum=0.712
team_expected_assists=0.9666
team_xa_to_xg_ratio=0.65
expected_goals: 0.2507 -> 0.3174
expected_assists: 0.0833 -> 0.1131
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.272
goal_rate=0.2775
scorer_weight=0.3457
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1069
assist_rate=0.0
provider_weight=0.0905
-
Yoane WissaF8210.320.1973%20.86.741.134FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0077, quality 0.660)market_value_eur=23000000
quality_factor=0.6595
boost_factor=1.0077
reference_quality=0.505
history_matches=25
history_shrink=0.1667
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0137)blend_weight=0.0137
history_matches=25
season_overlap_discount=1.0
per90_to_match_factor=0.9112
prior_reliability=0.1267
competition=Premier League
wasFouled: 1.2941 -> 1.329
totalShots: 1.5309 -> 1.5497
totalOffside: 0.2619 -> 0.2715
goalAssist: 0.0835 -> 0.0889
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.424, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 0.9174, 'skill_edge': -0.0202, 'height_edge': -0.036, 'attacker_skill': 0.6595, 'defender_skill': 0.7044, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Matty Cash', 'market_value': 19800000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.7044}], 'xg_override': 0.2559}
totalShots: 1.5497 -> 1.4217
onTargetScoringAttempt: 0.8219 -> 0.754
shotOffTarget: 0.711 -> 0.6523
bigChanceMissed: 0.6211 -> 0.5698
goals: 0.3069 -> 0.2816
expectedGoalsOnTarget: 0.2949 -> 0.2705
expectedGoals: 0.2789 -> 0.2559
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.49 (squad xG sum 1.1746, xG scale 1.2660, xA scale 1.3576, team xA 0.97 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.487
squad_xg_sum=1.1746
squad_xa_sum=0.712
team_expected_assists=0.9666
team_xa_to_xg_ratio=0.65
expected_goals: 0.2559 -> 0.324
expected_assists: 0.0433 -> 0.0588
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 80.0)match_squad_rank=14
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_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.2767
goal_rate=0.2816
scorer_weight=0.3512
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0571
assist_rate=0.0889
provider_weight=0.0735
-
Team totals11.49136.9
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Ewen JaouenG5.1m14.2%Market-value substitute prior
Tino LivramentoD15.0m36.4%Market-value substitute prior
Dan BurnD13.6m30.1%Market-value substitute prior
Aladji BambaM18.5m71.0%Market-value substitute prior
Sean SteurM21.2m51.6%Market-value substitute prior
Nick WoltemadeF23.1m75.2%Market-value substitute prior

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Nicolas JacksonF7810.340.11202%21.16.932.711FBref 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.0443, quality 0.800)market_value_eur=44000000
quality_factor=0.8002
boost_factor=1.0443
reference_quality=0.505
history_matches=5
history_shrink=0.5
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0173)blend_weight=0.0173
history_matches=5
season_overlap_discount=1.0
per90_to_match_factor=0.8672
prior_reliability=0.0533
competition=Premier League
totalShots: 2.5898 -> 2.5449
onTargetScoringAttempt: 1.0936 -> 1.0747
wasFouled: 0.6938 -> 0.6818
totalOffside: 0.6516 -> 0.6403
totalCross: 0.5592 -> 0.5683
fouls: 0.4428 -> 0.4351
goals: 0.4106 -> 0.4035
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Sven Botman, Malick Thiaw', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.9376, 'skill_edge': -0.0124, 'height_edge': -0.03, 'attacker_skill': 0.8002, 'defender_skill': 0.8279, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Sven Botman', 'market_value': 33000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8002}, {'player': 'Malick Thiaw', 'market_value': 46000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8555}], 'xg_override': 0.3716}
totalShots: 2.5709 -> 2.4105
shotOffTarget: 1.4962 -> 1.4028
onTargetScoringAttempt: 1.0747 -> 1.0076
goals: 0.4035 -> 0.3783
expectedGoals: 0.3963 -> 0.3716
expectedGoalsOnTarget: 0.3911 -> 0.3667
bigChanceMissed: 0.2394 -> 0.2245
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.19 (squad xG sum 1.2865, xG scale 0.9273, xA scale 1.1352, team xA 0.78 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.193
squad_xg_sum=1.2865
squad_xa_sum=0.6831
team_expected_assists=0.7755
team_xa_to_xg_ratio=0.65
expected_goals: 0.3716 -> 0.3445
expected_assists: 0.0851 -> 0.0966
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 79.0)match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.2914
goal_rate=0.3783
scorer_weight=0.35
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0921
assist_rate=0.0
provider_weight=0.0773
-
Emiliano BuendíaF7700.150.1136%11.36.949.241XGBoost 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=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': 'Sven Botman, Malick Thiaw', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.7444, 'skill_edge': -0.1139, 'height_edge': -0.06, 'attacker_skill': 0.5748, 'defender_skill': 0.8279, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Sven Botman', 'market_value': 33000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8002}, {'player': 'Malick Thiaw', 'market_value': 46000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8555}], 'xg_override': 0.1578}
totalShots: 1.8582 -> 1.3833
shotOffTarget: 1.256 -> 0.935
onTargetScoringAttempt: 0.6022 -> 0.4483
bigChanceMissed: 0.2665 -> 0.1984
expectedGoals: 0.212 -> 0.1578
goals: 0.2012 -> 0.1498
expectedGoalsOnTarget: 0.0888 -> 0.0661
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.19 (squad xG sum 1.2865, xG scale 0.9273, xA scale 1.1352, team xA 0.78 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.193
squad_xg_sum=1.2865
squad_xa_sum=0.6831
team_expected_assists=0.7755
team_xa_to_xg_ratio=0.65
expected_goals: 0.1578 -> 0.1463
expected_assists: 0.0906 -> 0.1028
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 80.0)match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1361
goal_rate=0.1498
scorer_weight=0.1407
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0977
assist_rate=0.0031
provider_weight=0.0822
-
Johan ManzambiM8300.230.11114%31.26.823.89XGBoost 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.0688, quality 0.872)market_value_eur=71000000
quality_factor=0.8721
boost_factor=1.0688
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': 'Lewis Hall', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.49, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 1.0149, 'skill_edge': -0.0019, 'height_edge': 0.012, 'attacker_skill': 0.8721, 'defender_skill': 0.8762, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Lewis Hall', 'market_value': 52000000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.8762}], 'xg_override': 0.253}
aerialWon: 0.0 -> 1.1
totalShots: 2.8375 -> 2.8798
shotOffTarget: 2.0029 -> 2.0327
onTargetScoringAttempt: 0.8346 -> 0.847
expectedGoalsOnTarget: 0.3966 -> 0.4025
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.19 (squad xG sum 1.2865, xG scale 0.9273, xA scale 1.1352, team xA 0.78 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.193
squad_xg_sum=1.2865
squad_xa_sum=0.6831
team_expected_assists=0.7755
team_xa_to_xg_ratio=0.65
expected_goals: 0.253 -> 0.2346
expected_assists: 0.1279 -> 0.1453
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.2091
goal_rate=0.1967
scorer_weight=0.191
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=1
assist_probability=0.1352
assist_rate=0.224
provider_weight=0.1816
-
João GomesM8300.040.0255%10.46.850.427FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0088, quality 0.758)market_value_eur=36000000
quality_factor=0.7581
boost_factor=1.0088
reference_quality=0.505
history_matches=38
history_shrink=0.1163
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0020)blend_weight=0.002
history_matches=38
season_overlap_discount=1.0
per90_to_match_factor=0.924
prior_reliability=0.0267
competition=Premier League
wonTackle: 2.1057 -> 2.1108
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Lewis Miley', 'matchup_zone': 'Holding Mid vs Central Mid — Midfield Anchor Duel', 'duel_win_rate': 0.369, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.954, 'skill_edge': 0.0167, 'height_edge': -0.048, 'attacker_skill': 0.7926, 'defender_skill': 0.7554, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Lewis Miley', 'market_value': 32000000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.7554}], 'xg_override': 0.0404}
aerialWon: 0.5886 -> 0.9
totalShots: 0.5646 -> 0.5386
shotOffTarget: 0.3916 -> 0.3736
onTargetScoringAttempt: 0.173 -> 0.165
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.19 (squad xG sum 1.2865, xG scale 0.9273, xA scale 1.1352, team xA 0.78 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.193
squad_xg_sum=1.2865
squad_xa_sum=0.6831
team_expected_assists=0.7755
team_xa_to_xg_ratio=0.65
expected_assists: 0.0486 -> 0.0552
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.0368
goal_rate=0.0472
scorer_weight=0.0403
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0537
assist_rate=0.0672
provider_weight=0.0656
-
Boubacar KamaraM8700.050.01308%10.27.039.914FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0163, quality 0.821)market_value_eur=49000000
quality_factor=0.8206
boost_factor=1.0163
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.9696
prior_reliability=0.1333
competition=Premier League
wasFouled: 2.0842 -> 2.0603
fouls: 1.2201 -> 1.2381
totalShots: 0.6953 -> 0.6849
interceptionWon: 0.8163 -> 0.8113
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Lewis Miley', 'matchup_zone': 'Holding Mid vs Central Mid — Midfield Anchor Duel', 'duel_win_rate': 0.425, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 1.037, 'skill_edge': 0.0412, 'height_edge': -0.016, 'attacker_skill': 0.847, 'defender_skill': 0.7554, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Lewis Miley', 'market_value': 32000000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.7554}], 'xg_override': 0.0499}
aerialWon: 1.7837 -> 1.1
totalShots: 0.6921 -> 0.7177
shotOffTarget: 0.4892 -> 0.5073
onTargetScoringAttempt: 0.2029 -> 0.2104
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.19 (squad xG sum 1.2865, xG scale 0.9273, xA scale 1.1352, team xA 0.78 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.193
squad_xg_sum=1.2865
squad_xa_sum=0.6831
team_expected_assists=0.7755
team_xa_to_xg_ratio=0.65
expected_assists: 0.0585 -> 0.0664
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 84.0)match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0452
goal_rate=0.0548
scorer_weight=0.0486
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0642
assist_rate=0.0654
provider_weight=0.0706
-
Aaron Wan-BissakaD8000.00-n/a00.06.643.028FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0028, quality 0.569)market_value_eur=14100000
quality_factor=0.5693
boost_factor=1.0028
reference_quality=0.505
history_matches=30
history_shrink=0.1429
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0006)blend_weight=0.0006
history_matches=30
season_overlap_discount=1.0
per90_to_match_factor=0.8919
prior_reliability=0.0067
competition=Premier League
fouls: 0.5661 -> 0.5713
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 Fernández-Pardo', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.19 (squad xG sum 1.2865, xG scale 0.9273, xA scale 1.1352, team xA 0.78 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.193
squad_xg_sum=1.2865
squad_xa_sum=0.6831
team_expected_assists=0.7755
team_xa_to_xg_ratio=0.65
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 18 by projected rating, fifa_overall 78.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.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.0386
assist_rate=0.0512
provider_weight=0.0471
-
Pau TorresD7800.070.0459%00.26.829.827FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0070, quality 0.641)market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.007
reference_quality=0.505
history_matches=24
history_shrink=0.1724
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0134)blend_weight=0.0134
history_matches=24
season_overlap_discount=1.0
per90_to_match_factor=0.8711
prior_reliability=0.12
competition=Premier League
wonTackle: 0.6169 -> 0.6086
totalShots: 0.4948 -> 0.4881
fouls: 0.5651 -> 0.5705
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 Fernández-Pardo', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.19 (squad xG sum 1.2865, xG scale 0.9273, xA scale 1.1352, team xA 0.78 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.193
squad_xg_sum=1.2865
squad_xa_sum=0.6831
team_expected_assists=0.7755
team_xa_to_xg_ratio=0.65
expected_goals: 0.0706 -> 0.0655
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 81.0)match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0634
goal_rate=0.0
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.0125
assist_rate=0.0
provider_weight=0.0103
-
Victor LindelöfD8600.050.02130%00.16.833.230FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9976, quality 0.460)market_value_eur=4800000
quality_factor=0.4597
boost_factor=0.9976
reference_quality=0.505
history_matches=23
history_shrink=0.1786
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0155)blend_weight=0.0155
history_matches=23
season_overlap_discount=1.0
per90_to_match_factor=0.9599
prior_reliability=0.1333
competition=Premier League
interceptionWon: 0.8342 -> 0.8213
wonTackle: 0.5665 -> 0.5577
totalShots: 0.3209 -> 0.3159
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Harvey Barnes', 'matchup_zone': 'Right Wing vs Left Back — Flank Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.19 (squad xG sum 1.2865, xG scale 0.9273, xA scale 1.1352, team xA 0.78 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.193
squad_xg_sum=1.2865
squad_xa_sum=0.6831
team_expected_assists=0.7755
team_xa_to_xg_ratio=0.65
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 77.0)match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0533
goal_rate=0.0
scorer_weight=0.0438
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0218
assist_rate=0.0117
provider_weight=0.0196
-
Matty CashD8600.030.02ok00.56.752.728FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0041, quality 0.629)market_value_eur=19800000
quality_factor=0.6291
boost_factor=1.0041
reference_quality=0.505
history_matches=40
history_shrink=0.1111
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0092)blend_weight=0.0092
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=0.9592
prior_reliability=0.1267
competition=Premier League
totalCross: 2.5781 -> 2.5545
wonTackle: 1.2518 -> 1.2634
wasFouled: 1.227 -> 1.2343
fouls: 1.3666 -> 1.3726
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Yoane Wissa', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.19 (squad xG sum 1.2865, xG scale 0.9273, xA scale 1.1352, team xA 0.78 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.193
squad_xg_sum=1.2865
squad_xa_sum=0.6831
team_expected_assists=0.7755
team_xa_to_xg_ratio=0.65
expected_assists: 0.0432 -> 0.049
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 81.0)match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0252
goal_rate=0.0064
scorer_weight=0.0204
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0478
assist_rate=0.0663
provider_weight=0.0611
-
Zion SuzukiG9000.00-n/a0.07.028.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.0330, quality 0.725)market_value_eur=31000000
quality_factor=0.7249
boost_factor=1.033
reference_quality=0.505
history_matches=5
history_shrink=0.5
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0217)blend_weight=0.0217
history_matches=5
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.0667
competition=Premier League
saves: 3.0968 -> 3.0513
wasFouled: 0.6509 -> 0.6368
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Yoane Wissa, Matías Fernández-Pardo', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.4661}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.19 (squad xG sum 1.2865, xG scale 0.9273, xA scale 1.1352, team xA 0.78 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.193
squad_xg_sum=1.2865
squad_xa_sum=0.6831
team_expected_assists=0.7755
team_xa_to_xg_ratio=0.65
shots_faced: 13.9 -> 14.1
expected_saves: 3.4 -> 3.45
high_pressure_saves: 1.17 -> 1.19
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.1267
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.814
-
John McGinnF8300.160.1233%10.86.946.734FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0017, quality 0.552)market_value_eur=12600000
quality_factor=0.5525
boost_factor=1.0017
reference_quality=0.505
history_matches=36
history_shrink=0.122
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0100)blend_weight=0.01
history_matches=36
season_overlap_discount=1.0
per90_to_match_factor=0.9261
prior_reliability=0.1267
competition=Premier League
fouls: 1.2055 -> 1.213
onTargetScoringAttempt: 0.649 -> 0.6425
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Sven Botman, Malick Thiaw', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.7296, 'skill_edge': -0.1239, 'height_edge': -0.06, 'attacker_skill': 0.5525, 'defender_skill': 0.8279, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Sven Botman', 'market_value': 33000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8002}, {'player': 'Malick Thiaw', 'market_value': 46000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8555}], 'xg_override': 0.1767}
totalShots: 1.5712 -> 1.1463
shotOffTarget: 0.9233 -> 0.6736
onTargetScoringAttempt: 0.6425 -> 0.4688
bigChanceMissed: 0.304 -> 0.2218
expectedGoalsOnTarget: 0.247 -> 0.1802
expectedGoals: 0.2422 -> 0.1767
goals: 0.2366 -> 0.1726
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.19 (squad xG sum 1.2865, xG scale 0.9273, xA scale 1.1352, team xA 0.78 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.193
squad_xg_sum=1.2865
squad_xa_sum=0.6831
team_expected_assists=0.7755
team_xa_to_xg_ratio=0.65
expected_goals: 0.1767 -> 0.1639
expected_assists: 0.097 -> 0.1101
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 83.0)match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1512
goal_rate=0.1726
scorer_weight=0.1609
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1043
assist_rate=0.3316
provider_weight=0.1376
-
Team totals11.19106.8
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Marco BizotG4.4m13.1%Market-value substitute prior
Ian MaatsenD14.8m24.1%Market-value substitute prior
Matteo RuggeriD11.5m62.3%Market-value substitute prior
Amadou OnanaM23.4m56.1%Market-value substitute prior
Douglas LuizM22.7m53.2%Market-value substitute prior
Ibrahim MbayeF26.4m60.8%Market-value substitute prior
Antagonist / tactical summary
Midfield is evenly contested — Nico González vs Johan Manzambi will be the pivotal duel. Total antagonist xG — Home: 0.87, Away: 1.05. Home danger zone: Left Wing vs Right Back — Flank Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Midfield — possession 48.9% / 51.1%, dominance ratio 0.47, key duel: Nico González vs Johan Manzambi
Yoane Wissa xG 0.26Harvey Barnes xG 0.22Matías Fernández-Pardo xG 0.25Johan Manzambi xG 0.25Nicolas Jackson xG 0.37Emiliano Buendía xG 0.16

Summary

Antagonist matchup analysis for Newcastle vs Aston Villa. Most likely scoreline: 1-1. Lambdas derived from 6 home and 6 away individual player duels. Head-to-head: Newcastle 5W-2D-3L vs Aston Villa over 10 meetings.
Tactical parity between 4-3-3 and 4-2-3-1. Match outcome driven primarily by individual player quality. Midfield is evenly contested — Nico González vs Johan Manzambi will be the pivotal duel. Total antagonist xG — Home: 0.87, Away: 1.05. Home danger zone: Left Wing vs Right Back — Flank Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.

Real Betis vs Barcelona

LaLiga · 20261017 · 4-2-3-1 vs 4-3-3
Predicted 1-3Winner: BarcelonaWinning H 2-1 (2.1%)Winning A 1-3 (6.9%)Confidence 0.83λ home/away 1.49 / 3.81Most-likely P 6.9%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset Tracing
Antagonist + XGBoost match analysis for Real Betis vs Barcelona. 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-3-3 (duel lambdas: Home 1.484, Away 3.376). Final calibrated Poisson lambdas: Home 1.493, Away 3.815 (most likely score 1-3).
Home Starters 11/11 XGBoost (9 FBref) Away Starters 11/11 XGBoost (10 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.48 / 3.38 Final λ (H/A) 1.49 / 3.81
FBref Team Priors: Real Betis (Gls/90: 1.3333333333333333, GA/90: 1.33 → E[λ]: 3.5) vs FC Barcelona (Gls/90: 3.6666666666666665, GA/90: 4.0 → E[λ]: 3.5) | Blend Weight: 0.228
Modeling Pipeline Stages (5 layers)
  1. 1. XGBoost player regressions for volume & event rates with market-value quality scaling
  2. 2. Multi-source prior blending (FBref 2026-2027 tables + Sofascore season history)
  3. 3. Antagonist formation duel matrix resolving 1v1 and zonal matchups
  4. 4. Team-level prior calibration (FBref possession and attack/defense efficiencies)
  5. 5. Bivariate Poisson matrix with Dixon-Coles low-score correction

Standing & form context

MetricReal BetisBarcelona
League position3.001.00
Points per game1.942.30
Attack index1.051.70
Defense (concede) index0.830.89
Form multiplier0.981.02
Standing λ multiplier0.941.19

Lambda decomposition (how the goal rates were built)

StageReal Betis λBarcelona λ
FBref Squad Prior E[λ] (weight 0.228)3.5003.500
Pre-mismatch1.6923.616
Pre-calibration (Micro-duels)1.4843.376
Final λ1.4933.815
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-36.9%
1-46.6%
1-25.4%
2-35.1%
1-55.0%
Home win10.2%
Draw11.1%
Away win78.6%
Over 2.589.8%
BTTS yes75.8%
Pregame fair line — favorite Barcelona (78.6%), fair total 5.31, fair spread -2.32

Projected players vs season baseline

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

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Cucho HernándezF8000.290.28ok22.16.860.326XGBoost 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.0030, quality 0.595)market_value_eur=16500000
quality_factor=0.5953
boost_factor=1.003
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': 'Gerard Martín, Pau Cubarsí', '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.7678, 'skill_edge': -0.118, 'height_edge': -0.04, 'attacker_skill': 0.5953, 'defender_skill': 0.8575, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Gerard Martín', 'market_value': 36000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8168}, {'player': 'Pau Cubarsí', 'market_value': 94000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8981}], 'xg_override': 0.2398}
totalShots: 2.3122 -> 1.7753
shotOffTarget: 1.4651 -> 1.1249
onTargetScoringAttempt: 0.8471 -> 0.6504
bigChanceMissed: 0.5111 -> 0.3924
expectedGoalsOnTarget: 0.4101 -> 0.3149
goals: 0.3292 -> 0.2528
expectedGoals: 0.3123 -> 0.2398
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.49 (squad xG sum 1.2283, xG scale 1.2155, xA scale 1.2155, team xA 1.08 = 0.72 x lambda)scoreline_reset=true
team_lambda=1.493
squad_xg_sum=1.2283
squad_xa_sum=0.8898
team_expected_assists=1.0815
team_xa_to_xg_ratio=0.7244
expected_goals: 0.2398 -> 0.2915
expected_assists: 0.0722 -> 0.0878
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 79.0)match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.2529
goal_rate=0.2528
scorer_weight=0.3046
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0841
assist_rate=0.2287
provider_weight=0.1098
-
Abdessamad EzzalzouliF8210.320.24ok21.87.259.031XGBoost F_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0112, quality 0.796)market_value_eur=43000000
quality_factor=0.7957
boost_factor=1.0112
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': 'Gerard Martín, Pau Cubarsí', '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.9121, 'skill_edge': -0.0278, 'height_edge': -0.032, 'attacker_skill': 0.7957, 'defender_skill': 0.8575, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Gerard Martín', 'market_value': 36000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8168}, {'player': 'Pau Cubarsí', 'market_value': 94000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8981}], 'xg_override': 0.2598}
totalShots: 2.233 -> 2.0367
shotOffTarget: 1.3492 -> 1.2306
onTargetScoringAttempt: 0.8837 -> 0.806
expectedGoalsOnTarget: 0.4842 -> 0.4416
goals: 0.3117 -> 0.2843
expectedGoals: 0.2848 -> 0.2598
bigChanceMissed: 0.2394 -> 0.2184
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.49 (squad xG sum 1.2283, xG scale 1.2155, xA scale 1.2155, team xA 1.08 = 0.72 x lambda)scoreline_reset=true
team_lambda=1.493
squad_xg_sum=1.2283
squad_xa_sum=0.8898
team_expected_assists=1.0815
team_xa_to_xg_ratio=0.7244
expected_goals: 0.2598 -> 0.3158
expected_assists: 0.2126 -> 0.2583
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 86.0)match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_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.2708
goal_rate=0.2843
scorer_weight=0.3408
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.2276
assist_rate=0.1321
provider_weight=0.2066
-
IscoM6800.170.21ok21.27.157.318FBref Prior M_service
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.9957, quality 0.445)market_value_eur=3600000
quality_factor=0.4449
boost_factor=0.9957
reference_quality=0.505
history_matches=16
history_shrink=0.2381
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0134)blend_weight=0.0134
history_matches=16
season_overlap_discount=1.0
per90_to_match_factor=0.7559
prior_reliability=0.0867
competition=La Liga
fouls: 0.1064 -> 0.1362
totalCross: 3.141 -> 3.1535
onTargetScoringAttempt: 0.8152 -> 0.8269
totalShots: 2.2728 -> 2.2649
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Xavi Espart', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.34, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 0.7941, 'skill_edge': -0.144, 'height_edge': 0.004, 'attacker_skill': 0.4449, 'defender_skill': 0.765, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Xavi Espart', 'market_value': 26000000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.765}], 'xg_override': 0.1435}
aerialWon: 0.0 -> 0.9
totalShots: 2.2845 -> 1.8141
shotOffTarget: 1.4576 -> 1.1575
onTargetScoringAttempt: 0.8269 -> 0.6566
expectedGoalsOnTarget: 0.5649 -> 0.4486
bigChanceMissed: 0.2684 -> 0.2131
goals: 0.2027 -> 0.161
expectedGoals: 0.1807 -> 0.1435
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.49 (squad xG sum 1.2283, xG scale 1.2155, xA scale 1.2155, team xA 1.08 = 0.72 x lambda)scoreline_reset=true
team_lambda=1.493
squad_xg_sum=1.2283
squad_xa_sum=0.8898
team_expected_assists=1.0815
team_xa_to_xg_ratio=0.7244
expected_goals: 0.1435 -> 0.1744
expected_assists: 0.14 -> 0.1702
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=0
goal_probability=0.16
goal_rate=0.161
scorer_weight=0.1902
-
integer_assist_projectionTeam scoreline allocation: 1 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.1565
assist_rate=0.1322
provider_weight=0.1632
-
AntonyF8000.210.23ok22.97.261.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.0086, quality 0.764)market_value_eur=37000000
quality_factor=0.7641
boost_factor=1.0086
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.8851
prior_reliability=0.2
competition=La Liga
totalShots: 2.6078 -> 2.6341
totalCross: 1.8774 -> 1.8886
onTargetScoringAttempt: 1.0219 -> 1.0285
wasFouled: 1.338 -> 1.3442
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Gerard Martín, Pau Cubarsí', '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.8618, 'skill_edge': -0.042, 'height_edge': -0.052, 'attacker_skill': 0.7641, 'defender_skill': 0.8575, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Gerard Martín', 'market_value': 36000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8168}, {'player': 'Pau Cubarsí', 'market_value': 94000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8981}], 'xg_override': 0.1698}
totalShots: 2.6341 -> 2.2701
shotOffTarget: 1.5858 -> 1.3666
onTargetScoringAttempt: 1.0285 -> 0.8864
bigChanceMissed: 0.4034 -> 0.3477
expectedGoalsOnTarget: 0.2937 -> 0.2531
goals: 0.2272 -> 0.1958
expectedGoals: 0.197 -> 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.49 (squad xG sum 1.2283, xG scale 1.2155, xA scale 1.2155, team xA 1.08 = 0.72 x lambda)scoreline_reset=true
team_lambda=1.493
squad_xg_sum=1.2283
squad_xa_sum=0.8898
team_expected_assists=1.0815
team_xa_to_xg_ratio=0.7244
expected_goals: 0.1698 -> 0.2064
expected_assists: 0.1224 -> 0.1488
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 81.0)match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1865
goal_rate=0.1958
scorer_weight=0.2308
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1383
assist_rate=0.0524
provider_weight=0.119
-
Facundo BernalM8000.040.0288%10.66.847.610FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0017, quality 0.519)market_value_eur=9700000
quality_factor=0.5189
boost_factor=1.0017
reference_quality=0.505
history_matches=7
history_shrink=0.4167
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0433)blend_weight=0.0433
history_matches=7
season_overlap_discount=1.0
per90_to_match_factor=0.8868
prior_reliability=0.16
competition=La Liga
fouls: 1.1403 -> 1.1069
totalShots: 0.7465 -> 0.7614
wonTackle: 0.6407 -> 0.6289
interceptionWon: 1.6268 -> 1.6364
onTargetScoringAttempt: 0.17 -> 0.1784
wasFouled: 0.8607 -> 0.8554
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Fermín López', 'matchup_zone': 'Holding Mid vs Central Mid — Midfield Anchor Duel', 'duel_win_rate': 0.282, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.8271, 'skill_edge': -0.1617, 'height_edge': 0.044, 'attacker_skill': 0.5389, 'defender_skill': 0.8981, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Fermín López', 'market_value': 113000000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.8981}], 'xg_override': 0.0319}
aerialWon: 0.5021 -> 1.2
totalShots: 0.7614 -> 0.6298
shotOffTarget: 0.5765 -> 0.4768
onTargetScoringAttempt: 0.1784 -> 0.1476
goals: 0.0483 -> 0.0399
expectedGoals: 0.0386 -> 0.0319
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.49 (squad xG sum 1.2283, xG scale 1.2155, xA scale 1.2155, team xA 1.08 = 0.72 x lambda)scoreline_reset=true
team_lambda=1.493
squad_xg_sum=1.2283
squad_xa_sum=0.8898
team_expected_assists=1.0815
team_xa_to_xg_ratio=0.7244
expected_goals: 0.0319 -> 0.0388
expected_assists: 0.0291 -> 0.0354
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 74.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.0381
goal_rate=0.0399
scorer_weight=0.0426
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0348
assist_rate=0.0379
provider_weight=0.0393
-
Pablo FornalsM8100.080.06ok10.97.059.232FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0000, quality 0.503)market_value_eur=8400000
quality_factor=0.5035
boost_factor=1.0
reference_quality=0.505
history_matches=44
history_shrink=0.102
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0097)blend_weight=0.0097
history_matches=44
season_overlap_discount=1.0
per90_to_match_factor=0.9013
prior_reliability=0.1467
competition=La Liga
totalShots: 1.201 -> 1.2127
totalCross: 3.075 -> 3.0849
wasFouled: 0.9458 -> 0.9366
interceptionWon: 0.8006 -> 0.8088
wonTackle: 0.2102 -> 0.2161
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Fermín López', 'matchup_zone': 'Holding Mid vs Central Mid — Midfield Anchor Duel', 'duel_win_rate': 0.238, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.7623, 'skill_edge': -0.1697, 'height_edge': 0.008, 'attacker_skill': 0.5211, 'defender_skill': 0.8981, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Fermín López', 'market_value': 113000000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.8981}], 'xg_override': 0.0656}
aerialWon: 0.3677 -> 1.0
totalShots: 1.2127 -> 0.9244
shotOffTarget: 0.829 -> 0.6319
onTargetScoringAttempt: 0.3684 -> 0.2808
goals: 0.1059 -> 0.0807
expectedGoals: 0.086 -> 0.0656
expectedGoalsOnTarget: 0.0624 -> 0.0476
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.49 (squad xG sum 1.2283, xG scale 1.2155, xA scale 1.2155, team xA 1.08 = 0.72 x lambda)scoreline_reset=true
team_lambda=1.493
squad_xg_sum=1.2283
squad_xa_sum=0.8898
team_expected_assists=1.0815
team_xa_to_xg_ratio=0.7244
expected_goals: 0.0656 -> 0.0797
expected_assists: 0.141 -> 0.1714
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_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.0766
goal_rate=0.0807
scorer_weight=0.0901
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1575
assist_rate=0.1083
provider_weight=0.1421
-
Valentín GómezD9000.010.00416%00.16.838.230FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0013, quality 0.536)market_value_eur=11200000
quality_factor=0.5365
boost_factor=1.0013
reference_quality=0.505
history_matches=31
history_shrink=0.1389
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0060)blend_weight=0.006
history_matches=31
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.0667
competition=La Liga
wonTackle: 0.7676 -> 0.781
interceptionWon: 0.8752 -> 0.882
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 Jesus', '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.49 (squad xG sum 1.2283, xG scale 1.2155, xA scale 1.2155, team xA 1.08 = 0.72 x lambda)scoreline_reset=true
team_lambda=1.493
squad_xg_sum=1.2283
squad_xa_sum=0.8898
team_expected_assists=1.0815
team_xa_to_xg_ratio=0.7244
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 76.0)match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0147
goal_rate=0.0142
scorer_weight=0.0153
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0159
assist_rate=0.0
provider_weight=0.0128
-
Diego LlorenteD8100.020.01103%00.26.848.726FBref Prior D_service
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=2600000
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.0083)blend_weight=0.0083
history_matches=21
season_overlap_discount=1.0
per90_to_match_factor=0.9038
prior_reliability=0.0667
competition=La Liga
interceptionWon: 1.1781 -> 1.206
wonTackle: 0.7887 -> 0.7821
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 Jesus', '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.49 (squad xG sum 1.2283, xG scale 1.2155, xA scale 1.2155, team xA 1.08 = 0.72 x lambda)scoreline_reset=true
team_lambda=1.493
squad_xg_sum=1.2283
squad_xa_sum=0.8898
team_expected_assists=1.0815
team_xa_to_xg_ratio=0.7244
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 79.0)match_squad_rank=11
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0227
goal_rate=0.0
scorer_weight=0.0184
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0047
assist_rate=0.0
provider_weight=0.0044
-
Héctor BellerínD8800.090.03181%10.36.752.027FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9975, quality 0.437)market_value_eur=2500000
quality_factor=0.4374
boost_factor=0.9975
reference_quality=0.505
history_matches=35
history_shrink=0.125
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0119)blend_weight=0.0119
history_matches=35
season_overlap_discount=1.0
per90_to_match_factor=0.9743
prior_reliability=0.1467
competition=La Liga
totalCross: 1.5259 -> 1.5394
interceptionWon: 0.9697 -> 0.9581
wonTackle: 1.2641 -> 1.2543
fouls: 0.7349 -> 0.7261
totalShots: 0.5385 -> 0.5321
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Karim Adeyemi', 'matchup_zone': 'Right Wing vs Left Back — Flank Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.49 (squad xG sum 1.2283, xG scale 1.2155, xA scale 1.2155, team xA 1.08 = 0.72 x lambda)scoreline_reset=true
team_lambda=1.493
squad_xg_sum=1.2283
squad_xa_sum=0.8898
team_expected_assists=1.0815
team_xa_to_xg_ratio=0.7244
expected_goals: 0.0712 -> 0.0865
expected_assists: 0.0866 -> 0.1053
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 16 by projected rating, fifa_overall 76.0)match_squad_rank=16
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0829
goal_rate=0.0487
scorer_weight=0.0704
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0999
assist_rate=0.1912
provider_weight=0.1316
-
Álvaro VallesG9000.00-n/a0.07.460.032FBref Prior G_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost G_service raw output over 3 target models--
market_value_boostMarket-value quality scaling (boost 1.0003, quality 0.514)market_value_eur=9300000
quality_factor=0.5142
boost_factor=1.0003
reference_quality=0.505
history_matches=36
history_shrink=0.122
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0159)blend_weight=0.0159
history_matches=36
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.2
competition=La Liga
saves: 2.9961 -> 3.0014
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Lamine Yamal, Karim Adeyemi', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 3.3757}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.49 (squad xG sum 1.2283, xG scale 1.2155, xA scale 1.2155, team xA 1.08 = 0.72 x lambda)scoreline_reset=true
team_lambda=1.493
squad_xg_sum=1.2283
squad_xa_sum=0.8898
team_expected_assists=1.0815
team_xa_to_xg_ratio=0.7244
shots_faced: 32.1 -> 36.2
expected_saves: 7.86 -> 8.86
high_pressure_saves: 2.7 -> 3.05
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 77.0)match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.5951
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.0141
-
Marc BartraD7400.070.03123%10.66.945.726FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9971, quality 0.437)market_value_eur=930000
quality_factor=0.4374
boost_factor=0.9971
reference_quality=0.505
history_matches=30
history_shrink=0.1429
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0124)blend_weight=0.0124
history_matches=30
season_overlap_discount=1.0
per90_to_match_factor=0.8259
prior_reliability=0.1333
competition=La Liga
interceptionWon: 0.949 -> 0.9577
totalShots: 0.6391 -> 0.6465
totalCross: 0.3083 -> 0.3147
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Lamine Yamal', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.49 (squad xG sum 1.2283, xG scale 1.2155, xA scale 1.2155, team xA 1.08 = 0.72 x lambda)scoreline_reset=true
team_lambda=1.493
squad_xg_sum=1.2283
squad_xa_sum=0.8898
team_expected_assists=1.0815
team_xa_to_xg_ratio=0.7244
expected_goals: 0.0599 -> 0.0728
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 89.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.0702
goal_rate=0.1247
scorer_weight=0.091
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0152
assist_rate=0.0
provider_weight=0.0122
-
Team totals11.49147.0
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Diego CondeG4.4m10.9%Market-value substitute prior
NatanD14.7m24.1%Market-value substitute prior
Fran GarcíaD23.8m35.1%Market-value substitute prior
Sergi AltimiraM22.7m53.2%Market-value substitute prior
Nelson DeossaM19.9m57.0%Market-value substitute prior
Troy ParrottF22.8m54.4%Market-value substitute prior

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Gerard MartínD8400.020.01132%00.27.255.030FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0086, quality 0.758)market_value_eur=36000000
quality_factor=0.7581
boost_factor=1.0086
reference_quality=0.505
history_matches=39
history_shrink=0.1136
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0098)blend_weight=0.0098
history_matches=39
season_overlap_discount=1.0
per90_to_match_factor=0.9288
prior_reliability=0.1333
competition=La Liga
fouls: 1.0428 -> 1.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': 'Abdessamad Ezzalzouli', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 3 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=3
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 3.81 (squad xG sum 2.3560, xG scale 1.6193, xA scale 1.8335, team xA 2.48 = 0.65 x lambda)scoreline_reset=true
team_lambda=3.815
squad_xg_sum=2.356
squad_xa_sum=1.3524
team_expected_assists=2.4798
team_xa_to_xg_ratio=0.65
expected_goals: 0.0121 -> 0.0196
expected_assists: 0.056 -> 0.1027
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 79.0)match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 3 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=3
allocation_applied=true
goals_allocated=0
goal_probability=0.0194
goal_rate=0.0
scorer_weight=0.0158
-
integer_assist_projectionTeam scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=2
assists_allocated=0
assist_probability=0.0976
assist_rate=0.0
provider_weight=0.0822
-
Pau CubarsíD8500.070.02205%00.27.252.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.0141, quality 0.891)market_value_eur=94000000
quality_factor=0.891
boost_factor=1.0141
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.9471
prior_reliability=0.1333
competition=La Liga
wonTackle: 0.6904 -> 0.6981
interceptionWon: 1.1594 -> 1.1522
totalShots: 0.4118 -> 0.4175
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Abdessamad Ezzalzouli', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 3 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=3
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 3.81 (squad xG sum 2.3560, xG scale 1.6193, xA scale 1.8335, team xA 2.48 = 0.65 x lambda)scoreline_reset=true
team_lambda=3.815
squad_xg_sum=2.356
squad_xa_sum=1.3524
team_expected_assists=2.4798
team_xa_to_xg_ratio=0.65
expected_goals: 0.0427 -> 0.0691
expected_assists: 0.0202 -> 0.037
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: 3 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=3
allocation_applied=true
goals_allocated=0
goal_probability=0.0668
goal_rate=0.0113
scorer_weight=0.0553
-
integer_assist_projectionTeam scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=2
assists_allocated=0
assist_probability=0.0363
assist_rate=0.0
provider_weight=0.0296
-
Jules KoundéD8700.290.08272%10.47.148.426FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0129, quality 0.848)market_value_eur=58000000
quality_factor=0.8478
boost_factor=1.0129
reference_quality=0.505
history_matches=35
history_shrink=0.125
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0065)blend_weight=0.0065
history_matches=35
season_overlap_discount=1.0
per90_to_match_factor=0.9701
prior_reliability=0.08
competition=La Liga
totalCross: 1.3659 -> 1.357
interceptionWon: 0.9004 -> 0.8945
wonTackle: 0.8873 -> 0.8815
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Cucho Hernández', 'matchup_zone': 'Shape fallback'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 3 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=3
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 3.81 (squad xG sum 2.3560, xG scale 1.6193, xA scale 1.8335, team xA 2.48 = 0.65 x lambda)scoreline_reset=true
team_lambda=3.815
squad_xg_sum=2.356
squad_xa_sum=1.3524
team_expected_assists=2.4798
team_xa_to_xg_ratio=0.65
expected_goals: 0.1762 -> 0.2853
expected_assists: 0.1259 -> 0.2308
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 85.0)match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 3 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=3
allocation_applied=true
goals_allocated=0
goal_probability=0.2482
goal_rate=0.1575
scorer_weight=0.2617
-
integer_assist_projectionTeam scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=2
assists_allocated=0
assist_probability=0.2061
assist_rate=0.1129
provider_weight=0.2137
-
Joan GarcíaG8500.00-n/a0.07.160.630FBref 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.0109, quality 0.809)market_value_eur=46000000
quality_factor=0.8089
boost_factor=1.0109
reference_quality=0.505
history_matches=37
history_shrink=0.119
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0155)blend_weight=0.0155
history_matches=37
season_overlap_discount=1.0
per90_to_match_factor=0.9393
prior_reliability=0.2
competition=La Liga
saves: 2.8607 -> 2.8407
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Abdessamad Ezzalzouli, Cucho Hernández', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.4843}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 3 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=3
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 3.81 (squad xG sum 2.3560, xG scale 1.6193, xA scale 1.8335, team xA 2.48 = 0.65 x lambda)scoreline_reset=true
team_lambda=3.815
squad_xg_sum=2.356
squad_xa_sum=1.3524
team_expected_assists=2.4798
team_xa_to_xg_ratio=0.65
shots_faced: 14.1 -> 14.2
expected_saves: 3.45 -> 3.48
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 86.0)match_squad_rank=11
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 3 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=3
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=4.1327
-
integer_assist_projectionTeam scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=2
assists_allocated=0
assist_probability=0.0
provider_weight=0.0
squad_weight_total=2.6527
-
Xavi EspartD8900.060.01477%10.36.827.023FBref Prior D_service
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.0181, quality 0.686)market_value_eur=26000000
quality_factor=0.6858
boost_factor=1.0181
reference_quality=0.505
history_matches=10
history_shrink=0.3333
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0433)blend_weight=0.0433
history_matches=10
season_overlap_discount=1.0
per90_to_match_factor=0.9838
prior_reliability=0.2
competition=La Liga
wasFouled: 0.9993 -> 0.9702
totalCross: 0.7355 -> 0.7605
interceptionWon: 1.1647 -> 1.1853
fouls: 1.4571 -> 1.4366
goalAssist: 0.2377 -> 0.2558
goals: 0.1911 -> 0.1828
totalShots: 0.8253 -> 0.8181
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': 'Isco', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 3 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=3
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 3.81 (squad xG sum 2.3560, xG scale 1.6193, xA scale 1.8335, team xA 2.48 = 0.65 x lambda)scoreline_reset=true
team_lambda=3.815
squad_xg_sum=2.356
squad_xa_sum=1.3524
team_expected_assists=2.4798
team_xa_to_xg_ratio=0.65
expected_goals: 0.0347 -> 0.0562
expected_assists: 0.091 -> 0.1669
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 15 by projected rating, fifa_overall 67.0)match_squad_rank=15
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 3 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=3
allocation_applied=true
goals_allocated=0
goal_probability=0.0546
goal_rate=0.1828
scorer_weight=0.0703
-
integer_assist_projectionTeam scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=2
assists_allocated=0
assist_probability=0.1537
assist_rate=0.2558
provider_weight=0.2086
-
RodriM8100.190.07166%10.77.567.025FBref Prior M_service
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.0151, quality 0.837)market_value_eur=54000000
quality_factor=0.837
boost_factor=1.0151
reference_quality=0.505
history_matches=28
history_shrink=0.1515
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0039)blend_weight=0.0039
history_matches=28
season_overlap_discount=1.0
per90_to_match_factor=0.8983
prior_reliability=0.04
competition=La Liga
wonTackle: 1.7648 -> 1.7578
interceptionWon: 1.3309 -> 1.3257
wasFouled: 1.29 -> 1.2849
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Facundo Bernal', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.58, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.2359, 'skill_edge': 0.1445, 'height_edge': 0.016, 'attacker_skill': 0.8599, 'defender_skill': 0.5389, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Facundo Bernal', 'market_value': 9700000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.5389}], 'xg_override': 0.1183}
aerialWon: 1.7904 -> 1.3
totalShots: 0.9272 -> 1.1459
shotOffTarget: 0.7101 -> 0.8776
onTargetScoringAttempt: 0.2171 -> 0.2683
bigChanceMissed: 0.1332 -> 0.1646
expectedGoals: 0.0957 -> 0.1183
goals: 0.0726 -> 0.0897
expectedGoalsOnTarget: 0.0213 -> 0.0263
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 3 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=3
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 3.81 (squad xG sum 2.3560, xG scale 1.6193, xA scale 1.8335, team xA 2.48 = 0.65 x lambda)scoreline_reset=true
team_lambda=3.815
squad_xg_sum=2.356
squad_xa_sum=1.3524
team_expected_assists=2.4798
team_xa_to_xg_ratio=0.65
expected_goals: 0.1183 -> 0.1916
expected_assists: 0.1417 -> 0.2598
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 90.0)match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 3 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=3
allocation_applied=true
goals_allocated=0
goal_probability=0.1744
goal_rate=0.0897
scorer_weight=0.159
-
integer_assist_projectionTeam scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=2
assists_allocated=0
assist_probability=0.2288
assist_rate=0.0865
provider_weight=0.2078
-
Fermín LópezM8000.440.2764%31.97.263.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.0140, quality 0.896)market_value_eur=113000000
quality_factor=0.8965
boost_factor=1.014
reference_quality=0.505
history_matches=37
history_shrink=0.119
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0119)blend_weight=0.0119
history_matches=37
season_overlap_discount=1.0
per90_to_match_factor=0.888
prior_reliability=0.1533
competition=La Liga
onTargetScoringAttempt: 0.9624 -> 0.9738
goals: 0.2536 -> 0.2643
wasFouled: 0.9765 -> 0.9832
wonTackle: 0.6872 -> 0.6928
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Facundo Bernal', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.568, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.1729, 'skill_edge': 0.1617, 'height_edge': -0.044, 'attacker_skill': 0.8981, 'defender_skill': 0.5389, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Facundo Bernal', 'market_value': 9700000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.5389}], 'xg_override': 0.2734}
totalShots: 2.2531 -> 2.6427
aerialWon: 0.5712 -> 0.9
shotOffTarget: 1.2793 -> 1.5005
onTargetScoringAttempt: 0.9738 -> 1.1422
expectedGoalsOnTarget: 0.566 -> 0.6639
goals: 0.2643 -> 0.31
expectedGoals: 0.2331 -> 0.2734
bigChanceMissed: 0.2213 -> 0.2596
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 3 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=3
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 3.81 (squad xG sum 2.3560, xG scale 1.6193, xA scale 1.8335, team xA 2.48 = 0.65 x lambda)scoreline_reset=true
team_lambda=3.815
squad_xg_sum=2.356
squad_xa_sum=1.3524
team_expected_assists=2.4798
team_xa_to_xg_ratio=0.65
expected_goals: 0.2734 -> 0.4427
expected_assists: 0.1614 -> 0.2959
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 90.0)match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 3 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=3
allocation_applied=true
goals_allocated=0
goal_probability=0.3577
goal_rate=0.31
scorer_weight=0.4928
-
integer_assist_projectionTeam scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=2
assists_allocated=0
assist_probability=0.2561
assist_rate=0.156
provider_weight=0.2884
-
PedriM8000.150.05225%10.67.264.926FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0141, quality 0.900)market_value_eur=164000000
quality_factor=0.8997
boost_factor=1.0141
reference_quality=0.505
history_matches=37
history_shrink=0.119
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0119)blend_weight=0.0119
history_matches=37
season_overlap_discount=1.0
per90_to_match_factor=0.8863
prior_reliability=0.1533
competition=La Liga
wonTackle: 0.9158 -> 0.9232
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Facundo Bernal', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.56, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.1624, 'skill_edge': 0.1624, 'height_edge': -0.052, 'attacker_skill': 0.8999, 'defender_skill': 0.5389, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Facundo Bernal', 'market_value': 9700000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.5389}], 'xg_override': 0.0932}
aerialWon: 0.1272 -> 0.9
totalShots: 0.9867 -> 1.1469
shotOffTarget: 0.7188 -> 0.8355
onTargetScoringAttempt: 0.2673 -> 0.3107
goals: 0.0987 -> 0.1147
expectedGoals: 0.0802 -> 0.0932
expectedGoalsOnTarget: 0.067 -> 0.0779
bigChanceMissed: 0.0311 -> 0.0362
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 3 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=3
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 3.81 (squad xG sum 2.3560, xG scale 1.6193, xA scale 1.8335, team xA 2.48 = 0.65 x lambda)scoreline_reset=true
team_lambda=3.815
squad_xg_sum=2.356
squad_xa_sum=1.3524
team_expected_assists=2.4798
team_xa_to_xg_ratio=0.65
expected_goals: 0.0932 -> 0.1509
expected_assists: 0.175 -> 0.3209
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 90.0)match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 3 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=3
allocation_applied=true
goals_allocated=0
goal_probability=0.1401
goal_rate=0.1147
scorer_weight=0.1736
-
integer_assist_projectionTeam scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=2
assists_allocated=1
assist_probability=0.2745
assist_rate=0.1911
provider_weight=0.3439
-
Karim AdeyemiF7910.670.4354%31.57.158.511FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0324, quality 0.786)market_value_eur=41000000
quality_factor=0.7859
boost_factor=1.0324
reference_quality=0.505
history_matches=8
history_shrink=0.3846
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0167)blend_weight=0.0167
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=0.8807
prior_reliability=0.0667
competition=La Liga
onTargetScoringAttempt: 0.8415 -> 0.872
goalAssist: 0.2483 -> 0.2588
wasFouled: 1.1548 -> 1.1649
goals: 0.3087 -> 0.3182
fouls: 0.3879 -> 0.3961
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Héctor Bellerín', 'matchup_zone': 'Right Wing vs Left Back — Flank Battle', 'duel_win_rate': 0.642, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.2376, 'skill_edge': 0.1536, 'height_edge': 0.008, 'attacker_skill': 0.7859, 'defender_skill': 0.4445, 'attacker_role': 'RW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Héctor Bellerín', 'market_value': 2500000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.4445}], 'xg_override': 0.4114}
totalShots: 2.4178 -> 2.9923
shotOffTarget: 1.5458 -> 1.9131
onTargetScoringAttempt: 0.872 -> 1.0792
bigChanceMissed: 0.817 -> 1.0111
expectedGoals: 0.3324 -> 0.4114
goals: 0.3182 -> 0.3938
expectedGoalsOnTarget: 0.3039 -> 0.3761
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 3 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=3
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 3.81 (squad xG sum 2.3560, xG scale 1.6193, xA scale 1.8335, team xA 2.48 = 0.65 x lambda)scoreline_reset=true
team_lambda=3.815
squad_xg_sum=2.356
squad_xa_sum=1.3524
team_expected_assists=2.4798
team_xa_to_xg_ratio=0.65
expected_goals: 0.4114 -> 0.6662
expected_assists: 0.1465 -> 0.2686
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 82.0)match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 3 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=3
allocation_applied=true
goals_allocated=1
goal_probability=0.4863
goal_rate=0.3938
scorer_weight=0.6408
-
integer_assist_projectionTeam scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=2
assists_allocated=0
assist_probability=0.2356
assist_rate=0.2588
provider_weight=0.3357
-
Gabriel JesusF7400.540.11377%20.76.836.126XGBoost F_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0066, quality 0.607)market_value_eur=17600000
quality_factor=0.6068
boost_factor=1.0066
reference_quality=0.505
history_matches=18
history_shrink=0.2174
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Valentín Gómez, Diego Llorente', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.211, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.0165, 'skill_edge': 0.0432, 'height_edge': -0.032, 'attacker_skill': 0.6068, 'defender_skill': 0.5108, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Valentín Gómez', 'market_value': 11200000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5785}, {'player': 'Diego Llorente', 'market_value': 2600000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4432}], 'xg_override': 0.3326}
totalShots: 2.0466 -> 2.0804
bigChanceMissed: 1.4372 -> 1.4609
shotOffTarget: 1.1159 -> 1.1343
onTargetScoringAttempt: 0.9306 -> 0.946
goals: 0.349 -> 0.3548
expectedGoals: 0.3272 -> 0.3326
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 3 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=3
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 3.81 (squad xG sum 2.3560, xG scale 1.6193, xA scale 1.8335, team xA 2.48 = 0.65 x lambda)scoreline_reset=true
team_lambda=3.815
squad_xg_sum=2.356
squad_xa_sum=1.3524
team_expected_assists=2.4798
team_xa_to_xg_ratio=0.65
expected_goals: 0.3326 -> 0.5386
expected_assists: 0.0652 -> 0.1195
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 16 by projected rating, fifa_overall 79.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: 3 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=3
allocation_applied=true
goals_allocated=0
goal_probability=0.4164
goal_rate=0.3548
scorer_weight=0.5698
-
integer_assist_projectionTeam scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=2
assists_allocated=0
assist_probability=0.1126
assist_rate=0.0
provider_weight=0.0956
-
Lamine YamalF8421.220.49149%73.68.265.530FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0145, quality 0.900)market_value_eur=237000000
quality_factor=0.9
boost_factor=1.0145
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.9296
prior_reliability=0.18
competition=La Liga
totalOffside: 0.7768 -> 0.7952
goalAssist: 0.7365 -> 0.726
fouls: 1.1745 -> 1.1676
interceptionWon: 0.2152 -> 0.222
totalCross: 3.3521 -> 3.3583
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 Bartra', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.688, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.306, 'skill_edge': 0.2082, 'height_edge': 0.0, 'attacker_skill': 0.9, 'defender_skill': 0.4374, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Marc Bartra', 'market_value': 930000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.4374}], 'xg_override': 0.7541}
totalShots: 5.1418 -> 6.7152
shotOffTarget: 3.2684 -> 4.2685
onTargetScoringAttempt: 1.8711 -> 2.4437
goals: 0.8192 -> 1.0699
expectedGoalsOnTarget: 0.7478 -> 0.9766
expectedGoals: 0.5774 -> 0.7541
bigChanceMissed: 0.3811 -> 0.4977
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 3 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=3
goals: 1.0 -> 0
assists: 1.0 -> 0
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 3.81 (squad xG sum 2.3560, xG scale 1.6193, xA scale 1.8335, team xA 2.48 = 0.65 x lambda)scoreline_reset=true
team_lambda=3.815
squad_xg_sum=2.356
squad_xa_sum=1.3524
team_expected_assists=2.4798
team_xa_to_xg_ratio=0.65
expected_goals: 0.7541 -> 1.2211
expected_assists: 0.285 -> 0.5227
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 90.0)match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 3 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=3
allocation_applied=true
goals_allocated=2
goal_probability=0.7051
goal_rate=1.0699
scorer_weight=1.5264
-
integer_assist_projectionTeam scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=2
assists_allocated=1
assist_probability=0.4071
assist_rate=0.726
provider_weight=0.6534
-
Team totals33.81217.2
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Dominik LivakovićG4.5m11.1%Market-value substitute prior
Alejandro BaldeD15.2m37.1%Market-value substitute prior
Eric GarcíaD15.0m24.6%Market-value substitute prior
Ferran TorresM23.6m57.3%Market-value substitute prior
Dani OlmoM25.5m59.7%Market-value substitute prior
Anthony GordonF26.5m49.8%Market-value substitute prior
Antagonist / tactical summary
Away midfield dictates play with ~54% possession expected (Facundo Bernal vs Pedri). Total antagonist xG — Home: 0.91, Away: 1.98. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Left Wing vs Right Back — Flank Battle.
Midfield — possession 45.9% / 54.1%, dominance ratio 0.36, key duel: Facundo Bernal vs Pedri
Isco xG 0.14Abdessamad Ezzalzouli xG 0.26Cucho Hernández xG 0.24Lamine Yamal xG 0.75Karim Adeyemi xG 0.41Gabriel Jesus xG 0.33

Summary

Antagonist matchup analysis for Real Betis vs Barcelona. Most likely scoreline: 1-3. Lambdas derived from 6 home and 6 away individual player duels. Head-to-head: Real Betis 0W-2D-8L vs Barcelona over 10 meetings.
Tactical parity between 4-2-3-1 and 4-3-3. Match outcome driven primarily by individual player quality. Away midfield dictates play with ~54% possession expected (Facundo Bernal vs Pedri). Total antagonist xG — Home: 0.91, Away: 1.98. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Left Wing vs Right Back — Flank Battle.

Everton vs Chelsea

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

Standing & form context

MetricEvertonChelsea
League position5.006.00
Points per game1.501.50
Attack index0.971.23
Defense (concede) index1.160.85
Form multiplier1.001.00
Standing λ multiplier1.051.02

Lambda decomposition (how the goal rates were built)

StageEverton λChelsea λ
FBref Squad Prior E[λ] (weight 0.192)3.5003.500
Pre-competitive-floor1.7761.996
Pre-calibration (Micro-duels)1.7891.982
Final λ1.7761.996
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-18.2%
1-28.1%
2-17.2%
2-27.2%
1-35.4%
Home win35.0%
Draw21.4%
Away win43.7%
Over 2.572.7%
BTTS yes71.8%
Pregame fair line — favorite Chelsea (43.7%), fair total 3.77, fair spread -0.22

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.

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Thierno BarryF8410.550.3085%21.46.854.131FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0077, quality 0.758)market_value_eur=36000000
quality_factor=0.7581
boost_factor=1.0077
reference_quality=0.505
history_matches=44
history_shrink=0.102
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0071)blend_weight=0.0071
history_matches=44
season_overlap_discount=1.0
per90_to_match_factor=0.9283
prior_reliability=0.1067
competition=Premier League
fouls: 1.0376 -> 1.0303
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Maxence Lacroix, Josh Acheampong', '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.9761, 'skill_edge': -0.0323, 'height_edge': 0.016, 'attacker_skill': 0.7581, 'defender_skill': 0.8299, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Maxence Lacroix', 'market_value': 64000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8862}, {'player': 'Josh Acheampong', 'market_value': 29000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7736}], 'xg_override': 0.3889}
totalShots: 2.5438 -> 2.483
bigChanceMissed: 1.4368 -> 1.4025
shotOffTarget: 1.4239 -> 1.3899
onTargetScoringAttempt: 1.1199 -> 1.0931
goals: 0.51 -> 0.4978
expectedGoalsOnTarget: 0.4266 -> 0.4164
expectedGoals: 0.3984 -> 0.3889
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.78 (squad xG sum 1.2602, xG scale 1.4093, xA scale 1.3604, team xA 1.42 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.776
squad_xg_sum=1.2602
squad_xa_sum=1.0444
team_expected_assists=1.4208
team_xa_to_xg_ratio=0.8
expected_goals: 0.3889 -> 0.5481
expected_assists: 0.0383 -> 0.0521
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=1
goal_probability=0.422
goal_rate=0.4978
scorer_weight=0.6841
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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
-
Jack GrealishF8600.110.01969%10.47.135.524FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0068, quality 0.641)market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.0068
reference_quality=0.505
history_matches=25
history_shrink=0.1667
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0007)blend_weight=0.0007
history_matches=25
season_overlap_discount=1.0
per90_to_match_factor=0.9584
prior_reliability=0.0067
competition=Premier League
fouls: 0.8767 -> 0.883
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Maxence Lacroix, Josh Acheampong', '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.8102, 'skill_edge': -0.0851, 'height_edge': -0.044, 'attacker_skill': 0.6408, 'defender_skill': 0.8299, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Maxence Lacroix', 'market_value': 64000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8862}, {'player': 'Josh Acheampong', 'market_value': 29000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7736}], 'xg_override': 0.0755}
totalShots: 1.1826 -> 0.9581
shotOffTarget: 0.8614 -> 0.6979
onTargetScoringAttempt: 0.3212 -> 0.2602
bigChanceMissed: 0.1666 -> 0.135
goals: 0.1132 -> 0.0917
expectedGoals: 0.0932 -> 0.0755
expectedGoalsOnTarget: 0.0718 -> 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.78 (squad xG sum 1.2602, xG scale 1.4093, xA scale 1.3604, team xA 1.42 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.776
squad_xg_sum=1.2602
squad_xa_sum=1.0444
team_expected_assists=1.4208
team_xa_to_xg_ratio=0.8
expected_goals: 0.0755 -> 0.1064
expected_assists: 0.1635 -> 0.2224
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 82.0)match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1009
goal_rate=0.0917
scorer_weight=0.1201
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1994
assist_rate=0.1951
provider_weight=0.2553
-
Kiernan Dewsbury-HallM8900.230.1555%21.57.256.428FBref Prior M_service
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.0105, quality 0.800)market_value_eur=44000000
quality_factor=0.8002
boost_factor=1.0105
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.986
prior_reliability=0.1333
competition=Premier League
totalCross: 3.7027 -> 3.7103
wonTackle: 0.9281 -> 0.9338
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Maxence Lacroix', 'matchup_zone': 'LW vs CB', 'duel_win_rate': 0.325, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.8608, 'skill_edge': -0.0387, 'height_edge': -0.056, 'attacker_skill': 0.8002, 'defender_skill': 0.8862, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Maxence Lacroix', 'market_value': 64000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8862}], 'xg_override': 0.1628}
aerialWon: 0.4079 -> 1.0
totalShots: 2.287 -> 1.9686
shotOffTarget: 1.4316 -> 1.2323
onTargetScoringAttempt: 0.8549 -> 0.7359
bigChanceMissed: 0.3083 -> 0.2654
expectedGoalsOnTarget: 0.2435 -> 0.2096
goals: 0.2312 -> 0.199
expectedGoals: 0.1891 -> 0.1628
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.78 (squad xG sum 1.2602, xG scale 1.4093, xA scale 1.3604, team xA 1.42 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.776
squad_xg_sum=1.2602
squad_xa_sum=1.0444
team_expected_assists=1.4208
team_xa_to_xg_ratio=0.8
expected_goals: 0.1628 -> 0.2294
expected_assists: 0.1705 -> 0.232
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 81.0)match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.205
goal_rate=0.199
scorer_weight=0.2684
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.2071
assist_rate=0.1343
provider_weight=0.1939
-
Brennan JohnsonF7300.230.10127%10.76.750.335FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0063, quality 0.694)market_value_eur=27000000
quality_factor=0.6941
boost_factor=1.0063
reference_quality=0.505
history_matches=40
history_shrink=0.1111
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0019)blend_weight=0.0019
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=0.8109
prior_reliability=0.0267
competition=Premier League
fouls: 0.8839 -> 0.89
totalCross: 3.0212 -> 3.0154
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Maxence Lacroix, Josh Acheampong', '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.8808, 'skill_edge': -0.0611, 'height_edge': -0.02, 'attacker_skill': 0.6941, 'defender_skill': 0.8299, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Maxence Lacroix', 'market_value': 64000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8862}, {'player': 'Josh Acheampong', 'market_value': 29000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7736}], 'xg_override': 0.1622}
totalShots: 1.3687 -> 1.2056
shotOffTarget: 0.8792 -> 0.7744
onTargetScoringAttempt: 0.4895 -> 0.4312
bigChanceMissed: 0.2056 -> 0.1811
expectedGoals: 0.1841 -> 0.1622
goals: 0.1841 -> 0.1622
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.78 (squad xG sum 1.2602, xG scale 1.4093, xA scale 1.3604, team xA 1.42 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.776
squad_xg_sum=1.2602
squad_xa_sum=1.0444
team_expected_assists=1.4208
team_xa_to_xg_ratio=0.8
expected_goals: 0.1622 -> 0.2286
expected_assists: 0.0555 -> 0.0755
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 16 by projected rating, fifa_overall 78.0)match_squad_rank=16
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.2044
goal_rate=0.1622
scorer_weight=0.2286
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0727
assist_rate=0.0259
provider_weight=0.0604
-
Harrison ArmstrongM8300.140.04231%10.46.839.029FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0137, quality 0.725)market_value_eur=31000000
quality_factor=0.7249
boost_factor=1.0137
reference_quality=0.505
history_matches=19
history_shrink=0.2083
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0172)blend_weight=0.0172
history_matches=19
season_overlap_discount=1.0
per90_to_match_factor=0.9256
prior_reliability=0.1267
competition=Premier League
interceptionWon: 0.5497 -> 0.5737
fouls: 1.1741 -> 1.1957
totalShots: 1.1004 -> 1.0815
goalAssist: 0.0658 -> 0.073
onTargetScoringAttempt: 0.3689 -> 0.3626
wonTackle: 1.1414 -> 1.1469
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Pedro Neto, João Pedro, Moisés Caicedo', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.78 (squad xG sum 1.2602, xG scale 1.4093, xA scale 1.3604, team xA 1.42 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.776
squad_xg_sum=1.2602
squad_xa_sum=1.0444
team_expected_assists=1.4208
team_xa_to_xg_ratio=0.8
expected_goals: 0.0968 -> 0.1364
expected_assists: 0.0683 -> 0.0929
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 73.0)match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1275
goal_rate=0.096
scorer_weight=0.1357
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0887
assist_rate=0.073
provider_weight=0.0966
-
James GarnerM8700.090.03206%10.67.258.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.0101, quality 0.834)market_value_eur=53000000
quality_factor=0.834
boost_factor=1.0101
reference_quality=0.505
history_matches=44
history_shrink=0.102
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0035)blend_weight=0.0035
history_matches=44
season_overlap_discount=1.0
per90_to_match_factor=0.9619
prior_reliability=0.0533
competition=Premier League
wonTackle: 1.7668 -> 1.7776
fouls: 0.9488 -> 0.9539
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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': 'Midfield lane'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.78 (squad xG sum 1.2602, xG scale 1.4093, xA scale 1.3604, team xA 1.42 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.776
squad_xg_sum=1.2602
squad_xa_sum=1.0444
team_expected_assists=1.4208
team_xa_to_xg_ratio=0.8
expected_goals: 0.0626 -> 0.0882
expected_assists: 0.1373 -> 0.1868
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 82.0)match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0844
goal_rate=0.0599
scorer_weight=0.0861
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1704
assist_rate=0.0901
provider_weight=0.1494
-
Jarrad BranthwaiteD9000.050.03107%10.56.850.922FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0217, quality 0.809)market_value_eur=46000000
quality_factor=0.8089
boost_factor=1.0217
reference_quality=0.505
history_matches=16
history_shrink=0.2381
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0206)blend_weight=0.0206
history_matches=16
season_overlap_discount=1.0
per90_to_match_factor=0.9948
prior_reliability=0.1333
competition=Premier League
wasFouled: 0.7779 -> 0.7619
totalCross: 0.4421 -> 0.433
interceptionWon: 1.2145 -> 1.2202
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Pedro Neto', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.78 (squad xG sum 1.2602, xG scale 1.4093, xA scale 1.3604, team xA 1.42 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.776
squad_xg_sum=1.2602
squad_xa_sum=1.0444
team_expected_assists=1.4208
team_xa_to_xg_ratio=0.8
expected_goals: 0.0373 -> 0.0526
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.0512
goal_rate=0.0451
scorer_weight=0.0573
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0127
assist_rate=0.0
provider_weight=0.0108
-
Michael KeaneD9000.100.04128%10.56.937.229FBref Prior D_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9974, quality 0.437)market_value_eur=2800000
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': 'João Pedro', 'matchup_zone': 'Shape fallback'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.78 (squad xG sum 1.2602, xG scale 1.4093, xA scale 1.3604, team xA 1.42 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.776
squad_xg_sum=1.2602
squad_xa_sum=1.0444
team_expected_assists=1.4208
team_xa_to_xg_ratio=0.8
expected_goals: 0.0682 -> 0.0961
expected_assists: 0.0388 -> 0.0528
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.0916
goal_rate=0.0359
scorer_weight=0.0769
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0514
assist_rate=0.1089
provider_weight=0.066
-
James TarkowskiD9000.060.07ok10.77.058.030FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9987, quality 0.465)market_value_eur=5200000
quality_factor=0.4646
boost_factor=0.9987
reference_quality=0.505
history_matches=43
history_shrink=0.1042
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0090)blend_weight=0.009
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League
interceptionWon: 1.1494 -> 1.1661
wasFouled: 1.3704 -> 1.3806
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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': 'Right Wingback vs Left Back — Overlapping Run'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.78 (squad xG sum 1.2602, xG scale 1.4093, xA scale 1.3604, team xA 1.42 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.776
squad_xg_sum=1.2602
squad_xa_sum=1.0444
team_expected_assists=1.4208
team_xa_to_xg_ratio=0.8
expected_goals: 0.0447 -> 0.063
expected_assists: 0.0386 -> 0.0525
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 80.0)match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0611
goal_rate=0.1545
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.0511
assist_rate=0.1971
provider_weight=0.0656
-
Ainsley Maitland-NilesD8400.010.0147%10.36.832.811XGBoost D_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0047, quality 0.533)market_value_eur=10900000
quality_factor=0.533
boost_factor=1.0047
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': 'Jordan Henderson', 'matchup_zone': 'Left Wingback vs Right Back — Overlapping Run'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.78 (squad xG sum 1.2602, xG scale 1.4093, xA scale 1.3604, team xA 1.42 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.776
squad_xg_sum=1.2602
squad_xa_sum=1.0444
team_expected_assists=1.4208
team_xa_to_xg_ratio=0.8
expected_assists: 0.2624 -> 0.357
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 77.0)match_squad_rank=11
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0108
goal_rate=0.0
scorer_weight=0.0094
-
integer_assist_projectionTeam scoreline allocation: 1 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.3002
assist_rate=0.3905
provider_weight=0.4462
-
Jordan PickfordG9000.00-n/a0.07.156.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 1.0019, quality 0.567)market_value_eur=13900000
quality_factor=0.5671
boost_factor=1.0019
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
wasFouled: 0.3851 -> 0.395
saves: 2.9185 -> 2.9281
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'João Pedro, Cole Palmer', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.9825}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.78 (squad xG sum 1.2602, xG scale 1.4093, xA scale 1.3604, team xA 1.42 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.776
squad_xg_sum=1.2602
squad_xa_sum=1.0444
team_expected_assists=1.4208
team_xa_to_xg_ratio=0.8
shots_faced: 18.8 -> 19.0
expected_saves: 4.6 -> 4.65
high_pressure_saves: 1.59 -> 1.6
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: 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.0083
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.4683
-
Team totals11.78156.9
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Mark TraversG4.4m10.9%Market-value substitute prior
Vitaliy MykolenkoD14.6m23.7%Market-value substitute prior
Jake O'BrienD14.2m32.7%Market-value substitute prior
Hayden HackneyM26.4m52.5%Market-value substitute prior
Merlin RöhlM22.7m32.1%Market-value substitute prior
Tyrique GeorgeF26.3m35.4%Market-value substitute prior

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Maxence LacroixD8800.070.06ok10.66.852.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 1.0116, quality 0.861)market_value_eur=64000000
quality_factor=0.8608
boost_factor=1.0116
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.973
prior_reliability=0.1333
competition=Premier League
wonTackle: 0.7533 -> 0.7645
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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': 'LW vs CB'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.00 (squad xG sum 1.3529, xG scale 1.4753, xA scale 1.4753, team xA 1.30 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.996
squad_xg_sum=1.3529
squad_xa_sum=0.8794
team_expected_assists=1.2975
team_xa_to_xg_ratio=0.65
expected_goals: 0.05 -> 0.0738
expected_assists: 0.0274 -> 0.0404
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.0711
goal_rate=0.0193
scorer_weight=0.059
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0396
assist_rate=0.0851
provider_weight=0.0505
-
Josh AcheampongD8100.040.005501%00.06.633.329XGBoost D_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0114, quality 0.710)market_value_eur=29000000
quality_factor=0.71
boost_factor=1.0114
reference_quality=0.505
history_matches=22
history_shrink=0.1852
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 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.00 (squad xG sum 1.3529, xG scale 1.4753, xA scale 1.4753, team xA 1.30 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.996
squad_xg_sum=1.3529
squad_xa_sum=0.8794
team_expected_assists=1.2975
team_xa_to_xg_ratio=0.65
expected_goals: 0.0287 -> 0.0423
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 17 by projected rating, fifa_overall 75.0)match_squad_rank=17
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0414
goal_rate=0.0515
scorer_weight=0.0529
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0149
assist_rate=0.0
provider_weight=0.0125
-
Emiliano MartínezG9000.00-n/a0.07.156.128FBref 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.0005, quality 0.518)market_value_eur=9600000
quality_factor=0.5177
boost_factor=1.0005
reference_quality=0.505
history_matches=37
history_shrink=0.119
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0052)blend_weight=0.0052
history_matches=37
season_overlap_discount=1.0
per90_to_match_factor=0.9972
prior_reliability=0.0667
competition=Premier League
wasFouled: 0.4528 -> 0.4608
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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.7894}
-
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.00 (squad xG sum 1.3529, xG scale 1.4753, xA scale 1.4753, team xA 1.30 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.996
squad_xg_sum=1.3529
squad_xa_sum=0.8794
team_expected_assists=1.2975
team_xa_to_xg_ratio=0.65
shots_faced: 17.0 -> 16.9
expected_saves: 4.16 -> 4.14
high_pressure_saves: 1.43 -> 1.42
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 85.0)match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=2.225
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.3374
-
Levi ColwillD8800.000.00175%00.16.935.515FBref Prior D_service
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.0386, quality 0.840)market_value_eur=55000000
quality_factor=0.8399
boost_factor=1.0386
reference_quality=0.505
history_matches=8
history_shrink=0.3846
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0300)blend_weight=0.03
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=0.9789
prior_reliability=0.12
competition=Premier League
wonTackle: 0.6421 -> 0.6718
wasFouled: 0.3079 -> 0.315
totalShots: 0.3545 -> 0.3603
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 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.00 (squad xG sum 1.3529, xG scale 1.4753, xA scale 1.4753, team xA 1.30 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.996
squad_xg_sum=1.3529
squad_xa_sum=0.8794
team_expected_assists=1.2975
team_xa_to_xg_ratio=0.65
expected_assists: 0.0198 -> 0.0292
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0024
goal_rate=0.0
scorer_weight=0.0023
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0288
assist_rate=0.0
provider_weight=0.0234
-
Pedro NetoF8200.170.0993%20.96.847.337FBref 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.848)market_value_eur=58000000
quality_factor=0.8478
boost_factor=1.0114
reference_quality=0.505
history_matches=40
history_shrink=0.1111
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0043)blend_weight=0.0043
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=0.9123
prior_reliability=0.06
competition=Premier League
totalCross: 4.5318 -> 4.5253
totalShots: 1.5149 -> 1.5213
onTargetScoringAttempt: 0.5671 -> 0.5733
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Harrison Armstrong, Jarrad Branthwaite', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle', 'duel_win_rate': 0.228, 'pressing_faced': 'HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.938, 'skill_edge': 0.0178, 'height_edge': -0.06, 'attacker_skill': 0.8478, 'defender_skill': 0.8082, 'attacker_role': 'SS', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Harrison Armstrong', 'market_value': 31000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.761}, {'player': 'Jarrad Branthwaite', 'market_value': 46000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8555}], 'xg_override': 0.1135}
totalShots: 1.5213 -> 1.427
shotOffTarget: 0.9478 -> 0.889
onTargetScoringAttempt: 0.5733 -> 0.5378
bigChanceMissed: 0.2736 -> 0.2566
goals: 0.1439 -> 0.135
expectedGoals: 0.121 -> 0.1135
expectedGoalsOnTarget: 0.1195 -> 0.1121
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.00 (squad xG sum 1.3529, xG scale 1.4753, xA scale 1.4753, team xA 1.30 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.996
squad_xg_sum=1.3529
squad_xa_sum=0.8794
team_expected_assists=1.2975
team_xa_to_xg_ratio=0.65
expected_goals: 0.1135 -> 0.1675
expected_assists: 0.1285 -> 0.1896
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 81.0)match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.1542
goal_rate=0.135
scorer_weight=0.1895
-
integer_assist_projectionTeam scoreline allocation: 1 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.1727
assist_rate=0.3076
provider_weight=0.237
-
Moisés CaicedoM8400.060.0384%10.67.054.326FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0146, quality 0.895)market_value_eur=104000000
quality_factor=0.8945
boost_factor=1.0146
reference_quality=0.505
history_matches=35
history_shrink=0.125
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0011)blend_weight=0.0011
history_matches=35
season_overlap_discount=1.0
per90_to_match_factor=0.9382
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': 'Harrison Armstrong', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.483, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 1.0488, 'skill_edge': 0.0612, 'height_edge': -0.028, 'attacker_skill': 0.8969, 'defender_skill': 0.761, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Harrison Armstrong', 'market_value': 31000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.761}], 'xg_override': 0.0379}
aerialWon: 0.3695 -> 1.0
totalShots: 0.5714 -> 0.5993
shotOffTarget: 0.4522 -> 0.4743
onTargetScoringAttempt: 0.1192 -> 0.125
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.00 (squad xG sum 1.3529, xG scale 1.4753, xA scale 1.4753, team xA 1.30 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.996
squad_xg_sum=1.3529
squad_xa_sum=0.8794
team_expected_assists=1.2975
team_xa_to_xg_ratio=0.65
expected_goals: 0.0379 -> 0.0559
expected_assists: 0.0504 -> 0.0744
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=0
goal_probability=0.0544
goal_rate=0.044
scorer_weight=0.0598
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0717
assist_rate=0.0454
provider_weight=0.0707
-
Jordan HendersonM8000.070.01949%10.17.150.723XGBoost M_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 0.9974, quality 0.437)market_value_eur=1300000
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': 'Ainsley Maitland-Niles', 'matchup_zone': 'Left Wingback vs Right Back — Overlapping Run', 'duel_win_rate': 0.353, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9315, 'skill_edge': -0.0666, 'height_edge': 0.02, 'attacker_skill': 0.4374, 'defender_skill': 0.5854, 'attacker_role': 'LWB', 'attacker_mv_price_index': 0.7, 'defender_adjusted_parts': [{'player': 'Ainsley Maitland-Niles', 'market_value': 10900000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.5854}], 'xg_override': 0.0443}
aerialWon: 0.7888 -> 1.1
totalShots: 0.7331 -> 0.6829
shotOffTarget: 0.5314 -> 0.495
onTargetScoringAttempt: 0.2017 -> 0.1879
expectedGoalsOnTarget: 0.0935 -> 0.0871
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.00 (squad xG sum 1.3529, xG scale 1.4753, xA scale 1.4753, team xA 1.30 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.996
squad_xg_sum=1.3529
squad_xa_sum=0.8794
team_expected_assists=1.2975
team_xa_to_xg_ratio=0.65
expected_goals: 0.0443 -> 0.0654
expected_assists: 0.1023 -> 0.1509
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0633
goal_rate=0.0651
scorer_weight=0.0798
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1401
assist_rate=0.0965
provider_weight=0.1452
-
João PedroF8510.580.4241%32.07.157.427FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0128, quality 0.890)market_value_eur=92000000
quality_factor=0.89
boost_factor=1.0128
reference_quality=0.505
history_matches=40
history_shrink=0.1111
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0096)blend_weight=0.0096
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=0.943
prior_reliability=0.1333
competition=Premier League
totalShots: 2.4268 -> 2.4443
totalCross: 0.6328 -> 0.6267
goalAssist: 0.3302 -> 0.3361
onTargetScoringAttempt: 0.8183 -> 0.824
goals: 0.424 -> 0.429
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Harrison Armstrong, Jarrad Branthwaite', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle', 'duel_win_rate': 0.291, 'pressing_faced': 'HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 1.0306, 'skill_edge': 0.0368, 'height_edge': -0.016, 'attacker_skill': 0.89, 'defender_skill': 0.8082, 'attacker_role': 'SS', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Harrison Armstrong', 'market_value': 31000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.761}, {'player': 'Jarrad Branthwaite', 'market_value': 46000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8555}], 'xg_override': 0.3965}
totalShots: 2.4443 -> 2.5191
shotOffTarget: 1.6085 -> 1.6577
onTargetScoringAttempt: 0.824 -> 0.8492
expectedGoalsOnTarget: 0.5761 -> 0.5937
goals: 0.429 -> 0.4421
expectedGoals: 0.3847 -> 0.3965
bigChanceMissed: 0.3061 -> 0.3155
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.00 (squad xG sum 1.3529, xG scale 1.4753, xA scale 1.4753, team xA 1.30 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.996
squad_xg_sum=1.3529
squad_xa_sum=0.8794
team_expected_assists=1.2975
team_xa_to_xg_ratio=0.65
expected_goals: 0.3965 -> 0.5848
expected_assists: 0.0615 -> 0.0907
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=1
goal_probability=0.4428
goal_rate=0.4421
scorer_weight=0.6445
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0867
assist_rate=0.3361
provider_weight=0.1134
-
Morgan RogersM8800.380.2178%32.37.259.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.0122, quality 0.897)market_value_eur=115000000
quality_factor=0.8968
boost_factor=1.0122
reference_quality=0.505
history_matches=43
history_shrink=0.1042
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0086)blend_weight=0.0086
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=0.9734
prior_reliability=0.1267
competition=Premier League
totalShots: 2.4401 -> 2.4456
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Harrison Armstrong', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.52, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 1.1026, 'skill_edge': 0.0618, 'height_edge': 0.008, 'attacker_skill': 0.8983, 'defender_skill': 0.761, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Harrison Armstrong', 'market_value': 31000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.761}], 'xg_override': 0.2555}
totalShots: 2.4456 -> 2.6965
shotOffTarget: 1.5084 -> 1.6632
aerialWon: 1.3118 -> 1.2
onTargetScoringAttempt: 0.9281 -> 1.0233
goals: 0.2803 -> 0.3091
expectedGoalsOnTarget: 0.2703 -> 0.298
expectedGoals: 0.2317 -> 0.2555
bigChanceMissed: 0.1622 -> 0.1788
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.00 (squad xG sum 1.3529, xG scale 1.4753, xA scale 1.4753, team xA 1.30 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.996
squad_xg_sum=1.3529
squad_xa_sum=0.8794
team_expected_assists=1.2975
team_xa_to_xg_ratio=0.65
expected_goals: 0.2555 -> 0.377
expected_assists: 0.1535 -> 0.2265
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 84.0)match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.3141
goal_rate=0.3091
scorer_weight=0.4432
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.2027
assist_rate=0.1189
provider_weight=0.188
-
Cole PalmerM8810.420.3137%32.37.159.534FBref Prior M_service
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.894)market_value_eur=101000000
quality_factor=0.8936
boost_factor=1.0158
reference_quality=0.505
history_matches=32
history_shrink=0.1351
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0111)blend_weight=0.0111
history_matches=32
season_overlap_discount=1.0
per90_to_match_factor=0.9779
prior_reliability=0.1267
competition=Premier League
totalShots: 2.3358 -> 2.3611
goals: 0.258 -> 0.2666
onTargetScoringAttempt: 0.8167 -> 0.8247
totalCross: 0.9982 -> 1.0043
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'James Tarkowski', 'matchup_zone': 'Right Wingback vs Left Back — Overlapping Run', 'duel_win_rate': 0.583, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.2695, 'skill_edge': 0.1834, 'height_edge': 0.0, 'attacker_skill': 0.8993, 'defender_skill': 0.4918, 'attacker_role': 'RWB', 'attacker_mv_price_index': 0.7, 'defender_adjusted_parts': [{'player': 'James Tarkowski', 'market_value': 5200000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.4918}], 'xg_override': 0.2874}
aerialWon: 0.0801 -> 1.2
totalShots: 2.3611 -> 2.9974
shotOffTarget: 1.519 -> 1.9284
onTargetScoringAttempt: 0.8247 -> 1.047
goals: 0.2666 -> 0.3384
expectedGoals: 0.2264 -> 0.2874
bigChanceMissed: 0.2079 -> 0.2639
expectedGoalsOnTarget: 0.1781 -> 0.2261
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.00 (squad xG sum 1.3529, xG scale 1.4753, xA scale 1.4753, team xA 1.30 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.996
squad_xg_sum=1.3529
squad_xa_sum=0.8794
team_expected_assists=1.2975
team_xa_to_xg_ratio=0.65
expected_goals: 0.2874 -> 0.424
expected_assists: 0.1539 -> 0.2271
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 85.0)match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=1
goal_probability=0.3456
goal_rate=0.3384
scorer_weight=0.4881
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.2032
assist_rate=0.1364
provider_weight=0.2076
-
Pep ChavarríaD8900.020.01138%00.36.747.234FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0034, quality 0.606)market_value_eur=17500000
quality_factor=0.6058
boost_factor=1.0034
reference_quality=0.505
history_matches=39
history_shrink=0.1136
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0025)blend_weight=0.0025
history_matches=39
season_overlap_discount=1.0
per90_to_match_factor=0.9897
prior_reliability=0.0333
competition=Premier League
totalCross: 3.5282 -> 3.5195
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 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.00 (squad xG sum 1.3529, xG scale 1.4753, xA scale 1.4753, team xA 1.30 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.996
squad_xg_sum=1.3529
squad_xa_sum=0.8794
team_expected_assists=1.2975
team_xa_to_xg_ratio=0.65
expected_goals: 0.0157 -> 0.0232
expected_assists: 0.1193 -> 0.176
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 83.0)match_squad_rank=14
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0229
goal_rate=0.0023
scorer_weight=0.0186
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1614
assist_rate=0.1589
provider_weight=0.2172
-
Team totals22.00166.9
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Mike PendersG5.3m15.0%Market-value substitute prior
Reece JamesD19.5m44.4%Market-value substitute prior
Jorrel HatoD15.1m24.7%Market-value substitute prior
Marco PalestraM23.5m56.6%Market-value substitute prior
Valentín BarcoM15.5m72.1%Market-value substitute prior
EstêvãoF27.1m63.9%Market-value substitute prior
Antagonist / tactical summary
Midfield is evenly contested — James Garner vs Morgan Rogers will be the pivotal duel. Total antagonist xG — Home: 0.79, Away: 1.14. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Shadow Striker vs CDM + CB — Zone 14 Battle.
Midfield — possession 50.1% / 49.9%, dominance ratio 0.49, key duel: James Garner vs Morgan Rogers
Kiernan Dewsbury-Hall xG 0.16Thierno Barry xG 0.39Jack Grealish xG 0.08Pedro Neto xG 0.11João Pedro xG 0.40Jordan Henderson xG 0.04

Summary

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

Villarreal vs Elche

LaLiga · 20261017 · 4-4-2 vs 4-2-3-1
Predicted 1-0Winner: VillarrealWinning H 1-0 (11.3%)Winning A 0-1 (5.2%)Confidence 0.77λ home/away 1.95 / 0.90Most-likely P 11.3%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset Tracing
Antagonist + XGBoost match analysis for Villarreal vs Elche. Player statistics regressed using position-specific XGBoost models (G, D, M, F) with 2026-2027 FBref priors. Micro-duels resolved across 4-4-2 vs 4-2-3-1 (duel lambdas: Home 1.839, Away 0.989). Final calibrated Poisson lambdas: Home 1.948, Away 0.898 (most likely score 1-0).
Home Starters 11/11 XGBoost (8 FBref) Away Starters 11/11 XGBoost (8 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.84 / 0.99 Final λ (H/A) 1.95 / 0.90
FBref Team Priors: Villarreal (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

MetricVillarrealElche
League position11.0018.00
Points per game1.161.01
Attack index1.020.96
Defense (concede) index1.151.02
Form multiplier1.010.99
Standing λ multiplier1.070.99

Lambda decomposition (how the goal rates were built)

StageVillarreal λElche λ
FBref Squad Prior E[λ] (weight 0.228)0.9880.985
Pre-mismatch1.8780.968
Pre-competitive-floor2.0480.944
Pre-calibration (Micro-duels)1.8390.989
Final λ1.9480.898
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-011.3%
2-011.0%
1-110.2%
2-19.9%
3-07.2%
Home win61.9%
Draw21.5%
Away win16.6%
Over 2.554.1%
BTTS yes50.9%
Pregame fair line — favorite Villarreal (61.9%), fair total 2.85, fair spread 1.05

Projected players vs season baseline

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

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Tani OluwaseyiF7100.280.012978%10.16.732.132FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9995, quality 0.493)market_value_eur=7500000
quality_factor=0.4927
boost_factor=0.9995
reference_quality=0.505
history_matches=31
history_shrink=0.1389
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0012)blend_weight=0.0012
history_matches=31
season_overlap_discount=1.0
per90_to_match_factor=0.7882
prior_reliability=0.0133
competition=La Liga
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Buba Sangaré, Roy Revivo', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.224, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.0358, 'skill_edge': 0.0064, 'height_edge': 0.018, 'attacker_skill': 0.4927, 'defender_skill': 0.4785, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Buba Sangaré', 'market_value': 4900000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4809}, {'player': 'Roy Revivo', 'market_value': 4600000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4761}], 'xg_override': 0.18}
totalShots: 1.4021 -> 1.4523
shotOffTarget: 0.9668 -> 1.0014
onTargetScoringAttempt: 0.4353 -> 0.4509
bigChanceMissed: 0.3955 -> 0.4097
expectedGoals: 0.1738 -> 0.18
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.95 (squad xG sum 1.2540, xG scale 1.5534, xA scale 1.5534, team xA 1.43 = 0.73 x lambda)scoreline_reset=true
team_lambda=1.948
squad_xg_sum=1.254
squad_xa_sum=0.9174
team_expected_assists=1.4251
team_xa_to_xg_ratio=0.7316
expected_goals: 0.18 -> 0.2796
expected_assists: 0.0431 -> 0.067
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 18 by projected rating, fifa_overall 71.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.2439
goal_rate=0.1408
scorer_weight=0.232
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0648
assist_rate=0.1197
provider_weight=0.0838
-
Ayoze PérezF7110.490.2596%21.26.855.429FBref 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=33
history_shrink=0.1316
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0091)blend_weight=0.0091
history_matches=33
season_overlap_discount=1.0
per90_to_match_factor=0.7898
prior_reliability=0.1067
competition=La Liga
wasFouled: 1.5266 -> 1.5352
totalShots: 2.1357 -> 2.1432
onTargetScoringAttempt: 0.8798 -> 0.8852
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Buba Sangaré, Roy Revivo', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.181, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 0.9719, 'skill_edge': -0.0051, 'height_edge': -0.014, 'attacker_skill': 0.4671, 'defender_skill': 0.4785, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Buba Sangaré', 'market_value': 4900000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4809}, {'player': 'Roy Revivo', 'market_value': 4600000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4761}], 'xg_override': 0.3179}
totalShots: 2.1432 -> 2.083
shotOffTarget: 1.2559 -> 1.2206
bigChanceMissed: 1.027 -> 0.9981
onTargetScoringAttempt: 0.8852 -> 0.8603
goals: 0.4035 -> 0.3922
expectedGoals: 0.3271 -> 0.3179
expectedGoalsOnTarget: 0.2786 -> 0.2708
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.95 (squad xG sum 1.2540, xG scale 1.5534, xA scale 1.5534, team xA 1.43 = 0.73 x lambda)scoreline_reset=true
team_lambda=1.948
squad_xg_sum=1.254
squad_xa_sum=0.9174
team_expected_assists=1.4251
team_xa_to_xg_ratio=0.7316
expected_goals: 0.3179 -> 0.4939
expected_assists: 0.0633 -> 0.0983
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 79.0)match_squad_rank=12
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.3898
goal_rate=0.3922
scorer_weight=0.5937
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0936
assist_rate=0.304
provider_weight=0.1229
-
Alberto MoleiroF7900.450.13256%31.07.359.641FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0100, quality 0.837)market_value_eur=54000000
quality_factor=0.837
boost_factor=1.01
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.8746
prior_reliability=0.1067
competition=La Liga
totalShots: 2.421 -> 2.4042
wonTackle: 0.5668 -> 0.5742
onTargetScoringAttempt: 0.826 -> 0.8203
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': 'Buba Sangaré, Roy Revivo', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.315, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.1695, 'skill_edge': 0.1613, 'height_edge': -0.046, 'attacker_skill': 0.837, 'defender_skill': 0.4785, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Buba Sangaré', 'market_value': 4900000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4809}, {'player': 'Roy Revivo', 'market_value': 4600000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4761}], 'xg_override': 0.2871}
totalShots: 2.4153 -> 2.8247
shotOffTarget: 1.595 -> 1.8654
onTargetScoringAttempt: 0.8203 -> 0.9593
expectedGoalsOnTarget: 0.3666 -> 0.4287
goals: 0.2646 -> 0.3094
expectedGoals: 0.2455 -> 0.2871
bigChanceMissed: 0.138 -> 0.1614
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.95 (squad xG sum 1.2540, xG scale 1.5534, xA scale 1.5534, team xA 1.43 = 0.73 x lambda)scoreline_reset=true
team_lambda=1.948
squad_xg_sum=1.254
squad_xa_sum=0.9174
team_expected_assists=1.4251
team_xa_to_xg_ratio=0.7316
expected_goals: 0.2871 -> 0.446
expected_assists: 0.2051 -> 0.3187
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=0
goal_probability=0.3598
goal_rate=0.3094
scorer_weight=0.4755
-
integer_assist_projectionTeam scoreline allocation: 1 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.2729
assist_rate=0.3856
provider_weight=0.3984
-
Santi ComesañaM7100.090.08ok10.46.960.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.0000, quality 0.503)market_value_eur=8400000
quality_factor=0.5035
boost_factor=1.0
reference_quality=0.505
history_matches=41
history_shrink=0.1087
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0104)blend_weight=0.0104
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=0.7852
prior_reliability=0.1467
competition=La Liga
wasFouled: 1.0404 -> 1.0333
totalShots: 0.6257 -> 0.6192
fouls: 1.5567 -> 1.5628
totalCross: 0.545 -> 0.5394
wonTackle: 0.9166 -> 0.9219
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 Mid vs Right Back — Wide Channel', 'duel_win_rate': 0.439, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0275, 'skill_edge': 0.0347, 'height_edge': -0.016, 'attacker_skill': 0.5146, 'defender_skill': 0.4374, 'attacker_role': 'LM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Matías Dituro', 'market_value': 105000, 'role': 'GK', 'price_index': 0.55, 'adjusted_quality': 0.4374}], 'xg_override': 0.0586}
aerialWon: 0.2604 -> 1.2
totalShots: 0.6238 -> 0.641
shotOffTarget: 0.4426 -> 0.4548
onTargetScoringAttempt: 0.1812 -> 0.1862
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.95 (squad xG sum 1.2540, xG scale 1.5534, xA scale 1.5534, team xA 1.43 = 0.73 x lambda)scoreline_reset=true
team_lambda=1.948
squad_xg_sum=1.254
squad_xa_sum=0.9174
team_expected_assists=1.4251
team_xa_to_xg_ratio=0.7316
expected_goals: 0.0586 -> 0.091
expected_assists: 0.0832 -> 0.1292
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 79.0)match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.087
goal_rate=0.055
scorer_weight=0.088
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1212
assist_rate=0.0652
provider_weight=0.1117
-
Pape GueyeM7900.220.1552%21.27.160.030FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0094, quality 0.775)market_value_eur=39000000
quality_factor=0.7754
boost_factor=1.0094
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.8826
prior_reliability=0.2
competition=La Liga
totalShots: 1.5557 -> 1.5455
totalCross: 0.6715 -> 0.6658
fouls: 0.8143 -> 0.8198
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=true
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Javi Morcillo', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.628, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.2615, 'skill_edge': 0.1619, 'height_edge': 0.016, 'attacker_skill': 0.7972, 'defender_skill': 0.4374, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Javi Morcillo', 'market_value': 2100000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4374}], 'xg_override': 0.1423}
aerialWon: 0.3941 -> 1.2
totalShots: 1.5512 -> 1.9569
shotOffTarget: 0.9674 -> 1.2204
onTargetScoringAttempt: 0.5838 -> 0.7365
goals: 0.1394 -> 0.1759
expectedGoals: 0.1128 -> 0.1423
expectedGoalsOnTarget: 0.0843 -> 0.1063
bigChanceMissed: 0.0558 -> 0.0704
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.95 (squad xG sum 1.2540, xG scale 1.5534, xA scale 1.5534, team xA 1.43 = 0.73 x lambda)scoreline_reset=true
team_lambda=1.948
squad_xg_sum=1.254
squad_xa_sum=0.9174
team_expected_assists=1.4251
team_xa_to_xg_ratio=0.7316
expected_goals: 0.1423 -> 0.221
expected_assists: 0.1008 -> 0.1566
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 80.0)match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1983
goal_rate=0.1759
scorer_weight=0.2596
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.145
assist_rate=0.0985
provider_weight=0.1542
-
Ilias AkhomachF7200.170.06200%10.97.050.727FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0014, quality 0.535)market_value_eur=11100000
quality_factor=0.5353
boost_factor=1.0014
reference_quality=0.505
history_matches=27
history_shrink=0.1562
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0034)blend_weight=0.0034
history_matches=27
season_overlap_discount=1.0
per90_to_match_factor=0.805
prior_reliability=0.0333
competition=La Liga
totalCross: 2.6905 -> 2.725
interceptionWon: 0.1183 -> 0.1233
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Buba Sangaré, Roy Revivo', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.192, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 0.9876, 'skill_edge': 0.0256, 'height_edge': -0.034, 'attacker_skill': 0.5353, 'defender_skill': 0.4785, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Buba Sangaré', 'market_value': 4900000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4809}, {'player': 'Roy Revivo', 'market_value': 4600000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4761}], 'xg_override': 0.1114}
totalShots: 1.3451 -> 1.3285
shotOffTarget: 0.8737 -> 0.8629
onTargetScoringAttempt: 0.4714 -> 0.4656
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.95 (squad xG sum 1.2540, xG scale 1.5534, xA scale 1.5534, team xA 1.43 = 0.73 x lambda)scoreline_reset=true
team_lambda=1.948
squad_xg_sum=1.254
squad_xa_sum=0.9174
team_expected_assists=1.4251
team_xa_to_xg_ratio=0.7316
expected_goals: 0.1114 -> 0.173
expected_assists: 0.1268 -> 0.197
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.1589
goal_rate=0.179
scorer_weight=0.2162
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1788
assist_rate=0.2745
provider_weight=0.2463
-
Sergi CardonaD8500.050.01266%10.46.744.633FBref 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=35
history_shrink=0.125
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=true
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': '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.95 (squad xG sum 1.2540, xG scale 1.5534, xA scale 1.5534, team xA 1.43 = 0.73 x lambda)scoreline_reset=true
team_lambda=1.948
squad_xg_sum=1.254
squad_xa_sum=0.9174
team_expected_assists=1.4251
team_xa_to_xg_ratio=0.7316
expected_goals: 0.0295 -> 0.0458
expected_assists: 0.0972 -> 0.151
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 16 by projected rating, fifa_overall 79.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.0448
goal_rate=0.0491
scorer_weight=0.0571
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1402
assist_rate=0.0113
provider_weight=0.1208
-
Renato VeigaD9000.030.01197%10.27.157.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.5786 -> 0.5702
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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.95 (squad xG sum 1.2540, xG scale 1.5534, xA scale 1.5534, team xA 1.43 = 0.73 x lambda)scoreline_reset=true
team_lambda=1.948
squad_xg_sum=1.254
squad_xa_sum=0.9174
team_expected_assists=1.4251
team_xa_to_xg_ratio=0.7316
expected_goals: 0.0186 -> 0.0289
expected_assists: 0.0895 -> 0.139
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 78.0)match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0285
goal_rate=0.0
scorer_weight=0.0231
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1298
assist_rate=0.0917
provider_weight=0.1412
-
Juan FoythD7900.070.02197%10.36.948.413FBref Prior D_service
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=17
history_shrink=0.2273
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0295)blend_weight=0.0295
history_matches=17
season_overlap_discount=1.0
per90_to_match_factor=0.8741
prior_reliability=0.2
competition=La Liga
interceptionWon: 1.1627 -> 1.1886
totalShots: 0.6608 -> 0.6756
wonTackle: 0.9672 -> 0.9817
fouls: 0.7009 -> 0.6888
wasFouled: 0.3366 -> 0.3439
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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.95 (squad xG sum 1.2540, xG scale 1.5534, xA scale 1.5534, team xA 1.43 = 0.73 x lambda)scoreline_reset=true
team_lambda=1.948
squad_xg_sum=1.254
squad_xa_sum=0.9174
team_expected_assists=1.4251
team_xa_to_xg_ratio=0.7316
expected_goals: 0.0473 -> 0.0735
expected_assists: 0.049 -> 0.0761
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 79.0)match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0709
goal_rate=0.0
scorer_weight=0.0588
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0733
assist_rate=0.0
provider_weight=0.0609
-
Alexander FreemanD9000.040.01554%10.16.935.929XGBoost D_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0044, quality 0.566)market_value_eur=13800000
quality_factor=0.566
boost_factor=1.0044
reference_quality=0.505
history_matches=16
history_shrink=0.2381
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': '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.95 (squad xG sum 1.2540, xG scale 1.5534, xA scale 1.5534, team xA 1.43 = 0.73 x lambda)scoreline_reset=true
team_lambda=1.948
squad_xg_sum=1.254
squad_xa_sum=0.9174
team_expected_assists=1.4251
team_xa_to_xg_ratio=0.7316
expected_goals: 0.0281 -> 0.0437
expected_assists: 0.0335 -> 0.052
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 81.0)match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0428
goal_rate=0.0
scorer_weight=0.035
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0507
assist_rate=0.0
provider_weight=0.0416
-
Péter GulácsiG9000.00-n/a0.07.127.211FBref Prior G_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost G_service raw output over 3 target models--
market_value_boostMarket-value quality scaling (boost 0.9887, quality 0.437)market_value_eur=970000
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': 0.9885}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.95 (squad xG sum 1.2540, xG scale 1.5534, xA scale 1.5534, team xA 1.43 = 0.73 x lambda)scoreline_reset=true
team_lambda=1.948
squad_xg_sum=1.254
squad_xa_sum=0.9174
team_expected_assists=1.4251
team_xa_to_xg_ratio=0.7316
shots_faced: 9.4 -> 8.5
expected_saves: 2.3 -> 2.08
high_pressure_saves: 0.79 -> 0.72
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 82.0)match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=2.1033
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.5258
-
Team totals11.95147.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

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Matías DituroG9000.00-n/a0.07.052.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.9971, quality 0.437)market_value_eur=105000
quality_factor=0.4374
boost_factor=0.9971
reference_quality=0.505
history_matches=30
history_shrink=0.1429
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0186)blend_weight=0.0186
history_matches=30
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.2
competition=La Liga
saves: 2.8878 -> 2.8775
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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, Alberto Moleiro', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.8387}
-
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.8976, xG scale 1.0004, xA scale 0.8162, team xA 0.72 = 0.80 x lambda)scoreline_reset=true
team_lambda=0.898
squad_xg_sum=0.8976
squad_xa_sum=0.8802
team_expected_assists=0.7184
team_xa_to_xg_ratio=0.8
shots_faced: 17.5 -> 18.5
expected_saves: 4.29 -> 4.53
high_pressure_saves: 1.47 -> 1.56
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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.0138
-
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.7026
-
Buba SangaréD7200.010.01ok00.16.651.124FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9972, quality 0.461)market_value_eur=4900000
quality_factor=0.4609
boost_factor=0.9972
reference_quality=0.505
history_matches=19
history_shrink=0.2083
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0262)blend_weight=0.0262
history_matches=19
season_overlap_discount=1.0
per90_to_match_factor=0.8056
prior_reliability=0.1933
competition=La Liga
totalCross: 1.152 -> 1.1364
wonTackle: 1.1178 -> 1.1322
interceptionWon: 0.6736 -> 0.6632
goals: 0.0856 -> 0.0906
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Tani Oluwaseyi', '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.8976, xG scale 1.0004, xA scale 0.8162, team xA 0.72 = 0.80 x lambda)scoreline_reset=true
team_lambda=0.898
squad_xg_sum=0.8976
squad_xa_sum=0.8802
team_expected_assists=0.7184
team_xa_to_xg_ratio=0.8
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 18 by projected rating, fifa_overall 69.0)match_squad_rank=18
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0053
goal_rate=0.0905
scorer_weight=0.0066
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0145
assist_rate=0.0
provider_weight=0.0117
-
Javi MorcilloM8600.020.0162%00.16.736.520FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 0.9937, quality 0.437)market_value_eur=2100000
quality_factor=0.4374
boost_factor=0.9937
reference_quality=0.505
history_matches=11
history_shrink=0.3125
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0054)blend_weight=0.0054
history_matches=11
season_overlap_discount=1.0
per90_to_match_factor=0.9571
prior_reliability=0.0267
competition=La Liga
fouls: 0.8538 -> 0.8621
interceptionWon: 1.4397 -> 1.4319
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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.222, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.7385, 'skill_edge': -0.1619, 'height_edge': -0.016, 'attacker_skill': 0.4374, '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.0217}
aerialWon: 0.8001 -> 1.1
totalShots: 0.5173 -> 0.3821
shotOffTarget: 0.3967 -> 0.293
onTargetScoringAttempt: 0.1206 -> 0.0891
goals: 0.0433 -> 0.032
expectedGoals: 0.0294 -> 0.0217
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.8976, xG scale 1.0004, xA scale 0.8162, team xA 0.72 = 0.80 x lambda)scoreline_reset=true
team_lambda=0.898
squad_xg_sum=0.8976
squad_xa_sum=0.8802
team_expected_assists=0.7184
team_xa_to_xg_ratio=0.8
expected_assists: 0.0284 -> 0.0232
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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0215
goal_rate=0.032
scorer_weight=0.0248
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0229
assist_rate=0.0362
provider_weight=0.0255
-
Víctor ChustD8900.050.02102%10.47.061.230FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9977, quality 0.437)market_value_eur=2700000
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.0148)blend_weight=0.0148
history_matches=39
season_overlap_discount=1.0
per90_to_match_factor=0.9941
prior_reliability=0.2
competition=La Liga
totalCross: 1.1006 -> 1.1137
wonTackle: 0.9657 -> 0.971
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Alberto Moleiro', 'matchup_zone': 'Shape fallback'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.90 (squad xG sum 0.8976, xG scale 1.0004, xA scale 0.8162, team xA 0.72 = 0.80 x lambda)scoreline_reset=true
team_lambda=0.898
squad_xg_sum=0.8976
squad_xa_sum=0.8802
team_expected_assists=0.7184
team_xa_to_xg_ratio=0.8
expected_assists: 0.0414 -> 0.0338
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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0442
goal_rate=0.0413
scorer_weight=0.0433
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0332
assist_rate=0.0775
provider_weight=0.0422
-
Fernando NiñoF7500.320.27ok21.16.951.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 0.9931, quality 0.445)market_value_eur=3600000
quality_factor=0.4449
boost_factor=0.9931
reference_quality=0.505
history_matches=8
history_shrink=0.3846
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0417)blend_weight=0.0417
history_matches=8
season_overlap_discount=1.0
per90_to_match_factor=0.8302
prior_reliability=0.1667
competition=La Liga
totalShots: 2.2673 -> 2.2278
fouls: 0.8197 -> 0.7994
totalOffside: 0.1347 -> 0.1291
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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.8409, 'skill_edge': -0.1123, 'height_edge': 0.004, 'attacker_skill': 0.4449, '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.3157}
totalShots: 2.2684 -> 1.9075
shotOffTarget: 1.3047 -> 1.0971
onTargetScoringAttempt: 0.9637 -> 0.8104
expectedGoalsOnTarget: 0.6743 -> 0.567
goals: 0.4299 -> 0.3615
expectedGoals: 0.3754 -> 0.3157
bigChanceMissed: 0.1971 -> 0.1657
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.8976, xG scale 1.0004, xA scale 0.8162, team xA 0.72 = 0.80 x lambda)scoreline_reset=true
team_lambda=0.898
squad_xg_sum=0.8976
squad_xa_sum=0.8802
team_expected_assists=0.7184
team_xa_to_xg_ratio=0.8
expected_assists: 0.0433 -> 0.0353
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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.2709
goal_rate=0.3615
scorer_weight=0.3555
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0347
assist_rate=0.0
provider_weight=0.0282
-
Germán ValeraF8400.090.04128%10.56.856.341XGBoost 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.9991, quality 0.477)market_value_eur=6200000
quality_factor=0.4769
boost_factor=0.9991
reference_quality=0.505
history_matches=44
history_shrink=0.102
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': '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.768, 'skill_edge': -0.0979, 'height_edge': -0.06, 'attacker_skill': 0.4769, '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.0879}
totalShots: 1.051 -> 0.8072
shotOffTarget: 0.6126 -> 0.4705
onTargetScoringAttempt: 0.4383 -> 0.3366
goals: 0.156 -> 0.1198
expectedGoals: 0.1145 -> 0.0879
bigChanceMissed: 0.0788 -> 0.0605
expectedGoalsOnTarget: 0.0361 -> 0.0277
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.8976, xG scale 1.0004, xA scale 0.8162, team xA 0.72 = 0.80 x lambda)scoreline_reset=true
team_lambda=0.898
squad_xg_sum=0.8976
squad_xa_sum=0.8802
team_expected_assists=0.7184
team_xa_to_xg_ratio=0.8
expected_assists: 0.1399 -> 0.1142
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.0841
goal_rate=0.1198
scorer_weight=0.1082
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.1079
assist_rate=0.0484
provider_weight=0.0914
-
Thomas LemarM7300.070.07ok10.67.058.828XGBoost 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=32
history_shrink=0.1351
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Juan Foyth', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.37, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.8381, 'skill_edge': -0.0502, 'height_edge': -0.06, 'attacker_skill': 0.4374, 'defender_skill': 0.5489, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Juan Foyth', 'market_value': 8600000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.5489}], 'xg_override': 0.0748}
aerialWon: 0.0282 -> 0.8
totalShots: 1.024 -> 0.8582
shotOffTarget: 0.6488 -> 0.5438
onTargetScoringAttempt: 0.3751 -> 0.3144
goals: 0.111 -> 0.093
expectedGoalsOnTarget: 0.1022 -> 0.0857
expectedGoals: 0.0893 -> 0.0748
bigChanceMissed: 0.0374 -> 0.0313
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.8976, xG scale 1.0004, xA scale 0.8162, team xA 0.72 = 0.80 x lambda)scoreline_reset=true
team_lambda=0.898
squad_xg_sum=0.8976
squad_xa_sum=0.8802
team_expected_assists=0.7184
team_xa_to_xg_ratio=0.8
expected_assists: 0.1178 -> 0.0961
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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0721
goal_rate=0.093
scorer_weight=0.0857
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0916
assist_rate=0.0922
provider_weight=0.0814
-
Lucas CepedaF8000.100.05103%10.86.942.229FBref 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.9956, quality 0.437)market_value_eur=2600000
quality_factor=0.4374
boost_factor=0.9956
reference_quality=0.505
history_matches=18
history_shrink=0.2174
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0085)blend_weight=0.0085
history_matches=18
season_overlap_discount=1.0
per90_to_match_factor=0.8836
prior_reliability=0.06
competition=La Liga
totalCross: 1.7003 -> 1.7358
totalShots: 1.386 -> 1.4164
fouls: 1.0589 -> 1.0749
interceptionWon: 0.4333 -> 0.4463
onTargetScoringAttempt: 0.4726 -> 0.4854
wasFouled: 2.4326 -> 2.4203
wonTackle: 1.0359 -> 1.0271
goalAssist: 0.0 -> 0.0083
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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.7595, 'skill_edge': -0.1156, 'height_edge': -0.048, '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.0956}
totalShots: 1.4164 -> 1.0758
shotOffTarget: 0.9134 -> 0.6937
onTargetScoringAttempt: 0.4854 -> 0.3687
goals: 0.1604 -> 0.1218
expectedGoals: 0.1259 -> 0.0956
expectedGoalsOnTarget: 0.0306 -> 0.0232
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.8976, xG scale 1.0004, xA scale 0.8162, team xA 0.72 = 0.80 x lambda)scoreline_reset=true
team_lambda=0.898
squad_xg_sum=0.8976
squad_xa_sum=0.8802
team_expected_assists=0.7184
team_xa_to_xg_ratio=0.8
expected_assists: 0.1047 -> 0.0855
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 71.0)match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0912
goal_rate=0.1218
scorer_weight=0.1128
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0819
assist_rate=0.0083
provider_weight=0.0684
-
Marc AguadoM7600.020.01112%00.26.854.430FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 0.9980, quality 0.446)market_value_eur=3700000
quality_factor=0.4461
boost_factor=0.998
reference_quality=0.505
history_matches=40
history_shrink=0.1111
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0106)blend_weight=0.0106
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=0.8427
prior_reliability=0.1467
competition=La Liga
interceptionWon: 1.047 -> 1.0359
fouls: 1.3075 -> 1.3018
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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.21, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.7202, 'skill_edge': -0.1544, 'height_edge': -0.036, 'attacker_skill': 0.4542, '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.0201}
aerialWon: 0.2122 -> 1.0
totalShots: 0.5041 -> 0.3631
shotOffTarget: 0.381 -> 0.2744
onTargetScoringAttempt: 0.1231 -> 0.0887
goals: 0.0511 -> 0.0368
expectedGoalsOnTarget: 0.0495 -> 0.0356
expectedGoals: 0.0279 -> 0.0201
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.8976, xG scale 1.0004, xA scale 0.8162, team xA 0.72 = 0.80 x lambda)scoreline_reset=true
team_lambda=0.898
squad_xg_sum=0.8976
squad_xa_sum=0.8802
team_expected_assists=0.7184
team_xa_to_xg_ratio=0.8
expected_assists: 0.0339 -> 0.0277
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.0199
goal_rate=0.0368
scorer_weight=0.0249
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0273
assist_rate=0.0393
provider_weight=0.0295
-
Gonzalo VillarM7900.050.02161%10.36.951.227FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 0.9959, quality 0.437)market_value_eur=1700000
quality_factor=0.4374
boost_factor=0.9959
reference_quality=0.505
history_matches=20
history_shrink=0.2
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0260)blend_weight=0.026
history_matches=20
season_overlap_discount=1.0
per90_to_match_factor=0.8811
prior_reliability=0.2
competition=La Liga
wasFouled: 2.1268 -> 2.1784
totalCross: 1.5387 -> 1.5674
fouls: 1.4076 -> 1.4321
onTargetScoringAttempt: 0.2438 -> 0.2604
totalShots: 0.7359 -> 0.7472
wonTackle: 0.8492 -> 0.8424
goalAssist: 0.0833 -> 0.0888
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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': 'CAM vs CM', 'duel_win_rate': 0.234, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.7267, 'skill_edge': -0.1619, 'height_edge': -0.024, 'attacker_skill': 0.4374, 'defender_skill': 0.7972, 'attacker_role': 'CAM', 'attacker_mv_price_index': 0.95, 'defender_adjusted_parts': [{'player': 'Pape Gueye', 'market_value': 39000000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.7972}], 'xg_override': 0.0514}
totalShots: 0.7525 -> 0.5468
aerialWon: 0.9217 -> 1.1
shotOffTarget: 0.4921 -> 0.3576
onTargetScoringAttempt: 0.2604 -> 0.1892
expectedGoalsOnTarget: 0.0928 -> 0.0674
goals: 0.0747 -> 0.0543
expectedGoals: 0.0707 -> 0.0514
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.8976, xG scale 1.0004, xA scale 0.8162, team xA 0.72 = 0.80 x lambda)scoreline_reset=true
team_lambda=0.898
squad_xg_sum=0.8976
squad_xa_sum=0.8802
team_expected_assists=0.7184
team_xa_to_xg_ratio=0.8
expected_assists: 0.0904 -> 0.0738
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 72.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.0501
goal_rate=0.0543
scorer_weight=0.0529
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0711
assist_rate=0.0888
provider_weight=0.073
-
Roy RevivoD8800.010.0236%10.26.841.88XGBoost D_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9928, quality 0.457)market_value_eur=4600000
quality_factor=0.4572
boost_factor=0.9928
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': 'Tani Oluwaseyi', '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
assists: 1.0 -> 0
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.90 (squad xG sum 0.8976, xG scale 1.0004, xA scale 0.8162, team xA 0.72 = 0.80 x lambda)scoreline_reset=true
team_lambda=0.898
squad_xg_sum=0.8976
squad_xa_sum=0.8802
team_expected_assists=0.7184
team_xa_to_xg_ratio=0.8
expected_assists: 0.1893 -> 0.1544
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 80.0)match_squad_rank=11
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0128
goal_rate=0.0
scorer_weight=0.0103
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.1431
assist_rate=0.5297
provider_weight=0.193
-
Team totals00.90126.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
Federico RedondoM22.0m30.7%Market-value substitute prior
Facundo BuonanotteF26.4m53.4%Market-value substitute prior
Antagonist / tactical summary
Home midfield dominates with ~52% possession expected (Pape Gueye vs Marc Aguado). Total antagonist xG — Home: 1.10, Away: 0.67. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Midfield — possession 52.4% / 47.6%, dominance ratio 0.57, key duel: Pape Gueye vs Marc Aguado
Tani Oluwaseyi xG 0.18Alberto Moleiro xG 0.29Ayoze Pérez xG 0.32Thomas Lemar xG 0.07Gonzalo Villar xG 0.05Fernando Niño xG 0.32

Summary

Antagonist matchup analysis for Villarreal vs Elche. Most likely scoreline: 1-0. Lambdas derived from 6 home and 7 away individual player duels. Head-to-head: Villarreal 5W-3D-2L vs Elche over 10 meetings.
Tactical parity between 4-4-2 and 4-2-3-1. Match outcome driven primarily by individual player quality. Home midfield dominates with ~52% possession expected (Pape Gueye vs Marc Aguado). Total antagonist xG — Home: 1.10, Away: 0.67. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.

Fulham vs Hull

Premier League · 20261017 · 4-2-3-1 vs 5-4-1
Predicted 1-1Winner: DrawWinning H 1-0 (12.4%)Winning A 0-1 (9.9%)Confidence 0.7λ home/away 1.30 / 1.04Most-likely P 13.1%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset Tracing
Antagonist + XGBoost match analysis for Fulham vs Hull. Player statistics regressed using position-specific XGBoost models (G, D, M, F) with 2026-2027 FBref priors. Micro-duels resolved across 4-2-3-1 vs 5-4-1 (duel lambdas: Home 1.275, Away 1.063). Final calibrated Poisson lambdas: Home 1.302, Away 1.040 (most likely score 1-1).
Home Starters 11/11 XGBoost (10 FBref) Away Starters 11/11 XGBoost (7 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.27 / 1.06 Final λ (H/A) 1.30 / 1.04
FBref Team Priors: Fulham (Gls/90: 1.0, GA/90: 1.0 → E[λ]: 1.034) vs Hull City (Gls/90: 1.5, GA/90: 1.5 → E[λ]: 1.034) | 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

MetricFulhamHull
League position20.008.00
Points per game0.841.42
Attack index0.890.97
Defense (concede) index0.891.04
Form multiplier0.971.03
Standing λ multiplier0.911.01

Lambda decomposition (how the goal rates were built)

StageFulham λHull λ
FBref Squad Prior E[λ] (weight 0.192)1.0341.034
Pre-competitive-floor1.3021.040
Pre-calibration (Micro-duels)1.2751.063
Final λ1.3021.040
competition calibration scale 1.0competition observed total goals 0.0quality gap applied Truemismatch score pressure applied Falsecompetitive underdog floor applied Falsestage discount 1.0

Scoreline distribution & markets

Top 5 scorelinesP
1-113.1%
1-012.4%
0-19.9%
0-09.7%
2-18.5%
Home win42.4%
Draw28.0%
Away win29.6%
Over 2.541.5%
BTTS yes47.2%
Pregame fair line — favorite Fulham (42.4%), fair total 2.34, fair spread 0.26

Projected players vs season baseline

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

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Bernd LenoG9000.00-n/a0.07.055.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.9989, quality 0.468)market_value_eur=5500000
quality_factor=0.4683
boost_factor=0.9989
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
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Mohamed Belloumi, Oli McBurnie', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.0634}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_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.3502, xG scale 0.9643, xA scale 1.0725, team xA 0.85 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.302
squad_xg_sum=1.3502
squad_xa_sum=0.7891
team_expected_assists=0.8463
team_xa_to_xg_ratio=0.65
shots_faced: 10.1 -> 9.9
expected_saves: 2.47 -> 2.42
high_pressure_saves: 0.85 -> 0.83
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 79.0)match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.373
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.7281
-
Timothy CastagneD8500.090.0562%00.56.748.231FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9996, quality 0.494)market_value_eur=7600000
quality_factor=0.4939
boost_factor=0.9996
reference_quality=0.505
history_matches=35
history_shrink=0.125
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0092)blend_weight=0.0092
history_matches=35
season_overlap_discount=1.0
per90_to_match_factor=0.9479
prior_reliability=0.1133
competition=Premier League
fouls: 1.249 -> 1.2632
wasFouled: 0.7292 -> 0.743
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Mohamed Belloumi', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.30 (squad xG sum 1.3502, xG scale 0.9643, xA scale 1.0725, team xA 0.85 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.302
squad_xg_sum=1.3502
squad_xa_sum=0.7891
team_expected_assists=0.8463
team_xa_to_xg_ratio=0.65
expected_assists: 0.0829 -> 0.0889
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 75.0)match_squad_rank=12
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0836
goal_rate=0.0
scorer_weight=0.0698
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0851
assist_rate=0.0841
provider_weight=0.0897
-
Calvin BasseyD9000.030.03ok10.46.949.728FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0075, quality 0.710)market_value_eur=29000000
quality_factor=0.71
boost_factor=1.0075
reference_quality=0.505
history_matches=36
history_shrink=0.122
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0106)blend_weight=0.0106
history_matches=36
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League
fouls: 1.0563 -> 1.0504
wonTackle: 1.0228 -> 1.0173
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Mohamed Belloumi', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.30 (squad xG sum 1.3502, xG scale 0.9643, xA scale 1.0725, team xA 0.85 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.302
squad_xg_sum=1.3502
squad_xa_sum=0.7891
team_expected_assists=0.8463
team_xa_to_xg_ratio=0.65
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 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.0296
goal_rate=0.0081
scorer_weight=0.024
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0177
assist_rate=0.0
provider_weight=0.0143
-
David AffengruberD8900.050.0378%10.56.853.733FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0034, quality 0.612)market_value_eur=18100000
quality_factor=0.612
boost_factor=1.0034
reference_quality=0.505
history_matches=42
history_shrink=0.1064
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0138)blend_weight=0.0138
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.9859
prior_reliability=0.2
competition=La Liga
totalShots: 0.5691 -> 0.584
wasFouled: 0.6264 -> 0.6359
fouls: 0.9973 -> 0.9881
interceptionWon: 1.2072 -> 1.2132
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Lewie Coyle', '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.30 (squad xG sum 1.3502, xG scale 0.9643, xA scale 1.0725, team xA 0.85 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.302
squad_xg_sum=1.3502
squad_xa_sum=0.7891
team_expected_assists=0.8463
team_xa_to_xg_ratio=0.65
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 76.0)match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0466
goal_rate=0.0238
scorer_weight=0.0382
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0411
assist_rate=0.0212
provider_weight=0.0336
-
Gonzalo GarcíaF8210.360.2263%21.16.747.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.0093, quality 0.758)market_value_eur=36000000
quality_factor=0.7581
boost_factor=1.0093
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.9086
prior_reliability=0.1333
competition=Premier League
fouls: 0.8198 -> 0.8303
totalShots: 2.0291 -> 2.0365
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 Herrington, Semi Ajayi', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.253, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.0775, 'skill_edge': 0.0967, 'height_edge': -0.044, 'attacker_skill': 0.7581, 'defender_skill': 0.5432, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Lucas Herrington', 'market_value': 16399999, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.649}, {'player': 'Semi Ajayi', 'market_value': 930000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.3764}
totalShots: 2.0365 -> 2.1943
shotOffTarget: 1.1134 -> 1.1997
onTargetScoringAttempt: 0.9108 -> 0.9814
bigChanceMissed: 0.7898 -> 0.851
goals: 0.3846 -> 0.4144
expectedGoals: 0.3493 -> 0.3764
expectedGoalsOnTarget: 0.2209 -> 0.238
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_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.3502, xG scale 0.9643, xA scale 1.0725, team xA 0.85 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.302
squad_xg_sum=1.3502
squad_xa_sum=0.7891
team_expected_assists=0.8463
team_xa_to_xg_ratio=0.65
expected_goals: 0.3764 -> 0.3629
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 78.0)match_squad_rank=11
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.3043
goal_rate=0.4144
scorer_weight=0.3952
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0577
assist_rate=0.0
provider_weight=0.0475
-
Alex IwobiM8200.080.0551%10.97.248.935FBref Prior M_service
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.0051, quality 0.641)market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.0051
reference_quality=0.505
history_matches=35
history_shrink=0.125
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0108)blend_weight=0.0108
history_matches=35
season_overlap_discount=1.0
per90_to_match_factor=0.9111
prior_reliability=0.1333
competition=Premier League
totalCross: 3.7467 -> 3.7308
interceptionWon: 0.4164 -> 0.4267
totalShots: 1.2942 -> 1.2851
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 Herrington', 'matchup_zone': 'LW vs CB', 'duel_win_rate': 0.376, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9358, 'skill_edge': -0.0037, 'height_edge': -0.04, 'attacker_skill': 0.6408, 'defender_skill': 0.649, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Lucas Herrington', 'market_value': 16399999, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.649}], 'xg_override': 0.0858}
aerialWon: 0.0981 -> 1.1
totalShots: 1.2898 -> 1.207
shotOffTarget: 0.8955 -> 0.838
onTargetScoringAttempt: 0.3943 -> 0.369
bigChanceMissed: 0.1366 -> 0.1278
goals: 0.102 -> 0.0955
expectedGoals: 0.0917 -> 0.0858
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_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.3502, xG scale 0.9643, xA scale 1.0725, team xA 0.85 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.302
squad_xg_sum=1.3502
squad_xa_sum=0.7891
team_expected_assists=0.8463
team_xa_to_xg_ratio=0.65
expected_assists: 0.1777 -> 0.1906
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.0794
goal_rate=0.0955
scorer_weight=0.0886
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=1
assist_probability=0.1735
assist_rate=0.1088
provider_weight=0.1525
-
Josh KingM7700.180.1087%20.86.947.229XGBoost 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.0098, quality 0.786)market_value_eur=41000000
quality_factor=0.7859
boost_factor=1.0098
reference_quality=0.505
history_matches=38
history_shrink=0.1163
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Tim Iroegbunam', 'matchup_zone': 'CAM vs CM', 'duel_win_rate': 0.467, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0692, 'skill_edge': 0.0871, 'height_edge': -0.04, 'attacker_skill': 0.7964, 'defender_skill': 0.6029, 'attacker_role': 'CAM', 'attacker_mv_price_index': 0.95, 'defender_adjusted_parts': [{'player': 'Tim Iroegbunam', 'market_value': 15500000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.6029}], 'xg_override': 0.1913}
aerialWon: 0.1567 -> 0.8
totalShots: 1.976 -> 2.1128
shotOffTarget: 1.2248 -> 1.3096
onTargetScoringAttempt: 0.7512 -> 0.8032
bigChanceMissed: 0.269 -> 0.2876
expectedGoalsOnTarget: 0.2348 -> 0.251
goals: 0.1805 -> 0.193
expectedGoals: 0.1789 -> 0.1913
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_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.3502, xG scale 0.9643, xA scale 1.0725, team xA 0.85 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.302
squad_xg_sum=1.3502
squad_xa_sum=0.7891
team_expected_assists=0.8463
team_xa_to_xg_ratio=0.65
expected_goals: 0.1913 -> 0.1845
expected_assists: 0.1147 -> 0.123
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 78.0)match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1685
goal_rate=0.193
scorer_weight=0.1858
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1157
assist_rate=0.0764
provider_weight=0.0984
-
Oscar BobbF7100.150.0877%10.56.947.637FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0083, quality 0.694)market_value_eur=27000000
quality_factor=0.6941
boost_factor=1.0083
reference_quality=0.505
history_matches=29
history_shrink=0.1471
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0096)blend_weight=0.0096
history_matches=29
season_overlap_discount=1.0
per90_to_match_factor=0.793
prior_reliability=0.1
competition=Premier League
totalShots: 1.1841 -> 1.1728
fouls: 0.2579 -> 0.2655
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 Herrington, Semi Ajayi', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.208, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.0116, 'skill_edge': 0.0679, 'height_edge': -0.06, 'attacker_skill': 0.6941, 'defender_skill': 0.5432, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Lucas Herrington', 'market_value': 16399999, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.649}, {'player': 'Semi Ajayi', 'market_value': 930000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.1561}
totalShots: 1.1796 -> 1.1933
shotOffTarget: 0.713 -> 0.7213
onTargetScoringAttempt: 0.4666 -> 0.472
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_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.3502, xG scale 0.9643, xA scale 1.0725, team xA 0.85 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.302
squad_xg_sum=1.3502
squad_xa_sum=0.7891
team_expected_assists=0.8463
team_xa_to_xg_ratio=0.65
expected_goals: 0.1561 -> 0.1505
expected_assists: 0.1035 -> 0.111
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.1397
goal_rate=0.1541
scorer_weight=0.149
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1051
assist_rate=0.0119
provider_weight=0.0888
-
Shea CharlesM8300.030.01193%10.26.934.512FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0223, quality 0.669)market_value_eur=24000000
quality_factor=0.6685
boost_factor=1.0223
reference_quality=0.505
history_matches=6
history_shrink=0.4545
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0098)blend_weight=0.0098
history_matches=6
season_overlap_discount=1.0
per90_to_match_factor=0.9253
prior_reliability=0.0333
competition=Premier League
totalShots: 0.5483 -> 0.5778
totalCross: 0.2726 -> 0.2881
wonTackle: 0.8253 -> 0.8354
wasFouled: 0.6954 -> 0.6886
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Tim Iroegbunam, Regan Slater', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.30 (squad xG sum 1.3502, xG scale 0.9643, xA scale 1.0725, team xA 0.85 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.302
squad_xg_sum=1.3502
squad_xa_sum=0.7891
team_expected_assists=0.8463
team_xa_to_xg_ratio=0.65
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 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.033
goal_rate=0.0454
scorer_weight=0.0378
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0443
assist_rate=0.051
provider_weight=0.0496
-
Sander BergeM8300.070.0477%10.57.051.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.0059, quality 0.686)market_value_eur=26000000
quality_factor=0.6858
boost_factor=1.0059
reference_quality=0.505
history_matches=41
history_shrink=0.1087
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0080)blend_weight=0.008
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=0.922
prior_reliability=0.1133
competition=Premier League
wonTackle: 0.8159 -> 0.8094
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Tim Iroegbunam', 'matchup_zone': '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.30 (squad xG sum 1.3502, xG scale 0.9643, xA scale 1.0725, team xA 0.85 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.302
squad_xg_sum=1.3502
squad_xa_sum=0.7891
team_expected_assists=0.8463
team_xa_to_xg_ratio=0.65
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 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.0648
goal_rate=0.0869
scorer_weight=0.0768
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0645
assist_rate=0.0579
provider_weight=0.0641
-
Ryan SessegnonD8600.110.04185%10.66.744.030FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0057, quality 0.641)market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.0057
reference_quality=0.505
history_matches=31
history_shrink=0.1389
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0030)blend_weight=0.003
history_matches=31
season_overlap_discount=1.0
per90_to_match_factor=0.9606
prior_reliability=0.0333
competition=Premier League
totalCross: 2.5736 -> 2.6063
totalShots: 0.8694 -> 0.8795
onTargetScoringAttempt: 0.3343 -> 0.3396
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Regan Slater', 'matchup_zone': 'Left Mid vs Right Back — Wide Channel'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.30 (squad xG sum 1.3502, xG scale 0.9643, xA scale 1.0725, team xA 0.85 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.302
squad_xg_sum=1.3502
squad_xa_sum=0.7891
team_expected_assists=0.8463
team_xa_to_xg_ratio=0.65
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 77.0)match_squad_rank=14
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 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.3333
scorer_weight=0.1364
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0487
assist_rate=0.0
provider_weight=0.0399
-
Team totals11.30136.9
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Benjamin LecomteG4.4m10.9%Market-value substitute prior
Antonee RobinsonD14.5m23.6%Market-value substitute prior
Joachim AndersenD14.4m23.3%Market-value substitute prior
Hugo LarssonM23.1m54.9%Market-value substitute prior
Emile Smith RoweM18.4m70.6%Market-value substitute prior
KevinF19.0m73.9%Market-value substitute prior

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Oli McBurnieF8600.250.10146%20.86.833.312XGBoost 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.9985, quality 0.494)market_value_eur=7600000
quality_factor=0.4939
boost_factor=0.9985
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': 'Timothy Castagne, Calvin Bassey', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 0.9151, 'skill_edge': -0.0697, 'height_edge': 0.012, 'attacker_skill': 0.4939, 'defender_skill': 0.6488, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Timothy Castagne', 'market_value': 7600000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.524}, {'player': 'Calvin Bassey', 'market_value': 29000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7736}], 'xg_override': 0.2282}
totalShots: 1.9833 -> 1.8149
shotOffTarget: 1.3452 -> 1.231
onTargetScoringAttempt: 0.6381 -> 0.5839
bigChanceMissed: 0.4282 -> 0.3918
expectedGoals: 0.2494 -> 0.2282
goals: 0.2239 -> 0.2049
expectedGoalsOnTarget: 0.1007 -> 0.0922
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.04 (squad xG sum 0.9407, xG scale 1.1056, xA scale 1.2822, team xA 0.68 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.04
squad_xg_sum=0.9407
squad_xa_sum=0.5272
team_expected_assists=0.676
team_xa_to_xg_ratio=0.65
expected_goals: 0.2282 -> 0.2523
expected_assists: 0.0394 -> 0.0505
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.223
goal_rate=0.2049
scorer_weight=0.2312
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0492
assist_rate=0.1737
provider_weight=0.0631
-
Sorba ThomasF7800.100.02322%10.46.818.517XGBoost 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.0115, quality 0.574)market_value_eur=14500000
quality_factor=0.5737
boost_factor=1.0115
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': 'Timothy Castagne, Calvin Bassey', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 0.9503, 'skill_edge': -0.0338, 'height_edge': 0.0, 'attacker_skill': 0.5737, 'defender_skill': 0.6488, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Timothy Castagne', 'market_value': 7600000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.524}, {'player': 'Calvin Bassey', 'market_value': 29000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7736}], 'xg_override': 0.0921}
totalShots: 1.2135 -> 1.1532
shotOffTarget: 0.8375 -> 0.7959
onTargetScoringAttempt: 0.376 -> 0.3573
goals: 0.1341 -> 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.04 (squad xG sum 0.9407, xG scale 1.1056, xA scale 1.2822, team xA 0.68 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.04
squad_xg_sum=0.9407
squad_xa_sum=0.5272
team_expected_assists=0.676
team_xa_to_xg_ratio=0.65
expected_goals: 0.0921 -> 0.1018
expected_assists: 0.0971 -> 0.1245
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.0968
goal_rate=0.1274
scorer_weight=0.1271
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=1
assist_probability=0.1171
assist_rate=0.3174
provider_weight=0.1556
-
Regan SlaterM8400.080.02327%10.36.834.012FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0011, quality 0.513)market_value_eur=9200000
quality_factor=0.513
boost_factor=1.0011
reference_quality=0.505
history_matches=6
history_shrink=0.4545
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0394)blend_weight=0.0394
history_matches=6
season_overlap_discount=1.0
per90_to_match_factor=0.9383
prior_reliability=0.1333
competition=Premier League
interceptionWon: 0.9163 -> 0.8802
totalShots: 0.8818 -> 0.8471
fouls: 0.9701 -> 0.9873
goalAssist: 0.081 -> 0.0963
wonTackle: 1.2376 -> 1.2258
onTargetScoringAttempt: 0.2748 -> 0.264
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Ryan Sessegnon', 'matchup_zone': 'Left Mid vs Right Back — Wide Channel', 'duel_win_rate': 0.353, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 0.8433, 'skill_edge': -0.0866, 'height_edge': -0.02, 'attacker_skill': 0.5251, 'defender_skill': 0.7176, 'attacker_role': 'LM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Ryan Sessegnon', 'market_value': 21000000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.7176}], 'xg_override': 0.0688}
totalShots: 0.871 -> 0.7345
shotOffTarget: 0.607 -> 0.5119
aerialWon: 0.9491 -> 0.9
onTargetScoringAttempt: 0.264 -> 0.2226
expectedGoals: 0.0816 -> 0.0688
goals: 0.0576 -> 0.0486
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.04 (squad xG sum 0.9407, xG scale 1.1056, xA scale 1.2822, team xA 0.68 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.04
squad_xg_sum=0.9407
squad_xa_sum=0.5272
team_expected_assists=0.676
team_xa_to_xg_ratio=0.65
expected_goals: 0.0688 -> 0.0761
expected_assists: 0.0746 -> 0.0957
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 72.0)match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0733
goal_rate=0.0486
scorer_weight=0.0632
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0913
assist_rate=0.0963
provider_weight=0.1124
-
Tim IroegbunamM8300.060.02174%10.46.741.326FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0031, quality 0.585)market_value_eur=15500000
quality_factor=0.5846
boost_factor=1.0031
reference_quality=0.505
history_matches=33
history_shrink=0.1316
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0006)blend_weight=0.0006
history_matches=33
season_overlap_discount=1.0
per90_to_match_factor=0.9207
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': 'Shea Charles', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.376, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 0.8919, 'skill_edge': -0.0455, 'height_edge': -0.028, 'attacker_skill': 0.6029, 'defender_skill': 0.704, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Shea Charles', 'market_value': 24000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.704}], 'xg_override': 0.0508}
aerialWon: 1.3919 -> 1.1
totalShots: 0.7177 -> 0.6401
shotOffTarget: 0.5205 -> 0.4642
onTargetScoringAttempt: 0.1972 -> 0.1759
goals: 0.0609 -> 0.0543
expectedGoals: 0.057 -> 0.0508
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.04 (squad xG sum 0.9407, xG scale 1.1056, xA scale 1.2822, team xA 0.68 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.04
squad_xg_sum=0.9407
squad_xa_sum=0.5272
team_expected_assists=0.676
team_xa_to_xg_ratio=0.65
expected_goals: 0.0508 -> 0.0562
expected_assists: 0.0338 -> 0.0433
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 76.0)match_squad_rank=11
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0546
goal_rate=0.0543
scorer_weight=0.0582
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0424
assist_rate=0.0476
provider_weight=0.0504
-
Mohamed BelloumiF7910.270.08255%21.36.938.321XGBoost 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.0132, quality 0.602)market_value_eur=17100000
quality_factor=0.6016
boost_factor=1.0132
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': 'Timothy Castagne, Calvin Bassey', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 0.9217, 'skill_edge': -0.0212, 'height_edge': -0.032, 'attacker_skill': 0.6016, 'defender_skill': 0.6488, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Timothy Castagne', 'market_value': 7600000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.524}, {'player': 'Calvin Bassey', 'market_value': 29000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7736}], 'xg_override': 0.2441}
totalShots: 2.3231 -> 2.1412
shotOffTarget: 1.5171 -> 1.3983
onTargetScoringAttempt: 0.806 -> 0.7429
goals: 0.3453 -> 0.3183
expectedGoalsOnTarget: 0.3127 -> 0.2882
bigChanceMissed: 0.2732 -> 0.2518
expectedGoals: 0.2648 -> 0.2441
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.04 (squad xG sum 0.9407, xG scale 1.1056, xA scale 1.2822, team xA 0.68 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.04
squad_xg_sum=0.9407
squad_xa_sum=0.5272
team_expected_assists=0.676
team_xa_to_xg_ratio=0.65
expected_goals: 0.2441 -> 0.2697
expected_assists: 0.0784 -> 0.1005
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=1
goal_probability=0.2364
goal_rate=0.3183
scorer_weight=0.3371
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0956
assist_rate=0.4409
provider_weight=0.1256
-
Ryan GilesD8500.000.0037%00.16.633.712FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0094, quality 0.574)market_value_eur=14500000
quality_factor=0.5737
boost_factor=1.0094
reference_quality=0.505
history_matches=6
history_shrink=0.4545
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0374)blend_weight=0.0374
history_matches=6
season_overlap_discount=1.0
per90_to_match_factor=0.9433
prior_reliability=0.1267
competition=Premier League
totalCross: 8.4791 -> 8.4033
interceptionWon: 0.747 -> 0.7376
fouls: 0.2066 -> 0.1989
wonTackle: 0.8099 -> 0.8168
wasFouled: 0.1756 -> 0.169
goalAssist: 0.1756 -> 0.169
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Ryan Sessegnon, Bernd Leno', '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.04 (squad xG sum 0.9407, xG scale 1.1056, xA scale 1.2822, team xA 0.68 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.04
squad_xg_sum=0.9407
squad_xa_sum=0.5272
team_expected_assists=0.676
team_xa_to_xg_ratio=0.65
expected_assists: 0.0715 -> 0.0917
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 18 by projected rating, fifa_overall 72.0)match_squad_rank=18
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0024
goal_rate=0.0
scorer_weight=0.0023
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0876
assist_rate=0.169
provider_weight=0.1146
-
Lucas HerringtonD9000.010.00235%00.16.630.311FBref Prior D_service
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.0134, quality 0.594)market_value_eur=16399999
quality_factor=0.5942
boost_factor=1.0134
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=1.0
prior_reliability=0.0467
competition=Premier League
wonTackle: 0.8468 -> 0.8339
interceptionWon: 0.7379 -> 0.7267
totalShots: 0.369 -> 0.3634
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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': '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.04 (squad xG sum 0.9407, xG scale 1.1056, xA scale 1.2822, team xA 0.68 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.04
squad_xg_sum=0.9407
squad_xa_sum=0.5272
team_expected_assists=0.676
team_xa_to_xg_ratio=0.65
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 15 by projected rating, fifa_overall 66.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.0071
goal_rate=0.0
scorer_weight=0.0063
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0135
assist_rate=0.0
provider_weight=0.0112
-
Semi AjayiD8800.090.0559%00.26.733.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 0.9908, quality 0.437)market_value_eur=930000
quality_factor=0.4374
boost_factor=0.9908
reference_quality=0.505
history_matches=6
history_shrink=0.4545
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0335)blend_weight=0.0335
history_matches=6
season_overlap_discount=1.0
per90_to_match_factor=0.9769
prior_reliability=0.1133
competition=Premier League
goals: 0.1059 -> 0.1216
onTargetScoringAttempt: 0.1059 -> 0.1216
wasFouled: 0.1245 -> 0.1396
wonTackle: 0.9872 -> 0.9734
totalCross: 0.7484 -> 0.7426
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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.04 (squad xG sum 0.9407, xG scale 1.1056, xA scale 1.2822, team xA 0.68 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.04
squad_xg_sum=0.9407
squad_xa_sum=0.5272
team_expected_assists=0.676
team_xa_to_xg_ratio=0.65
expected_goals: 0.0791 -> 0.0875
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 70.0)match_squad_rank=12
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0838
goal_rate=0.1216
scorer_weight=0.1094
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0099
assist_rate=0.0
provider_weight=0.0086
-
Lewie CoyleD8000.030.01129%00.16.632.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.9908, quality 0.437)market_value_eur=2700000
quality_factor=0.4374
boost_factor=0.9908
reference_quality=0.505
history_matches=6
history_shrink=0.4545
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0256)blend_weight=0.0256
history_matches=6
season_overlap_discount=1.0
per90_to_match_factor=0.8914
prior_reliability=0.0867
competition=Premier League
wasFouled: 0.6995 -> 0.7518
fouls: 0.469 -> 0.4921
totalCross: 2.2142 -> 2.1926
totalShots: 0.2667 -> 0.2599
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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, David Affengruber', '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.04 (squad xG sum 0.9407, xG scale 1.1056, xA scale 1.2822, team xA 0.68 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.04
squad_xg_sum=0.9407
squad_xa_sum=0.5272
team_expected_assists=0.676
team_xa_to_xg_ratio=0.65
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 17 by projected rating, fifa_overall 70.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.0254
goal_rate=0.0
scorer_weight=0.0206
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.0
provider_weight=0.0128
-
Konstantinos TzolakisG9000.00-n/a0.06.936.312XGBoost 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.0185, quality 0.641)market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.0185
reference_quality=0.505
history_matches=6
history_shrink=0.4545
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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.2748}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.04 (squad xG sum 0.9407, xG scale 1.1056, xA scale 1.2822, team xA 0.68 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.04
squad_xg_sum=0.9407
squad_xa_sum=0.5272
team_expected_assists=0.676
team_xa_to_xg_ratio=0.65
shots_faced: 12.1 -> 12.4
expected_saves: 2.96 -> 3.04
high_pressure_saves: 1.02 -> 1.04
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.0966
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.7667
-
John EganD8800.020.01170%10.36.734.212FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9908, quality 0.437)market_value_eur=1500000
quality_factor=0.4374
boost_factor=0.9908
reference_quality=0.505
history_matches=6
history_shrink=0.4545
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0394)blend_weight=0.0394
history_matches=6
season_overlap_discount=1.0
per90_to_match_factor=0.9796
prior_reliability=0.1333
competition=Premier League
totalShots: 0.5239 -> 0.5033
fouls: 0.4913 -> 0.472
wasFouled: 0.1245 -> 0.1389
wonTackle: 0.843 -> 0.8291
onTargetScoringAttempt: 0.2028 -> 0.1948
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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.04 (squad xG sum 0.9407, xG scale 1.1056, xA scale 1.2822, team xA 0.68 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.04
squad_xg_sum=0.9407
squad_xa_sum=0.5272
team_expected_assists=0.676
team_xa_to_xg_ratio=0.65
expected_assists: 0.0398 -> 0.051
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 72.0)match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0195
goal_rate=0.0
scorer_weight=0.0158
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0497
assist_rate=0.0
provider_weight=0.0408
-
Team totals11.04106.7
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Jack ButlandG4.4m10.9%Market-value substitute prior
Nobel MendyD14.4m23.3%Market-value substitute prior
Charlie HughesD13.9m31.2%Market-value substitute prior
Christos MouzakitisM23.0m54.3%Market-value substitute prior
Brooke Norton-CuffyM22.6m52.5%Market-value substitute prior
Robinio VazF26.0m59.1%Market-value substitute prior
Antagonist / tactical summary
Home midfield dominates with ~52% possession expected (Josh King vs Tim Iroegbunam). Total antagonist xG — Home: 0.81, Away: 0.70. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Midfield — possession 51.7% / 48.3%, dominance ratio 0.58, key duel: Josh King vs Tim Iroegbunam
Alex Iwobi xG 0.09Josh King xG 0.19Gonzalo García xG 0.38Mohamed Belloumi xG 0.24Oli McBurnie xG 0.23Sorba Thomas xG 0.09

Summary

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

Man City vs Ipswich

Premier League · 20261017 · 4-2-3-1 vs 4-2-3-1
Predicted 3-1Winner: Man CityWinning H 3-1 (8.1%)Winning A 1-2 (3.0%)Confidence 0.79λ home/away 3.08 / 1.18Most-likely P 8.1%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset Tracing
Antagonist + XGBoost match analysis for Man City vs Ipswich. 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.858, Away 1.365). Final calibrated Poisson lambdas: Home 3.079, Away 1.176 (most likely score 3-1).
Home Starters 11/11 XGBoost (11 FBref) Away Starters 11/11 XGBoost (9 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 2.86 / 1.36 Final λ (H/A) 3.08 / 1.18
FBref Team Priors: Manchester City (Gls/90: 3.0, GA/90: 3.0 → E[λ]: 3.5) vs Ipswich Town (Gls/90: 2.0, GA/90: 2.0 → E[λ]: 3.5) | Blend Weight: 0.192
Modeling Pipeline Stages (5 layers)
  1. 1. XGBoost player regressions for volume & event rates with market-value quality scaling
  2. 2. Multi-source prior blending (FBref 2026-2027 tables + Sofascore season history)
  3. 3. Antagonist formation duel matrix resolving 1v1 and zonal matchups
  4. 4. Team-level prior calibration (FBref possession and attack/defense efficiencies)
  5. 5. Bivariate Poisson matrix with Dixon-Coles low-score correction

Standing & form context

MetricMan CityIpswich
League position1.0010.00
Points per game2.171.42
Attack index1.271.01
Defense (concede) index1.120.85
Form multiplier1.040.96
Standing λ multiplier1.160.93

Lambda decomposition (how the goal rates were built)

StageMan City λIpswich λ
FBref Squad Prior E[λ] (weight 0.192)3.5003.500
Pre-mismatch2.9191.336
Pre-calibration (Micro-duels)2.8581.365
Final λ3.0791.176
competition calibration scale 1.0competition observed total goals 0.0quality gap applied Truemismatch score pressure applied Truecompetitive underdog floor applied Falsestage discount 1.0

Scoreline distribution & markets

Top 5 scorelinesP
3-18.1%
2-17.9%
3-06.9%
2-06.7%
4-16.3%
Home win75.2%
Draw13.6%
Away win11.2%
Over 2.579.7%
BTTS yes66.0%
Pregame fair line — favorite Man City (75.2%), fair total 4.25, fair spread 1.90

Projected players vs season baseline

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

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Erling HaalandF8721.070.47128%42.77.054.330FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0129, quality 0.900)market_value_eur=240000000
quality_factor=0.9
boost_factor=1.0129
reference_quality=0.505
history_matches=41
history_shrink=0.1087
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0094)blend_weight=0.0094
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=0.9709
prior_reliability=0.1333
competition=Premier League
totalShots: 2.8464 -> 2.8653
onTargetScoringAttempt: 1.326 -> 1.3364
fouls: 1.0655 -> 1.0555
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Leif Davis, Issa Diop', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.337, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.2015, 'skill_edge': 0.1091, 'height_edge': 0.028, 'attacker_skill': 0.9, 'defender_skill': 0.6575, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Leif Davis', 'market_value': 26000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7498}, {'player': 'Issa Diop', 'market_value': 10300000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5652}], 'xg_override': 0.5816}
totalShots: 2.8653 -> 3.4427
shotOffTarget: 1.5204 -> 1.8268
onTargetScoringAttempt: 1.3364 -> 1.6057
bigChanceMissed: 0.9031 -> 1.0851
expectedGoalsOnTarget: 0.7622 -> 0.9158
goals: 0.6503 -> 0.7813
expectedGoals: 0.4841 -> 0.5816
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 3 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=3
goals: 1.0 -> 0
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 3.08 (squad xG sum 1.6774, xG scale 1.8356, xA scale 1.8356, team xA 2.27 = 0.74 x lambda)scoreline_reset=true
team_lambda=3.079
squad_xg_sum=1.6774
squad_xa_sum=1.2357
team_expected_assists=2.2682
team_xa_to_xg_ratio=0.7367
expected_goals: 0.5816 -> 1.0677
expected_assists: 0.0592 -> 0.1087
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 91.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: 3 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=3
allocation_applied=true
goals_allocated=2
goal_probability=0.6562
goal_rate=0.7813
scorer_weight=1.3346
-
integer_assist_projectionTeam scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=2
assists_allocated=0
assist_probability=0.103
assist_rate=0.0931
provider_weight=0.1359
-
Antoine SemenyoF8500.280.13119%21.37.149.842FBref 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.0119, quality 0.886)market_value_eur=85000000
quality_factor=0.8859
boost_factor=1.0119
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.9434
prior_reliability=0.1333
competition=Premier League
wasFouled: 0.6306 -> 0.6419
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Leif Davis, Issa Diop', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.291, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.1334, 'skill_edge': 0.1028, 'height_edge': -0.012, 'attacker_skill': 0.8859, 'defender_skill': 0.6575, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Leif Davis', 'market_value': 26000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7498}, {'player': 'Issa Diop', 'market_value': 10300000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5652}], 'xg_override': 0.1533}
totalShots: 1.7591 -> 1.9938
shotOffTarget: 1.0208 -> 1.157
onTargetScoringAttempt: 0.7383 -> 0.8368
goals: 0.2334 -> 0.2645
expectedGoalsOnTarget: 0.1755 -> 0.1989
expectedGoals: 0.1353 -> 0.1533
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 3 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=3
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 3.08 (squad xG sum 1.6774, xG scale 1.8356, xA scale 1.8356, team xA 2.27 = 0.74 x lambda)scoreline_reset=true
team_lambda=3.079
squad_xg_sum=1.6774
squad_xa_sum=1.2357
team_expected_assists=2.2682
team_xa_to_xg_ratio=0.7367
expected_goals: 0.1533 -> 0.2814
expected_assists: 0.1746 -> 0.3205
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: 3 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=3
allocation_applied=true
goals_allocated=0
goal_probability=0.2453
goal_rate=0.2645
scorer_weight=0.3518
-
integer_assist_projectionTeam scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=2
assists_allocated=1
assist_probability=0.2742
assist_rate=0.3123
provider_weight=0.4006
-
Rayan CherkiM7810.470.13256%31.77.359.232FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0134, quality 0.898)market_value_eur=120000000
quality_factor=0.8975
boost_factor=1.0134
reference_quality=0.505
history_matches=39
history_shrink=0.1136
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0059)blend_weight=0.0059
history_matches=39
season_overlap_discount=1.0
per90_to_match_factor=0.8623
prior_reliability=0.08
competition=Premier League
fouls: 0.8003 -> 0.8126
totalCross: 2.5118 -> 2.5224
onTargetScoringAttempt: 0.8554 -> 0.863
goalAssist: 0.2098 -> 0.2171
goals: 0.3062 -> 0.3129
wasFouled: 1.0422 -> 1.036
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Christian Walton', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.557, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.202, 'skill_edge': 0.1974, 'height_edge': -0.06, 'attacker_skill': 0.8975, 'defender_skill': 0.4588, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Christian Walton', 'market_value': 2600000, 'role': 'GK', 'price_index': 0.55, 'adjusted_quality': 0.4588}], 'xg_override': 0.2537}
aerialWon: 0.0 -> 0.9
totalShots: 2.8943 -> 3.4789
shotOffTarget: 2.0313 -> 2.4416
onTargetScoringAttempt: 0.863 -> 1.0373
expectedGoalsOnTarget: 0.4325 -> 0.5199
goals: 0.3129 -> 0.3761
expectedGoals: 0.2111 -> 0.2537
bigChanceMissed: 0.0503 -> 0.0605
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 3 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=3
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 3.08 (squad xG sum 1.6774, xG scale 1.8356, xA scale 1.8356, team xA 2.27 = 0.74 x lambda)scoreline_reset=true
team_lambda=3.079
squad_xg_sum=1.6774
squad_xa_sum=1.2357
team_expected_assists=2.2682
team_xa_to_xg_ratio=0.7367
expected_goals: 0.2537 -> 0.4657
expected_assists: 0.2149 -> 0.3944
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 86.0)match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 3 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=3
allocation_applied=true
goals_allocated=1
goal_probability=0.3723
goal_rate=0.3761
scorer_weight=0.5821
-
integer_assist_projectionTeam scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=2
assists_allocated=1
assist_probability=0.3259
assist_rate=0.2171
provider_weight=0.3977
-
Iliman NdiayeF8200.210.1183%21.06.846.838FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.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.0101)blend_weight=0.0101
history_matches=38
season_overlap_discount=1.0
per90_to_match_factor=0.9149
prior_reliability=0.1333
competition=Premier League
totalCross: 2.075 -> 2.0633
onTargetScoringAttempt: 0.4881 -> 0.497
wasFouled: 1.251 -> 1.243
totalShots: 1.3186 -> 1.3238
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': 'Leif Davis, Issa Diop', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.259, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.0862, 'skill_edge': 0.0906, 'height_edge': -0.032, 'attacker_skill': 0.8589, 'defender_skill': 0.6575, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Leif Davis', 'market_value': 26000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7498}, {'player': 'Issa Diop', 'market_value': 10300000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5652}], 'xg_override': 0.1139}
totalShots: 1.3275 -> 1.4419
shotOffTarget: 0.8305 -> 0.9021
onTargetScoringAttempt: 0.497 -> 0.5398
expectedGoalsOnTarget: 0.1616 -> 0.1755
goals: 0.1472 -> 0.1599
bigChanceMissed: 0.1087 -> 0.1181
expectedGoals: 0.1049 -> 0.1139
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 3 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=3
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 3.08 (squad xG sum 1.6774, xG scale 1.8356, xA scale 1.8356, team xA 2.27 = 0.74 x lambda)scoreline_reset=true
team_lambda=3.079
squad_xg_sum=1.6774
squad_xa_sum=1.2357
team_expected_assists=2.2682
team_xa_to_xg_ratio=0.7367
expected_goals: 0.1139 -> 0.2091
expected_assists: 0.1087 -> 0.1995
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 16 by projected rating, fifa_overall 82.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: 3 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=3
allocation_applied=true
goals_allocated=0
goal_probability=0.1887
goal_rate=0.1599
scorer_weight=0.2614
-
integer_assist_projectionTeam scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=2
assists_allocated=0
assist_probability=0.1809
assist_rate=0.1038
provider_weight=0.1933
-
Elliot AndersonM8600.130.04202%11.07.460.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.0120, quality 0.896)market_value_eur=109000000
quality_factor=0.8957
boost_factor=1.012
reference_quality=0.505
history_matches=44
history_shrink=0.102
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0071)blend_weight=0.0071
history_matches=44
season_overlap_discount=1.0
per90_to_match_factor=0.9551
prior_reliability=0.1067
competition=Premier League
interceptionWon: 1.3127 -> 1.3245
wasFouled: 3.1124 -> 3.103
wonTackle: 1.3179 -> 1.3255
fouls: 1.3176 -> 1.3252
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Exequiel Palacios', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.507, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 1.1285, 'skill_edge': 0.0794, 'height_edge': 0.008, 'attacker_skill': 0.8984, 'defender_skill': 0.7219, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Exequiel Palacios', 'market_value': 26000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.7219}], 'xg_override': 0.0697}
aerialWon: 1.2771 -> 1.0
totalShots: 0.9561 -> 1.079
shotOffTarget: 0.7191 -> 0.8115
onTargetScoringAttempt: 0.237 -> 0.2675
goals: 0.0947 -> 0.1069
expectedGoals: 0.0618 -> 0.0697
expectedGoalsOnTarget: 0.0555 -> 0.0626
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 3 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=3
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 3.08 (squad xG sum 1.6774, xG scale 1.8356, xA scale 1.8356, team xA 2.27 = 0.74 x lambda)scoreline_reset=true
team_lambda=3.079
squad_xg_sum=1.6774
squad_xa_sum=1.2357
team_expected_assists=2.2682
team_xa_to_xg_ratio=0.7367
expected_goals: 0.0697 -> 0.1279
expected_assists: 0.1335 -> 0.2451
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: 3 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=3
allocation_applied=true
goals_allocated=0
goal_probability=0.1201
goal_rate=0.1069
scorer_weight=0.1599
-
integer_assist_projectionTeam scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=2
assists_allocated=0
assist_probability=0.2174
assist_rate=0.1336
provider_weight=0.2452
-
Nico O'ReillyD8200.370.16132%11.06.853.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.0127, quality 0.878)market_value_eur=76000000
quality_factor=0.8781
boost_factor=1.0127
reference_quality=0.505
history_matches=39
history_shrink=0.1136
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0084)blend_weight=0.0084
history_matches=39
season_overlap_discount=1.0
per90_to_match_factor=0.9091
prior_reliability=0.1133
competition=Premier League
totalCross: 1.332 -> 1.3388
interceptionWon: 0.7992 -> 0.7925
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Emersonn', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 3 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=3
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 3.08 (squad xG sum 1.6774, xG scale 1.8356, xA scale 1.8356, team xA 2.27 = 0.74 x lambda)scoreline_reset=true
team_lambda=3.079
squad_xg_sum=1.6774
squad_xa_sum=1.2357
team_expected_assists=2.2682
team_xa_to_xg_ratio=0.7367
expected_goals: 0.2031 -> 0.3728
expected_assists: 0.111 -> 0.2038
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 17 by projected rating, fifa_overall 83.0)match_squad_rank=17
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 3 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=3
allocation_applied=true
goals_allocated=0
goal_probability=0.3112
goal_rate=0.1168
scorer_weight=0.2982
-
integer_assist_projectionTeam scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=2
assists_allocated=0
assist_probability=0.1844
assist_rate=0.0081
provider_weight=0.163
-
Joško GvardiolD8400.120.0858%10.66.945.016FBref Prior D_service
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.0188, quality 0.869)market_value_eur=69000000
quality_factor=0.8692
boost_factor=1.0188
reference_quality=0.505
history_matches=24
history_shrink=0.1724
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0134)blend_weight=0.0134
history_matches=24
season_overlap_discount=1.0
per90_to_match_factor=0.9321
prior_reliability=0.12
competition=Premier League
wasFouled: 0.8222 -> 0.8111
totalCross: 0.3341 -> 0.3435
wonTackle: 0.9938 -> 0.9874
goals: 0.1361 -> 0.1412
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Jaden Philogene-Bidace', 'matchup_zone': 'Shape fallback'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 3 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=3
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 3.08 (squad xG sum 1.6774, xG scale 1.8356, xA scale 1.8356, team xA 2.27 = 0.74 x lambda)scoreline_reset=true
team_lambda=3.079
squad_xg_sum=1.6774
squad_xa_sum=1.2357
team_expected_assists=2.2682
team_xa_to_xg_ratio=0.7367
expected_goals: 0.065 -> 0.1193
expected_assists: 0.128 -> 0.235
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 85.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: 3 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=3
allocation_applied=true
goals_allocated=0
goal_probability=0.1125
goal_rate=0.1412
scorer_weight=0.1491
-
integer_assist_projectionTeam scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=2
assists_allocated=0
assist_probability=0.2094
assist_rate=0.3184
provider_weight=0.2937
-
Rúben DiasD8800.080.02314%10.27.141.624FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0136, quality 0.840)market_value_eur=55000000
quality_factor=0.8399
boost_factor=1.0136
reference_quality=0.505
history_matches=32
history_shrink=0.1351
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0117)blend_weight=0.0117
history_matches=32
season_overlap_discount=1.0
per90_to_match_factor=0.9812
prior_reliability=0.1333
competition=Premier League
fouls: 1.296 -> 1.2808
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Emersonn', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 3 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=3
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 3.08 (squad xG sum 1.6774, xG scale 1.8356, xA scale 1.8356, team xA 2.27 = 0.74 x lambda)scoreline_reset=true
team_lambda=3.079
squad_xg_sum=1.6774
squad_xa_sum=1.2357
team_expected_assists=2.2682
team_xa_to_xg_ratio=0.7367
expected_goals: 0.0413 -> 0.0758
expected_assists: 0.0709 -> 0.1301
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 87.0)match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 3 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=3
allocation_applied=true
goals_allocated=0
goal_probability=0.073
goal_rate=0.0186
scorer_weight=0.0606
-
integer_assist_projectionTeam scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=2
assists_allocated=0
assist_probability=0.122
assist_rate=0.0
provider_weight=0.1041
-
Matheus NunesD8700.010.0091%00.16.950.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.0101, quality 0.796)market_value_eur=43000000
quality_factor=0.7957
boost_factor=1.0101
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.9672
prior_reliability=0.0267
competition=Premier League
totalCross: 1.6087 -> 1.6152
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Julio Enciso', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 3 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=3
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 3.08 (squad xG sum 1.6774, xG scale 1.8356, xA scale 1.8356, team xA 2.27 = 0.74 x lambda)scoreline_reset=true
team_lambda=3.079
squad_xg_sum=1.6774
squad_xa_sum=1.2357
team_expected_assists=2.2682
team_xa_to_xg_ratio=0.7367
expected_assists: 0.0381 -> 0.0699
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 83.0)match_squad_rank=11
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 3 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=3
allocation_applied=true
goals_allocated=0
goal_probability=0.0053
goal_rate=0.0007
scorer_weight=0.0051
-
integer_assist_projectionTeam scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=2
assists_allocated=0
assist_probability=0.0675
assist_rate=0.0584
provider_weight=0.086
-
Gianluigi DonnarummaG9000.00-n/a0.06.958.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.0101, quality 0.809)market_value_eur=46000000
quality_factor=0.8089
boost_factor=1.0101
reference_quality=0.505
history_matches=40
history_shrink=0.1111
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0096)blend_weight=0.0096
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League
saves: 2.9734 -> 2.964
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Emersonn, Julio Enciso', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.3649}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 3 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=3
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 3.08 (squad xG sum 1.6774, xG scale 1.8356, xA scale 1.8356, team xA 2.27 = 0.74 x lambda)scoreline_reset=true
team_lambda=3.079
squad_xg_sum=1.6774
squad_xa_sum=1.2357
team_expected_assists=2.2682
team_xa_to_xg_ratio=0.7367
shots_faced: 13.0 -> 11.2
expected_saves: 3.19 -> 2.74
high_pressure_saves: 1.09 -> 0.94
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: 3 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=3
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=3.6309
-
integer_assist_projectionTeam scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=2
assists_allocated=0
assist_probability=0.0
provider_weight=0.0
squad_weight_total=2.3181
-
Ayyoub BouaddiM8600.130.005507%10.16.820.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 1.0727, quality 0.893)market_value_eur=98000000
quality_factor=0.8926
boost_factor=1.0727
reference_quality=0.505
history_matches=3
history_shrink=0.625
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0027)blend_weight=0.0027
history_matches=3
season_overlap_discount=1.0
per90_to_match_factor=0.9556
prior_reliability=0.0067
competition=Premier League
interceptionWon: 0.3013 -> 0.3265
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Exequiel Palacios', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.531, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 1.1628, 'skill_edge': 0.0787, 'height_edge': 0.032, 'attacker_skill': 0.8969, 'defender_skill': 0.7219, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Exequiel Palacios', 'market_value': 26000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.7219}], 'xg_override': 0.0715}
aerialWon: 0.0 -> 1.2
totalShots: 0.7328 -> 0.8521
shotOffTarget: 0.5547 -> 0.645
onTargetScoringAttempt: 0.1781 -> 0.2071
goals: 0.1044 -> 0.1214
expectedGoals: 0.0615 -> 0.0715
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 3 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=3
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 3.08 (squad xG sum 1.6774, xG scale 1.8356, xA scale 1.8356, team xA 2.27 = 0.74 x lambda)scoreline_reset=true
team_lambda=3.079
squad_xg_sum=1.6774
squad_xa_sum=1.2357
team_expected_assists=2.2682
team_xa_to_xg_ratio=0.7367
expected_goals: 0.0715 -> 0.1312
expected_assists: 0.0603 -> 0.1107
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 80.0)match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 3 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=3
allocation_applied=true
goals_allocated=0
goal_probability=0.123
goal_rate=0.1214
scorer_weight=0.164
-
integer_assist_projectionTeam scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=2
assists_allocated=0
assist_probability=0.1048
assist_rate=0.0477
provider_weight=0.0981
-
Team totals33.08197.0
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Gerónimo RulliG4.5m11.5%Market-value substitute prior
Marc GuéhiD15.3m25.2%Market-value substitute prior
Abdukodir KhusanovD15.1m24.7%Market-value substitute prior
Enzo FernándezM23.8m58.1%Market-value substitute prior
Phil FodenM23.7m34.2%Market-value substitute prior
Jérémy DokuF27.0m63.7%Market-value substitute prior

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
EmersonnF7000.240.1742%20.96.834.212FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0223, quality 0.669)market_value_eur=24000000
quality_factor=0.6685
boost_factor=1.0223
reference_quality=0.505
history_matches=6
history_shrink=0.4545
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0236)blend_weight=0.0236
history_matches=6
season_overlap_discount=1.0
per90_to_match_factor=0.7814
prior_reliability=0.08
competition=Premier League
totalCross: 0.1093 -> 0.1221
fouls: 0.1285 -> 0.1409
wasFouled: 1.7028 -> 1.6933
onTargetScoringAttempt: 0.8947 -> 0.9038
totalOffside: 0.3024 -> 0.2953
goals: 0.3739 -> 0.3805
interceptionWon: 0.2462 -> 0.2404
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': "Nico O'Reilly, 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.8307, 'skill_edge': -0.0971, 'height_edge': -0.018, 'attacker_skill': 0.6685, 'defender_skill': 0.8844, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': "Nico O'Reilly", 'market_value': 76000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8937}, {'player': 'Rúben Dias', 'market_value': 55000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8751}], 'xg_override': 0.2626}
totalShots: 2.1045 -> 1.7482
shotOffTarget: 1.2007 -> 0.9974
onTargetScoringAttempt: 0.9038 -> 0.7508
goals: 0.3805 -> 0.3161
expectedGoals: 0.3161 -> 0.2626
bigChanceMissed: 0.2889 -> 0.24
expectedGoalsOnTarget: 0.2701 -> 0.2244
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.18 (squad xG sum 1.2730, xG scale 0.9238, xA scale 0.9738, team xA 0.76 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.176
squad_xg_sum=1.273
squad_xa_sum=0.785
team_expected_assists=0.7644
team_xa_to_xg_ratio=0.65
expected_goals: 0.2626 -> 0.2426
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 74.0)match_squad_rank=11
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.2154
goal_rate=0.3161
scorer_weight=0.2841
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0443
assist_rate=0.1737
provider_weight=0.0566
-
Jaden Philogene-BidaceF7400.080.01922%10.36.817.115XGBoost 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.0214, quality 0.619)market_value_eur=18800000
quality_factor=0.6191
boost_factor=1.0214
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': "Nico O'Reilly, 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.7686, 'skill_edge': -0.1194, 'height_edge': -0.038, 'attacker_skill': 0.6191, 'defender_skill': 0.8844, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': "Nico O'Reilly", 'market_value': 76000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8937}, {'player': 'Rúben Dias', 'market_value': 55000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8751}], 'xg_override': 0.0918}
totalShots: 1.5476 -> 1.1895
shotOffTarget: 0.9977 -> 0.7668
onTargetScoringAttempt: 0.5499 -> 0.4227
goals: 0.1716 -> 0.1319
expectedGoals: 0.1194 -> 0.0918
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.18 (squad xG sum 1.2730, xG scale 0.9238, xA scale 0.9738, team xA 0.76 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.176
squad_xg_sum=1.273
squad_xa_sum=0.785
team_expected_assists=0.7644
team_xa_to_xg_ratio=0.65
expected_goals: 0.0918 -> 0.0848
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 85.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.0813
goal_rate=0.1319
scorer_weight=0.106
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0512
assist_rate=0.0
provider_weight=0.0421
-
Abdul Fatawu IssahakuF7300.060.02266%10.46.733.620FBref 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.0245, quality 0.669)market_value_eur=24000000
quality_factor=0.6685
boost_factor=1.0245
reference_quality=0.505
history_matches=5
history_shrink=0.5
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0347)blend_weight=0.0347
history_matches=5
season_overlap_discount=1.0
per90_to_match_factor=0.8151
prior_reliability=0.1067
competition=Premier League
totalShots: 1.2209 -> 1.1786
fouls: 2.24 -> 2.1977
interceptionWon: 1.131 -> 1.1094
wonTackle: 1.092 -> 1.1071
totalCross: 5.49 -> 5.4763
onTargetScoringAttempt: 0.3899 -> 0.3764
goalAssist: 0.1697 -> 0.1815
totalOffside: 0.1697 -> 0.1815
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': "Nico O'Reilly, 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.7955, 'skill_edge': -0.0971, 'height_edge': -0.042, 'attacker_skill': 0.6685, 'defender_skill': 0.8844, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': "Nico O'Reilly", 'market_value': 76000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8937}, {'player': 'Rúben Dias', 'market_value': 55000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8751}], 'xg_override': 0.0682}
totalShots: 1.2074 -> 0.9605
shotOffTarget: 0.831 -> 0.6611
onTargetScoringAttempt: 0.3764 -> 0.2994
goals: 0.0906 -> 0.0721
expectedGoals: 0.0857 -> 0.0682
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.18 (squad xG sum 1.2730, xG scale 0.9238, xA scale 0.9738, team xA 0.76 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.176
squad_xg_sum=1.273
squad_xa_sum=0.785
team_expected_assists=0.7644
team_xa_to_xg_ratio=0.65
expected_goals: 0.0682 -> 0.063
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 16 by projected rating, fifa_overall 82.0)match_squad_rank=16
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0611
goal_rate=0.0721
scorer_weight=0.0651
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0943
assist_rate=0.1815
provider_weight=0.1237
-
Julio EncisoM8200.160.1140%21.66.934.712FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0269, quality 0.702)market_value_eur=28000000
quality_factor=0.7022
boost_factor=1.0269
reference_quality=0.505
history_matches=6
history_shrink=0.4545
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0355)blend_weight=0.0355
history_matches=6
season_overlap_discount=1.0
per90_to_match_factor=0.9066
prior_reliability=0.12
competition=Premier League
goalAssist: 0.137 -> 0.1679
wonTackle: 0.2389 -> 0.2661
totalShots: 2.5405 -> 2.5591
totalCross: 0.426 -> 0.4109
wasFouled: 1.5963 -> 1.6111
interceptionWon: 0.4135 -> 0.3988
onTargetScoringAttempt: 0.7674 -> 0.7582
goals: 0.2289 -> 0.2208
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Matheus Nunes', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.371, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.8396, 'skill_edge': -0.0691, 'height_edge': -0.04, 'attacker_skill': 0.7022, 'defender_skill': 0.8557, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Matheus Nunes', 'market_value': 43000000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.8557}], 'xg_override': 0.169}
aerialWon: 0.1787 -> 0.9
totalShots: 2.5591 -> 2.1486
shotOffTarget: 1.7731 -> 1.4887
onTargetScoringAttempt: 0.7582 -> 0.6366
expectedGoalsOnTarget: 0.2343 -> 0.1967
goals: 0.2208 -> 0.1854
expectedGoals: 0.2013 -> 0.169
bigChanceMissed: 0.1515 -> 0.1272
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.18 (squad xG sum 1.2730, xG scale 0.9238, xA scale 0.9738, team xA 0.76 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.176
squad_xg_sum=1.273
squad_xa_sum=0.785
team_expected_assists=0.7644
team_xa_to_xg_ratio=0.65
expected_goals: 0.169 -> 0.1561
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 78.0)match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1445
goal_rate=0.1854
scorer_weight=0.1678
-
integer_assist_projectionTeam scoreline allocation: 1 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.1354
assist_rate=0.1679
provider_weight=0.159
-
Exequiel PalaciosM8400.03-n/a10.07.035.010FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0271, quality 0.686)market_value_eur=26000000
quality_factor=0.6858
boost_factor=1.0271
reference_quality=0.505
history_matches=5
history_shrink=0.5
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0065)blend_weight=0.0065
history_matches=5
season_overlap_discount=1.0
per90_to_match_factor=0.9364
prior_reliability=0.02
competition=Premier League
interceptionWon: 1.3156 -> 1.3476
wonTackle: 1.3156 -> 1.3273
fouls: 1.3665 -> 1.3779
wasFouled: 1.5531 -> 1.5633
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Elliot Anderson', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.333, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.8715, 'skill_edge': -0.0794, 'height_edge': -0.008, 'attacker_skill': 0.7219, 'defender_skill': 0.8984, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Elliot Anderson', 'market_value': 109000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8984}], 'xg_override': 0.0346}
aerialWon: 0.0 -> 1.0
totalShots: 0.6761 -> 0.5892
shotOffTarget: 0.5387 -> 0.4695
onTargetScoringAttempt: 0.1374 -> 0.1197
goals: 0.0484 -> 0.0422
expectedGoals: 0.0397 -> 0.0346
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.18 (squad xG sum 1.2730, xG scale 0.9238, xA scale 0.9738, team xA 0.76 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.176
squad_xg_sum=1.273
squad_xa_sum=0.785
team_expected_assists=0.7644
team_xa_to_xg_ratio=0.65
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 83.0)match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0315
goal_rate=0.0422
scorer_weight=0.0349
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.046
assist_rate=0.0448
provider_weight=0.0454
-
Saša LukićM8300.030.03ok00.47.045.425FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0004, quality 0.515)market_value_eur=9400000
quality_factor=0.5154
boost_factor=1.0004
reference_quality=0.505
history_matches=32
history_shrink=0.1351
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0105)blend_weight=0.0105
history_matches=32
season_overlap_discount=1.0
per90_to_match_factor=0.9228
prior_reliability=0.12
competition=Premier League
wonTackle: 0.9597 -> 0.9658
wasFouled: 0.4797 -> 0.4746
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Elliot Anderson', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.272, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.783, 'skill_edge': -0.1636, 'height_edge': 0.016, 'attacker_skill': 0.5348, 'defender_skill': 0.8984, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Elliot Anderson', 'market_value': 109000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8984}], 'xg_override': 0.0309}
aerialWon: 0.4507 -> 1.1
totalShots: 0.5575 -> 0.4365
shotOffTarget: 0.3749 -> 0.2935
onTargetScoringAttempt: 0.181 -> 0.1417
bigChanceMissed: 0.0505 -> 0.0395
goals: 0.0479 -> 0.0375
expectedGoals: 0.0394 -> 0.0309
expectedGoalsOnTarget: 0.0237 -> 0.0186
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.18 (squad xG sum 1.2730, xG scale 0.9238, xA scale 0.9738, team xA 0.76 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.176
squad_xg_sum=1.273
squad_xa_sum=0.785
team_expected_assists=0.7644
team_xa_to_xg_ratio=0.65
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 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.0281
goal_rate=0.0375
scorer_weight=0.0308
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0956
assist_rate=0.1112
provider_weight=0.1057
-
Leif DavisD9010.260.1489%10.66.733.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 1.0247, quality 0.686)market_value_eur=26000000
quality_factor=0.6858
boost_factor=1.0247
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
totalCross: 2.8215 -> 2.7695
wonTackle: 0.8195 -> 0.7872
onTargetScoringAttempt: 0.4359 -> 0.4581
fouls: 0.4565 -> 0.4385
totalShots: 0.7332 -> 0.7437
interceptionWon: 0.7897 -> 0.798
goals: 0.3071 -> 0.3147
goalAssist: 0.1783 -> 0.1713
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': 'Erling Haaland', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.18 (squad xG sum 1.2730, xG scale 0.9238, xA scale 0.9738, team xA 0.76 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.176
squad_xg_sum=1.273
squad_xa_sum=0.785
team_expected_assists=0.7644
team_xa_to_xg_ratio=0.65
expected_goals: 0.2798 -> 0.2585
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 75.0)match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.2278
goal_rate=0.3147
scorer_weight=0.2858
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0714
assist_rate=0.1713
provider_weight=0.0926
-
Dara O'SheaD9000.060.03140%10.26.933.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 1.0185, quality 0.641)market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.0185
reference_quality=0.505
history_matches=6
history_shrink=0.4545
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0394)blend_weight=0.0394
history_matches=6
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League
interceptionWon: 1.2285 -> 1.1998
fouls: 0.8747 -> 0.8993
wasFouled: 0.6135 -> 0.6287
wonTackle: 0.8444 -> 0.8308
goals: 0.2453 -> 0.2356
onTargetScoringAttempt: 0.2453 -> 0.2356
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Erling Haaland', 'matchup_zone': 'Shape fallback'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.18 (squad xG sum 1.2730, xG scale 0.9238, xA scale 0.9738, team xA 0.76 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.176
squad_xg_sum=1.273
squad_xa_sum=0.785
team_expected_assists=0.7644
team_xa_to_xg_ratio=0.65
expected_goals: 0.0665 -> 0.0614
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 75.0)match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0596
goal_rate=0.2356
scorer_weight=0.0767
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0375
assist_rate=0.0
provider_weight=0.0306
-
Issa DiopD9000.060.0394%00.16.932.829FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0013, quality 0.526)market_value_eur=10300000
quality_factor=0.526
boost_factor=1.0013
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.9968
prior_reliability=0.1333
competition=Premier League
fouls: 0.7295 -> 0.7433
totalShots: 0.4854 -> 0.4766
interceptionWon: 1.0446 -> 1.0527
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Erling Haaland', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.18 (squad xG sum 1.2730, xG scale 0.9238, xA scale 0.9738, team xA 0.76 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.176
squad_xg_sum=1.273
squad_xa_sum=0.785
team_expected_assists=0.7644
team_xa_to_xg_ratio=0.65
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 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.0584
goal_rate=0.0621
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.022
assist_rate=0.0
provider_weight=0.0178
-
Abdoul OuattaraM8800.030.00574%00.26.945.718FBref Prior M_service
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.595)market_value_eur=16500000
quality_factor=0.5953
boost_factor=1.0123
reference_quality=0.505
history_matches=6
history_shrink=0.4545
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0059)blend_weight=0.0059
history_matches=6
season_overlap_discount=1.0
per90_to_match_factor=0.9778
prior_reliability=0.02
competition=Premier League
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=true
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Elliot Anderson, Ayyoub Bouaddi', '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.7943, 'skill_edge': -0.1319, 'height_edge': -0.008, 'attacker_skill': 0.6044, 'defender_skill': 0.8976, 'attacker_role': 'CAM', 'attacker_mv_price_index': 0.95, 'defender_adjusted_parts': [{'player': 'Elliot Anderson', 'market_value': 109000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8984}, {'player': 'Ayyoub Bouaddi', 'market_value': 98000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8969}], 'xg_override': 0.0319}
aerialWon: 0.2438 -> 1.1
totalShots: 0.6103 -> 0.4848
shotOffTarget: 0.4763 -> 0.3783
onTargetScoringAttempt: 0.134 -> 0.1064
expectedGoalsOnTarget: 0.1051 -> 0.0835
goals: 0.0553 -> 0.0439
expectedGoals: 0.0401 -> 0.0319
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.18 (squad xG sum 1.2730, xG scale 0.9238, xA scale 0.9738, team xA 0.76 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.176
squad_xg_sum=1.273
squad_xa_sum=0.785
team_expected_assists=0.7644
team_xa_to_xg_ratio=0.65
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 73.0)match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0291
goal_rate=0.0439
scorer_weight=0.0338
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0488
assist_rate=0.0559
provider_weight=0.0523
-
Christian WaltonG9000.00-n/a0.06.911.412FBref 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.9855, quality 0.437)market_value_eur=2600000
quality_factor=0.4374
boost_factor=0.9855
reference_quality=0.505
history_matches=2
history_shrink=0.7143
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Erling Haaland, Rayan Cherki', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 2.8576}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.18 (squad xG sum 1.2730, xG scale 0.9238, xA scale 0.9738, team xA 0.76 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.176
squad_xg_sum=1.273
squad_xa_sum=0.785
team_expected_assists=0.7644
team_xa_to_xg_ratio=0.65
shots_faced: 27.1 -> 29.3
expected_saves: 6.63 -> 7.18
high_pressure_saves: 2.29 -> 2.46
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 73.0)match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.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.0
provider_weight=0.0
squad_weight_total=0.8324
-
Team totals11.18126.8
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Kjell ScherpenG4.8m14.0%Market-value substitute prior
Jacob GreavesD14.2m23.0%Market-value substitute prior
Cédric KipréD13.6m29.9%Market-value substitute prior
Florentino LuísM22.6m52.5%Market-value substitute prior
Marcelino NúñezM22.5m31.8%Market-value substitute prior
Jack ClarkeF22.7m73.5%Market-value substitute prior
Antagonist / tactical summary
Home midfield dominates with ~52% possession expected (Rayan Cherki vs Julio Enciso). Total antagonist xG — Home: 1.24, Away: 0.69. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Midfield — possession 52.2% / 47.8%, dominance ratio 0.58, key duel: Rayan Cherki vs Julio Enciso
Rayan Cherki xG 0.25Erling Haaland xG 0.58Antoine Semenyo xG 0.15Julio Enciso xG 0.17Abdoul Ouattara xG 0.03Emersonn xG 0.26

Summary

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

Brentford vs Liverpool

Premier League · 20261017 · 4-2-3-1 vs 4-2-3-1
Predicted 1-1Winner: DrawWinning H 2-1 (8.1%)Winning A 1-2 (8.7%)Confidence 0.7λ home/away 1.43 / 1.55Most-likely P 11.3%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset Tracing
Antagonist + XGBoost match analysis for Brentford vs Liverpool. 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.475, Away 1.504). Final calibrated Poisson lambdas: Home 1.433, Away 1.547 (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.48 / 1.50 Final λ (H/A) 1.43 / 1.55
FBref Team Priors: Brentford (Gls/90: 2.0, GA/90: 2.0 → E[λ]: 2.759) vs Liverpool FC (Gls/90: 2.0, GA/90: 2.0 → E[λ]: 2.759) | 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

MetricBrentfordLiverpool
League position4.009.00
Points per game1.501.42
Attack index1.120.93
Defense (concede) index0.930.89
Form multiplier1.000.99
Standing λ multiplier1.020.93

Lambda decomposition (how the goal rates were built)

StageBrentford λLiverpool λ
FBref Squad Prior E[λ] (weight 0.192)2.7592.759
Pre-competitive-floor1.4331.547
Pre-calibration (Micro-duels)1.4751.504
Final λ1.4331.547
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.3%
1-28.7%
2-18.1%
0-17.8%
1-07.2%
Home win35.2%
Draw24.5%
Away win40.2%
Over 2.557.2%
BTTS yes60.0%
Pregame fair line — favorite Liverpool (40.2%), fair total 2.98, fair spread -0.11

Projected players vs season baseline

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

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Keane Lewis-PotterD8100.200.1093%11.06.754.533FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0065, quality 0.710)market_value_eur=29000000
quality_factor=0.71
boost_factor=1.0065
reference_quality=0.505
history_matches=42
history_shrink=0.1064
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0092)blend_weight=0.0092
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.9003
prior_reliability=0.1333
competition=Premier League
totalCross: 3.5196 -> 3.5287
wasFouled: 0.97 -> 0.9611
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Lewis Koumas', 'matchup_zone': 'Shape fallback'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.43 (squad xG sum 1.0653, xG scale 1.3451, xA scale 1.1378, team xA 1.15 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.433
squad_xg_sum=1.0653
squad_xa_sum=1.0076
team_expected_assists=1.1464
team_xa_to_xg_ratio=0.8
expected_goals: 0.1469 -> 0.1976
expected_assists: 0.1228 -> 0.1397
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 15 by projected rating, fifa_overall 77.0)match_squad_rank=15
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1793
goal_rate=0.0971
scorer_weight=0.1581
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1304
assist_rate=0.1335
provider_weight=0.1483
-
Mathias JensenM8200.100.0651%10.97.157.827FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 0.9999, quality 0.502)market_value_eur=8300000
quality_factor=0.5023
boost_factor=0.9999
reference_quality=0.505
history_matches=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.9107
prior_reliability=0.0467
competition=Premier League
fouls: 1.095 -> 1.1049
totalCross: 4.4209 -> 4.4283
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Virgil van Dijk', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.353, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.813, 'skill_edge': -0.0672, 'height_edge': -0.06, 'attacker_skill': 0.5023, 'defender_skill': 0.6516, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Virgil van Dijk', 'market_value': 15500000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.6516}], 'xg_override': 0.0716}
aerialWon: 0.2414 -> 1.1
totalShots: 1.1385 -> 0.9256
shotOffTarget: 0.745 -> 0.6057
onTargetScoringAttempt: 0.3917 -> 0.3185
bigChanceMissed: 0.1847 -> 0.1502
goals: 0.0895 -> 0.0728
expectedGoals: 0.0881 -> 0.0716
expectedGoalsOnTarget: 0.0572 -> 0.0465
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.43 (squad xG sum 1.0653, xG scale 1.3451, xA scale 1.1378, team xA 1.15 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.433
squad_xg_sum=1.0653
squad_xa_sum=1.0076
team_expected_assists=1.1464
team_xa_to_xg_ratio=0.8
expected_goals: 0.0716 -> 0.0963
expected_assists: 0.1588 -> 0.1807
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 80.0)match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0918
goal_rate=0.0728
scorer_weight=0.0973
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1653
assist_rate=0.127
provider_weight=0.1532
-
Jaidon AnthonyF8000.250.1394%11.26.849.340FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0038, quality 0.625)market_value_eur=19400000
quality_factor=0.6251
boost_factor=1.0038
reference_quality=0.505
history_matches=43
history_shrink=0.1042
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0041)blend_weight=0.0041
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=0.8931
prior_reliability=0.06
competition=Premier League
fouls: 1.2353 -> 1.2424
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Jérémy Jacquet, Ronald Araújo', '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.7865, 'skill_edge': -0.0892, 'height_edge': -0.056, 'attacker_skill': 0.6251, 'defender_skill': 0.8234, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Jérémy Jacquet', 'market_value': 67000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8886}, {'player': 'Ronald Araújo', 'market_value': 27000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7581}], 'xg_override': 0.1822}
totalShots: 1.6664 -> 1.3106
shotOffTarget: 1.0251 -> 0.8062
onTargetScoringAttempt: 0.6338 -> 0.4985
expectedGoalsOnTarget: 0.2518 -> 0.198
goals: 0.2414 -> 0.1899
bigChanceMissed: 0.2386 -> 0.1877
expectedGoals: 0.2316 -> 0.1822
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.43 (squad xG sum 1.0653, xG scale 1.3451, xA scale 1.1378, team xA 1.15 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.433
squad_xg_sum=1.0653
squad_xa_sum=1.0076
team_expected_assists=1.1464
team_xa_to_xg_ratio=0.8
expected_goals: 0.1822 -> 0.2451
expected_assists: 0.0924 -> 0.1051
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.2174
goal_rate=0.1899
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.0998
assist_rate=0.1993
provider_weight=0.1314
-
Vitaly JaneltM8600.060.0535%10.47.051.825FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0057, quality 0.641)market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.0057
reference_quality=0.505
history_matches=31
history_shrink=0.1389
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0120)blend_weight=0.012
history_matches=31
season_overlap_discount=1.0
per90_to_match_factor=0.9608
prior_reliability=0.1333
competition=Premier League
totalCross: 2.4592 -> 2.4816
interceptionWon: 2.5939 -> 2.6089
fouls: 1.4214 -> 1.4332
wonTackle: 1.1342 -> 1.1437
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Trey Nyoni', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.445, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 1.0368, 'skill_edge': 0.009, 'height_edge': 0.016, 'attacker_skill': 0.6747, 'defender_skill': 0.6546, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Trey Nyoni', 'market_value': 19100000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.6546}], 'xg_override': 0.0459}
aerialWon: 0.6594 -> 1.1
totalShots: 0.668 -> 0.6926
shotOffTarget: 0.494 -> 0.5122
onTargetScoringAttempt: 0.174 -> 0.1804
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.43 (squad xG sum 1.0653, xG scale 1.3451, xA scale 1.1378, team xA 1.15 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.433
squad_xg_sum=1.0653
squad_xa_sum=1.0076
team_expected_assists=1.1464
team_xa_to_xg_ratio=0.8
expected_goals: 0.0459 -> 0.0617
expected_assists: 0.0828 -> 0.0942
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 78.0)match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0598
goal_rate=0.0987
scorer_weight=0.0771
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0899
assist_rate=0.0751
provider_weight=0.0887
-
Yehor YarmoliukM7800.070.03133%10.36.954.731FBref Prior M_service
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.718)market_value_eur=30000000
quality_factor=0.7176
boost_factor=1.0066
reference_quality=0.505
history_matches=43
history_shrink=0.1042
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0023)blend_weight=0.0023
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=0.8701
prior_reliability=0.0333
competition=Premier League
totalCross: 1.2485 -> 1.2535
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Trey Nyoni', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.465, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 1.0656, 'skill_edge': 0.0446, 'height_edge': 0.0, 'attacker_skill': 0.7538, 'defender_skill': 0.6546, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Trey Nyoni', 'market_value': 19100000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.6546}], 'xg_override': 0.0513}
aerialWon: 1.1571 -> 1.1
totalShots: 0.7452 -> 0.7941
shotOffTarget: 0.5072 -> 0.5405
onTargetScoringAttempt: 0.2352 -> 0.2506
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.43 (squad xG sum 1.0653, xG scale 1.3451, xA scale 1.1378, team xA 1.15 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.433
squad_xg_sum=1.0653
squad_xa_sum=1.0076
team_expected_assists=1.1464
team_xa_to_xg_ratio=0.8
expected_goals: 0.0513 -> 0.069
expected_assists: 0.0866 -> 0.0985
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 78.0)match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0667
goal_rate=0.0801
scorer_weight=0.0863
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0938
assist_rate=0.0896
provider_weight=0.1007
-
El Hadji Malick DioufD8800.040.01276%10.36.748.527FBref 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.0095, quality 0.758)market_value_eur=36000000
quality_factor=0.7581
boost_factor=1.0095
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': 'Florian Wirtz', '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.43 (squad xG sum 1.0653, xG scale 1.3451, xA scale 1.1378, team xA 1.15 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.433
squad_xg_sum=1.0653
squad_xa_sum=1.0076
team_expected_assists=1.1464
team_xa_to_xg_ratio=0.8
expected_goals: 0.0299 -> 0.0402
expected_assists: 0.0819 -> 0.0932
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 17 by projected rating, fifa_overall 78.0)match_squad_rank=17
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0394
goal_rate=0.0
scorer_weight=0.0322
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.089
assist_rate=0.0463
provider_weight=0.0746
-
Kristoffer AjerD8800.060.01391%10.26.845.731FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0075, quality 0.694)market_value_eur=27000000
quality_factor=0.6941
boost_factor=1.0075
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.9781
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': 'Bradley Barcola', '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.43 (squad xG sum 1.0653, xG scale 1.3451, xA scale 1.1378, team xA 1.15 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.433
squad_xg_sum=1.0653
squad_xa_sum=1.0076
team_expected_assists=1.1464
team_xa_to_xg_ratio=0.8
expected_goals: 0.0435 -> 0.0585
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 77.0)match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0568
goal_rate=0.1531
scorer_weight=0.0731
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0183
assist_rate=0.0
provider_weight=0.0148
-
Jannik SchusterD8000.000.01100%10.16.824.312FBref 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.0210, quality 0.631)market_value_eur=20000000
quality_factor=0.6311
boost_factor=1.021
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': 'Bradley Barcola', '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.43 (squad xG sum 1.0653, xG scale 1.3451, xA scale 1.1378, team xA 1.15 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.433
squad_xg_sum=1.0653
squad_xa_sum=1.0076
team_expected_assists=1.1464
team_xa_to_xg_ratio=0.8
expected_assists: 0.1785 -> 0.2032
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 67.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.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=1
assist_probability=0.1839
assist_rate=0.3373
provider_weight=0.254
-
Michael KayodeD8100.100.0593%10.36.755.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.0085, quality 0.775)market_value_eur=39000000
quality_factor=0.7754
boost_factor=1.0085
reference_quality=0.505
history_matches=43
history_shrink=0.1042
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0081)blend_weight=0.0081
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=0.9046
prior_reliability=0.12
competition=Premier League
totalShots: 0.5344 -> 0.5505
wasFouled: 0.9364 -> 0.9451
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Bradley Barcola', 'matchup_zone': 'Shape fallback'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.43 (squad xG sum 1.0653, xG scale 1.3451, xA scale 1.1378, team xA 1.15 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.433
squad_xg_sum=1.0653
squad_xa_sum=1.0076
team_expected_assists=1.1464
team_xa_to_xg_ratio=0.8
expected_goals: 0.0716 -> 0.0963
expected_assists: 0.0596 -> 0.0678
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 18 by projected rating, fifa_overall 81.0)match_squad_rank=18
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0918
goal_rate=0.1079
scorer_weight=0.1204
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0656
assist_rate=0.0251
provider_weight=0.0542
-
Caoimhin KelleherG9000.00-n/a0.07.056.931FBref 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.0064, quality 0.710)market_value_eur=29000000
quality_factor=0.71
boost_factor=1.0064
reference_quality=0.505
history_matches=43
history_shrink=0.1042
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0090)blend_weight=0.009
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=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': 'Florian Wirtz, Víctor Muñoz', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.5041}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.43 (squad xG sum 1.0653, xG scale 1.3451, xA scale 1.1378, team xA 1.15 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.433
squad_xg_sum=1.0653
squad_xa_sum=1.0076
team_expected_assists=1.1464
team_xa_to_xg_ratio=0.8
shots_faced: 14.3 -> 14.7
expected_saves: 3.5 -> 3.6
high_pressure_saves: 1.2 -> 1.24
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 80.0)match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.4802
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.1464
-
Igor ThiagoF8910.460.46ok21.96.855.132FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0111, quality 0.868)market_value_eur=68000000
quality_factor=0.8677
boost_factor=1.0111
reference_quality=0.505
history_matches=44
history_shrink=0.102
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0084)blend_weight=0.0084
history_matches=44
season_overlap_discount=1.0
per90_to_match_factor=0.9896
prior_reliability=0.1267
competition=Premier League
totalShots: 2.1242 -> 2.1368
fouls: 1.949 -> 1.937
wasFouled: 0.6428 -> 0.6374
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Jérémy Jacquet, Ronald Araújo', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.22, 'pressing_faced': 'HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 1.0293, 'skill_edge': 0.0199, 'height_edge': 0.0, 'attacker_skill': 0.8677, 'defender_skill': 0.8234, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Jérémy Jacquet', 'market_value': 67000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8886}, {'player': 'Ronald Araújo', 'market_value': 27000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7581}], 'xg_override': 0.3401}
totalShots: 2.1368 -> 2.1994
shotOffTarget: 1.3504 -> 1.39
onTargetScoringAttempt: 0.776 -> 0.7987
bigChanceMissed: 0.6625 -> 0.6819
expectedGoals: 0.3304 -> 0.3401
goals: 0.3325 -> 0.3422
expectedGoalsOnTarget: 0.31 -> 0.3191
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.43 (squad xG sum 1.0653, xG scale 1.3451, xA scale 1.1378, team xA 1.15 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.433
squad_xg_sum=1.0653
squad_xa_sum=1.0076
team_expected_assists=1.1464
team_xa_to_xg_ratio=0.8
expected_goals: 0.3401 -> 0.4575
expected_assists: 0.0593 -> 0.0675
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=1
goal_probability=0.3671
goal_rate=0.3422
scorer_weight=0.46
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0653
assist_rate=0.0022
provider_weight=0.054
-
Team totals11.43136.8
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Hákon Rafn ValdimarssonG4.4m10.9%Market-value substitute prior
Sepp van den BergD14.8m35.3%Market-value substitute prior
Nathan CollinsD14.7m23.9%Market-value substitute prior
Mamadou SangareM23.5m33.8%Market-value substitute prior
Mikkel DamsgaardM18.6m52.2%Market-value substitute prior
Kevin SchadeF26.9m36.6%Market-value substitute prior

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Lewis KoumasF7800.160.03424%20.26.716.112FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9979, quality 0.493)market_value_eur=7500000
quality_factor=0.4927
boost_factor=0.9979
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.8703
prior_reliability=0.0067
competition=Premier League
totalShots: 1.5062 -> 1.5171
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Kristoffer Ajer, Jannik Schuster', '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.7759, 'skill_edge': -0.1044, 'height_edge': -0.048, 'attacker_skill': 0.4927, 'defender_skill': 0.7248, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Kristoffer Ajer', 'market_value': 27000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7581}, {'player': 'Jannik Schuster', 'market_value': 20000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6914}], 'xg_override': 0.1352}
totalShots: 1.5171 -> 1.1771
shotOffTarget: 0.8559 -> 0.6641
onTargetScoringAttempt: 0.6487 -> 0.5033
goals: 0.1918 -> 0.1488
expectedGoals: 0.1742 -> 0.1352
expectedGoalsOnTarget: 0.0576 -> 0.0447
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.55 (squad xG sum 1.3050, xG scale 1.1854, xA scale 1.4265, team xA 1.01 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.547
squad_xg_sum=1.305
squad_xa_sum=0.7049
team_expected_assists=1.0055
team_xa_to_xg_ratio=0.65
expected_goals: 0.1352 -> 0.1603
expected_assists: 0.031 -> 0.0442
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.1481
goal_rate=0.1488
scorer_weight=0.1721
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0432
assist_rate=0.0
provider_weight=0.0354
-
Bradley BarcolaF7900.160.04264%10.46.730.213XGBoost 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.0645, quality 0.892)market_value_eur=97000000
quality_factor=0.8922
boost_factor=1.0645
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': 'Kristoffer Ajer, Jannik Schuster', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.231, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 1.0461, 'skill_edge': 0.0754, 'height_edge': -0.044, 'attacker_skill': 0.8922, 'defender_skill': 0.7248, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Kristoffer Ajer', 'market_value': 27000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7581}, {'player': 'Jannik Schuster', 'market_value': 20000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6914}], 'xg_override': 0.1323}
totalShots: 1.2592 -> 1.3173
shotOffTarget: 0.789 -> 0.8254
onTargetScoringAttempt: 0.4702 -> 0.4919
bigChanceMissed: 0.299 -> 0.3128
goals: 0.1737 -> 0.1817
expectedGoals: 0.1265 -> 0.1323
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.55 (squad xG sum 1.3050, xG scale 1.1854, xA scale 1.4265, team xA 1.01 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.547
squad_xg_sum=1.305
squad_xa_sum=0.7049
team_expected_assists=1.0055
team_xa_to_xg_ratio=0.65
expected_goals: 0.1323 -> 0.1568
expected_assists: 0.0791 -> 0.1128
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 85.0)match_squad_rank=14
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1451
goal_rate=0.1817
scorer_weight=0.196
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1067
assist_rate=0.0
provider_weight=0.0902
-
Florian WirtzM8010.230.18ok21.56.953.728FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0129, quality 0.883)market_value_eur=81000000
quality_factor=0.8829
boost_factor=1.0129
reference_quality=0.505
history_matches=39
history_shrink=0.1136
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0084)blend_weight=0.0084
history_matches=39
season_overlap_discount=1.0
per90_to_match_factor=0.8907
prior_reliability=0.1133
competition=Premier League
fouls: 1.5562 -> 1.5476
totalCross: 1.8799 -> 1.8729
totalShots: 1.8723 -> 1.8787
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'El Hadji Malick Diouf', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.472, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9886, 'skill_edge': 0.0242, 'height_edge': -0.032, 'attacker_skill': 0.8829, 'defender_skill': 0.829, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'El Hadji Malick Diouf', 'market_value': 36000000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.829}], 'xg_override': 0.1937}
aerialWon: 0.4342 -> 0.9
totalShots: 1.8787 -> 1.8573
shotOffTarget: 1.2383 -> 1.2242
onTargetScoringAttempt: 0.6375 -> 0.6302
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.55 (squad xG sum 1.3050, xG scale 1.1854, xA scale 1.4265, team xA 1.01 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.547
squad_xg_sum=1.305
squad_xa_sum=0.7049
team_expected_assists=1.0055
team_xa_to_xg_ratio=0.65
expected_goals: 0.1937 -> 0.2296
expected_assists: 0.1438 -> 0.2051
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 86.0)match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.2051
goal_rate=0.1791
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.1854
assist_rate=0.1499
provider_weight=0.2116
-
Víctor MuñozF8200.190.15ok21.96.955.033FBref 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.775)market_value_eur=39000000
quality_factor=0.7754
boost_factor=1.009
reference_quality=0.505
history_matches=40
history_shrink=0.1111
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0063)blend_weight=0.0063
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=0.9141
prior_reliability=0.0867
competition=Premier League
totalCross: 2.539 -> 2.5583
totalShots: 2.0129 -> 2.0265
fouls: 1.2559 -> 1.2656
interceptionWon: 0.7519 -> 0.7604
wasFouled: 1.939 -> 1.9445
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Kristoffer Ajer, Jannik Schuster', '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.9453, 'skill_edge': 0.0228, 'height_edge': -0.06, 'attacker_skill': 0.7754, 'defender_skill': 0.7248, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Kristoffer Ajer', 'market_value': 27000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7581}, {'player': 'Jannik Schuster', 'market_value': 20000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6914}], 'xg_override': 0.1617}
totalShots: 2.0265 -> 1.9157
shotOffTarget: 1.4025 -> 1.3258
onTargetScoringAttempt: 0.6109 -> 0.5775
bigChanceMissed: 0.4785 -> 0.4523
expectedGoalsOnTarget: 0.2667 -> 0.2521
goals: 0.1923 -> 0.1818
expectedGoals: 0.1711 -> 0.1617
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.55 (squad xG sum 1.3050, xG scale 1.1854, xA scale 1.4265, team xA 1.01 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.547
squad_xg_sum=1.305
squad_xa_sum=0.7049
team_expected_assists=1.0055
team_xa_to_xg_ratio=0.65
expected_goals: 0.1617 -> 0.1917
expected_assists: 0.1067 -> 0.1522
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.1744
goal_rate=0.1818
scorer_weight=0.2099
-
integer_assist_projectionTeam scoreline allocation: 1 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.1412
assist_rate=0.0311
provider_weight=0.1218
-
Trey NyoniM8600.050.01335%10.06.714.731FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0117, quality 0.622)market_value_eur=19100000
quality_factor=0.6221
boost_factor=1.0117
reference_quality=0.505
history_matches=10
history_shrink=0.3333
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0029)blend_weight=0.0029
history_matches=10
season_overlap_discount=1.0
per90_to_match_factor=0.9556
prior_reliability=0.0133
competition=Premier League
interceptionWon: 0.4656 -> 0.478
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Vitaly Janelt', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.395, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 0.9632, 'skill_edge': -0.009, 'height_edge': -0.016, 'attacker_skill': 0.6546, 'defender_skill': 0.6747, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Vitaly Janelt', 'market_value': 21000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.6747}], 'xg_override': 0.0438}
aerialWon: 0.0 -> 1.1
totalShots: 0.6765 -> 0.6516
shotOffTarget: 0.4989 -> 0.4805
onTargetScoringAttempt: 0.1776 -> 0.1711
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.55 (squad xG sum 1.3050, xG scale 1.1854, xA scale 1.4265, team xA 1.01 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.547
squad_xg_sum=1.305
squad_xa_sum=0.7049
team_expected_assists=1.0055
team_xa_to_xg_ratio=0.65
expected_goals: 0.0438 -> 0.0519
expected_assists: 0.0405 -> 0.0578
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 67.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.0506
goal_rate=0.0672
scorer_weight=0.0648
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0562
assist_rate=0.0423
provider_weight=0.059
-
Alexis Mac AllisterM8700.140.0874%21.16.955.232FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0117, quality 0.879)market_value_eur=77000000
quality_factor=0.8792
boost_factor=1.0117
reference_quality=0.505
history_matches=43
history_shrink=0.1042
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0054)blend_weight=0.0054
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=0.9719
prior_reliability=0.08
competition=Premier League
wasFouled: 0.8219 -> 0.8306
totalShots: 1.3878 -> 1.3803
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Vitaly Janelt', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.485, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 1.0949, 'skill_edge': 0.0966, 'height_edge': -0.032, 'attacker_skill': 0.8893, 'defender_skill': 0.6747, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Vitaly Janelt', 'market_value': 21000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.6747}], 'xg_override': 0.1182}
totalShots: 1.3853 -> 1.5168
shotOffTarget: 0.9459 -> 1.0357
onTargetScoringAttempt: 0.4394 -> 0.4811
aerialWon: 0.8584 -> 0.9
goals: 0.1183 -> 0.1295
expectedGoals: 0.108 -> 0.1182
expectedGoalsOnTarget: 0.0897 -> 0.0982
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.55 (squad xG sum 1.3050, xG scale 1.1854, xA scale 1.4265, team xA 1.01 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.547
squad_xg_sum=1.305
squad_xa_sum=0.7049
team_expected_assists=1.0055
team_xa_to_xg_ratio=0.65
expected_goals: 0.1182 -> 0.1401
expected_assists: 0.0733 -> 0.1046
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 84.0)match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1307
goal_rate=0.1295
scorer_weight=0.1495
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0993
assist_rate=0.0691
provider_weight=0.101
-
Miloš KerkezD8500.040.02123%00.26.747.332FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0084, quality 0.758)market_value_eur=36000000
quality_factor=0.7581
boost_factor=1.0084
reference_quality=0.505
history_matches=40
history_shrink=0.1111
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0087)blend_weight=0.0087
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=0.9463
prior_reliability=0.12
competition=Premier League
totalShots: 0.4752 -> 0.4803
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Igor Thiago', 'matchup_zone': 'Shape fallback'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.55 (squad xG sum 1.3050, xG scale 1.1854, xA scale 1.4265, team xA 1.01 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.547
squad_xg_sum=1.305
squad_xa_sum=0.7049
team_expected_assists=1.0055
team_xa_to_xg_ratio=0.65
expected_goals: 0.0371 -> 0.044
expected_assists: 0.0175 -> 0.025
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 16 by projected rating, fifa_overall 81.0)match_squad_rank=16
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.043
goal_rate=0.0525
scorer_weight=0.0518
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0247
assist_rate=0.0215
provider_weight=0.0265
-
Virgil van DijkD9000.090.10ok10.77.158.532FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0024, quality 0.585)market_value_eur=15500000
quality_factor=0.5846
boost_factor=1.0024
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
fouls: 0.6505 -> 0.6447
interceptionWon: 1.1418 -> 1.1361
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Mathias Jensen', '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.55 (squad xG sum 1.3050, xG scale 1.1854, xA scale 1.4265, team xA 1.01 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.547
squad_xg_sum=1.305
squad_xa_sum=0.7049
team_expected_assists=1.0055
team_xa_to_xg_ratio=0.65
expected_goals: 0.0776 -> 0.092
expected_assists: 0.0281 -> 0.0401
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.0879
goal_rate=0.1633
scorer_weight=0.115
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0393
assist_rate=0.0
provider_weight=0.0321
-
Jérémy JacquetD8700.080.02259%00.17.037.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 1.0492, quality 0.866)market_value_eur=67000000
quality_factor=0.8661
boost_factor=1.0492
reference_quality=0.505
history_matches=6
history_shrink=0.4545
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0315)blend_weight=0.0315
history_matches=6
season_overlap_discount=1.0
per90_to_match_factor=0.9646
prior_reliability=0.1067
competition=Premier League
interceptionWon: 1.1682 -> 1.2074
wasFouled: 0.7137 -> 0.7482
totalShots: 0.5057 -> 0.4898
fouls: 1.0725 -> 1.0577
onTargetScoringAttempt: 0.2526 -> 0.2446
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': 'Igor Thiago', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.55 (squad xG sum 1.3050, xG scale 1.1854, xA scale 1.4265, team xA 1.01 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.547
squad_xg_sum=1.305
squad_xa_sum=0.7049
team_expected_assists=1.0055
team_xa_to_xg_ratio=0.65
expected_goals: 0.0685 -> 0.0812
expected_assists: 0.021 -> 0.03
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.078
goal_rate=0.0
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.0296
assist_rate=0.0
provider_weight=0.024
-
Ronald AraújoD7800.020.03ok00.26.840.431FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.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.0025)blend_weight=0.0025
history_matches=30
season_overlap_discount=1.0
per90_to_match_factor=0.8697
prior_reliability=0.0267
competition=Premier League
fouls: 0.4416 -> 0.4513
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': 'Igor Thiago', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.55 (squad xG sum 1.3050, xG scale 1.1854, xA scale 1.4265, team xA 1.01 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.547
squad_xg_sum=1.305
squad_xa_sum=0.7049
team_expected_assists=1.0055
team_xa_to_xg_ratio=0.65
expected_assists: 0.0277 -> 0.0395
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 80.0)match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0246
goal_rate=0.0868
scorer_weight=0.0311
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0387
assist_rate=0.0
provider_weight=0.0316
-
AlissonG9000.00-n/a0.07.051.825FBref 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.0037, quality 0.595)market_value_eur=16500000
quality_factor=0.5953
boost_factor=1.0037
reference_quality=0.505
history_matches=32
history_shrink=0.1351
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0117)blend_weight=0.0117
history_matches=32
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League
saves: 2.9224 -> 2.9116
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Igor Thiago, Jaidon Anthony', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.4753}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.55 (squad xG sum 1.3050, xG scale 1.1854, xA scale 1.4265, team xA 1.01 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.547
squad_xg_sum=1.305
squad_xa_sum=0.7049
team_expected_assists=1.0055
team_xa_to_xg_ratio=0.65
shots_faced: 14.0 -> 13.6
expected_saves: 3.42 -> 3.33
high_pressure_saves: 1.18 -> 1.15
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 87.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.6711
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.9033
-
Team totals11.55156.9
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Giorgi MamardashviliG5.5m15.8%Market-value substitute prior
Jeremie FrimpongD14.8m35.6%Market-value substitute prior
Curtis JonesD14.8m35.3%Market-value substitute prior
Dominik SzoboszlaiM23.8m58.0%Market-value substitute prior
Ryan GravenberchM23.8m58.0%Market-value substitute prior
Alexander IsakF27.1m64.0%Market-value substitute prior
Antagonist / tactical summary
Away midfield dictates play with ~51% possession expected (Yehor Yarmoliuk vs Florian Wirtz). Total antagonist xG — Home: 0.69, Away: 0.78. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Left Wing vs Right Back — Flank Battle.
Midfield — possession 49.1% / 50.9%, dominance ratio 0.44, key duel: Yehor Yarmoliuk vs Florian Wirtz
Mathias Jensen xG 0.07Igor Thiago xG 0.34Jaidon Anthony xG 0.18Florian Wirtz xG 0.19Bradley Barcola xG 0.13Lewis Koumas xG 0.14

Summary

Antagonist matchup analysis for Brentford vs Liverpool. Most likely scoreline: 1-1. Lambdas derived from 5 home and 6 away individual player duels. Head-to-head: Brentford 2W-2D-6L vs Liverpool over 10 meetings.
Tactical parity between 4-2-3-1 and 4-2-3-1. Match outcome driven primarily by individual player quality. Away midfield dictates play with ~51% possession expected (Yehor Yarmoliuk vs Florian Wirtz). Total antagonist xG — Home: 0.69, Away: 0.78. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Left Wing vs Right Back — Flank Battle.


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