Soccer predictions: actual data vs predicted data

Slate 20261025 · 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
Celta vs Real Betis
LaLiga
0-1Real Betis30.5% / 30.9% / 38.6%32.4%40.0%0.710.92 / 1.08-pending
Liverpool vs Brighton
Premier League
2-1Liverpool54.4% / 20.2% / 25.5%72.6%69.9%0.742.26 / 1.51-pending
Man Utd vs Bournemouth
Premier League
1-0Man Utd47.8% / 24.6% / 27.6%53.5%56.0%0.731.64 / 1.19-pending
Hull vs Brentford
Premier League
1-2Brentford21.2% / 22.3% / 56.5%57.6%56.5%0.741.09 / 1.91-pending
Athletic Club vs Getafe
LaLiga
0-0Draw38.1% / 32.2% / 29.7%29.0%37.0%0.71.02 / 0.862-0 ()MISS
Sunderland vs Leeds
Premier League
1-1Draw34.3% / 25.6% / 40.1%52.6%56.4%0.711.33 / 1.45-pending
Real Sociedad vs Levante
LaLiga
2-1Real Sociedad58.4% / 21.9% / 19.8%57.3%55.5%0.761.94 / 1.04-pending
Crystal Palace vs Newcastle
Premier League
1-2Newcastle36.6% / 23.2% / 40.2%63.8%65.1%0.71.60 / 1.69-pending
Barcelona vs Real Madrid
LaLiga
2-1Barcelona61.9% / 17.6% / 20.4%79.0%72.9%0.782.67 / 1.53-pending

Match detail

Celta vs Real Betis

LaLiga · 20261025 · 3-4-2-1 vs 4-2-3-1
Predicted 0-1Winner: Real BetisWinning H 1-0 (12.3%)Winning A 0-1 (14.4%)Confidence 0.71λ home/away 0.92 / 1.08Most-likely P 14.4%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset Tracing
Antagonist + XGBoost match analysis for Celta vs Real Betis. Player statistics regressed using position-specific XGBoost models (G, D, M, F) with 2026-2027 FBref priors. Micro-duels resolved across 3-4-2-1 vs 4-2-3-1 (duel lambdas: Home 0.898, Away 1.112). Final calibrated Poisson lambdas: Home 0.924, Away 1.080 (most likely score 0-1).
Home Starters 11/11 XGBoost (11 FBref) Away Starters 11/11 XGBoost (10 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 0.90 / 1.11 Final λ (H/A) 0.92 / 1.08
FBref Team Priors: Celta Vigo (Gls/90: 0.25, GA/90: 0.25 → E[λ]: 0.246) vs Real Betis (Gls/90: 1.3333333333333333, GA/90: 1.33 → E[λ]: 0.247) | 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

MetricCeltaReal Betis
League position8.004.00
Points per game1.281.81
Attack index0.931.02
Defense (concede) index0.960.83
Form multiplier0.971.03
Standing λ multiplier0.950.94

Lambda decomposition (how the goal rates were built)

StageCelta λReal Betis λ
FBref Squad Prior E[λ] (weight 0.228)0.2460.247
Pre-competitive-floor0.9241.080
Pre-calibration (Micro-duels)0.8981.112
Final λ0.9241.080
competition calibration scale 1.0competition observed total goals 0.0quality gap applied Truemismatch score pressure applied Falsecompetitive underdog floor applied Falsestage discount 1.0

Scoreline distribution & markets

Top 5 scorelinesP
0-114.4%
0-013.6%
1-113.6%
1-012.3%
0-27.9%
Home win30.5%
Draw30.9%
Away win38.6%
Over 2.532.4%
BTTS yes40.0%
Pregame fair line — favorite Real Betis (38.6%), fair total 2.00, fair spread -0.16

Projected players vs season baseline

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

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Ferrán JutglàF7300.160.18ok21.16.859.327FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0009, quality 0.531)market_value_eur=10700000
quality_factor=0.5306
boost_factor=1.0009
reference_quality=0.505
history_matches=37
history_shrink=0.119
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0134)blend_weight=0.0134
history_matches=37
season_overlap_discount=1.0
per90_to_match_factor=0.8119
prior_reliability=0.1733
competition=La Liga
totalShots: 1.446 -> 1.4309
totalOffside: 0.6429 -> 0.6343
onTargetScoringAttempt: 0.5843 -> 0.5765
wasFouled: 1.6484 -> 1.6556
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': 'Pablo Fornals, Natan', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle', 'duel_win_rate': 0.181, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 0.869, 'skill_edge': -0.0571, 'height_edge': -0.032, 'attacker_skill': 0.5306, 'defender_skill': 0.6576, 'attacker_role': 'SS', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Pablo Fornals', 'market_value': 8400000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.5211}, {'player': 'Natan', 'market_value': 32000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7941}], 'xg_override': 0.1638}
totalShots: 1.4382 -> 1.2498
shotOffTarget: 0.8617 -> 0.7488
onTargetScoringAttempt: 0.5765 -> 0.501
expectedGoalsOnTarget: 0.3532 -> 0.3069
goals: 0.2086 -> 0.1813
expectedGoals: 0.1885 -> 0.1638
bigChanceMissed: 0.1424 -> 0.1237
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.92 (squad xG sum 0.9410, xG scale 0.9819, xA scale 0.9819, team xA 0.69 = 0.75 x lambda)scoreline_reset=true
team_lambda=0.924
squad_xg_sum=0.941
squad_xa_sum=0.7025
team_expected_assists=0.6898
team_xa_to_xg_ratio=0.7465
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 75.0)match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.1485
goal_rate=0.1813
scorer_weight=0.174
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0556
assist_rate=0.0858
provider_weight=0.0715
-
Williot SwedbergF6600.190.09102%20.66.851.935FBref 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.0042, quality 0.618)market_value_eur=18700000
quality_factor=0.6181
boost_factor=1.0042
reference_quality=0.505
history_matches=35
history_shrink=0.125
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0130)blend_weight=0.013
history_matches=35
season_overlap_discount=1.0
per90_to_match_factor=0.7327
prior_reliability=0.16
competition=La Liga
wasFouled: 1.7832 -> 1.8037
totalShots: 1.3764 -> 1.3704
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Natan, Diego Llorente', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.194, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 0.9908, 'skill_edge': -0.0003, 'height_edge': -0.006, 'attacker_skill': 0.6181, 'defender_skill': 0.6187, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Natan', 'market_value': 32000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7941}, {'player': 'Diego Llorente', 'market_value': 2600000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4432}], 'xg_override': 0.1892}
totalShots: 1.3768 -> 1.3642
shotOffTarget: 0.7956 -> 0.7883
onTargetScoringAttempt: 0.5812 -> 0.5759
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.92 (squad xG sum 0.9410, xG scale 0.9819, xA scale 0.9819, team xA 0.69 = 0.75 x lambda)scoreline_reset=true
team_lambda=0.924
squad_xg_sum=0.941
squad_xa_sum=0.7025
team_expected_assists=0.6898
team_xa_to_xg_ratio=0.7465
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 76.0)match_squad_rank=12
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.1696
goal_rate=0.1656
scorer_weight=0.1675
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0724
assist_rate=0.103
provider_weight=0.0909
-
Pablo DuránF6700.190.1182%20.96.851.428FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9980, quality 0.451)market_value_eur=4099999
quality_factor=0.4511
boost_factor=0.998
reference_quality=0.505
history_matches=35
history_shrink=0.125
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0081)blend_weight=0.0081
history_matches=35
season_overlap_discount=1.0
per90_to_match_factor=0.7463
prior_reliability=0.1
competition=La Liga
totalShots: 1.8661 -> 1.8551
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': 'Pablo Fornals, Natan', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 0.8222, 'skill_edge': -0.0929, 'height_edge': -0.028, 'attacker_skill': 0.4511, 'defender_skill': 0.6576, 'attacker_role': 'SS', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Pablo Fornals', 'market_value': 8400000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.5211}, {'player': 'Natan', 'market_value': 32000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7941}], 'xg_override': 0.1972}
totalShots: 1.8639 -> 1.5325
shotOffTarget: 1.0848 -> 0.8919
onTargetScoringAttempt: 0.7791 -> 0.6406
goals: 0.3041 -> 0.25
expectedGoals: 0.2399 -> 0.1972
bigChanceMissed: 0.2375 -> 0.1953
expectedGoalsOnTarget: 0.1192 -> 0.098
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.92 (squad xG sum 0.9410, xG scale 0.9819, xA scale 0.9819, team xA 0.69 = 0.75 x lambda)scoreline_reset=true
team_lambda=0.924
squad_xg_sum=0.941
squad_xa_sum=0.7025
team_expected_assists=0.6898
team_xa_to_xg_ratio=0.7465
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 74.0)match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.176
goal_rate=0.25
scorer_weight=0.235
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0563
assist_rate=0.0
provider_weight=0.0463
-
Javi GalánD7800.010.01ok00.26.860.133FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9972, quality 0.437)market_value_eur=1700000
quality_factor=0.4374
boost_factor=0.9972
reference_quality=0.505
history_matches=31
history_shrink=0.1389
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0090)blend_weight=0.009
history_matches=31
season_overlap_discount=1.0
per90_to_match_factor=0.8666
prior_reliability=0.1
competition=La Liga
totalCross: 4.347 -> 4.339
wasFouled: 1.5447 -> 1.5516
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Abdessamad Ezzalzouli', 'matchup_zone': 'Shape fallback'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.92 (squad xG sum 0.9410, xG scale 0.9819, xA scale 0.9819, team xA 0.69 = 0.75 x lambda)scoreline_reset=true
team_lambda=0.924
squad_xg_sum=0.941
squad_xa_sum=0.7025
team_expected_assists=0.6898
team_xa_to_xg_ratio=0.7465
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 77.0)match_squad_rank=11
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0058
goal_rate=0.0
scorer_weight=0.0052
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0754
assist_rate=0.0069
provider_weight=0.0627
-
Aleix FebasM8500.070.0484%10.56.959.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 0.9986, quality 0.465)market_value_eur=5200000
quality_factor=0.4646
boost_factor=0.9986
reference_quality=0.505
history_matches=38
history_shrink=0.1163
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0091)blend_weight=0.0091
history_matches=38
season_overlap_discount=1.0
per90_to_match_factor=0.9438
prior_reliability=0.12
competition=La Liga
fouls: 1.4937 -> 1.5039
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Angel Ortiz', 'matchup_zone': 'Left Wingback vs Right Back — Overlapping Run', 'duel_win_rate': 0.393, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9901, 'skill_edge': -0.0108, 'height_edge': 0.004, 'attacker_skill': 0.4918, 'defender_skill': 0.5157, 'attacker_role': 'LWB', 'attacker_mv_price_index': 0.7, 'defender_adjusted_parts': [{'player': 'Angel Ortiz', 'market_value': 6600000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.5157}], 'xg_override': 0.0707}
aerialWon: 0.1283 -> 0.8
totalShots: 0.8247 -> 0.8165
shotOffTarget: 0.5263 -> 0.5211
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.92 (squad xG sum 0.9410, xG scale 0.9819, xA scale 0.9819, team xA 0.69 = 0.75 x lambda)scoreline_reset=true
team_lambda=0.924
squad_xg_sum=0.941
squad_xa_sum=0.7025
team_expected_assists=0.6898
team_xa_to_xg_ratio=0.7465
-
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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.067
goal_rate=0.0628
scorer_weight=0.0649
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0883
assist_rate=0.0769
provider_weight=0.0814
-
Ilaix MoribaM8400.060.0459%10.56.963.628FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0019, quality 0.565)market_value_eur=13700000
quality_factor=0.5649
boost_factor=1.0019
reference_quality=0.505
history_matches=43
history_shrink=0.1042
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0122)blend_weight=0.0122
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=0.9341
prior_reliability=0.18
competition=La Liga
fouls: 1.1384 -> 1.1245
interceptionWon: 1.1325 -> 1.1271
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Pablo Fornals', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.497, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0694, 'skill_edge': 0.0272, 'height_edge': 0.02, 'attacker_skill': 0.5816, 'defender_skill': 0.5211, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Pablo Fornals', 'market_value': 8400000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.5211}], 'xg_override': 0.0568}
aerialWon: 0.0694 -> 1.1
totalShots: 0.7927 -> 0.8477
shotOffTarget: 0.5715 -> 0.6112
onTargetScoringAttempt: 0.2196 -> 0.2348
expectedGoalsOnTarget: 0.1402 -> 0.1499
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.92 (squad xG sum 0.9410, xG scale 0.9819, xA scale 0.9819, team xA 0.69 = 0.75 x lambda)scoreline_reset=true
team_lambda=0.924
squad_xg_sum=0.941
squad_xa_sum=0.7025
team_expected_assists=0.6898
team_xa_to_xg_ratio=0.7465
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 78.0)match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0543
goal_rate=0.0662
scorer_weight=0.0607
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0557
assist_rate=0.0522
provider_weight=0.054
-
Sergio CarreiraM9000.080.0573%10.47.060.833FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0011, quality 0.540)market_value_eur=11500000
quality_factor=0.5399
boost_factor=1.0011
reference_quality=0.505
history_matches=41
history_shrink=0.1087
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0155)blend_weight=0.0155
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=0.9951
prior_reliability=0.22
competition=La Liga
wasFouled: 1.3308 -> 1.3429
wonTackle: 0.5157 -> 0.5077
totalCross: 0.7397 -> 0.7329
interceptionWon: 0.3554 -> 0.3499
fouls: 0.8582 -> 0.8636
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Pablo Fornals', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.433, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9751, 'skill_edge': 0.015, 'height_edge': -0.032, 'attacker_skill': 0.5545, 'defender_skill': 0.5211, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Pablo Fornals', 'market_value': 8400000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.5211}], 'xg_override': 0.0794}
aerialWon: 0.1473 -> 0.8
totalShots: 0.8129 -> 0.7927
shotOffTarget: 0.5162 -> 0.5033
onTargetScoringAttempt: 0.2906 -> 0.2834
bigChanceMissed: 0.2169 -> 0.2115
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.92 (squad xG sum 0.9410, xG scale 0.9819, xA scale 0.9819, team xA 0.69 = 0.75 x lambda)scoreline_reset=true
team_lambda=0.924
squad_xg_sum=0.941
squad_xa_sum=0.7025
team_expected_assists=0.6898
team_xa_to_xg_ratio=0.7465
-
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_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.075
goal_rate=0.0981
scorer_weight=0.0893
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0943
assist_rate=0.0816
provider_weight=0.0865
-
Marcos AlonsoD8600.040.0846%10.77.061.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=1300000
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.0134)blend_weight=0.0134
history_matches=37
season_overlap_discount=1.0
per90_to_match_factor=0.9564
prior_reliability=0.1733
competition=La Liga
interceptionWon: 1.1696 -> 1.1934
wonTackle: 0.8508 -> 0.8591
fouls: 0.987 -> 0.9935
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Isco', 'matchup_zone': 'LW vs CB'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.92 (squad xG sum 0.9410, xG scale 0.9819, xA scale 0.9819, team xA 0.69 = 0.75 x lambda)scoreline_reset=true
team_lambda=0.924
squad_xg_sum=0.941
squad_xa_sum=0.7025
team_expected_assists=0.6898
team_xa_to_xg_ratio=0.7465
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 79.0)match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0419
goal_rate=0.0061
scorer_weight=0.0342
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0451
assist_rate=0.0
provider_weight=0.037
-
Yoel LagoD8900.020.00238%00.16.940.925FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9989, quality 0.487)market_value_eur=7000000
quality_factor=0.4866
boost_factor=0.9989
reference_quality=0.505
history_matches=19
history_shrink=0.2083
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0316)blend_weight=0.0316
history_matches=19
season_overlap_discount=1.0
per90_to_match_factor=0.9897
prior_reliability=0.2333
competition=La Liga
totalShots: 0.3764 -> 0.3645
totalCross: 0.0 -> 0.0089
wonTackle: 0.8126 -> 0.8048
interceptionWon: 1.2271 -> 1.233
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Abdessamad Ezzalzouli', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.92 (squad xG sum 0.9410, xG scale 0.9819, xA scale 0.9819, team xA 0.69 = 0.75 x lambda)scoreline_reset=true
team_lambda=0.924
squad_xg_sum=0.941
squad_xa_sum=0.7025
team_expected_assists=0.6898
team_xa_to_xg_ratio=0.7465
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 71.0)match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0158
goal_rate=0.0
scorer_weight=0.0127
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0121
assist_rate=0.0
provider_weight=0.0098
-
Javi RodríguezD8200.010.02ok00.36.753.529FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0036, quality 0.606)market_value_eur=17500000
quality_factor=0.6058
boost_factor=1.0036
reference_quality=0.505
history_matches=37
history_shrink=0.119
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0134)blend_weight=0.0134
history_matches=37
season_overlap_discount=1.0
per90_to_match_factor=0.9116
prior_reliability=0.1733
competition=La Liga
wasFouled: 0.7947 -> 0.7887
wonTackle: 0.7688 -> 0.7632
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': 'Troy Parrott', 'matchup_zone': 'Shape fallback'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.92 (squad xG sum 0.9410, xG scale 0.9819, xA scale 0.9819, team xA 0.69 = 0.75 x lambda)scoreline_reset=true
team_lambda=0.924
squad_xg_sum=0.941
squad_xa_sum=0.7025
team_expected_assists=0.6898
team_xa_to_xg_ratio=0.7465
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 15 by projected rating, fifa_overall 76.0)match_squad_rank=15
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0122
goal_rate=0.0
scorer_weight=0.0098
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0216
assist_rate=0.0251
provider_weight=0.0227
-
Ionuț RaduG9000.00-n/a0.07.064.730FBref Prior G_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost G_service raw output over 3 target models--
market_value_boostMarket-value quality scaling (boost 1.0004, quality 0.519)market_value_eur=9700000
quality_factor=0.5189
boost_factor=1.0004
reference_quality=0.505
history_matches=45
history_shrink=0.1
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0173)blend_weight=0.0173
history_matches=45
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.2667
competition=La Liga
saves: 2.8356 -> 2.8471
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Abdessamad Ezzalzouli, Troy Parrott', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.1121}
-
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.92 (squad xG sum 0.9410, xG scale 0.9819, xA scale 0.9819, team xA 0.69 = 0.75 x lambda)scoreline_reset=true
team_lambda=0.924
squad_xg_sum=0.941
squad_xa_sum=0.7025
team_expected_assists=0.6898
team_xa_to_xg_ratio=0.7465
shots_faced: 10.6 -> 10.3
expected_saves: 2.6 -> 2.52
high_pressure_saves: 0.89 -> 0.86
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 78.0)match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=0.9627
-
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.6489
-
Team totals00.92126.9
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Altay BayındırG4.5m11.3%Market-value substitute prior
Abdoulaye FayeD13.6m21.8%Market-value substitute prior
Carl StarfeltD27.6m41.1%Market-value substitute prior
Fer LópezM22.6m52.9%Market-value substitute prior
Miguel RománM34.9m41.4%Market-value substitute prior
Jones El-AbdellaouiF25.8m53.2%Market-value substitute prior

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Troy ParrottF7300.240.1654%20.66.733.28FBref 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.0183, quality 0.615)market_value_eur=18400000
quality_factor=0.615
boost_factor=1.0183
reference_quality=0.505
history_matches=4
history_shrink=0.5556
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0192)blend_weight=0.0192
history_matches=4
season_overlap_discount=1.0
per90_to_match_factor=0.8061
prior_reliability=0.0533
competition=La Liga
wonTackle: 0.658 -> 0.7035
totalShots: 1.6967 -> 1.7191
fouls: 0.2308 -> 0.2458
totalOffside: 0.2308 -> 0.2458
onTargetScoringAttempt: 0.716 -> 0.7022
wasFouled: 0.5912 -> 0.5798
goalAssist: 0.3195 -> 0.3134
goals: 0.2864 -> 0.2809
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Marcos Alonso, Yoel Lago', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.257, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.0831, 'skill_edge': 0.0626, 'height_edge': -0.006, 'attacker_skill': 0.615, 'defender_skill': 0.476, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Marcos Alonso', 'market_value': 1300000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'Yoel Lago', 'market_value': 7000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5146}], 'xg_override': 0.2891}
totalShots: 1.7191 -> 1.862
shotOffTarget: 0.9806 -> 1.0621
onTargetScoringAttempt: 0.7022 -> 0.7606
bigChanceMissed: 0.4271 -> 0.4626
goals: 0.2809 -> 0.3042
expectedGoals: 0.2669 -> 0.2891
expectedGoalsOnTarget: 0.219 -> 0.2372
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.08 (squad xG sum 1.2996, xG scale 0.8311, xA scale 0.8311, team xA 0.74 = 0.69 x lambda)scoreline_reset=true
team_lambda=1.08
squad_xg_sum=1.2996
squad_xa_sum=0.8938
team_expected_assists=0.7428
team_xa_to_xg_ratio=0.6878
expected_goals: 0.2891 -> 0.2403
expected_assists: 0.0553 -> 0.046
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.2136
goal_rate=0.3042
scorer_weight=0.251
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.045
assist_rate=0.3134
provider_weight=0.0575
-
Abdessamad EzzalzouliF8110.280.24ok32.07.362.828XGBoost 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.796)market_value_eur=43000000
quality_factor=0.7957
boost_factor=1.0115
reference_quality=0.505
history_matches=33
history_shrink=0.1316
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Marcos Alonso, Yoel Lago', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.306, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.1556, 'skill_edge': 0.1438, 'height_edge': -0.038, 'attacker_skill': 0.7957, 'defender_skill': 0.476, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Marcos Alonso', 'market_value': 1300000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'Yoel Lago', 'market_value': 7000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5146}], 'xg_override': 0.34}
totalShots: 2.2517 -> 2.6021
shotOffTarget: 1.2962 -> 1.4979
onTargetScoringAttempt: 0.9555 -> 1.1042
expectedGoalsOnTarget: 0.4333 -> 0.5007
goals: 0.395 -> 0.4565
expectedGoals: 0.2942 -> 0.34
bigChanceMissed: 0.2394 -> 0.2767
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.08 (squad xG sum 1.2996, xG scale 0.8311, xA scale 0.8311, team xA 0.74 = 0.69 x lambda)scoreline_reset=true
team_lambda=1.08
squad_xg_sum=1.2996
squad_xa_sum=0.8938
team_expected_assists=0.7428
team_xa_to_xg_ratio=0.6878
expected_goals: 0.34 -> 0.2825
expected_assists: 0.2117 -> 0.1758
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 86.0)match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.2461
goal_rate=0.4565
scorer_weight=0.3531
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1612
assist_rate=0.1556
provider_weight=0.1406
-
IscoM6600.090.11ok11.06.959.116FBref Prior M_service
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.9955, quality 0.445)market_value_eur=3600000
quality_factor=0.4449
boost_factor=0.9955
reference_quality=0.505
history_matches=15
history_shrink=0.25
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0141)blend_weight=0.0141
history_matches=15
season_overlap_discount=1.0
per90_to_match_factor=0.7352
prior_reliability=0.0867
competition=La Liga
fouls: 0.1402 -> 0.1701
totalCross: 2.2419 -> 2.2661
onTargetScoringAttempt: 0.4183 -> 0.4355
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Marcos Alonso', 'matchup_zone': 'LW vs CB', 'duel_win_rate': 0.375, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9344, 'skill_edge': 0.0034, 'height_edge': -0.048, 'attacker_skill': 0.4449, 'defender_skill': 0.4374, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Marcos Alonso', 'market_value': 1300000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.1125}
aerialWon: 0.0 -> 0.9
totalShots: 1.4409 -> 1.3464
shotOffTarget: 1.0054 -> 0.9394
onTargetScoringAttempt: 0.4355 -> 0.4069
bigChanceMissed: 0.2684 -> 0.2508
expectedGoals: 0.1204 -> 0.1125
goals: 0.0886 -> 0.0828
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.08 (squad xG sum 1.2996, xG scale 0.8311, xA scale 0.8311, team xA 0.74 = 0.69 x lambda)scoreline_reset=true
team_lambda=1.08
squad_xg_sum=1.2996
squad_xa_sum=0.8938
team_expected_assists=0.7428
team_xa_to_xg_ratio=0.6878
expected_goals: 0.1125 -> 0.0935
expected_assists: 0.1189 -> 0.0988
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.0893
goal_rate=0.0828
scorer_weight=0.0764
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0941
assist_rate=0.1156
provider_weight=0.0969
-
AntonyF8000.190.23ok32.97.161.437FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0088, quality 0.764)market_value_eur=37000000
quality_factor=0.7641
boost_factor=1.0088
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.8851
prior_reliability=0.2
competition=La Liga
totalShots: 2.6634 -> 2.6894
totalCross: 1.8778 -> 1.8893
onTargetScoringAttempt: 0.9878 -> 0.995
wasFouled: 1.3383 -> 1.3447
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Marcos Alonso, Yoel Lago', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.272, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.1053, 'skill_edge': 0.1297, 'height_edge': -0.058, 'attacker_skill': 0.7641, 'defender_skill': 0.476, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Marcos Alonso', 'market_value': 1300000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'Yoel Lago', 'market_value': 7000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5146}], 'xg_override': 0.2268}
totalShots: 2.6894 -> 2.9726
shotOffTarget: 1.6756 -> 1.852
onTargetScoringAttempt: 0.995 -> 1.0998
bigChanceMissed: 0.4035 -> 0.446
expectedGoalsOnTarget: 0.2843 -> 0.3142
expectedGoals: 0.2052 -> 0.2268
goals: 0.1774 -> 0.1961
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.08 (squad xG sum 1.2996, xG scale 0.8311, xA scale 0.8311, team xA 0.74 = 0.69 x lambda)scoreline_reset=true
team_lambda=1.08
squad_xg_sum=1.2996
squad_xa_sum=0.8938
team_expected_assists=0.7428
team_xa_to_xg_ratio=0.6878
expected_goals: 0.2268 -> 0.1885
expected_assists: 0.1398 -> 0.1162
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.1718
goal_rate=0.1961
scorer_weight=0.1676
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1097
assist_rate=0.0524
provider_weight=0.093
-
Pablo FornalsM8100.060.07ok10.97.060.930FBref Prior M_service
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=43
history_shrink=0.1042
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0099)blend_weight=0.0099
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=0.9012
prior_reliability=0.1467
competition=La Liga
totalShots: 1.1832 -> 1.1953
wasFouled: 0.9362 -> 0.9269
interceptionWon: 0.7654 -> 0.7741
totalCross: 3.4418 -> 3.4483
wonTackle: 0.2473 -> 0.253
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Ferrán Jutglà, Pablo Durán, Ilaix Moriba', '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.08 (squad xG sum 1.2996, xG scale 0.8311, xA scale 0.8311, team xA 0.74 = 0.69 x lambda)scoreline_reset=true
team_lambda=1.08
squad_xg_sum=1.2996
squad_xa_sum=0.8938
team_expected_assists=0.7428
team_xa_to_xg_ratio=0.6878
expected_goals: 0.0756 -> 0.0628
expected_assists: 0.1525 -> 0.1267
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 85.0)match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0609
goal_rate=0.0849
scorer_weight=0.0674
-
integer_assist_projectionTeam scoreline allocation: 1 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.119
assist_rate=0.1199
provider_weight=0.1063
-
Marc RocaM8400.030.0232%10.57.050.930FBref Prior M_service
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.452)market_value_eur=4200000
quality_factor=0.4523
boost_factor=0.998
reference_quality=0.505
history_matches=34
history_shrink=0.1282
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0094)blend_weight=0.0094
history_matches=34
season_overlap_discount=1.0
per90_to_match_factor=0.933
prior_reliability=0.1133
competition=La Liga
totalShots: 0.5812 -> 0.591
wonTackle: 1.0442 -> 1.0499
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Sergio Carreira', '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.08 (squad xG sum 1.2996, xG scale 0.8311, xA scale 0.8311, team xA 0.74 = 0.69 x lambda)scoreline_reset=true
team_lambda=1.08
squad_xg_sum=1.2996
squad_xa_sum=0.8938
team_expected_assists=0.7428
team_xa_to_xg_ratio=0.6878
expected_goals: 0.038 -> 0.0316
expected_assists: 0.0551 -> 0.0458
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.0311
goal_rate=0.0369
scorer_weight=0.0312
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0448
assist_rate=0.0613
provider_weight=0.0485
-
Fran GarcíaD8800.010.0252%00.16.830.929FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9988, quality 0.485)market_value_eur=6900000
quality_factor=0.4854
boost_factor=0.9988
reference_quality=0.505
history_matches=19
history_shrink=0.2083
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0217)blend_weight=0.0217
history_matches=19
season_overlap_discount=1.0
per90_to_match_factor=0.9807
prior_reliability=0.16
competition=La Liga
totalCross: 2.6108 -> 2.6516
totalShots: 0.3947 -> 0.3861
goalAssist: 0.0381 -> 0.0461
wasFouled: 1.1463 -> 1.1392
interceptionWon: 0.9635 -> 0.9692
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Pablo Durán', 'matchup_zone': '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.08 (squad xG sum 1.2996, xG scale 0.8311, xA scale 0.8311, team xA 0.74 = 0.69 x lambda)scoreline_reset=true
team_lambda=1.08
squad_xg_sum=1.2996
squad_xa_sum=0.8938
team_expected_assists=0.7428
team_xa_to_xg_ratio=0.6878
expected_assists: 0.0481 -> 0.04
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 77.0)match_squad_rank=12
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0104
goal_rate=0.0
scorer_weight=0.0084
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0392
assist_rate=0.0461
provider_weight=0.0392
-
NatanD8900.040.02125%10.26.951.729FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0077, quality 0.732)market_value_eur=32000000
quality_factor=0.732
boost_factor=1.0077
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.9886
prior_reliability=0.1333
competition=La Liga
wonTackle: 0.7865 -> 0.7982
interceptionWon: 0.9101 -> 0.9011
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Williot Swedberg', '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.08 (squad xG sum 1.2996, xG scale 0.8311, xA scale 0.8311, team xA 0.74 = 0.69 x lambda)scoreline_reset=true
team_lambda=1.08
squad_xg_sum=1.2996
squad_xa_sum=0.8938
team_expected_assists=0.7428
team_xa_to_xg_ratio=0.6878
expected_goals: 0.0478 -> 0.0397
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.0389
goal_rate=0.1088
scorer_weight=0.0496
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0103
assist_rate=0.0
provider_weight=0.0083
-
Diego LlorenteD8000.010.0130%00.16.950.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.9959, quality 0.437)market_value_eur=2600000
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.0087)blend_weight=0.0087
history_matches=20
season_overlap_discount=1.0
per90_to_match_factor=0.8862
prior_reliability=0.0667
competition=La Liga
interceptionWon: 1.1267 -> 1.1554
wonTackle: 0.7905 -> 0.7836
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Williot Swedberg', '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.08 (squad xG sum 1.2996, xG scale 0.8311, xA scale 0.8311, team xA 0.74 = 0.69 x lambda)scoreline_reset=true
team_lambda=1.08
squad_xg_sum=1.2996
squad_xa_sum=0.8938
team_expected_assists=0.7428
team_xa_to_xg_ratio=0.6878
-
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.0145
goal_rate=0.0
scorer_weight=0.0117
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0032
assist_rate=0.0
provider_weight=0.003
-
Angel OrtizD7000.010.00112%00.16.829.221FBref Prior D_service
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.482)market_value_eur=6600000
quality_factor=0.4818
boost_factor=0.9983
reference_quality=0.505
history_matches=15
history_shrink=0.25
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0087)blend_weight=0.0087
history_matches=15
season_overlap_discount=1.0
per90_to_match_factor=0.7776
prior_reliability=0.0533
competition=La Liga
totalCross: 1.6515 -> 1.6372
wasFouled: 0.8381 -> 0.8308
interceptionWon: 0.7306 -> 0.7243
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Aleix Febas', 'matchup_zone': 'Left Wingback vs Right Back — Overlapping Run'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.08 (squad xG sum 1.2996, xG scale 0.8311, xA scale 0.8311, team xA 0.74 = 0.69 x lambda)scoreline_reset=true
team_lambda=1.08
squad_xg_sum=1.2996
squad_xa_sum=0.8938
team_expected_assists=0.7428
team_xa_to_xg_ratio=0.6878
expected_assists: 0.0541 -> 0.045
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 70.0)match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0051
goal_rate=0.0
scorer_weight=0.0045
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.044
assist_rate=0.0
provider_weight=0.036
-
Álvaro VallesG9000.00-n/a0.07.461.730FBref 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=35
history_shrink=0.125
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0163)blend_weight=0.0163
history_matches=35
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': 'Pablo Durán, Williot Swedberg', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 0.8976}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.08 (squad xG sum 1.2996, xG scale 0.8311, xA scale 0.8311, team xA 0.74 = 0.69 x lambda)scoreline_reset=true
team_lambda=1.08
squad_xg_sum=1.2996
squad_xa_sum=0.8938
team_expected_assists=0.7428
team_xa_to_xg_ratio=0.6878
shots_faced: 8.5 -> 8.8
expected_saves: 2.08 -> 2.16
high_pressure_saves: 0.72 -> 0.74
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.129
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.6648
-
Team totals11.08147.0
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Diego CondeG4.4m10.9%Market-value substitute prior
Valentín GómezD14.0m22.5%Market-value substitute prior
Aitor RuibalD13.6m30.1%Market-value substitute prior
Sergi AltimiraM22.7m53.2%Market-value substitute prior
Nelson DeossaM19.9m57.0%Market-value substitute prior
Cucho HernándezF25.9m58.7%Market-value substitute prior
Antagonist / tactical summary
Midfield is evenly contested — Ilaix Moriba vs Pablo Fornals will be the pivotal duel. Total antagonist xG — Home: 0.76, Away: 0.97. Home danger zone: Shadow Striker vs CDM + CB — Zone 14 Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Midfield — possession 51.2% / 48.8%, dominance ratio 0.53, key duel: Ilaix Moriba vs Pablo Fornals
Williot Swedberg xG 0.19Ferrán Jutglà xG 0.16Pablo Durán xG 0.20Isco xG 0.11Abdessamad Ezzalzouli xG 0.34Troy Parrott xG 0.29

Summary

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

Liverpool vs Brighton

Premier League · 20261025 · 4-2-3-1 vs 4-2-3-1
Predicted 2-1Winner: LiverpoolWinning H 2-1 (8.9%)Winning A 1-2 (6.0%)Confidence 0.74λ home/away 2.26 / 1.51Most-likely P 8.9%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset Tracing
Antagonist + XGBoost match analysis for Liverpool vs Brighton. Player statistics regressed using position-specific XGBoost models (G, D, M, F) with 2026-2027 FBref priors. Micro-duels resolved across 4-2-3-1 vs 4-2-3-1 (duel lambdas: Home 2.036, Away 1.572). Final calibrated Poisson lambdas: Home 2.256, Away 1.514 (most likely score 2-1).
Home Starters 11/11 XGBoost (10 FBref) Away Starters 11/11 XGBoost (9 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 2.04 / 1.57 Final λ (H/A) 2.26 / 1.51
FBref Team Priors: Liverpool FC (Gls/90: 2.0, GA/90: 2.0 → E[λ]: 3.5) vs Brighton & Hove Albion (Gls/90: 2.5, GA/90: 3.5 → E[λ]: 3.448) | 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

MetricLiverpoolBrighton
League position5.003.00
Points per game1.551.86
Attack index1.011.39
Defense (concede) index0.770.97
Form multiplier0.981.02
Standing λ multiplier0.901.14

Lambda decomposition (how the goal rates were built)

StageLiverpool λBrighton λ
FBref Squad Prior E[λ] (weight 0.192)3.5003.448
Pre-competitive-floor2.2561.514
Pre-calibration (Micro-duels)2.0361.572
Final λ2.2561.514
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
2-18.9%
1-17.9%
2-26.7%
3-16.7%
1-26.0%
Home win54.4%
Draw20.2%
Away win25.5%
Over 2.572.6%
BTTS yes69.9%
Pregame fair line — favorite Liverpool (54.4%), fair total 3.77, fair spread 0.74

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.

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Alexander IsakF8020.630.27132%31.16.842.115FBref 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.0241, quality 0.891)market_value_eur=93000000
quality_factor=0.8905
boost_factor=1.0241
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.8884
prior_reliability=0.1333
competition=Premier League
totalShots: 2.5724 -> 2.5821
wasFouled: 0.4085 -> 0.4172
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Ferdi Kadıoğlu, Luka Vušković', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.25, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 1.0731, 'skill_edge': 0.0117, 'height_edge': 0.038, 'attacker_skill': 0.8905, 'defender_skill': 0.8645, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Ferdi Kadıoğlu', 'market_value': 41000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.839}, {'player': 'Luka Vušković', 'market_value': 69000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.89}], 'xg_override': 0.4523}
totalShots: 2.5821 -> 2.7709
shotOffTarget: 1.4511 -> 1.5572
onTargetScoringAttempt: 1.125 -> 1.2072
expectedGoalsOnTarget: 0.6124 -> 0.6572
bigChanceMissed: 0.5611 -> 0.6021
goals: 0.5059 -> 0.5429
expectedGoals: 0.4215 -> 0.4523
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
goals: 1.0 -> 0
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.26 (squad xG sum 1.6098, xG scale 1.4014, xA scale 1.9439, team xA 1.47 = 0.65 x lambda)scoreline_reset=true
team_lambda=2.256
squad_xg_sum=1.6098
squad_xa_sum=0.7544
team_expected_assists=1.4664
team_xa_to_xg_ratio=0.65
expected_goals: 0.4523 -> 0.6338
expected_assists: 0.0384 -> 0.0746
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 86.0)match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=2
goal_probability=0.4694
goal_rate=0.5429
scorer_weight=0.7481
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0719
assist_rate=0.0288
provider_weight=0.0665
-
Cody GakpoF8400.270.1489%31.86.951.839FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0120, quality 0.873)market_value_eur=72000000
quality_factor=0.8734
boost_factor=1.012
reference_quality=0.505
history_matches=41
history_shrink=0.1087
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0085)blend_weight=0.0085
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=0.9363
prior_reliability=0.12
competition=Premier League
totalCross: 1.4358 -> 1.4589
totalShots: 2.103 -> 2.112
interceptionWon: 1.0494 -> 1.0581
fouls: 1.2633 -> 1.2702
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Ferdi Kadıoğlu, Luka Vušković', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.242, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 1.0617, 'skill_edge': 0.004, 'height_edge': 0.038, 'attacker_skill': 0.8734, 'defender_skill': 0.8645, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Ferdi Kadıoğlu', 'market_value': 41000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.839}, {'player': 'Luka Vušković', 'market_value': 69000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.89}], 'xg_override': 0.193}
totalShots: 2.112 -> 2.2423
shotOffTarget: 1.5296 -> 1.624
onTargetScoringAttempt: 0.573 -> 0.6084
bigChanceMissed: 0.249 -> 0.2644
expectedGoals: 0.1818 -> 0.193
goals: 0.175 -> 0.1858
expectedGoalsOnTarget: 0.0976 -> 0.1036
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.26 (squad xG sum 1.6098, xG scale 1.4014, xA scale 1.9439, team xA 1.47 = 0.65 x lambda)scoreline_reset=true
team_lambda=2.256
squad_xg_sum=1.6098
squad_xa_sum=0.7544
team_expected_assists=1.4664
team_xa_to_xg_ratio=0.65
expected_goals: 0.193 -> 0.2705
expected_assists: 0.1234 -> 0.2399
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.237
goal_rate=0.1858
scorer_weight=0.2625
-
integer_assist_projectionTeam scoreline allocation: 1 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.2133
assist_rate=0.4386
provider_weight=0.2999
-
Florian WirtzM8200.340.1979%21.67.055.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.0132, quality 0.883)market_value_eur=81000000
quality_factor=0.8829
boost_factor=1.0132
reference_quality=0.505
history_matches=38
history_shrink=0.1163
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0086)blend_weight=0.0086
history_matches=38
season_overlap_discount=1.0
per90_to_match_factor=0.9163
prior_reliability=0.1133
competition=Premier League
totalShots: 1.8826 -> 1.8897
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Olivier Boscagli', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.543, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0927, 'skill_edge': 0.0871, 'height_edge': -0.024, 'attacker_skill': 0.8829, 'defender_skill': 0.6894, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Olivier Boscagli', 'market_value': 18500000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.6894}], 'xg_override': 0.2412}
aerialWon: 0.5114 -> 0.9
totalShots: 1.8897 -> 2.0649
shotOffTarget: 1.2044 -> 1.316
onTargetScoringAttempt: 0.6817 -> 0.7449
expectedGoals: 0.2207 -> 0.2412
goals: 0.1941 -> 0.2121
expectedGoalsOnTarget: 0.1444 -> 0.1578
bigChanceMissed: 0.1094 -> 0.1195
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.26 (squad xG sum 1.6098, xG scale 1.4014, xA scale 1.9439, team xA 1.47 = 0.65 x lambda)scoreline_reset=true
team_lambda=2.256
squad_xg_sum=1.6098
squad_xa_sum=0.7544
team_expected_assists=1.4664
team_xa_to_xg_ratio=0.65
expected_goals: 0.2412 -> 0.338
expected_assists: 0.1319 -> 0.2564
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 86.0)match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.2868
goal_rate=0.2121
scorer_weight=0.3042
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.2262
assist_rate=0.1411
provider_weight=0.2694
-
Bradley BarcolaF7600.240.05378%20.46.732.810XGBoost 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.0726, quality 0.892)market_value_eur=97000000
quality_factor=0.8922
boost_factor=1.0726
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': 'Ferdi Kadıoğlu, Luka Vušković', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.206, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 1.0095, 'skill_edge': 0.0125, 'height_edge': -0.006, 'attacker_skill': 0.8922, 'defender_skill': 0.8645, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Ferdi Kadıoğlu', 'market_value': 41000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.839}, {'player': 'Luka Vušković', 'market_value': 69000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.89}], 'xg_override': 0.1741}
totalShots: 1.4086 -> 1.422
shotOffTarget: 0.7979 -> 0.8055
onTargetScoringAttempt: 0.6107 -> 0.6165
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.26 (squad xG sum 1.6098, xG scale 1.4014, xA scale 1.9439, team xA 1.47 = 0.65 x lambda)scoreline_reset=true
team_lambda=2.256
squad_xg_sum=1.6098
squad_xa_sum=0.7544
team_expected_assists=1.4664
team_xa_to_xg_ratio=0.65
expected_goals: 0.1741 -> 0.244
expected_assists: 0.0784 -> 0.1524
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.2165
goal_rate=0.1823
scorer_weight=0.2529
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1414
assist_rate=0.0
provider_weight=0.1219
-
Alexis Mac AllisterM8700.130.0873%11.06.956.730FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0119, quality 0.879)market_value_eur=77000000
quality_factor=0.8792
boost_factor=1.0119
reference_quality=0.505
history_matches=42
history_shrink=0.1064
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0055)blend_weight=0.0055
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.9673
prior_reliability=0.08
competition=Premier League
wasFouled: 0.9677 -> 0.9757
totalShots: 1.1797 -> 1.1732
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Yasin Ayari', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.468, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 1.0709, 'skill_edge': 0.0322, 'height_edge': 0.016, 'attacker_skill': 0.8893, 'defender_skill': 0.8177, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Yasin Ayari', 'market_value': 41000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8177}], 'xg_override': 0.0947}
totalShots: 1.1776 -> 1.2611
aerialWon: 0.8315 -> 0.9
shotOffTarget: 0.8164 -> 0.8743
onTargetScoringAttempt: 0.3612 -> 0.3868
goals: 0.1017 -> 0.1089
expectedGoals: 0.0884 -> 0.0947
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.26 (squad xG sum 1.6098, xG scale 1.4014, xA scale 1.9439, team xA 1.47 = 0.65 x lambda)scoreline_reset=true
team_lambda=2.256
squad_xg_sum=1.6098
squad_xa_sum=0.7544
team_expected_assists=1.4664
team_xa_to_xg_ratio=0.65
expected_goals: 0.0947 -> 0.1327
expected_assists: 0.0766 -> 0.1489
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 84.0)match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
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.1243
goal_rate=0.1089
scorer_weight=0.1457
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.0749
provider_weight=0.1469
-
Ryan GravenberchM7900.120.03244%10.86.857.230FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0123, quality 0.883)market_value_eur=81000000
quality_factor=0.8829
boost_factor=1.0123
reference_quality=0.505
history_matches=41
history_shrink=0.1087
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0052)blend_weight=0.0052
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=0.8831
prior_reliability=0.0733
competition=Premier League
wasFouled: 1.3412 -> 1.3509
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Yasin Ayari', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.513, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 1.137, 'skill_edge': 0.0332, 'height_edge': 0.06, 'attacker_skill': 0.8915, 'defender_skill': 0.8177, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Yasin Ayari', 'market_value': 41000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8177}], 'xg_override': 0.0856}
aerialWon: 0.7048 -> 1.3
totalShots: 0.9977 -> 1.1344
shotOffTarget: 0.6734 -> 0.7657
onTargetScoringAttempt: 0.3192 -> 0.3629
expectedGoals: 0.0753 -> 0.0856
goals: 0.074 -> 0.0841
expectedGoalsOnTarget: 0.0629 -> 0.0715
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.26 (squad xG sum 1.6098, xG scale 1.4014, xA scale 1.9439, team xA 1.47 = 0.65 x lambda)scoreline_reset=true
team_lambda=2.256
squad_xg_sum=1.6098
squad_xa_sum=0.7544
team_expected_assists=1.4664
team_xa_to_xg_ratio=0.65
expected_goals: 0.0856 -> 0.12
expected_assists: 0.0439 -> 0.0853
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.1131
goal_rate=0.0841
scorer_weight=0.1187
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0818
assist_rate=0.0691
provider_weight=0.1066
-
Miloš KerkezD8400.060.02191%10.26.748.330FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.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.0089)blend_weight=0.0089
history_matches=39
season_overlap_discount=1.0
per90_to_match_factor=0.937
prior_reliability=0.12
competition=Premier League
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Charalampos Kostoulas', 'matchup_zone': 'Shape fallback'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.26 (squad xG sum 1.6098, xG scale 1.4014, xA scale 1.9439, team xA 1.47 = 0.65 x lambda)scoreline_reset=true
team_lambda=2.256
squad_xg_sum=1.6098
squad_xa_sum=0.7544
team_expected_assists=1.4664
team_xa_to_xg_ratio=0.65
expected_goals: 0.0437 -> 0.0612
expected_assists: 0.0172 -> 0.0334
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 17 by projected rating, fifa_overall 81.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.0594
goal_rate=0.062
scorer_weight=0.0732
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0328
assist_rate=0.0253
provider_weight=0.0374
-
Virgil van DijkD9000.130.11ok10.77.360.330FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0025, quality 0.585)market_value_eur=15500000
quality_factor=0.5846
boost_factor=1.0025
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.1681 -> 1.1621
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Pascal Groß', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.26 (squad xG sum 1.6098, xG scale 1.4014, xA scale 1.9439, team xA 1.47 = 0.65 x lambda)scoreline_reset=true
team_lambda=2.256
squad_xg_sum=1.6098
squad_xa_sum=0.7544
team_expected_assists=1.4664
team_xa_to_xg_ratio=0.65
expected_goals: 0.0912 -> 0.1278
expected_assists: 0.032 -> 0.0622
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.12
goal_rate=0.1966
scorer_weight=0.1598
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0603
assist_rate=0.0
provider_weight=0.0498
-
Jérémy JacquetD8600.00-n/a00.07.238.610FBref Prior D_service
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.0542, quality 0.866)market_value_eur=67000000
quality_factor=0.8661
boost_factor=1.0542
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.9606
prior_reliability=0.1067
competition=Premier League
interceptionWon: 1.2066 -> 1.248
wasFouled: 0.9446 -> 0.9743
fouls: 1.085 -> 1.0682
totalShots: 0.442 -> 0.4267
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Charalampos Kostoulas', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.26 (squad xG sum 1.6098, xG scale 1.4014, xA scale 1.9439, team xA 1.47 = 0.65 x lambda)scoreline_reset=true
team_lambda=2.256
squad_xg_sum=1.6098
squad_xa_sum=0.7544
team_expected_assists=1.4664
team_xa_to_xg_ratio=0.65
expected_assists: 0.0273 -> 0.0531
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 77.0)match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.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.0517
assist_rate=0.0
provider_weight=0.0425
-
Ronald AraújoD7900.040.04ok00.26.941.029FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0083, quality 0.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.0026)blend_weight=0.0026
history_matches=29
season_overlap_discount=1.0
per90_to_match_factor=0.874
prior_reliability=0.0267
competition=Premier League
fouls: 0.5287 -> 0.5385
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Charalampos Kostoulas', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.26 (squad xG sum 1.6098, xG scale 1.4014, xA scale 1.9439, team xA 1.47 = 0.65 x lambda)scoreline_reset=true
team_lambda=2.256
squad_xg_sum=1.6098
squad_xa_sum=0.7544
team_expected_assists=1.4664
team_xa_to_xg_ratio=0.65
expected_goals: 0.0251 -> 0.0352
expected_assists: 0.0321 -> 0.0624
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.0346
goal_rate=0.1067
scorer_weight=0.044
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0605
assist_rate=0.0
provider_weight=0.0499
-
AlissonG9000.00-n/a0.07.154.023FBref 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.0038, quality 0.595)market_value_eur=16500000
quality_factor=0.5953
boost_factor=1.0038
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=1.0
prior_reliability=0.1333
competition=Premier League
saves: 3.0016 -> 2.9895
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Charalampos Kostoulas, Pascal Groß', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.5724}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.26 (squad xG sum 1.6098, xG scale 1.4014, xA scale 1.9439, team xA 1.47 = 0.65 x lambda)scoreline_reset=true
team_lambda=2.256
squad_xg_sum=1.6098
squad_xa_sum=0.7544
team_expected_assists=1.4664
team_xa_to_xg_ratio=0.65
shots_faced: 14.9 -> 14.4
expected_saves: 3.64 -> 3.53
high_pressure_saves: 1.26 -> 1.21
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 87.0)match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 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.4352
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.4623
-
Team totals22.26176.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
Mohamed SalahM22.8m53.5%Market-value substitute prior
Hugo EkitikéF27.0m63.8%Market-value substitute prior

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Bart VerbruggenG9000.00-n/a0.07.058.229FBref Prior G_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost G_service raw output over 3 target models--
market_value_boostMarket-value quality scaling (boost 1.0081, quality 0.764)market_value_eur=37000000
quality_factor=0.7641
boost_factor=1.0081
reference_quality=0.505
history_matches=43
history_shrink=0.1042
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0090)blend_weight=0.009
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League
saves: 2.9034 -> 2.8817
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Alexander Isak, Florian Wirtz', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 2.0359}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.51 (squad xG sum 1.2450, xG scale 1.2161, xA scale 1.2161, team xA 1.16 = 0.77 x lambda)scoreline_reset=true
team_lambda=1.514
squad_xg_sum=1.245
squad_xa_sum=0.955
team_expected_assists=1.1614
team_xa_to_xg_ratio=0.7671
shots_faced: 19.3 -> 21.4
expected_saves: 4.72 -> 5.23
high_pressure_saves: 1.63 -> 1.8
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 81.0)match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.6849
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.246
-
Ferdi KadıoğluD8700.060.05ok10.86.855.928XGBoost 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.0092, quality 0.786)market_value_eur=41000000
quality_factor=0.7859
boost_factor=1.0092
reference_quality=0.505
history_matches=41
history_shrink=0.1087
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Alexander Isak', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.51 (squad xG sum 1.2450, xG scale 1.2161, xA scale 1.2161, team xA 1.16 = 0.77 x lambda)scoreline_reset=true
team_lambda=1.514
squad_xg_sum=1.245
squad_xa_sum=0.955
team_expected_assists=1.1614
team_xa_to_xg_ratio=0.7671
expected_goals: 0.0453 -> 0.0551
expected_assists: 0.0816 -> 0.0992
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 15 by projected rating, fifa_overall 80.0)match_squad_rank=15
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0536
goal_rate=0.042
scorer_weight=0.0532
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0944
assist_rate=0.0
provider_weight=0.0794
-
Lewis DunkD9000.060.0437%10.67.352.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.9979, quality 0.445)market_value_eur=3600000
quality_factor=0.4449
boost_factor=0.9979
reference_quality=0.505
history_matches=37
history_shrink=0.119
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0103)blend_weight=0.0103
history_matches=37
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League
fouls: 0.6454 -> 0.6542
totalCross: 0.2445 -> 0.2523
totalShots: 0.5983 -> 0.5921
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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.51 (squad xG sum 1.2450, xG scale 1.2161, xA scale 1.2161, team xA 1.16 = 0.77 x lambda)scoreline_reset=true
team_lambda=1.514
squad_xg_sum=1.245
squad_xa_sum=0.955
team_expected_assists=1.1614
team_xa_to_xg_ratio=0.7671
expected_goals: 0.0486 -> 0.0591
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.0574
goal_rate=0.2107
scorer_weight=0.0739
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0245
assist_rate=0.0
provider_weight=0.0198
-
Charalampos KostoulasF8110.310.11187%20.96.941.826FBref 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.0141, quality 0.796)market_value_eur=43000000
quality_factor=0.7957
boost_factor=1.0141
reference_quality=0.505
history_matches=26
history_shrink=0.1613
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0084)blend_weight=0.0084
history_matches=26
season_overlap_discount=1.0
per90_to_match_factor=0.8962
prior_reliability=0.08
competition=Premier League
wasFouled: 1.4367 -> 1.4247
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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.9464, 'skill_edge': -0.0125, 'height_edge': -0.024, 'attacker_skill': 0.7957, '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.2553}
totalShots: 2.2449 -> 2.1246
shotOffTarget: 1.4144 -> 1.3386
onTargetScoringAttempt: 0.8296 -> 0.7851
bigChanceMissed: 0.6424 -> 0.608
expectedGoalsOnTarget: 0.3567 -> 0.3376
goals: 0.328 -> 0.3104
expectedGoals: 0.2698 -> 0.2553
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.51 (squad xG sum 1.2450, xG scale 1.2161, xA scale 1.2161, team xA 1.16 = 0.77 x lambda)scoreline_reset=true
team_lambda=1.514
squad_xg_sum=1.245
squad_xa_sum=0.955
team_expected_assists=1.1614
team_xa_to_xg_ratio=0.7671
expected_goals: 0.2553 -> 0.3106
expected_assists: 0.0671 -> 0.0816
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 73.0)match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.267
goal_rate=0.3104
scorer_weight=0.3667
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0784
assist_rate=0.3496
provider_weight=0.102
-
Maxim De CuyperD8000.190.1179%10.66.848.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.0077, quality 0.710)market_value_eur=29000000
quality_factor=0.71
boost_factor=1.0077
reference_quality=0.505
history_matches=35
history_shrink=0.125
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0103)blend_weight=0.0103
history_matches=35
season_overlap_discount=1.0
per90_to_match_factor=0.8906
prior_reliability=0.1267
competition=Premier League
totalShots: 0.7885 -> 0.805
totalCross: 4.7796 -> 4.7931
wasFouled: 0.8781 -> 0.8691
fouls: 1.0719 -> 1.0802
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Cody Gakpo', '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.51 (squad xG sum 1.2450, xG scale 1.2161, xA scale 1.2161, team xA 1.16 = 0.77 x lambda)scoreline_reset=true
team_lambda=1.514
squad_xg_sum=1.245
squad_xa_sum=0.955
team_expected_assists=1.1614
team_xa_to_xg_ratio=0.7671
expected_goals: 0.1548 -> 0.1883
expected_assists: 0.2068 -> 0.2515
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 78.0)match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1716
goal_rate=0.0984
scorer_weight=0.1506
-
integer_assist_projectionTeam scoreline allocation: 1 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.2224
assist_rate=0.3407
provider_weight=0.3144
-
Yasin AyariM8600.120.05157%10.76.848.023FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0111, quality 0.786)market_value_eur=41000000
quality_factor=0.7859
boost_factor=1.0111
reference_quality=0.505
history_matches=33
history_shrink=0.1316
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0040)blend_weight=0.004
history_matches=33
season_overlap_discount=1.0
per90_to_match_factor=0.9579
prior_reliability=0.0467
competition=Premier League
fouls: 0.6821 -> 0.6903
totalShots: 1.3266 -> 1.3322
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Alexis Mac Allister', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.372, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9291, 'skill_edge': -0.0322, 'height_edge': -0.016, 'attacker_skill': 0.8177, 'defender_skill': 0.8893, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Alexis Mac Allister', 'market_value': 77000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8893}], 'xg_override': 0.1013}
aerialWon: 0.3138 -> 0.8
totalShots: 1.3322 -> 1.2377
shotOffTarget: 0.9465 -> 0.8794
onTargetScoringAttempt: 0.3786 -> 0.3518
expectedGoalsOnTarget: 0.1718 -> 0.1596
goals: 0.1247 -> 0.1159
expectedGoals: 0.109 -> 0.1013
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.51 (squad xG sum 1.2450, xG scale 1.2161, xA scale 1.2161, team xA 1.16 = 0.77 x lambda)scoreline_reset=true
team_lambda=1.514
squad_xg_sum=1.245
squad_xa_sum=0.955
team_expected_assists=1.1614
team_xa_to_xg_ratio=0.7671
expected_goals: 0.1013 -> 0.1232
expected_assists: 0.0529 -> 0.0643
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.1159
goal_rate=0.1159
scorer_weight=0.1351
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0623
assist_rate=0.0557
provider_weight=0.066
-
Diego GómezM8000.200.1352%21.36.954.225FBref Prior M_service
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.0081, quality 0.732)market_value_eur=32000000
quality_factor=0.732
boost_factor=1.0081
reference_quality=0.505
history_matches=37
history_shrink=0.119
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0098)blend_weight=0.0098
history_matches=37
season_overlap_discount=1.0
per90_to_match_factor=0.8926
prior_reliability=0.1267
competition=Premier League
totalShots: 1.6376 -> 1.6575
onTargetScoringAttempt: 0.5919 -> 0.5996
fouls: 1.5332 -> 1.5274
wonTackle: 1.3479 -> 1.3531
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Alexis Mac Allister', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.401, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9726, 'skill_edge': -0.0547, 'height_edge': 0.036, 'attacker_skill': 0.7679, 'defender_skill': 0.8893, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Alexis Mac Allister', 'market_value': 77000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8893}], 'xg_override': 0.1663}
aerialWon: 3.0058 -> 1.2
totalShots: 1.6575 -> 1.6121
shotOffTarget: 1.0457 -> 1.017
onTargetScoringAttempt: 0.5996 -> 0.5832
bigChanceMissed: 0.2625 -> 0.2553
goals: 0.2282 -> 0.2219
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.51 (squad xG sum 1.2450, xG scale 1.2161, xA scale 1.2161, team xA 1.16 = 0.77 x lambda)scoreline_reset=true
team_lambda=1.514
squad_xg_sum=1.245
squad_xa_sum=0.955
team_expected_assists=1.1614
team_xa_to_xg_ratio=0.7671
expected_goals: 0.1663 -> 0.2022
expected_assists: 0.1025 -> 0.1247
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 78.0)match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1831
goal_rate=0.2219
scorer_weight=0.2527
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1172
assist_rate=0.1297
provider_weight=0.1469
-
Chema AndrésM8600.140.06120%10.46.818.18XGBoost 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.0331, quality 0.660)market_value_eur=23000000
quality_factor=0.6595
boost_factor=1.0331
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': 'Alexis Mac Allister, Ryan Gravenberch', '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.8956, 'skill_edge': -0.099, 'height_edge': 0.028, 'attacker_skill': 0.6704, 'defender_skill': 0.8904, 'attacker_role': 'CAM', 'attacker_mv_price_index': 0.95, 'defender_adjusted_parts': [{'player': 'Alexis Mac Allister', 'market_value': 77000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8893}, {'player': 'Ryan Gravenberch', 'market_value': 81000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8915}], 'xg_override': 0.1174}
aerialWon: 3.2669 -> 1.3
totalShots: 1.5196 -> 1.361
shotOffTarget: 1.0872 -> 0.9737
expectedGoalsOnTarget: 0.5189 -> 0.4647
onTargetScoringAttempt: 0.4324 -> 0.3873
goals: 0.143 -> 0.1281
expectedGoals: 0.1311 -> 0.1174
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.51 (squad xG sum 1.2450, xG scale 1.2161, xA scale 1.2161, team xA 1.16 = 0.77 x lambda)scoreline_reset=true
team_lambda=1.514
squad_xg_sum=1.245
squad_xa_sum=0.955
team_expected_assists=1.1614
team_xa_to_xg_ratio=0.7671
expected_goals: 0.1174 -> 0.1428
expected_assists: 0.0705 -> 0.0857
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 86.0)match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1331
goal_rate=0.1281
scorer_weight=0.1519
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0821
assist_rate=0.0657
provider_weight=0.0823
-
Pascal GroßM9000.220.1194%21.07.359.229FBref Prior M_service
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.9965, quality 0.437)market_value_eur=2300000
quality_factor=0.4374
boost_factor=0.9965
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.9962
prior_reliability=0.1333
competition=Premier League
totalCross: 6.5603 -> 6.5962
totalShots: 1.6641 -> 1.6467
interceptionWon: 0.7503 -> 0.7391
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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.328, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.776, 'skill_edge': -0.0964, 'height_edge': -0.056, 'attacker_skill': 0.4374, '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.1779}
aerialWon: 0.6905 -> 1.1
totalShots: 1.6617 -> 1.2895
shotOffTarget: 1.0085 -> 0.7826
onTargetScoringAttempt: 0.6532 -> 0.5069
goals: 0.289 -> 0.2243
expectedGoals: 0.2292 -> 0.1779
expectedGoalsOnTarget: 0.1744 -> 0.1353
bigChanceMissed: 0.116 -> 0.09
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.51 (squad xG sum 1.2450, xG scale 1.2161, xA scale 1.2161, team xA 1.16 = 0.77 x lambda)scoreline_reset=true
team_lambda=1.514
squad_xg_sum=1.245
squad_xa_sum=0.955
team_expected_assists=1.1614
team_xa_to_xg_ratio=0.7671
expected_goals: 0.1779 -> 0.2163
expected_assists: 0.1881 -> 0.2287
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 79.0)match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1945
goal_rate=0.2243
scorer_weight=0.2603
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.2044
assist_rate=0.2354
provider_weight=0.2741
-
Olivier BoscagliD8800.010.0194%10.27.035.130FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0076, quality 0.616)market_value_eur=18500000
quality_factor=0.6161
boost_factor=1.0076
reference_quality=0.505
history_matches=17
history_shrink=0.2273
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0197)blend_weight=0.0197
history_matches=17
season_overlap_discount=1.0
per90_to_match_factor=0.9729
prior_reliability=0.1333
competition=Premier League
fouls: 1.3317 -> 1.3438
totalCross: 2.958 -> 2.9476
wonTackle: 0.9656 -> 0.9562
onTargetScoringAttempt: 0.1035 -> 0.111
interceptionWon: 1.1302 -> 1.1367
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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.51 (squad xG sum 1.2450, xG scale 1.2161, xA scale 1.2161, team xA 1.16 = 0.77 x lambda)scoreline_reset=true
team_lambda=1.514
squad_xg_sum=1.245
squad_xa_sum=0.955
team_expected_assists=1.1614
team_xa_to_xg_ratio=0.7671
expected_assists: 0.0781 -> 0.095
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.0102
goal_rate=0.0
scorer_weight=0.0088
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0906
assist_rate=0.0276
provider_weight=0.076
-
Luka VuškovićD8800.110.05139%10.87.137.510FBref Prior D_service
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.0546, quality 0.869)market_value_eur=69000000
quality_factor=0.8692
boost_factor=1.0546
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.9782
prior_reliability=0.1333
competition=Premier League
wasFouled: 1.5058 -> 1.4406
interceptionWon: 1.0456 -> 1.0003
totalShots: 0.9106 -> 0.9559
fouls: 1.666 -> 1.6362
totalCross: 0.4109 -> 0.3931
wonTackle: 0.776 -> 0.7636
goals: 0.2054 -> 0.1965
onTargetScoringAttempt: 0.2054 -> 0.1965
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Alexander Isak', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.51 (squad xG sum 1.2450, xG scale 1.2161, xA scale 1.2161, team xA 1.16 = 0.77 x lambda)scoreline_reset=true
team_lambda=1.514
squad_xg_sum=1.245
squad_xa_sum=0.955
team_expected_assists=1.1614
team_xa_to_xg_ratio=0.7671
expected_goals: 0.0899 -> 0.1093
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.1035
goal_rate=0.1965
scorer_weight=0.1366
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0162
assist_rate=0.0
provider_weight=0.013
-
Team totals11.51157.0
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Tom McGillG4.4m10.9%Market-value substitute prior
Mats WiefferD14.5m23.6%Market-value substitute prior
Pascal StruijkD14.4m33.9%Market-value substitute prior
Jack HinshelwoodM23.2m33.2%Market-value substitute prior
Georginio RutterM23.1m33.0%Market-value substitute prior
Yankuba MintehF26.8m62.9%Market-value substitute prior
Antagonist / tactical summary
Home midfield dominates with ~51% possession expected (Florian Wirtz vs Yasin Ayari). Total antagonist xG — Home: 1.24, Away: 0.82. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Midfield — possession 51.4% / 48.6%, dominance ratio 0.56, key duel: Florian Wirtz vs Yasin Ayari
Florian Wirtz xG 0.24Alexander Isak xG 0.45Cody Gakpo xG 0.19Pascal Groß xG 0.18Chema Andrés xG 0.12Charalampos Kostoulas xG 0.26

Summary

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

Man Utd vs Bournemouth

Premier League · 20261025 · 4-2-3-1 vs 4-2-3-1
Predicted 1-0Winner: Man UtdWinning H 1-0 (9.7%)Winning A 0-1 (7.0%)Confidence 0.73λ home/away 1.64 / 1.19Most-likely P 9.7%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset Tracing
Antagonist + XGBoost match analysis for Man Utd vs Bournemouth. Player statistics regressed using position-specific XGBoost models (G, D, M, F) with 2026-2027 FBref priors. Micro-duels resolved across 4-2-3-1 vs 4-2-3-1 (duel lambdas: Home 1.613, Away 1.202). Final calibrated Poisson lambdas: Home 1.636, Away 1.185 (most likely score 1-0).
Home Starters 11/11 XGBoost (9 FBref) Away Starters 11/11 XGBoost (10 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.61 / 1.20 Final λ (H/A) 1.64 / 1.19
FBref Team Priors: Manchester United (Gls/90: 2.0, GA/90: 2.5 → E[λ]: 1.379) vs Bournemouth (Gls/90: 1.0, GA/90: 1.0 → E[λ]: 1.724) | 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 UtdBournemouth
League position13.0015.00
Points per game1.161.09
Attack index1.050.91
Defense (concede) index1.051.05
Form multiplier1.000.99
Standing λ multiplier1.040.98

Lambda decomposition (how the goal rates were built)

StageMan Utd λBournemouth λ
FBref Squad Prior E[λ] (weight 0.192)1.3791.724
Pre-competitive-floor1.6361.185
Pre-calibration (Micro-duels)1.6131.202
Final λ1.6361.185
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.6%
1-09.7%
2-19.4%
2-08.0%
0-17.0%
Home win47.8%
Draw24.6%
Away win27.6%
Over 2.553.5%
BTTS yes56.0%
Pregame fair line — favorite Man Utd (47.8%), fair total 2.82, fair spread 0.45

Projected players vs season baseline

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

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Bryan MbeumoF8500.440.40ok32.27.056.632FBref 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.875)market_value_eur=73000000
quality_factor=0.8747
boost_factor=1.0129
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.9416
prior_reliability=0.1333
competition=Premier League
totalCross: 3.8663 -> 3.8985
totalShots: 2.375 -> 2.3938
interceptionWon: 0.5957 -> 0.5897
onTargetScoringAttempt: 0.9015 -> 0.9066
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Adam Smith, James Hill', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.281, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.1183, 'skill_edge': 0.1165, 'height_edge': -0.036, 'attacker_skill': 0.8747, 'defender_skill': 0.6158, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Adam Smith', 'market_value': 310000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'James Hill', 'market_value': 32000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7941}], 'xg_override': 0.3851}
totalShots: 2.3938 -> 2.677
shotOffTarget: 1.4735 -> 1.6478
onTargetScoringAttempt: 0.9066 -> 1.0139
bigChanceMissed: 0.663 -> 0.7414
expectedGoalsOnTarget: 0.4235 -> 0.4736
expectedGoals: 0.3444 -> 0.3851
goals: 0.3109 -> 0.3477
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.64 (squad xG sum 1.4417, xG scale 1.1348, xA scale 1.1348, team xA 1.12 = 0.68 x lambda)scoreline_reset=true
team_lambda=1.636
squad_xg_sum=1.4417
squad_xa_sum=0.9865
team_expected_assists=1.1195
team_xa_to_xg_ratio=0.6843
expected_goals: 0.3851 -> 0.4369
expected_assists: 0.1593 -> 0.1808
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 84.0)match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.354
goal_rate=0.3477
scorer_weight=0.3993
-
integer_assist_projectionTeam scoreline allocation: 1 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.1654
assist_rate=0.0301
provider_weight=0.1446
-
Bruno FernandesM8910.330.2344%32.17.462.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.0076, quality 0.732)market_value_eur=32000000
quality_factor=0.732
boost_factor=1.0076
reference_quality=0.505
history_matches=40
history_shrink=0.1111
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0096)blend_weight=0.0096
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=0.9943
prior_reliability=0.1333
competition=Premier League
totalShots: 2.5926 -> 2.6203
onTargetScoringAttempt: 0.8035 -> 0.8149
goals: 0.3959 -> 0.4064
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Adrien Truffert', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.455, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9637, 'skill_edge': -0.0367, 'height_edge': 0.012, 'attacker_skill': 0.732, 'defender_skill': 0.8135, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Adrien Truffert', 'market_value': 33000000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.8135}], 'xg_override': 0.2888}
aerialWon: 0.3391 -> 1.0
totalShots: 2.6203 -> 2.5252
shotOffTarget: 1.7891 -> 1.7242
onTargetScoringAttempt: 0.8149 -> 0.7853
goals: 0.4064 -> 0.3916
expectedGoalsOnTarget: 0.3032 -> 0.2922
expectedGoals: 0.2997 -> 0.2888
bigChanceMissed: 0.1948 -> 0.1877
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.64 (squad xG sum 1.4417, xG scale 1.1348, xA scale 1.1348, team xA 1.12 = 0.68 x lambda)scoreline_reset=true
team_lambda=1.636
squad_xg_sum=1.4417
squad_xa_sum=0.9865
team_expected_assists=1.1195
team_xa_to_xg_ratio=0.6843
expected_goals: 0.2888 -> 0.3277
expected_assists: 0.2536 -> 0.2877
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 89.0)match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.2794
goal_rate=0.3916
scorer_weight=0.4096
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.25
assist_rate=0.3681
provider_weight=0.3596
-
Youri TielemansM8400.080.0552%10.87.256.322FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0125, quality 0.796)market_value_eur=43000000
quality_factor=0.7957
boost_factor=1.0125
reference_quality=0.505
history_matches=30
history_shrink=0.1429
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0105)blend_weight=0.0105
history_matches=30
season_overlap_discount=1.0
per90_to_match_factor=0.9312
prior_reliability=0.1133
competition=Premier League
wasFouled: 1.7241 -> 1.7405
totalShots: 1.005 -> 1.0171
totalCross: 1.4984 -> 1.4884
wonTackle: 1.3753 -> 1.3666
onTargetScoringAttempt: 0.3049 -> 0.313
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Ryan Christie, Tyler Adams', 'matchup_zone': 'Attacking Mid vs Double Pivot — Tight Space Battle', 'duel_win_rate': 0.316, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.111, 'skill_edge': 0.0735, 'height_edge': 0.002, 'attacker_skill': 0.8058, 'defender_skill': 0.6424, 'attacker_role': 'CAM', 'attacker_mv_price_index': 0.95, 'defender_adjusted_parts': [{'player': 'Ryan Christie', 'market_value': 8600000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.5238}, {'player': 'Tyler Adams', 'market_value': 31000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.761}], 'xg_override': 0.0681}
totalShots: 1.0171 -> 1.13
shotOffTarget: 0.7 -> 0.7777
onTargetScoringAttempt: 0.313 -> 0.3477
aerialWon: 0.9806 -> 1.0
bigChanceMissed: 0.124 -> 0.1378
goals: 0.088 -> 0.0978
expectedGoals: 0.0613 -> 0.0681
expectedGoalsOnTarget: 0.0511 -> 0.0568
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.64 (squad xG sum 1.4417, xG scale 1.1348, xA scale 1.1348, team xA 1.12 = 0.68 x lambda)scoreline_reset=true
team_lambda=1.636
squad_xg_sum=1.4417
squad_xa_sum=0.9865
team_expected_assists=1.1195
team_xa_to_xg_ratio=0.6843
expected_goals: 0.0681 -> 0.0773
expected_assists: 0.1098 -> 0.1246
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 85.0)match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0744
goal_rate=0.0978
scorer_weight=0.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.1172
assist_rate=0.0815
provider_weight=0.1025
-
Amad DialloF8000.140.0797%20.96.942.327XGBoost 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.0120, quality 0.800)market_value_eur=44000000
quality_factor=0.8002
boost_factor=1.012
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': 'Adam Smith, James Hill', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.247, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.0691, 'skill_edge': 0.083, 'height_edge': -0.036, 'attacker_skill': 0.8002, 'defender_skill': 0.6158, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Adam Smith', 'market_value': 310000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'James Hill', 'market_value': 32000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7941}], 'xg_override': 0.1208}
totalShots: 1.5386 -> 1.6449
shotOffTarget: 0.9659 -> 1.0326
onTargetScoringAttempt: 0.5727 -> 0.6123
bigChanceMissed: 0.2228 -> 0.2382
expectedGoalsOnTarget: 0.1822 -> 0.1948
goals: 0.1724 -> 0.1843
expectedGoals: 0.113 -> 0.1208
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.64 (squad xG sum 1.4417, xG scale 1.1348, xA scale 1.1348, team xA 1.12 = 0.68 x lambda)scoreline_reset=true
team_lambda=1.636
squad_xg_sum=1.4417
squad_xa_sum=0.9865
team_expected_assists=1.1195
team_xa_to_xg_ratio=0.6843
expected_goals: 0.1208 -> 0.1371
expected_assists: 0.0973 -> 0.1104
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_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.1281
goal_rate=0.1843
scorer_weight=0.1714
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1045
assist_rate=0.167
provider_weight=0.138
-
Carlos BalebaM7400.100.02286%10.56.843.122XGBoost 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.0147, quality 0.859)market_value_eur=63000000
quality_factor=0.8589
boost_factor=1.0147
reference_quality=0.505
history_matches=31
history_shrink=0.1389
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Ryan Christie', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.582, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.2388, 'skill_edge': 0.1585, 'height_edge': 0.004, 'attacker_skill': 0.876, 'defender_skill': 0.5238, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Ryan Christie', 'market_value': 8600000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.5238}], 'xg_override': 0.084}
aerialWon: 1.7016 -> 1.0
totalShots: 0.8999 -> 1.1148
shotOffTarget: 0.6192 -> 0.7671
onTargetScoringAttempt: 0.2807 -> 0.3477
bigChanceMissed: 0.088 -> 0.109
expectedGoals: 0.0678 -> 0.084
goals: 0.0665 -> 0.0824
expectedGoalsOnTarget: 0.0266 -> 0.033
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.64 (squad xG sum 1.4417, xG scale 1.1348, xA scale 1.1348, team xA 1.12 = 0.68 x lambda)scoreline_reset=true
team_lambda=1.636
squad_xg_sum=1.4417
squad_xa_sum=0.9865
team_expected_assists=1.1195
team_xa_to_xg_ratio=0.6843
expected_goals: 0.084 -> 0.0953
expected_assists: 0.0468 -> 0.0531
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 80.0)match_squad_rank=12
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0909
goal_rate=0.0824
scorer_weight=0.0942
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0517
assist_rate=0.0436
provider_weight=0.0513
-
Andrey SantosM7500.070.0483%10.16.940.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.0127, quality 0.800)market_value_eur=44000000
quality_factor=0.8002
boost_factor=1.0127
reference_quality=0.505
history_matches=30
history_shrink=0.1429
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0056)blend_weight=0.0056
history_matches=30
season_overlap_discount=1.0
per90_to_match_factor=0.8348
prior_reliability=0.06
competition=Premier League
fouls: 0.6114 -> 0.6183
interceptionWon: 0.9241 -> 0.919
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Ryan Christie', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.566, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.2144, 'skill_edge': 0.1378, 'height_edge': 0.008, 'attacker_skill': 0.8301, 'defender_skill': 0.5238, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Ryan Christie', 'market_value': 8600000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.5238}], 'xg_override': 0.0628}
aerialWon: 0.9116 -> 1.1
totalShots: 0.5239 -> 0.6362
shotOffTarget: 0.37 -> 0.4493
onTargetScoringAttempt: 0.1539 -> 0.1869
expectedGoalsOnTarget: 0.1175 -> 0.1427
goals: 0.0709 -> 0.0861
bigChanceMissed: 0.0633 -> 0.0769
expectedGoals: 0.0517 -> 0.0628
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.64 (squad xG sum 1.4417, xG scale 1.1348, xA scale 1.1348, team xA 1.12 = 0.68 x lambda)scoreline_reset=true
team_lambda=1.636
squad_xg_sum=1.4417
squad_xa_sum=0.9865
team_expected_assists=1.1195
team_xa_to_xg_ratio=0.6843
expected_goals: 0.0628 -> 0.0713
expected_assists: 0.0472 -> 0.0536
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 80.0)match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0688
goal_rate=0.0861
scorer_weight=0.086
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0522
assist_rate=0.0422
provider_weight=0.0508
-
Diogo DalotD8800.080.04114%10.86.853.228FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0067, quality 0.702)market_value_eur=28000000
quality_factor=0.7022
boost_factor=1.0067
reference_quality=0.505
history_matches=39
history_shrink=0.1136
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0044)blend_weight=0.0044
history_matches=39
season_overlap_discount=1.0
per90_to_match_factor=0.9731
prior_reliability=0.06
competition=Premier League
totalCross: 1.8429 -> 1.8587
totalShots: 0.9954 -> 1.0095
interceptionWon: 1.0008 -> 1.0059
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Justin Kluivert', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.64 (squad xG sum 1.4417, xG scale 1.1348, xA scale 1.1348, team xA 1.12 = 0.68 x lambda)scoreline_reset=true
team_lambda=1.636
squad_xg_sum=1.4417
squad_xa_sum=0.9865
team_expected_assists=1.1195
team_xa_to_xg_ratio=0.6843
expected_goals: 0.0695 -> 0.0789
expected_assists: 0.0658 -> 0.0747
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 15 by projected rating, fifa_overall 78.0)match_squad_rank=15
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0759
goal_rate=0.003
scorer_weight=0.0631
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.072
assist_rate=0.0229
provider_weight=0.0598
-
Harry MaguireD8900.050.04ok10.66.953.526FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0000, quality 0.506)market_value_eur=8600000
quality_factor=0.5059
boost_factor=1.0
reference_quality=0.505
history_matches=28
history_shrink=0.1515
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0131)blend_weight=0.0131
history_matches=28
season_overlap_discount=1.0
per90_to_match_factor=0.9894
prior_reliability=0.1333
competition=Premier League
totalShots: 0.7606 -> 0.7701
wonTackle: 0.7133 -> 0.7039
interceptionWon: 1.0207 -> 1.0268
totalCross: 0.5972 -> 0.6023
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Marcus Tavernier', 'matchup_zone': 'Shape fallback'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.64 (squad xG sum 1.4417, xG scale 1.1348, xA scale 1.1348, team xA 1.12 = 0.68 x lambda)scoreline_reset=true
team_lambda=1.636
squad_xg_sum=1.4417
squad_xa_sum=0.9865
team_expected_assists=1.1195
team_xa_to_xg_ratio=0.6843
expected_goals: 0.0437 -> 0.0496
expected_assists: 0.0582 -> 0.066
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: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0484
goal_rate=0.0052
scorer_weight=0.0397
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0639
assist_rate=0.0386
provider_weight=0.054
-
Ayden HeavenD8500.060.01310%10.16.819.528FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0148, quality 0.732)market_value_eur=32000000
quality_factor=0.732
boost_factor=1.0148
reference_quality=0.505
history_matches=18
history_shrink=0.2174
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0094)blend_weight=0.0094
history_matches=18
season_overlap_discount=1.0
per90_to_match_factor=0.9459
prior_reliability=0.0667
competition=Premier League
totalShots: 0.4959 -> 0.5091
wonTackle: 0.8473 -> 0.8393
interceptionWon: 0.8007 -> 0.7932
wasFouled: 1.1902 -> 1.1968
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Rayan', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.64 (squad xG sum 1.4417, xG scale 1.1348, xA scale 1.1348, team xA 1.12 = 0.68 x lambda)scoreline_reset=true
team_lambda=1.636
squad_xg_sum=1.4417
squad_xa_sum=0.9865
team_expected_assists=1.1195
team_xa_to_xg_ratio=0.6843
expected_goals: 0.0505 -> 0.0573
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 75.0)match_squad_rank=14
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0557
goal_rate=0.0
scorer_weight=0.0458
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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
-
Leny YoroD8500.120.04222%00.26.631.328FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0110, quality 0.791)market_value_eur=42000000
quality_factor=0.7909
boost_factor=1.011
reference_quality=0.505
history_matches=34
history_shrink=0.1282
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0011)blend_weight=0.0011
history_matches=34
season_overlap_discount=1.0
per90_to_match_factor=0.9486
prior_reliability=0.0133
competition=Premier League
interceptionWon: 1.24 -> 1.2491
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Rayan', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.64 (squad xG sum 1.4417, xG scale 1.1348, xA scale 1.1348, team xA 1.12 = 0.68 x lambda)scoreline_reset=true
team_lambda=1.636
squad_xg_sum=1.4417
squad_xa_sum=0.9865
team_expected_assists=1.1195
team_xa_to_xg_ratio=0.6843
expected_goals: 0.1066 -> 0.121
expected_assists: 0.0539 -> 0.0612
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.114
goal_rate=0.0
scorer_weight=0.0968
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0594
assist_rate=0.0
provider_weight=0.049
-
Senne LammensG9000.00-n/a0.07.059.029FBref Prior G_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost G_service raw output over 3 target models--
market_value_boostMarket-value quality scaling (boost 1.0095, quality 0.770)market_value_eur=38000000
quality_factor=0.7699
boost_factor=1.0095
reference_quality=0.505
history_matches=37
history_shrink=0.119
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0103)blend_weight=0.0103
history_matches=37
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Rayan, Marcus Tavernier', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.2021}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.64 (squad xG sum 1.4417, xG scale 1.1348, xA scale 1.1348, team xA 1.12 = 0.68 x lambda)scoreline_reset=true
team_lambda=1.636
squad_xg_sum=1.4417
squad_xa_sum=0.9865
team_expected_assists=1.1195
team_xa_to_xg_ratio=0.6843
shots_faced: 11.4 -> 11.3
expected_saves: 2.79 -> 2.77
high_pressure_saves: 0.96 -> 0.95
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 82.0)match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.7147
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.1211
-
Team totals11.64166.9
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
André OnanaG4.7m12.3%Market-value substitute prior
Lisandro MartínezD15.1m24.8%Market-value substitute prior
Matthijs de LigtD14.7m35.2%Market-value substitute prior
Kobbie MainooM23.9m53.5%Market-value substitute prior
Patrick DorguM16.5m52.4%Market-value substitute prior
Matheus CunhaF27.1m37.0%Market-value substitute prior

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
James HillD9000.010.0343%00.37.058.629FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0087, quality 0.732)market_value_eur=32000000
quality_factor=0.732
boost_factor=1.0087
reference_quality=0.505
history_matches=34
history_shrink=0.1282
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0111)blend_weight=0.0111
history_matches=34
season_overlap_discount=1.0
per90_to_match_factor=0.9991
prior_reliability=0.1333
competition=Premier League
fouls: 0.9075 -> 0.9141
totalShots: 0.4807 -> 0.4754
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Bryan Mbeumo', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.19 (squad xG sum 1.4966, xG scale 0.7918, xA scale 0.8381, team xA 0.77 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.185
squad_xg_sum=1.4966
squad_xa_sum=0.919
team_expected_assists=0.7703
team_xa_to_xg_ratio=0.65
expected_assists: 0.0899 -> 0.0753
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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0145
goal_rate=0.0
scorer_weight=0.0117
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0725
assist_rate=0.0235
provider_weight=0.0602
-
Adam SmithD8400.000.00153%00.06.634.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.9968, quality 0.437)market_value_eur=310000
quality_factor=0.4374
boost_factor=0.9968
reference_quality=0.505
history_matches=27
history_shrink=0.1562
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0135)blend_weight=0.0135
history_matches=27
season_overlap_discount=1.0
per90_to_match_factor=0.93
prior_reliability=0.1333
competition=Premier League
interceptionWon: 0.8047 -> 0.8127
fouls: 1.3826 -> 1.3765
wonTackle: 0.8922 -> 0.8864
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Bryan Mbeumo', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.19 (squad xG sum 1.4966, xG scale 0.7918, xA scale 0.8381, team xA 0.77 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.185
squad_xg_sum=1.4966
squad_xa_sum=0.919
team_expected_assists=0.7703
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 73.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.0013
goal_rate=0.0
scorer_weight=0.0013
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0161
assist_rate=0.0715
provider_weight=0.0202
-
Đorđe PetrovićG9000.00-n/a0.06.957.729FBref 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
saves: 2.8419 -> 2.8569
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Bryan Mbeumo, Bruno Fernandes', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.6126}
-
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.19 (squad xG sum 1.4966, xG scale 0.7918, xA scale 0.8381, team xA 0.77 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.185
squad_xg_sum=1.4966
squad_xa_sum=0.919
team_expected_assists=0.7703
team_xa_to_xg_ratio=0.65
shots_faced: 15.3 -> 15.5
expected_saves: 3.74 -> 3.79
high_pressure_saves: 1.29 -> 1.31
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 79.0)match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.1944
-
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.7322
-
António SilvaD9000.140.0872%10.47.034.910FBref Prior D_service
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.0341, quality 0.732)market_value_eur=32000000
quality_factor=0.732
boost_factor=1.0341
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=1.0
prior_reliability=0.1333
competition=Premier League
totalShots: 0.8009 -> 0.7879
interceptionWon: 1.2294 -> 1.2195
wonTackle: 0.7933 -> 0.8023
wasFouled: 0.2014 -> 0.1927
onTargetScoringAttempt: 0.2014 -> 0.1927
fouls: 0.6516 -> 0.645
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Bryan Mbeumo', 'matchup_zone': 'Shape fallback'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 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.19 (squad xG sum 1.4966, xG scale 0.7918, xA scale 0.8381, team xA 0.77 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.185
squad_xg_sum=1.4966
squad_xa_sum=0.919
team_expected_assists=0.7703
team_xa_to_xg_ratio=0.65
expected_goals: 0.1828 -> 0.1447
expected_assists: 0.065 -> 0.0545
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.1347
goal_rate=0.0
scorer_weight=0.1158
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.053
assist_rate=0.0
provider_weight=0.0436
-
Adrien TruffertD9000.040.04ok10.46.957.329FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0073, quality 0.739)market_value_eur=33000000
quality_factor=0.7389
boost_factor=1.0073
reference_quality=0.505
history_matches=43
history_shrink=0.1042
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0090)blend_weight=0.009
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=0.9994
prior_reliability=0.1333
competition=Premier League
totalCross: 3.9625 -> 3.9493
wonTackle: 1.5036 -> 1.4945
totalShots: 0.7461 -> 0.7394
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Bruno Fernandes', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.19 (squad xG sum 1.4966, xG scale 0.7918, xA scale 0.8381, team xA 0.77 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.185
squad_xg_sum=1.4966
squad_xa_sum=0.919
team_expected_assists=0.7703
team_xa_to_xg_ratio=0.65
expected_goals: 0.0504 -> 0.0399
expected_assists: 0.0834 -> 0.0699
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 80.0)match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0391
goal_rate=0.0309
scorer_weight=0.0322
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0675
assist_rate=0.1542
provider_weight=0.0874
-
Ryan ChristieM6900.070.06ok10.86.850.024FBref Prior M_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0000, quality 0.506)market_value_eur=8600000
quality_factor=0.5059
boost_factor=1.0
reference_quality=0.505
history_matches=30
history_shrink=0.1429
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Carlos Baleba', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.258, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.7612, 'skill_edge': -0.1585, 'height_edge': -0.004, 'attacker_skill': 0.5238, 'defender_skill': 0.876, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Carlos Baleba', 'market_value': 63000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.876}], 'xg_override': 0.0898}
totalShots: 1.144 -> 0.8708
shotOffTarget: 0.7543 -> 0.5742
aerialWon: 1.1091 -> 1.0
onTargetScoringAttempt: 0.3897 -> 0.2966
bigChanceMissed: 0.3217 -> 0.2449
expectedGoals: 0.118 -> 0.0898
goals: 0.0938 -> 0.0714
expectedGoalsOnTarget: 0.0752 -> 0.0572
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.19 (squad xG sum 1.4966, xG scale 0.7918, xA scale 0.8381, team xA 0.77 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.185
squad_xg_sum=1.4966
squad_xa_sum=0.919
team_expected_assists=0.7703
team_xa_to_xg_ratio=0.65
expected_goals: 0.0898 -> 0.0711
expected_assists: 0.0514 -> 0.0431
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 78.0)match_squad_rank=12
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0686
goal_rate=0.0714
scorer_weight=0.0617
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0422
assist_rate=0.0734
provider_weight=0.0525
-
EvanilsonF8300.160.2433%21.66.754.729FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0076, quality 0.739)market_value_eur=33000000
quality_factor=0.7389
boost_factor=1.0076
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.919
prior_reliability=0.1133
competition=Premier League
fouls: 1.3764 -> 1.387
totalOffside: 0.9788 -> 0.971
wasFouled: 1.7476 -> 1.7552
interceptionWon: 0.7176 -> 0.7248
goalAssist: 0.3263 -> 0.3323
onTargetScoringAttempt: 0.6987 -> 0.6931
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Ayden Heaven, Leny Yoro', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.8974, 'skill_edge': -0.0358, 'height_edge': -0.034, 'attacker_skill': 0.7389, 'defender_skill': 0.8184, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Ayden Heaven', 'market_value': 32000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7941}, {'player': 'Leny Yoro', 'market_value': 42000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8427}], 'xg_override': 0.204}
totalShots: 1.7227 -> 1.546
shotOffTarget: 1.0248 -> 0.9197
onTargetScoringAttempt: 0.6931 -> 0.622
bigChanceMissed: 0.5293 -> 0.475
expectedGoals: 0.2273 -> 0.204
goals: 0.2228 -> 0.1999
expectedGoalsOnTarget: 0.1545 -> 0.1386
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.19 (squad xG sum 1.4966, xG scale 0.7918, xA scale 0.8381, team xA 0.77 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.185
squad_xg_sum=1.4966
squad_xa_sum=0.919
team_expected_assists=0.7703
team_xa_to_xg_ratio=0.65
expected_goals: 0.204 -> 0.1615
expected_assists: 0.0664 -> 0.0556
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 79.0)match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.1491
goal_rate=0.1999
scorer_weight=0.1589
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0541
assist_rate=0.3323
provider_weight=0.0695
-
Marcus TavernierF8500.210.24ok21.77.451.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.0064, quality 0.694)market_value_eur=27000000
quality_factor=0.6941
boost_factor=1.0064
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.9468
prior_reliability=0.1333
competition=Premier League
wasFouled: 1.2239 -> 1.2305
totalShots: 2.516 -> 2.5099
onTargetScoringAttempt: 1.0633 -> 1.0575
totalCross: 4.6905 -> 4.6956
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Ayden Heaven, Leny Yoro', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.8502, 'skill_edge': -0.0559, 'height_edge': -0.046, 'attacker_skill': 0.6941, 'defender_skill': 0.8184, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Ayden Heaven', 'market_value': 32000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7941}, {'player': 'Leny Yoro', 'market_value': 42000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8427}], 'xg_override': 0.2602}
totalShots: 2.5102 -> 2.1342
shotOffTarget: 1.4527 -> 1.2351
onTargetScoringAttempt: 1.0575 -> 0.8991
expectedGoalsOnTarget: 0.4082 -> 0.3471
goals: 0.3935 -> 0.3346
expectedGoals: 0.3061 -> 0.2602
bigChanceMissed: 0.0933 -> 0.0793
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.19 (squad xG sum 1.4966, xG scale 0.7918, xA scale 0.8381, team xA 0.77 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.185
squad_xg_sum=1.4966
squad_xa_sum=0.919
team_expected_assists=0.7703
team_xa_to_xg_ratio=0.65
expected_goals: 0.2602 -> 0.206
expected_assists: 0.1856 -> 0.1557
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 79.0)match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.1862
goal_rate=0.3346
scorer_weight=0.2554
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.1442
assist_rate=0.0281
provider_weight=0.1246
-
Justin KluivertM7600.140.0961%21.06.835.913FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0085, quality 0.669)market_value_eur=24000000
quality_factor=0.6685
boost_factor=1.0085
reference_quality=0.505
history_matches=24
history_shrink=0.1724
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0127)blend_weight=0.0127
history_matches=24
season_overlap_discount=1.0
per90_to_match_factor=0.8417
prior_reliability=0.1133
competition=Premier League
onTargetScoringAttempt: 0.6687 -> 0.6789
totalShots: 1.7924 -> 1.8008
totalCross: 2.1475 -> 2.1391
wonTackle: 0.585 -> 0.5901
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Diogo Dalot', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.377, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 0.8493, 'skill_edge': -0.0505, 'height_edge': -0.052, 'attacker_skill': 0.6685, 'defender_skill': 0.7808, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Diogo Dalot', 'market_value': 28000000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.7808}], 'xg_override': 0.1733}
aerialWon: 0.4353 -> 0.8
totalShots: 1.8026 -> 1.531
shotOffTarget: 1.1237 -> 0.9544
onTargetScoringAttempt: 0.6789 -> 0.5766
expectedGoalsOnTarget: 0.3555 -> 0.3019
goals: 0.2058 -> 0.1748
expectedGoals: 0.2041 -> 0.1733
bigChanceMissed: 0.1377 -> 0.1169
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.19 (squad xG sum 1.4966, xG scale 0.7918, xA scale 0.8381, team xA 0.77 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.185
squad_xg_sum=1.4966
squad_xa_sum=0.919
team_expected_assists=0.7703
team_xa_to_xg_ratio=0.65
expected_goals: 0.1733 -> 0.1372
expected_assists: 0.103 -> 0.0863
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 79.0)match_squad_rank=11
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.1282
goal_rate=0.1748
scorer_weight=0.1381
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0827
assist_rate=0.1018
provider_weight=0.0856
-
RayanF8400.210.1356%21.56.948.935FBref 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.0206, quality 0.848)market_value_eur=58000000
quality_factor=0.8478
boost_factor=1.0206
reference_quality=0.505
history_matches=20
history_shrink=0.2
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0173)blend_weight=0.0173
history_matches=20
season_overlap_discount=1.0
per90_to_match_factor=0.9346
prior_reliability=0.1333
competition=Premier League
totalCross: 2.0412 -> 2.0058
wasFouled: 0.8843 -> 0.869
totalShots: 2.1451 -> 2.157
onTargetScoringAttempt: 0.774 -> 0.7852
wonTackle: 0.6434 -> 0.6323
fouls: 0.3989 -> 0.392
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Ayden Heaven, Leny Yoro', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.195, 'pressing_faced': 'HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.993, 'skill_edge': 0.0133, 'height_edge': -0.018, 'attacker_skill': 0.8478, 'defender_skill': 0.8184, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Ayden Heaven', 'market_value': 32000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7941}, {'player': 'Leny Yoro', 'market_value': 42000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8427}], 'xg_override': 0.2612}
totalShots: 2.157 -> 2.1419
shotOffTarget: 1.3711 -> 1.3615
onTargetScoringAttempt: 0.7852 -> 0.7797
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.19 (squad xG sum 1.4966, xG scale 0.7918, xA scale 0.8381, team xA 0.77 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.185
squad_xg_sum=1.4966
squad_xa_sum=0.919
team_expected_assists=0.7703
team_xa_to_xg_ratio=0.65
expected_goals: 0.2612 -> 0.2069
expected_assists: 0.0971 -> 0.0814
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 79.0)match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.1869
goal_rate=0.2513
scorer_weight=0.2003
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0782
assist_rate=0.0369
provider_weight=0.0651
-
Tyler AdamsM8000.020.00269%00.16.948.121FBref Prior M_service
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.725)market_value_eur=31000000
quality_factor=0.7249
boost_factor=1.0094
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.8861
prior_reliability=0.0267
competition=Premier League
interceptionWon: 1.5516 -> 1.5587
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': 'Carlos Baleba', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.352, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9004, 'skill_edge': -0.0518, 'height_edge': -0.016, 'attacker_skill': 0.761, 'defender_skill': 0.876, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Carlos Baleba', 'market_value': 63000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.876}], 'xg_override': 0.0221}
aerialWon: 1.1101 -> 0.9
totalShots: 0.5478 -> 0.4932
shotOffTarget: 0.4067 -> 0.3662
onTargetScoringAttempt: 0.1411 -> 0.127
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.19 (squad xG sum 1.4966, xG scale 0.7918, xA scale 0.8381, team xA 0.77 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.185
squad_xg_sum=1.4966
squad_xa_sum=0.919
team_expected_assists=0.7703
team_xa_to_xg_ratio=0.65
expected_assists: 0.0364 -> 0.0305
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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0173
goal_rate=0.0298
scorer_weight=0.0194
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.03
assist_rate=0.0531
provider_weight=0.0364
-
Team totals01.19156.9
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Michele Di GregorioG4.7m12.3%Market-value substitute prior
Bafodé DiakitéD14.4m33.9%Market-value substitute prior
Álex JiménezD14.3m33.3%Market-value substitute prior
Alex ScottM23.7m34.3%Market-value substitute prior
Hamed Junior TraorèM22.5m52.2%Market-value substitute prior
Eli Junior KroupiF27.0m63.7%Market-value substitute prior
Antagonist / tactical summary
Home midfield dominates with ~52% possession expected (Carlos Baleba vs Tyler Adams). Total antagonist xG — Home: 1.01, Away: 1.01. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Midfield — possession 51.9% / 48.1%, dominance ratio 0.56, key duel: Carlos Baleba vs Tyler Adams
Bruno Fernandes xG 0.29Youri Tielemans xG 0.07Bryan Mbeumo xG 0.39Justin Kluivert xG 0.17Rayan xG 0.26Evanilson xG 0.20

Summary

Antagonist matchup analysis for Man Utd vs Bournemouth. Most likely scoreline: 1-0. Lambdas derived from 6 home and 6 away individual player duels. Head-to-head: Man Utd 4W-4D-2L vs Bournemouth 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 (Carlos Baleba vs Tyler Adams). Total antagonist xG — Home: 1.01, Away: 1.01. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.

Hull vs Brentford

Premier League · 20261025 · 5-4-1 vs 4-2-3-1
Predicted 1-2Winner: BrentfordWinning H 2-1 (5.6%)Winning A 1-2 (9.9%)Confidence 0.74λ home/away 1.09 / 1.91Most-likely P 9.9%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset Tracing
Antagonist + XGBoost match analysis for Hull vs Brentford. Player statistics regressed using position-specific XGBoost models (G, D, M, F) with 2026-2027 FBref priors. Micro-duels resolved across 5-4-1 vs 4-2-3-1 (duel lambdas: Home 1.165, Away 1.836). Final calibrated Poisson lambdas: Home 1.087, Away 1.909 (most likely score 1-2).
Home Starters 11/11 XGBoost (8 FBref) Away Starters 11/11 XGBoost (10 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.17 / 1.84 Final λ (H/A) 1.09 / 1.91
FBref Team Priors: Hull City (Gls/90: 1.5, GA/90: 1.5 → E[λ]: 2.069) vs Brentford (Gls/90: 2.0, GA/90: 2.0 → E[λ]: 2.069) | Blend Weight: 0.192
Modeling Pipeline Stages (5 layers)
  1. 1. XGBoost player regressions for volume & event rates with market-value quality scaling
  2. 2. Multi-source prior blending (FBref 2026-2027 tables + Sofascore season history)
  3. 3. Antagonist formation duel matrix resolving 1v1 and zonal matchups
  4. 4. Team-level prior calibration (FBref possession and attack/defense efficiencies)
  5. 5. Bivariate Poisson matrix with Dixon-Coles low-score correction

Standing & form context

MetricHullBrentford
League position9.006.00
Points per game1.321.40
Attack index0.971.05
Defense (concede) index0.880.94
Form multiplier0.991.00
Standing λ multiplier0.940.99

Lambda decomposition (how the goal rates were built)

StageHull λBrentford λ
FBref Squad Prior E[λ] (weight 0.192)2.0692.069
Pre-mismatch1.1741.822
Pre-competitive-floor1.1412.005
Pre-calibration (Micro-duels)1.1651.836
Final λ1.0871.909
competition calibration scale 1.0competition observed total goals 0.0quality gap applied Truemismatch score pressure applied Truecompetitive underdog floor applied Falsestage discount 1.0

Scoreline distribution & markets

Top 5 scorelinesP
1-110.4%
1-29.9%
0-19.5%
0-29.1%
1-36.3%
Home win21.2%
Draw22.3%
Away win56.5%
Over 2.557.6%
BTTS yes56.5%
Pregame fair line — favorite Brentford (56.5%), fair total 3.00, fair spread -0.82

Projected players vs season baseline

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

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Oliver McBurnieF8610.250.12106%21.06.933.710FBref 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.9983, quality 0.494)market_value_eur=7600000
quality_factor=0.4939
boost_factor=0.9983
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.9537
prior_reliability=0.1333
competition=Premier League
totalShots: 1.9596 -> 1.916
goals: 0.2861 -> 0.2737
interceptionWon: 0.2691 -> 0.2574
onTargetScoringAttempt: 0.7105 -> 0.721
goalAssist: 0.2288 -> 0.2189
wonTackle: 0.2288 -> 0.2189
wasFouled: 2.1963 -> 2.2044
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Sepp van den Berg, Kristoffer Ajer', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 0.776, 'skill_edge': -0.1284, 'height_edge': -0.024, 'attacker_skill': 0.4939, 'defender_skill': 0.7792, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Sepp van den Berg', 'market_value': 33000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8002}, {'player': 'Kristoffer Ajer', 'market_value': 27000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7581}], 'xg_override': 0.224}
totalShots: 1.9701 -> 1.5288
shotOffTarget: 1.2491 -> 0.9693
onTargetScoringAttempt: 0.721 -> 0.5595
bigChanceMissed: 0.5638 -> 0.4375
expectedGoals: 0.2886 -> 0.224
goals: 0.2737 -> 0.2124
expectedGoalsOnTarget: 0.1327 -> 0.103
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.09 (squad xG sum 0.9598, xG scale 1.1326, xA scale 1.2942, team xA 0.71 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.087
squad_xg_sum=0.9598
squad_xa_sum=0.5459
team_expected_assists=0.7066
team_xa_to_xg_ratio=0.65
expected_goals: 0.224 -> 0.2538
expected_assists: 0.0398 -> 0.0515
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=1
goal_probability=0.2242
goal_rate=0.2124
scorer_weight=0.2431
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0502
assist_rate=0.2189
provider_weight=0.0644
-
Sorba ThomasF7400.140.03390%10.46.817.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 1.0129, quality 0.574)market_value_eur=14500000
quality_factor=0.5737
boost_factor=1.0129
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=true
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Sepp van den Berg, Kristoffer Ajer', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 0.8111, 'skill_edge': -0.0925, 'height_edge': -0.036, 'attacker_skill': 0.5737, 'defender_skill': 0.7792, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Sepp van den Berg', 'market_value': 33000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8002}, {'player': 'Kristoffer Ajer', 'market_value': 27000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7581}], 'xg_override': 0.1223}
totalShots: 1.6333 -> 1.3248
shotOffTarget: 1.098 -> 0.8906
onTargetScoringAttempt: 0.5353 -> 0.4342
goals: 0.2181 -> 0.1769
expectedGoals: 0.1508 -> 0.1223
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.09 (squad xG sum 0.9598, xG scale 1.1326, xA scale 1.2942, team xA 0.71 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.087
squad_xg_sum=0.9598
squad_xa_sum=0.5459
team_expected_assists=0.7066
team_xa_to_xg_ratio=0.65
expected_goals: 0.1223 -> 0.1385
expected_assists: 0.0723 -> 0.0936
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 75.0)match_squad_rank=11
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1293
goal_rate=0.1769
scorer_weight=0.1731
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0894
assist_rate=0.0
provider_weight=0.0749
-
Regan SlaterM8700.070.02247%10.46.834.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.0012, quality 0.513)market_value_eur=9200000
quality_factor=0.513
boost_factor=1.0012
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.9617
prior_reliability=0.1333
competition=Premier League
totalShots: 1.0603 -> 1.0144
interceptionWon: 0.8896 -> 0.8511
fouls: 0.6427 -> 0.6773
goalAssist: 0.0957 -> 0.1124
onTargetScoringAttempt: 0.3331 -> 0.3187
totalCross: 1.1309 -> 1.1236
wasFouled: 0.6309 -> 0.6244
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Michael Kayode', 'matchup_zone': 'Left Mid vs Right Back — Wide Channel', 'duel_win_rate': 0.293, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.7551, 'skill_edge': -0.1426, 'height_edge': -0.024, 'attacker_skill': 0.5251, 'defender_skill': 0.8419, 'attacker_role': 'LM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Michael Kayode', 'market_value': 39000000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.8419}], 'xg_override': 0.0655}
aerialWon: 1.2504 -> 0.9
totalShots: 1.0459 -> 0.7898
shotOffTarget: 0.7272 -> 0.5491
onTargetScoringAttempt: 0.3187 -> 0.2407
expectedGoals: 0.0867 -> 0.0655
goals: 0.0687 -> 0.0519
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.09 (squad xG sum 0.9598, xG scale 1.1326, xA scale 1.2942, team xA 0.71 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.087
squad_xg_sum=0.9598
squad_xa_sum=0.5459
team_expected_assists=0.7066
team_xa_to_xg_ratio=0.65
expected_goals: 0.0655 -> 0.0742
expected_assists: 0.0943 -> 0.122
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 72.0)match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0715
goal_rate=0.0519
scorer_weight=0.0655
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1149
assist_rate=0.1124
provider_weight=0.1373
-
Tim IroegbunamM8300.080.02296%10.46.840.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.0032, quality 0.585)market_value_eur=15500000
quality_factor=0.5846
boost_factor=1.0032
reference_quality=0.505
history_matches=32
history_shrink=0.1351
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0006)blend_weight=0.0006
history_matches=32
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': 'Mikkel Damsgaard', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.393, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 0.9169, 'skill_edge': -0.0645, 'height_edge': 0.008, 'attacker_skill': 0.6029, 'defender_skill': 0.7463, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Mikkel Damsgaard', 'market_value': 29000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.7463}], 'xg_override': 0.0745}
aerialWon: 1.392 -> 1.1
totalShots: 0.8031 -> 0.7364
shotOffTarget: 0.6028 -> 0.5527
onTargetScoringAttempt: 0.2003 -> 0.1837
expectedGoals: 0.0812 -> 0.0745
goals: 0.0644 -> 0.059
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.09 (squad xG sum 0.9598, xG scale 1.1326, xA scale 1.2942, team xA 0.71 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.087
squad_xg_sum=0.9598
squad_xa_sum=0.5459
team_expected_assists=0.7066
team_xa_to_xg_ratio=0.65
expected_goals: 0.0745 -> 0.0844
expected_assists: 0.0306 -> 0.0396
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: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0809
goal_rate=0.059
scorer_weight=0.0739
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0388
assist_rate=0.0545
provider_weight=0.0495
-
Mohamed BelloumiF7900.200.07179%21.36.936.320XGBoost 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.0145, quality 0.602)market_value_eur=17100000
quality_factor=0.6016
boost_factor=1.0145
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': 'Sepp van den Berg, Kristoffer Ajer', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 0.7943, 'skill_edge': -0.0799, 'height_edge': -0.06, 'attacker_skill': 0.6016, 'defender_skill': 0.7792, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Sepp van den Berg', 'market_value': 33000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8002}, {'player': 'Kristoffer Ajer', 'market_value': 27000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7581}], 'xg_override': 0.1752}
totalShots: 2.28 -> 1.811
shotOffTarget: 1.436 -> 1.1406
onTargetScoringAttempt: 0.844 -> 0.6704
expectedGoalsOnTarget: 0.3131 -> 0.2487
bigChanceMissed: 0.2735 -> 0.2172
goals: 0.2507 -> 0.1991
expectedGoals: 0.2206 -> 0.1752
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.09 (squad xG sum 0.9598, xG scale 1.1326, xA scale 1.2942, team xA 0.71 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.087
squad_xg_sum=0.9598
squad_xa_sum=0.5459
team_expected_assists=0.7066
team_xa_to_xg_ratio=0.65
expected_goals: 0.1752 -> 0.1984
expected_assists: 0.1067 -> 0.1382
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.18
goal_rate=0.1991
scorer_weight=0.2195
-
integer_assist_projectionTeam scoreline allocation: 1 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.1291
assist_rate=0.4415
provider_weight=0.1727
-
Ryan GilesD9000.000.0062%00.16.734.210FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0103, quality 0.574)market_value_eur=14500000
quality_factor=0.5737
boost_factor=1.0103
reference_quality=0.505
history_matches=5
history_shrink=0.5
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0412)blend_weight=0.0412
history_matches=5
season_overlap_discount=1.0
per90_to_match_factor=0.9944
prior_reliability=0.1267
competition=Premier League
totalCross: 9.2559 -> 9.1549
interceptionWon: 0.8586 -> 0.8448
fouls: 0.2724 -> 0.2612
wasFouled: 0.2316 -> 0.2221
goalAssist: 0.2316 -> 0.2221
wonTackle: 0.8423 -> 0.8507
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Michael Kayode, Caoimhin Kelleher', '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.09 (squad xG sum 0.9598, xG scale 1.1326, xA scale 1.2942, team xA 0.71 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.087
squad_xg_sum=0.9598
squad_xa_sum=0.5459
team_expected_assists=0.7066
team_xa_to_xg_ratio=0.65
expected_assists: 0.093 -> 0.1204
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 72.0)match_squad_rank=14
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0034
goal_rate=0.0
scorer_weight=0.0032
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1134
assist_rate=0.2221
provider_weight=0.1505
-
Lucas HerringtonD9000.010.00209%00.16.633.310FBref Prior D_service
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.8495 -> 0.8366
interceptionWon: 0.7526 -> 0.7412
totalShots: 0.3655 -> 0.36
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Jaidon Anthony', '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.09 (squad xG sum 0.9598, xG scale 1.1326, xA scale 1.2942, team xA 0.71 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.087
squad_xg_sum=0.9598
squad_xa_sum=0.5459
team_expected_assists=0.7066
team_xa_to_xg_ratio=0.65
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 16 by projected rating, fifa_overall 66.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.0072
goal_rate=0.0
scorer_weight=0.0064
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0136
assist_rate=0.0
provider_weight=0.0113
-
John EganD8800.010.01165%00.36.734.810FBref Prior D_service
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.9899, quality 0.437)market_value_eur=1500000
quality_factor=0.4374
boost_factor=0.9899
reference_quality=0.505
history_matches=5
history_shrink=0.5
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0433)blend_weight=0.0433
history_matches=5
season_overlap_discount=1.0
per90_to_match_factor=0.9743
prior_reliability=0.1333
competition=Premier League
fouls: 0.6466 -> 0.6186
wonTackle: 1.0022 -> 0.9799
totalShots: 0.4958 -> 0.4743
wasFouled: 0.1639 -> 0.1779
onTargetScoringAttempt: 0.2669 -> 0.2553
interceptionWon: 1.1211 -> 1.1147
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Mathias Jensen', 'matchup_zone': 'LW vs CB'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.09 (squad xG sum 0.9598, xG scale 1.1326, xA scale 1.2942, team xA 0.71 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.087
squad_xg_sum=0.9598
squad_xa_sum=0.5459
team_expected_assists=0.7066
team_xa_to_xg_ratio=0.65
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 72.0)match_squad_rank=12
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0135
goal_rate=0.0
scorer_weight=0.011
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0027
assist_rate=0.0
provider_weight=0.0026
-
Semi AjayiD8700.120.0779%10.36.734.110FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9899, quality 0.437)market_value_eur=930000
quality_factor=0.4374
boost_factor=0.9899
reference_quality=0.505
history_matches=5
history_shrink=0.5
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0368)blend_weight=0.0368
history_matches=5
season_overlap_discount=1.0
per90_to_match_factor=0.971
prior_reliability=0.1133
competition=Premier League
onTargetScoringAttempt: 0.1394 -> 0.1554
goals: 0.1394 -> 0.1553
wasFouled: 0.1639 -> 0.1789
wonTackle: 0.8926 -> 0.8808
interceptionWon: 0.901 -> 0.9099
totalCross: 0.3568 -> 0.3647
fouls: 0.1928 -> 0.1857
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Igor Thiago', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.09 (squad xG sum 0.9598, xG scale 1.1326, xA scale 1.2942, team xA 0.71 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.087
squad_xg_sum=0.9598
squad_xa_sum=0.5459
team_expected_assists=0.7066
team_xa_to_xg_ratio=0.65
expected_goals: 0.104 -> 0.1178
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 70.0)match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1111
goal_rate=0.1553
scorer_weight=0.1472
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0049
assist_rate=0.0
provider_weight=0.0046
-
Lewie CoyleD7800.030.01157%00.16.632.410FBref Prior D_service
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.9899, quality 0.437)market_value_eur=2700000
quality_factor=0.4374
boost_factor=0.9899
reference_quality=0.505
history_matches=5
history_shrink=0.5
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0282)blend_weight=0.0282
history_matches=5
season_overlap_discount=1.0
per90_to_match_factor=0.8638
prior_reliability=0.0867
competition=Premier League
wasFouled: 0.6065 -> 0.6643
fouls: 0.3032 -> 0.3321
totalShots: 0.3431 -> 0.3334
totalCross: 1.658 -> 1.6487
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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, Keane Lewis-Potter', '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.09 (squad xG sum 0.9598, xG scale 1.1326, xA scale 1.2942, team xA 0.71 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.087
squad_xg_sum=0.9598
squad_xa_sum=0.5459
team_expected_assists=0.7066
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.0339
goal_rate=0.0
scorer_weight=0.0276
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0191
assist_rate=0.0
provider_weight=0.0154
-
Konstantinos TzolakisG9000.00-n/a0.07.037.010XGBoost 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.0204, quality 0.641)market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.0204
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': 'Igor Thiago, Kevin Schade', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.8358}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.09 (squad xG sum 0.9598, xG scale 1.1326, xA scale 1.2942, team xA 0.71 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.087
squad_xg_sum=0.9598
squad_xa_sum=0.5459
team_expected_assists=0.7066
team_xa_to_xg_ratio=0.65
shots_faced: 17.4 -> 18.1
expected_saves: 4.25 -> 4.43
high_pressure_saves: 1.47 -> 1.53
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.1221
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.7801
-
Team totals11.09116.8
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

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Igor ThiagoF8910.540.49ok32.06.756.430FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0113, quality 0.868)market_value_eur=68000000
quality_factor=0.8677
boost_factor=1.0113
reference_quality=0.505
history_matches=43
history_shrink=0.1042
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0086)blend_weight=0.0086
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=0.9884
prior_reliability=0.1267
competition=Premier League
fouls: 1.9364 -> 1.9243
totalShots: 2.236 -> 2.2479
wasFouled: 0.5779 -> 0.5729
wonTackle: 0.5799 -> 0.5749
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'John Egan, Semi Ajayi', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.402, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.2964, 'skill_edge': 0.1936, 'height_edge': 0.008, 'attacker_skill': 0.8677, 'defender_skill': 0.4374, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'John Egan', 'market_value': 1500000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'Semi Ajayi', 'market_value': 930000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.5144}
totalShots: 2.2479 -> 2.9142
shotOffTarget: 1.4076 -> 1.8248
onTargetScoringAttempt: 0.8301 -> 1.0761
bigChanceMissed: 0.5996 -> 0.7773
expectedGoals: 0.3968 -> 0.5144
expectedGoalsOnTarget: 0.3649 -> 0.4731
goals: 0.3267 -> 0.4235
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.91 (squad xG sum 1.8156, xG scale 1.0514, xA scale 1.3606, team xA 1.24 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.909
squad_xg_sum=1.8156
squad_xa_sum=0.912
team_expected_assists=1.2409
team_xa_to_xg_ratio=0.65
expected_goals: 0.5144 -> 0.5408
expected_assists: 0.05 -> 0.068
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 82.0)match_squad_rank=14
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=1
goal_probability=0.4177
goal_rate=0.4235
scorer_weight=0.4537
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0657
assist_rate=0.0026
provider_weight=0.0544
-
Kevin SchadeF8610.390.2277%31.47.050.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.0109, quality 0.831)market_value_eur=52000000
quality_factor=0.8309
boost_factor=1.0109
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.9571
prior_reliability=0.1333
competition=Premier League
totalShots: 2.1658 -> 2.1825
wonTackle: 0.8146 -> 0.8298
onTargetScoringAttempt: 0.7641 -> 0.7708
wasFouled: 1.2555 -> 1.2618
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'John Egan, Semi Ajayi', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.353, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.225, 'skill_edge': 0.177, 'height_edge': -0.024, 'attacker_skill': 0.8309, 'defender_skill': 0.4374, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'John Egan', 'market_value': 1500000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'Semi Ajayi', 'market_value': 930000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.3711}
totalShots: 2.1825 -> 2.6736
shotOffTarget: 1.4017 -> 1.7171
onTargetScoringAttempt: 0.7708 -> 0.9442
bigChanceMissed: 0.4335 -> 0.531
goals: 0.3874 -> 0.4746
expectedGoals: 0.3029 -> 0.3711
expectedGoalsOnTarget: 0.2677 -> 0.3279
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.91 (squad xG sum 1.8156, xG scale 1.0514, xA scale 1.3606, team xA 1.24 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.909
squad_xg_sum=1.8156
squad_xa_sum=0.912
team_expected_assists=1.2409
team_xa_to_xg_ratio=0.65
expected_goals: 0.3711 -> 0.3902
expected_assists: 0.0506 -> 0.0688
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 79.0)match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=1
goal_probability=0.3231
goal_rate=0.4746
scorer_weight=0.4861
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0665
assist_rate=0.0161
provider_weight=0.055
-
Mikkel DamsgaardM8000.080.06ok10.87.154.129FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0072, quality 0.710)market_value_eur=29000000
quality_factor=0.71
boost_factor=1.0072
reference_quality=0.505
history_matches=38
history_shrink=0.1163
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0045)blend_weight=0.0045
history_matches=38
season_overlap_discount=1.0
per90_to_match_factor=0.8942
prior_reliability=0.06
competition=Premier League
totalCross: 3.3131 -> 3.3341
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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': 'Central Mid vs Defensive Mid — Pressing/Creation Duel'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.91 (squad xG sum 1.8156, xG scale 1.0514, xA scale 1.3606, team xA 1.24 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.909
squad_xg_sum=1.8156
squad_xa_sum=0.912
team_expected_assists=1.2409
team_xa_to_xg_ratio=0.65
expected_assists: 0.1752 -> 0.2384
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 80.0)match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0761
goal_rate=0.0838
scorer_weight=0.0846
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.2121
assist_rate=0.1071
provider_weight=0.1907
-
Jaidon AnthonyF8000.230.1378%21.26.849.837FBref 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=42
history_shrink=0.1064
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0041)blend_weight=0.0041
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.8846
prior_reliability=0.06
competition=Premier League
fouls: 1.0986 -> 1.1063
totalCross: 2.3011 -> 2.3079
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'John Egan, Semi Ajayi', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.236, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.0536, 'skill_edge': 0.0845, 'height_edge': -0.048, 'attacker_skill': 0.6251, 'defender_skill': 0.4374, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'John Egan', 'market_value': 1500000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'Semi Ajayi', 'market_value': 930000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.2229}
totalShots: 1.6712 -> 1.7608
shotOffTarget: 1.0886 -> 1.1469
onTargetScoringAttempt: 0.5753 -> 0.6061
expectedGoalsOnTarget: 0.2879 -> 0.3033
goals: 0.2516 -> 0.2651
expectedGoals: 0.2116 -> 0.2229
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.91 (squad xG sum 1.8156, xG scale 1.0514, xA scale 1.3606, team xA 1.24 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.909
squad_xg_sum=1.8156
squad_xa_sum=0.912
team_expected_assists=1.2409
team_xa_to_xg_ratio=0.65
expected_goals: 0.2229 -> 0.2344
expected_assists: 0.096 -> 0.1306
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 76.0)match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.209
goal_rate=0.2651
scorer_weight=0.2706
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1224
assist_rate=0.0575
provider_weight=0.1045
-
Mathias JensenM8200.090.0731%11.07.157.426FBref Prior M_service
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=37
history_shrink=0.119
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0036)blend_weight=0.0036
history_matches=37
season_overlap_discount=1.0
per90_to_match_factor=0.9107
prior_reliability=0.0467
competition=Premier League
fouls: 1.095 -> 1.1051
totalCross: 4.4209 -> 4.4284
totalShots: 1.1158 -> 1.1208
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'John Egan', 'matchup_zone': 'LW vs CB', 'duel_win_rate': 0.429, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0135, 'skill_edge': 0.0292, 'height_edge': -0.02, 'attacker_skill': 0.5023, 'defender_skill': 0.4374, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'John Egan', 'market_value': 1500000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.0824}
aerialWon: 0.2414 -> 1.1
totalShots: 1.1208 -> 1.1359
shotOffTarget: 0.7737 -> 0.7841
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.91 (squad xG sum 1.8156, xG scale 1.0514, xA scale 1.3606, team xA 1.24 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.909
squad_xg_sum=1.8156
squad_xa_sum=0.912
team_expected_assists=1.2409
team_xa_to_xg_ratio=0.65
expected_assists: 0.166 -> 0.2259
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 80.0)match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.083
goal_rate=0.1012
scorer_weight=0.0989
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.2022
assist_rate=0.1186
provider_weight=0.1807
-
Mamadou SangareM7900.080.0482%10.66.934.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 1.0473, quality 0.821)market_value_eur=49000000
quality_factor=0.8206
boost_factor=1.0473
reference_quality=0.505
history_matches=5
history_shrink=0.5
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0390)blend_weight=0.039
history_matches=5
season_overlap_discount=1.0
per90_to_match_factor=0.8763
prior_reliability=0.12
competition=Premier League
interceptionWon: 1.3954 -> 1.4549
totalShots: 1.0837 -> 1.1159
fouls: 2.1721 -> 2.1443
wasFouled: 0.8849 -> 0.9074
totalCross: 0.4392 -> 0.46
wonTackle: 1.9777 -> 1.9575
goalAssist: 0.0663 -> 0.0827
onTargetScoringAttempt: 0.2423 -> 0.2516
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Regan Slater', 'matchup_zone': 'Midfield lane'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.91 (squad xG sum 1.8156, xG scale 1.0514, xA scale 1.3606, team xA 1.24 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.909
squad_xg_sum=1.8156
squad_xa_sum=0.912
team_expected_assists=1.2409
team_xa_to_xg_ratio=0.65
expected_assists: 0.052 -> 0.0707
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 81.0)match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0724
goal_rate=0.0878
scorer_weight=0.0853
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0683
assist_rate=0.0827
provider_weight=0.0884
-
Keane Lewis-PotterD8300.180.1159%11.06.755.630FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0067, quality 0.710)market_value_eur=29000000
quality_factor=0.71
boost_factor=1.0067
reference_quality=0.505
history_matches=41
history_shrink=0.1087
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0094)blend_weight=0.0094
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=0.9253
prior_reliability=0.1333
competition=Premier League
wasFouled: 0.9636 -> 0.9545
totalCross: 3.9695 -> 3.9757
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.91 (squad xG sum 1.8156, xG scale 1.0514, xA scale 1.3606, team xA 1.24 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.909
squad_xg_sum=1.8156
squad_xa_sum=0.912
team_expected_assists=1.2409
team_xa_to_xg_ratio=0.65
expected_goals: 0.1669 -> 0.1755
expected_assists: 0.1368 -> 0.1861
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.161
goal_rate=0.1149
scorer_weight=0.1404
-
integer_assist_projectionTeam scoreline allocation: 1 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.1698
assist_rate=0.1569
provider_weight=0.2061
-
Sepp van den BergD9000.090.0652%10.56.942.625XGBoost 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.739)market_value_eur=33000000
quality_factor=0.7389
boost_factor=1.0095
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': '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 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.91 (squad xG sum 1.8156, xG scale 1.0514, xA scale 1.3606, team xA 1.24 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.909
squad_xg_sum=1.8156
squad_xa_sum=0.912
team_expected_assists=1.2409
team_xa_to_xg_ratio=0.65
expected_assists: 0.0453 -> 0.0616
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 78.0)match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0876
goal_rate=0.0
scorer_weight=0.0734
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0597
assist_rate=0.0301
provider_weight=0.0518
-
Kristoffer AjerD8800.020.01180%00.16.746.129FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0077, quality 0.694)market_value_eur=27000000
quality_factor=0.6941
boost_factor=1.0077
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.9742
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', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.91 (squad xG sum 1.8156, xG scale 1.0514, xA scale 1.3606, team xA 1.24 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.909
squad_xg_sum=1.8156
squad_xa_sum=0.912
team_expected_assists=1.2409
team_xa_to_xg_ratio=0.65
expected_assists: 0.0186 -> 0.0253
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 77.0)match_squad_rank=12
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0168
goal_rate=0.0
scorer_weight=0.0135
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.025
assist_rate=0.0
provider_weight=0.0202
-
Michael KayodeD8000.090.0566%10.36.756.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.0086, quality 0.775)market_value_eur=39000000
quality_factor=0.7754
boost_factor=1.0086
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.8879
prior_reliability=0.12
competition=Premier League
totalShots: 0.6317 -> 0.6469
wasFouled: 1.1019 -> 1.1091
totalCross: 1.122 -> 1.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': 'Regan Slater', 'matchup_zone': 'Left Mid vs Right Back — Wide Channel'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.91 (squad xG sum 1.8156, xG scale 1.0514, xA scale 1.3606, team xA 1.24 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.909
squad_xg_sum=1.8156
squad_xa_sum=0.912
team_expected_assists=1.2409
team_xa_to_xg_ratio=0.65
expected_assists: 0.0554 -> 0.0754
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.0847
goal_rate=0.128
scorer_weight=0.1106
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0726
assist_rate=0.0297
provider_weight=0.0603
-
Caoimhin KelleherG9000.00-n/a0.07.058.229FBref Prior G_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost G_service raw output over 3 target models--
market_value_boostMarket-value quality scaling (boost 1.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=1.0
prior_reliability=0.1333
competition=Premier League
saves: 3.1212 -> 3.1155
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Oliver McBurnie, Mohamed Belloumi', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.1651}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.91 (squad xG sum 1.8156, xG scale 1.0514, xA scale 1.3606, team xA 1.24 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.909
squad_xg_sum=1.8156
squad_xa_sum=0.912
team_expected_assists=1.2409
team_xa_to_xg_ratio=0.65
shots_faced: 11.1 -> 10.3
expected_saves: 2.72 -> 2.52
high_pressure_saves: 0.93 -> 0.87
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 80.0)match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.9598
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.1031
-
Team totals21.91166.9
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Hákon Rafn ValdimarssonG4.4m10.9%Market-value substitute prior
El Hadji Malick DioufD14.8m35.6%Market-value substitute prior
Nathan CollinsD14.7m23.9%Market-value substitute prior
Yehor YarmoliukM23.0m71.5%Market-value substitute prior
Vitaly JaneltM22.8m32.3%Market-value substitute prior
Dango OuattaraF28.4m55.2%Market-value substitute prior
Antagonist / tactical summary
Away midfield dictates play with ~53% possession expected (Tim Iroegbunam vs Mamadou Sangare). Total antagonist xG — Home: 0.69, Away: 1.19. 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 47.3% / 52.7%, dominance ratio 0.44, key duel: Tim Iroegbunam vs Mamadou Sangare
Mohamed Belloumi xG 0.18Oliver McBurnie xG 0.22Sorba Thomas xG 0.12Mathias Jensen xG 0.08Igor Thiago xG 0.51Kevin Schade xG 0.37

Summary

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

Athletic Club vs Getafe

LaLiga · 20261025 · 4-2-3-1 vs 5-3-2
Predicted 0-0Winner: DrawWinning H 1-0 (15.4%)Winning A 0-1 (13.0%)Confidence 0.7λ home/away 1.02 / 0.86Most-likely P 15.5%
Actual vs predicted — predicted 0-0 (Draw), actual 2-0 ()
Winner MISSExact score MISSO/U HITBTTS HIT
XGBoost Reasoning & FBref Dataset Tracing
Antagonist + XGBoost match analysis for Athletic Club vs Getafe. 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-3-2 (duel lambdas: Home 1.016, Away 0.860). Final calibrated Poisson lambdas: Home 1.016, Away 0.860 (most likely score 0-0).
Home Starters 11/11 XGBoost (10 FBref) Away Starters 11/11 XGBoost (8 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.02 / 0.86 Final λ (H/A) 1.02 / 0.86
FBref Team Priors: Athletic Club (Gls/90: 1.0, GA/90: 1.0 → E[λ]: 0.244) vs Getafe (Gls/90: 0.3333333333333333, GA/90: 0.33 → E[λ]: 0.247) | 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

MetricAthletic ClubGetafe
League position11.0014.00
Points per game1.321.14
Attack index0.920.69
Defense (concede) index0.870.88
Form multiplier1.010.99
Standing λ multiplier0.920.82

Lambda decomposition (how the goal rates were built)

StageAthletic Club λGetafe λ
FBref Squad Prior E[λ] (weight 0.228)0.2440.247
Pre-competitive-floor1.0160.860
Pre-calibration (Micro-duels)1.0160.860
Final λ1.0160.860
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-015.5%
1-015.4%
1-113.5%
0-113.0%
2-07.9%
Home win38.1%
Draw32.2%
Away win29.7%
Over 2.529.0%
BTTS yes37.0%
Pregame fair line — favorite Athletic Club (38.1%), fair total 1.88, fair spread 0.16

Projected players vs season baseline

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

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Álex BerenguerF8400.120.0849%11.16.954.428FBref 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=38
history_shrink=0.1163
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0116)blend_weight=0.0116
history_matches=38
season_overlap_discount=1.0
per90_to_match_factor=0.9373
prior_reliability=0.1533
competition=La Liga
totalShots: 1.2965 -> 1.3046
wasFouled: 0.9958 -> 0.989
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Jean Ives Valou, Abdel Abqar', '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.9268, 'skill_edge': 0.0022, 'height_edge': -0.052, 'attacker_skill': 0.4511, 'defender_skill': 0.4461, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Jean Ives Valou', 'market_value': 550000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'Abdel Abqar', 'market_value': 3300000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4548}], 'xg_override': 0.1211}
totalShots: 1.3046 -> 1.2091
shotOffTarget: 0.9033 -> 0.8372
onTargetScoringAttempt: 0.3979 -> 0.3688
expectedGoalsOnTarget: 0.1886 -> 0.1748
goals: 0.1432 -> 0.1327
expectedGoals: 0.1307 -> 0.1211
bigChanceMissed: 0.1263 -> 0.1171
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.02 (squad xG sum 1.0289, xG scale 0.9875, xA scale 0.8593, team xA 0.81 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.016
squad_xg_sum=1.0289
squad_xa_sum=0.9459
team_expected_assists=0.8128
team_xa_to_xg_ratio=0.8
expected_assists: 0.1263 -> 0.1085
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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.1127
goal_rate=0.1327
scorer_weight=0.1277
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.1028
assist_rate=0.0189
provider_weight=0.0868
-
Iñaki WilliamsF7000.340.2165%21.66.855.632FBref 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=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.7789
prior_reliability=0.1333
competition=La Liga
totalShots: 2.3579 -> 2.3496
onTargetScoringAttempt: 0.8869 -> 0.8938
wasFouled: 0.5681 -> 0.5743
fouls: 0.8753 -> 0.8703
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': 'Jean Ives Valou, Abdel Abqar', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.212, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.0174, 'skill_edge': 0.0199, 'height_edge': -0.008, 'attacker_skill': 0.4903, 'defender_skill': 0.4461, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Jean Ives Valou', 'market_value': 550000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'Abdel Abqar', 'market_value': 3300000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4548}], 'xg_override': 0.3467}
totalShots: 2.3648 -> 2.406
shotOffTarget: 1.471 -> 1.4966
onTargetScoringAttempt: 0.8938 -> 0.9094
goals: 0.3842 -> 0.3909
bigChanceMissed: 0.349 -> 0.3551
expectedGoals: 0.3408 -> 0.3467
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.02 (squad xG sum 1.0289, xG scale 0.9875, xA scale 0.8593, team xA 0.81 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.016
squad_xg_sum=1.0289
squad_xa_sum=0.9459
team_expected_assists=0.8128
team_xa_to_xg_ratio=0.8
expected_assists: 0.063 -> 0.0541
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 80.0)match_squad_rank=12
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.2898
goal_rate=0.3909
scorer_weight=0.3803
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0527
assist_rate=0.3051
provider_weight=0.0676
-
Peio CanalesM8800.090.03186%10.76.944.36FBref Prior M_service
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.0021, quality 0.519)market_value_eur=9700000
quality_factor=0.5189
boost_factor=1.0021
reference_quality=0.505
history_matches=5
history_shrink=0.5
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0498)blend_weight=0.0498
history_matches=5
season_overlap_discount=1.0
per90_to_match_factor=0.9822
prior_reliability=0.1533
competition=La Liga
onTargetScoringAttempt: 0.3642 -> 0.3886
wasFouled: 1.2339 -> 1.2575
totalCross: 2.0042 -> 1.9895
interceptionWon: 0.7206 -> 0.706
totalShots: 1.0396 -> 1.0519
fouls: 0.671 -> 0.6588
wonTackle: 1.0518 -> 1.042
goalAssist: 0.1231 -> 0.117
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 Carvajal, Jean Ives Valou', 'matchup_zone': 'LW vs RWB + CB', 'duel_win_rate': 0.31, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.014, 'skill_edge': 0.0315, 'height_edge': -0.022, 'attacker_skill': 0.5189, 'defender_skill': 0.4489, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Dani Carvajal', 'market_value': 3400000, 'role': 'RWB', 'price_index': 0.7, 'adjusted_quality': 0.4604}, {'player': 'Jean Ives Valou', 'market_value': 550000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.0958}
aerialWon: 0.0 -> 0.9
totalShots: 1.0639 -> 1.0788
shotOffTarget: 0.6753 -> 0.6848
onTargetScoringAttempt: 0.3886 -> 0.394
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.02 (squad xG sum 1.0289, xG scale 0.9875, xA scale 0.8593, team xA 0.81 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.016
squad_xg_sum=1.0289
squad_xa_sum=0.9459
team_expected_assists=0.8128
team_xa_to_xg_ratio=0.8
expected_assists: 0.1102 -> 0.0947
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.0903
goal_rate=0.1018
scorer_weight=0.0985
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0904
assist_rate=0.117
provider_weight=0.0987
-
Robert NavarroF7600.200.1355%20.87.153.336XGBoost 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=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': 'Jean Ives Valou, Abdel Abqar', '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.972, 'skill_edge': 0.021, 'height_edge': -0.04, 'attacker_skill': 0.4927, 'defender_skill': 0.4461, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Jean Ives Valou', 'market_value': 550000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'Abdel Abqar', 'market_value': 3300000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4548}], 'xg_override': 0.2031}
totalShots: 1.7457 -> 1.6968
shotOffTarget: 1.1216 -> 1.0902
onTargetScoringAttempt: 0.6241 -> 0.6066
expectedGoalsOnTarget: 0.2947 -> 0.2864
goals: 0.2726 -> 0.265
expectedGoals: 0.209 -> 0.2031
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.02 (squad xG sum 1.0289, xG scale 0.9875, xA scale 0.8593, team xA 0.81 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.016
squad_xg_sum=1.0289
squad_xa_sum=0.9459
team_expected_assists=0.8128
team_xa_to_xg_ratio=0.8
expected_assists: 0.1536 -> 0.132
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.1818
goal_rate=0.265
scorer_weight=0.2497
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.1237
assist_rate=0.0
provider_weight=0.1056
-
Beñat GerenabarrenaM7900.030.00592%00.16.841.18FBref Prior M_service
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.9945, quality 0.465)market_value_eur=5200000
quality_factor=0.4646
boost_factor=0.9945
reference_quality=0.505
history_matches=6
history_shrink=0.4545
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0414)blend_weight=0.0414
history_matches=6
season_overlap_discount=1.0
per90_to_match_factor=0.8832
prior_reliability=0.14
competition=La Liga
totalCross: 0.9183 -> 0.9847
interceptionWon: 1.8922 -> 1.9357
fouls: 2.2092 -> 2.2396
wonTackle: 1.6329 -> 1.6523
wasFouled: 1.4026 -> 1.4142
onTargetScoringAttempt: 0.1566 -> 0.1673
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Nemanja Gudelj', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.381, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9431, 'skill_edge': 0.0173, 'height_edge': -0.056, 'attacker_skill': 0.4759, 'defender_skill': 0.4374, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Nemanja Gudelj', 'market_value': 1900000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4374}], 'xg_override': 0.0273}
aerialWon: 0.6972 -> 0.9
totalShots: 0.5063 -> 0.4775
shotOffTarget: 0.339 -> 0.3197
onTargetScoringAttempt: 0.1673 -> 0.1578
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.02 (squad xG sum 1.0289, xG scale 0.9875, xA scale 0.8593, team xA 0.81 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.016
squad_xg_sum=1.0289
squad_xa_sum=0.9459
team_expected_assists=0.8128
team_xa_to_xg_ratio=0.8
expected_assists: 0.0436 -> 0.0375
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.0266
goal_rate=0.0339
scorer_weight=0.0293
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0368
assist_rate=0.06
provider_weight=0.0441
-
Iñigo Ruiz de GalarretaM7000.040.02101%10.67.059.627FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 0.9977, quality 0.437)market_value_eur=1800000
quality_factor=0.4374
boost_factor=0.9977
reference_quality=0.505
history_matches=40
history_shrink=0.1111
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0038)blend_weight=0.0038
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=0.7826
prior_reliability=0.0533
competition=La Liga
fouls: 1.9279 -> 1.9355
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Nemanja Gudelj', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.368, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9236, 'skill_edge': 0.0, 'height_edge': -0.052, 'attacker_skill': 0.4374, 'defender_skill': 0.4374, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Nemanja Gudelj', 'market_value': 1900000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4374}], 'xg_override': 0.0436}
aerialWon: 1.1363 -> 0.9
totalShots: 0.9331 -> 0.8618
shotOffTarget: 0.6941 -> 0.6411
onTargetScoringAttempt: 0.2379 -> 0.2197
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.02 (squad xG sum 1.0289, xG scale 0.9875, xA scale 0.8593, team xA 0.81 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.016
squad_xg_sum=1.0289
squad_xa_sum=0.9459
team_expected_assists=0.8128
team_xa_to_xg_ratio=0.8
expected_assists: 0.1381 -> 0.1187
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 82.0)match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0422
goal_rate=0.0439
scorer_weight=0.0432
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.1119
assist_rate=0.0986
provider_weight=0.095
-
Yuri BerchicheD8200.040.0279%11.07.160.524FBref Prior D_service
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.1492 -> 1.1566
wonTackle: 0.9959 -> 0.9903
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 Carvajal', 'matchup_zone': 'Right Wingback vs Left Back — Overlapping Run'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.02 (squad xG sum 1.0289, xG scale 0.9875, xA scale 0.8593, team xA 0.81 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.016
squad_xg_sum=1.0289
squad_xa_sum=0.9459
team_expected_assists=0.8128
team_xa_to_xg_ratio=0.8
expected_assists: 0.1701 -> 0.1461
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 79.0)match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0406
goal_rate=0.0
scorer_weight=0.0331
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.1359
assist_rate=0.1756
provider_weight=0.1498
-
Aitor ParedesD8900.050.02117%10.37.034.224FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9991, quality 0.488)market_value_eur=7100000
quality_factor=0.4878
boost_factor=0.9991
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.9846
prior_reliability=0.12
competition=La Liga
totalCross: 0.4022 -> 0.4115
interceptionWon: 1.1453 -> 1.1373
fouls: 1.0571 -> 1.065
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Ivan Azón', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.02 (squad xG sum 1.0289, xG scale 0.9875, xA scale 0.8593, team xA 0.81 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.016
squad_xg_sum=1.0289
squad_xa_sum=0.9459
team_expected_assists=0.8128
team_xa_to_xg_ratio=0.8
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 78.0)match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0465
goal_rate=0.2279
scorer_weight=0.0595
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0228
assist_rate=0.0
provider_weight=0.0185
-
Yeray ÁlvarezD7900.030.0272%10.26.742.917FBref Prior D_service
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.5305 -> 0.552
wonTackle: 0.656 -> 0.6382
wasFouled: 0.809 -> 0.799
goalAssist: 0.114 -> 0.1229
interceptionWon: 1.0561 -> 1.0634
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Ivan Azón', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.02 (squad xG sum 1.0289, xG scale 0.9875, xA scale 0.8593, team xA 0.81 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.016
squad_xg_sum=1.0289
squad_xa_sum=0.9459
team_expected_assists=0.8128
team_xa_to_xg_ratio=0.8
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 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_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0273
goal_rate=0.0
scorer_weight=0.0222
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0141
assist_rate=0.1229
provider_weight=0.0178
-
Jesús AresoD7900.010.0170%00.16.739.127FBref Prior D_service
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=32
history_shrink=0.1351
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0094)blend_weight=0.0094
history_matches=32
season_overlap_discount=1.0
per90_to_match_factor=0.8791
prior_reliability=0.1067
competition=La Liga
wasFouled: 0.5308 -> 0.5413
interceptionWon: 1.1346 -> 1.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': 'Johan Mojica', 'matchup_zone': 'Left Wingback vs Right Back — Overlapping Run'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.02 (squad xG sum 1.0289, xG scale 0.9875, xA scale 0.8593, team xA 0.81 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.016
squad_xg_sum=1.0289
squad_xa_sum=0.9459
team_expected_assists=0.8128
team_xa_to_xg_ratio=0.8
expected_assists: 0.0499 -> 0.0429
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.0109
goal_rate=0.0
scorer_weight=0.009
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.042
assist_rate=0.0223
provider_weight=0.0343
-
Unai SimónG9000.00-n/a0.07.161.428FBref 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=44
history_shrink=0.102
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0133)blend_weight=0.0133
history_matches=44
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.2
competition=La Liga
saves: 2.961 -> 2.9748
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Martín Satriano, Ivan Azón', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 0.8596}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.02 (squad xG sum 1.0289, xG scale 0.9875, xA scale 0.8593, team xA 0.81 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.016
squad_xg_sum=1.0289
squad_xa_sum=0.9459
team_expected_assists=0.8128
team_xa_to_xg_ratio=0.8
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 85.0)match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.1264
-
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.7546
-
Team totals01.02116.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
Aymeric LaporteD24.4m35.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

Getafe — projected line vs season baseline (5-3-2)

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Ivan AzónF7900.160.13ok21.96.850.07XGBoost 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.495)market_value_eur=7700000
quality_factor=0.4951
boost_factor=0.9985
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': 'Aitor Paredes, Yeray Álvarez', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.194, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 0.9915, 'skill_edge': 0.0082, 'height_edge': -0.014, 'attacker_skill': 0.4951, 'defender_skill': 0.4768, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Aitor Paredes', 'market_value': 7100000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5162}, {'player': 'Yeray Álvarez', 'market_value': 930000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.1933}
totalShots: 1.9652 -> 1.9485
shotOffTarget: 1.3207 -> 1.3095
onTargetScoringAttempt: 0.6445 -> 0.639
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.86 (squad xG sum 1.0202, xG scale 0.8429, xA scale 0.8707, team xA 0.56 = 0.65 x lambda)scoreline_reset=true
team_lambda=0.86
squad_xg_sum=1.0202
squad_xa_sum=0.642
team_expected_assists=0.559
team_xa_to_xg_ratio=0.65
expected_goals: 0.1933 -> 0.1629
expected_assists: 0.0615 -> 0.0535
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 70.0)match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.1503
goal_rate=0.2161
scorer_weight=0.1782
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0521
assist_rate=0.1924
provider_weight=0.0669
-
Martín SatrianoF8200.190.18ok21.86.863.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 1.0011, quality 0.529)market_value_eur=10600000
quality_factor=0.5295
boost_factor=1.0011
reference_quality=0.505
history_matches=27
history_shrink=0.1562
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0183)blend_weight=0.0183
history_matches=27
season_overlap_discount=1.0
per90_to_match_factor=0.9122
prior_reliability=0.18
competition=La Liga
wasFouled: 1.9801 -> 1.9933
interceptionWon: 0.598 -> 0.5871
fouls: 1.6919 -> 1.6857
totalCross: 0.6509 -> 0.6452
onTargetScoringAttempt: 0.6457 -> 0.6401
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Aitor Paredes, Yeray Álvarez', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.234, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.0495, 'skill_edge': 0.0237, 'height_edge': 0.01, 'attacker_skill': 0.5295, 'defender_skill': 0.4768, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Aitor Paredes', 'market_value': 7100000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5162}, {'player': 'Yeray Álvarez', 'market_value': 930000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.2236}
totalShots: 2.0264 -> 2.1267
shotOffTarget: 1.3811 -> 1.4495
onTargetScoringAttempt: 0.6401 -> 0.6718
expectedGoalsOnTarget: 0.3117 -> 0.3271
goals: 0.2234 -> 0.2345
expectedGoals: 0.2131 -> 0.2236
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.86 (squad xG sum 1.0202, xG scale 0.8429, xA scale 0.8707, team xA 0.56 = 0.65 x lambda)scoreline_reset=true
team_lambda=0.86
squad_xg_sum=1.0202
squad_xa_sum=0.642
team_expected_assists=0.559
team_xa_to_xg_ratio=0.65
expected_goals: 0.2236 -> 0.1885
expected_assists: 0.0673 -> 0.0586
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 77.0)match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.1718
goal_rate=0.2345
scorer_weight=0.196
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0569
assist_rate=0.1403
provider_weight=0.0732
-
Mario MartínM7600.100.09ok10.86.759.625FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0008, quality 0.531)market_value_eur=10700000
quality_factor=0.5306
boost_factor=1.0008
reference_quality=0.505
history_matches=41
history_shrink=0.1087
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0033)blend_weight=0.0033
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=0.8479
prior_reliability=0.0467
competition=La Liga
wasFouled: 1.4903 -> 1.5014
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Beñat Gerenabarrena', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.497, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0688, 'skill_edge': 0.0308, 'height_edge': 0.016, 'attacker_skill': 0.5444, 'defender_skill': 0.4759, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Beñat Gerenabarrena', 'market_value': 5200000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4759}], 'xg_override': 0.1212}
aerialWon: 1.6935 -> 1.0
totalShots: 1.213 -> 1.2965
shotOffTarget: 0.7886 -> 0.8429
onTargetScoringAttempt: 0.4244 -> 0.4536
bigChanceMissed: 0.1342 -> 0.1434
expectedGoals: 0.1134 -> 0.1212
goals: 0.0883 -> 0.0944
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.86 (squad xG sum 1.0202, xG scale 0.8429, xA scale 0.8707, team xA 0.56 = 0.65 x lambda)scoreline_reset=true
team_lambda=0.86
squad_xg_sum=1.0202
squad_xa_sum=0.642
team_expected_assists=0.559
team_xa_to_xg_ratio=0.65
expected_goals: 0.1212 -> 0.1022
expected_assists: 0.0554 -> 0.0482
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.0972
goal_rate=0.0944
scorer_weight=0.0862
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0471
assist_rate=0.0722
provider_weight=0.0559
-
Ramón TerratsM7500.150.0894%21.16.860.628FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 0.9977, quality 0.440)market_value_eur=3200000
quality_factor=0.4399
boost_factor=0.9977
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.8334
prior_reliability=0.2
competition=La Liga
totalCross: 1.7465 -> 1.7754
totalShots: 1.6548 -> 1.6724
wasFouled: 2.0963 -> 2.1069
interceptionWon: 0.6786 -> 0.6724
fouls: 1.0543 -> 1.0595
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Beñat Gerenabarrena', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.46, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0144, 'skill_edge': -0.0142, 'height_edge': 0.024, 'attacker_skill': 0.4443, 'defender_skill': 0.4759, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Beñat Gerenabarrena', 'market_value': 5200000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4759}], 'xg_override': 0.1776}
aerialWon: 0.8458 -> 1.0
totalShots: 1.6724 -> 1.6965
shotOffTarget: 1.095 -> 1.1108
onTargetScoringAttempt: 0.5598 -> 0.5679
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.86 (squad xG sum 1.0202, xG scale 0.8429, xA scale 0.8707, team xA 0.56 = 0.65 x lambda)scoreline_reset=true
team_lambda=0.86
squad_xg_sum=1.0202
squad_xa_sum=0.642
team_expected_assists=0.559
team_xa_to_xg_ratio=0.65
expected_goals: 0.1776 -> 0.1497
expected_assists: 0.1222 -> 0.1063
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.139
goal_rate=0.1704
scorer_weight=0.145
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.1008
assist_rate=0.1204
provider_weight=0.1052
-
Nemanja GudeljM8700.060.0378%10.96.761.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.9978, quality 0.437)market_value_eur=1900000
quality_factor=0.4374
boost_factor=0.9978
reference_quality=0.505
history_matches=41
history_shrink=0.1087
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0009)blend_weight=0.0009
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=0.9634
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': 'Beñat Gerenabarrena', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.459, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0569, 'skill_edge': -0.0173, 'height_edge': 0.056, 'attacker_skill': 0.4374, 'defender_skill': 0.4759, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Beñat Gerenabarrena', 'market_value': 5200000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4759}], 'xg_override': 0.0727}
aerialWon: 1.4295 -> 1.2
totalShots: 0.8625 -> 0.9116
shotOffTarget: 0.6512 -> 0.6883
onTargetScoringAttempt: 0.2065 -> 0.2182
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.86 (squad xG sum 1.0202, xG scale 0.8429, xA scale 0.8707, team xA 0.56 = 0.65 x lambda)scoreline_reset=true
team_lambda=0.86
squad_xg_sum=1.0202
squad_xa_sum=0.642
team_expected_assists=0.559
team_xa_to_xg_ratio=0.65
expected_goals: 0.0727 -> 0.0613
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 78.0)match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0595
goal_rate=0.0619
scorer_weight=0.0559
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0294
assist_rate=0.0473
provider_weight=0.0344
-
Johan MojicaD8500.020.02ok10.46.759.528FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9979, quality 0.437)market_value_eur=1400000
quality_factor=0.4374
boost_factor=0.9979
reference_quality=0.505
history_matches=43
history_shrink=0.1042
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0090)blend_weight=0.009
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=0.9484
prior_reliability=0.1333
competition=La Liga
totalCross: 7.0273 -> 7.0495
wasFouled: 1.2052 -> 1.22
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 Wingback vs Right Back — Overlapping Run'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.86 (squad xG sum 1.0202, xG scale 0.8429, xA scale 0.8707, team xA 0.56 = 0.65 x lambda)scoreline_reset=true
team_lambda=0.86
squad_xg_sum=1.0202
squad_xa_sum=0.642
team_expected_assists=0.559
team_xa_to_xg_ratio=0.65
expected_assists: 0.0999 -> 0.087
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.0197
goal_rate=0.0
scorer_weight=0.0159
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0833
assist_rate=0.0372
provider_weight=0.0696
-
Jean Ives ValouD9000.03-n/a00.06.65.810XGBoost D_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9855, quality 0.437)market_value_eur=550000
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': 'Peio Canales', 'matchup_zone': 'LW vs RWB + CB'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.86 (squad xG sum 1.0202, xG scale 0.8429, xA scale 0.8707, team xA 0.56 = 0.65 x lambda)scoreline_reset=true
team_lambda=0.86
squad_xg_sum=1.0202
squad_xa_sum=0.642
team_expected_assists=0.559
team_xa_to_xg_ratio=0.65
expected_goals: 0.0354 -> 0.0298
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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0294
goal_rate=0.0
scorer_weight=0.0238
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0028
assist_rate=0.0
provider_weight=0.0026
-
Abdel AbqarD8000.000.0181%00.16.650.417FBref Prior D_service
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.9970, quality 0.441)market_value_eur=3300000
quality_factor=0.4412
boost_factor=0.997
reference_quality=0.505
history_matches=27
history_shrink=0.1562
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0068)blend_weight=0.0068
history_matches=27
season_overlap_discount=1.0
per90_to_match_factor=0.8872
prior_reliability=0.0667
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': '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.86 (squad xG sum 1.0202, xG scale 0.8429, xA scale 0.8707, team xA 0.56 = 0.65 x lambda)scoreline_reset=true
team_lambda=0.86
squad_xg_sum=1.0202
squad_xa_sum=0.642
team_expected_assists=0.559
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 79.0)match_squad_rank=14
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0013
goal_rate=0.0
scorer_weight=0.0013
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0075
assist_rate=0.0664
provider_weight=0.0094
-
Dani CarvajalD8200.020.0195%00.26.837.518XGBoost 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.9959, quality 0.442)market_value_eur=3400000
quality_factor=0.4424
boost_factor=0.9959
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': 'Peio Canales', 'matchup_zone': 'LW vs RWB + CB'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.86 (squad xG sum 1.0202, xG scale 0.8429, xA scale 0.8707, team xA 0.56 = 0.65 x lambda)scoreline_reset=true
team_lambda=0.86
squad_xg_sum=1.0202
squad_xa_sum=0.642
team_expected_assists=0.559
team_xa_to_xg_ratio=0.65
expected_assists: 0.104 -> 0.0906
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_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0219
goal_rate=0.0
scorer_weight=0.0177
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0866
assist_rate=0.1525
provider_weight=0.1133
-
Kiko FemeníaD6400.020.0337%00.26.655.722FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9973, quality 0.437)market_value_eur=525000
quality_factor=0.4374
boost_factor=0.9973
reference_quality=0.505
history_matches=33
history_shrink=0.1316
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0086)blend_weight=0.0086
history_matches=33
season_overlap_discount=1.0
per90_to_match_factor=0.7122
prior_reliability=0.1
competition=La Liga
interceptionWon: 0.7823 -> 0.7756
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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.86 (squad xG sum 1.0202, xG scale 0.8429, xA scale 0.8707, team xA 0.56 = 0.65 x lambda)scoreline_reset=true
team_lambda=0.86
squad_xg_sum=1.0202
squad_xa_sum=0.642
team_expected_assists=0.559
team_xa_to_xg_ratio=0.65
expected_assists: 0.0545 -> 0.0475
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 18 by projected rating, fifa_overall 74.0)match_squad_rank=18
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0175
goal_rate=0.0316
scorer_weight=0.0203
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0464
assist_rate=0.0042
provider_weight=0.038
-
David SoriaG9000.00-n/a0.07.168.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 0.9981, quality 0.437)market_value_eur=2700000
quality_factor=0.4374
boost_factor=0.9981
reference_quality=0.505
history_matches=47
history_shrink=0.0962
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0125)blend_weight=0.0125
history_matches=47
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.2
competition=La Liga
saves: 3.1365 -> 3.1306
wasFouled: 0.2497 -> 0.2549
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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': 1.0156}
-
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.86 (squad xG sum 1.0202, xG scale 0.8429, xA scale 0.8707, team xA 0.56 = 0.65 x lambda)scoreline_reset=true
team_lambda=0.86
squad_xg_sum=1.0202
squad_xa_sum=0.642
team_expected_assists=0.559
team_xa_to_xg_ratio=0.65
shots_faced: 9.6 -> 9.7
expected_saves: 2.34 -> 2.38
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 80.0)match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=0.8413
-
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.597
-
Team totals00.86116.8
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Jiří LetáčekG4.4m10.9%Market-value substitute prior
Andrés GarcíaD13.8m22.2%Market-value substitute prior
Zaid RomeroD13.7m21.9%Market-value substitute prior
Orel MangalaM22.2m31.2%Market-value substitute prior
Mauro ArambarriM22.2m51.0%Market-value substitute prior
Christantus UcheF25.8m58.1%Market-value substitute prior
Antagonist / tactical summary
Midfield is evenly contested — Peio Canales vs Mario Martín will be the pivotal duel. Total antagonist xG — Home: 0.84, Away: 0.84. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Midfield — possession 50.6% / 49.4%, dominance ratio 0.50, key duel: Peio Canales vs Mario Martín
Peio Canales xG 0.10Iñaki Williams xG 0.35Álex Berenguer xG 0.12Ivan Azón xG 0.19Martín Satriano xG 0.22Johan Mojica xG 0.02

Summary

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

Sunderland vs Leeds

Premier League · 20261025 · 4-2-3-1 vs 3-4-2-1
Predicted 1-1Winner: DrawWinning H 1-0 (8.1%)Winning A 0-1 (8.9%)Confidence 0.71λ home/away 1.33 / 1.45Most-likely P 12.1%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset Tracing
Antagonist + XGBoost match analysis for Sunderland vs Leeds. Player statistics regressed using position-specific XGBoost models (G, D, M, F) with 2026-2027 FBref priors. Micro-duels resolved across 4-2-3-1 vs 3-4-2-1 (duel lambdas: Home 1.089, Away 1.166). Final calibrated Poisson lambdas: Home 1.327, Away 1.454 (most likely score 1-1).
Home Starters 11/11 XGBoost (11 FBref) Away Starters 11/11 XGBoost (10 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.09 / 1.17 Final λ (H/A) 1.33 / 1.45
FBref Team Priors: Sunderland (Gls/90: 1.0, GA/90: 1.0 → E[λ]: 0.69) vs Leeds United (Gls/90: 1.0, GA/90: 1.0 → E[λ]: 0.69) | Blend Weight: 0.192
Modeling Pipeline Stages (5 layers)
  1. 1. XGBoost player regressions for volume & event rates with market-value quality scaling
  2. 2. Multi-source prior blending (FBref 2026-2027 tables + Sofascore season history)
  3. 3. Antagonist formation duel matrix resolving 1v1 and zonal matchups
  4. 4. Team-level prior calibration (FBref possession and attack/defense efficiencies)
  5. 5. Bivariate Poisson matrix with Dixon-Coles low-score correction

Standing & form context

MetricSunderlandLeeds
League position20.007.00
Points per game0.931.40
Attack index0.900.91
Defense (concede) index0.811.20
Form multiplier0.971.03
Standing λ multiplier0.881.04

Lambda decomposition (how the goal rates were built)

StageSunderland λLeeds λ
FBref Squad Prior E[λ] (weight 0.192)0.6900.690
Pre-competitive-floor1.0561.283
Pre-calibration (Micro-duels)1.0891.166
Final λ1.3271.454
competition calibration scale 1.189competition observed total goals 2.781quality gap applied Falsemismatch score pressure applied Falsecompetitive underdog floor applied Falsestage discount 1.0

Scoreline distribution & markets

Top 5 scorelinesP
1-112.1%
0-18.9%
1-28.7%
1-08.1%
2-17.9%
Home win34.3%
Draw25.6%
Away win40.1%
Over 2.552.6%
BTTS yes56.4%
Pregame fair line — favorite Leeds (40.1%), fair total 2.78, fair spread -0.13

Projected players vs season baseline

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

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Luke O'NienD8600.020.00376%10.16.721.334FBref Prior D_service
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=660000
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.0084)blend_weight=0.0084
history_matches=13
season_overlap_discount=1.0
per90_to_match_factor=0.9539
prior_reliability=0.0467
competition=Premier League
fouls: 0.9138 -> 0.9291
totalCross: 1.2324 -> 1.245
interceptionWon: 0.8246 -> 0.8176
wonTackle: 0.7698 -> 0.7633
totalShots: 0.5533 -> 0.5596
wasFouled: 0.6836 -> 0.6778
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Jayden Bogle', 'matchup_zone': 'Right Wingback vs Left Back — Overlapping Run'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.33 (squad xG sum 1.3328, xG scale 0.9956, xA scale 0.9956, team xA 0.90 = 0.68 x lambda)scoreline_reset=true
team_lambda=1.327
squad_xg_sum=1.3328
squad_xa_sum=0.9052
team_expected_assists=0.9012
team_xa_to_xg_ratio=0.6792
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 73.0)match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0222
goal_rate=0.0
scorer_weight=0.018
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0199
assist_rate=0.2019
provider_weight=0.0251
-
Nordi MukieleD8800.140.0789%10.86.850.727FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0035, quality 0.602)market_value_eur=17100000
quality_factor=0.6016
boost_factor=1.0035
reference_quality=0.505
history_matches=36
history_shrink=0.122
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0053)blend_weight=0.0053
history_matches=36
season_overlap_discount=1.0
per90_to_match_factor=0.9759
prior_reliability=0.0667
competition=Premier League
totalCross: 3.2164 -> 3.2046
fouls: 1.2957 -> 1.2888
wonTackle: 1.24 -> 1.2334
totalShots: 1.0834 -> 1.0777
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Gabriel Gudmundsson', 'matchup_zone': 'Left Wingback vs Right Back — Overlapping Run'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.33 (squad xG sum 1.3328, xG scale 0.9956, xA scale 0.9956, team xA 0.90 = 0.68 x lambda)scoreline_reset=true
team_lambda=1.327
squad_xg_sum=1.3328
squad_xa_sum=0.9052
team_expected_assists=0.9012
team_xa_to_xg_ratio=0.6792
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 81.0)match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1277
goal_rate=0.085
scorer_weight=0.1093
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0891
assist_rate=0.0415
provider_weight=0.0746
-
Robin RoefsG9000.00-n/a0.07.054.027FBref 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.0073, quality 0.725)market_value_eur=31000000
quality_factor=0.7249
boost_factor=1.0073
reference_quality=0.505
history_matches=40
history_shrink=0.1111
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.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.9394 -> 2.9159
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Dominic Calvert-Lewin, Jayden Bogle', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.1657}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.33 (squad xG sum 1.3328, xG scale 0.9956, xA scale 0.9956, team xA 0.90 = 0.68 x lambda)scoreline_reset=true
team_lambda=1.327
squad_xg_sum=1.3328
squad_xa_sum=0.9052
team_expected_assists=0.9012
team_xa_to_xg_ratio=0.6792
shots_faced: 11.1 -> 13.8
expected_saves: 2.72 -> 3.38
high_pressure_saves: 0.93 -> 1.16
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.0
scorer_weight=0.0
squad_weight_total=1.3703
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.7923
-
Omar AldereteD7800.040.0269%00.46.844.330FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0009, quality 0.529)market_value_eur=10600000
quality_factor=0.5295
boost_factor=1.0009
reference_quality=0.505
history_matches=34
history_shrink=0.1282
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0017)blend_weight=0.0017
history_matches=34
season_overlap_discount=1.0
per90_to_match_factor=0.8679
prior_reliability=0.02
competition=Premier League
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Dominic Calvert-Lewin', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.33 (squad xG sum 1.3328, xG scale 0.9956, xA scale 0.9956, team xA 0.90 = 0.68 x lambda)scoreline_reset=true
team_lambda=1.327
squad_xg_sum=1.3328
squad_xa_sum=0.9052
team_expected_assists=0.9012
team_xa_to_xg_ratio=0.6792
-
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.0355
goal_rate=0.0022
scorer_weight=0.0289
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0133
assist_rate=0.0
provider_weight=0.0107
-
Reinildo MandavaD8700.000.0030%00.06.748.322FBref Prior D_service
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.451)market_value_eur=4099999
quality_factor=0.4511
boost_factor=0.9976
reference_quality=0.505
history_matches=29
history_shrink=0.1471
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0127)blend_weight=0.0127
history_matches=29
season_overlap_discount=1.0
per90_to_match_factor=0.9683
prior_reliability=0.1333
competition=Premier League
fouls: 1.5412 -> 1.5524
interceptionWon: 1.1812 -> 1.1908
totalCross: 0.7024 -> 0.712
totalShots: 0.393 -> 0.388
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Lukas Nmecha', '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.33 (squad xG sum 1.3328, xG scale 0.9956, xA scale 0.9956, team xA 0.90 = 0.68 x lambda)scoreline_reset=true
team_lambda=1.327
squad_xg_sum=1.3328
squad_xa_sum=0.9052
team_expected_assists=0.9012
team_xa_to_xg_ratio=0.6792
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 80.0)match_squad_rank=14
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0021
goal_rate=0.0
scorer_weight=0.002
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0437
assist_rate=0.0212
provider_weight=0.0358
-
Noah SadikiM8300.090.0651%10.76.855.027FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0100, quality 0.791)market_value_eur=42000000
quality_factor=0.7909
boost_factor=1.01
reference_quality=0.505
history_matches=38
history_shrink=0.1163
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0101)blend_weight=0.0101
history_matches=38
season_overlap_discount=1.0
per90_to_match_factor=0.9267
prior_reliability=0.1333
competition=Premier League
wonTackle: 0.7677 -> 0.774
wasFouled: 1.3517 -> 1.3568
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Dominic Calvert-Lewin, Lukas Nmecha, Anton Stach', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.33 (squad xG sum 1.3328, xG scale 0.9956, xA scale 0.9956, team xA 0.90 = 0.68 x lambda)scoreline_reset=true
team_lambda=1.327
squad_xg_sum=1.3328
squad_xa_sum=0.9052
team_expected_assists=0.9012
team_xa_to_xg_ratio=0.6792
-
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.087
goal_rate=0.0739
scorer_weight=0.0797
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0624
assist_rate=0.0763
provider_weight=0.0709
-
Brian BrobbeyF8110.430.2854%31.47.054.728FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0120, quality 0.834)market_value_eur=53000000
quality_factor=0.834
boost_factor=1.012
reference_quality=0.505
history_matches=36
history_shrink=0.122
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0074)blend_weight=0.0074
history_matches=36
season_overlap_discount=1.0
per90_to_match_factor=0.8988
prior_reliability=0.0933
competition=Premier League
totalOffside: 0.5035 -> 0.514
wasFouled: 1.9025 -> 1.8932
totalShots: 2.8469 -> 2.8397
onTargetScoringAttempt: 1.2978 -> 1.2928
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Tarik Muharemović, Nico Elvedi', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.213, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 1.0197, 'skill_edge': 0.0554, 'height_edge': -0.042, 'attacker_skill': 0.834, 'defender_skill': 0.7109, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Tarik Muharemović', 'market_value': 43000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8462}, {'player': 'Nico Elvedi', 'market_value': 11000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5755}], 'xg_override': 0.4309}
totalShots: 2.8419 -> 2.8979
shotOffTarget: 1.5491 -> 1.5796
onTargetScoringAttempt: 1.2928 -> 1.3183
goals: 0.5353 -> 0.5458
expectedGoalsOnTarget: 0.5333 -> 0.5438
expectedGoals: 0.4226 -> 0.4309
bigChanceMissed: 0.3856 -> 0.3932
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
goals: 1.0 -> 0
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.33 (squad xG sum 1.3328, xG scale 0.9956, xA scale 0.9956, team xA 0.90 = 0.68 x lambda)scoreline_reset=true
team_lambda=1.327
squad_xg_sum=1.3328
squad_xa_sum=0.9052
team_expected_assists=0.9012
team_xa_to_xg_ratio=0.6792
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 78.0)match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.3489
goal_rate=0.5458
scorer_weight=0.5316
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0409
assist_rate=0.0
provider_weight=0.0334
-
Enzo Le FéeM8900.240.1741%21.16.958.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.0064, quality 0.702)market_value_eur=28000000
quality_factor=0.7022
boost_factor=1.0064
reference_quality=0.505
history_matches=41
history_shrink=0.1087
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0090)blend_weight=0.009
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=0.987
prior_reliability=0.1267
competition=Premier League
totalCross: 3.0953 -> 3.0862
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Ao Tanaka', 'matchup_zone': 'Midfield lane'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.33 (squad xG sum 1.3328, xG scale 0.9956, xA scale 0.9956, team xA 0.90 = 0.68 x lambda)scoreline_reset=true
team_lambda=1.327
squad_xg_sum=1.3328
squad_xa_sum=0.9052
team_expected_assists=0.9012
team_xa_to_xg_ratio=0.6792
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 80.0)match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.2153
goal_rate=0.2228
scorer_weight=0.2253
-
integer_assist_projectionTeam scoreline allocation: 1 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.16
assist_rate=0.1379
provider_weight=0.1455
-
Habib DiarraM8400.130.12ok10.96.749.723FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0144, quality 0.764)market_value_eur=37000000
quality_factor=0.7641
boost_factor=1.0144
reference_quality=0.505
history_matches=22
history_shrink=0.1852
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0024)blend_weight=0.0024
history_matches=22
season_overlap_discount=1.0
per90_to_match_factor=0.9331
prior_reliability=0.02
competition=Premier League
goalAssist: 0.0985 -> 0.1058
wasFouled: 2.0981 -> 2.093
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Anton Stach', 'matchup_zone': 'CAM vs CM', 'duel_win_rate': 0.38, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9413, 'skill_edge': 0.012, 'height_edge': -0.052, 'attacker_skill': 0.7752, 'defender_skill': 0.7484, 'attacker_role': 'CAM', 'attacker_mv_price_index': 0.95, 'defender_adjusted_parts': [{'player': 'Anton Stach', 'market_value': 31000000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.7484}], 'xg_override': 0.1337}
aerialWon: 0.6625 -> 1.0
totalShots: 1.4992 -> 1.4112
shotOffTarget: 1.0042 -> 0.9453
onTargetScoringAttempt: 0.4904 -> 0.4616
bigChanceMissed: 0.2083 -> 0.1961
expectedGoalsOnTarget: 0.1621 -> 0.1526
expectedGoals: 0.142 -> 0.1337
goals: 0.12 -> 0.113
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.33 (squad xG sum 1.3328, xG scale 0.9956, xA scale 0.9956, team xA 0.90 = 0.68 x lambda)scoreline_reset=true
team_lambda=1.327
squad_xg_sum=1.3328
squad_xa_sum=0.9052
team_expected_assists=0.9012
team_xa_to_xg_ratio=0.6792
-
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.1246
goal_rate=0.113
scorer_weight=0.1181
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0931
assist_rate=0.1058
provider_weight=0.1028
-
Trai HumeD8500.060.06ok10.96.754.632FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0040, quality 0.631)market_value_eur=20000000
quality_factor=0.6311
boost_factor=1.004
reference_quality=0.505
history_matches=42
history_shrink=0.1064
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0088)blend_weight=0.0088
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.9468
prior_reliability=0.1267
competition=Premier League
wasFouled: 0.8536 -> 0.8461
wonTackle: 1.1363 -> 1.1438
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Dominic Calvert-Lewin', 'matchup_zone': '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.33 (squad xG sum 1.3328, xG scale 0.9956, xA scale 0.9956, team xA 0.90 = 0.68 x lambda)scoreline_reset=true
team_lambda=1.327
squad_xg_sum=1.3328
squad_xa_sum=0.9052
team_expected_assists=0.9012
team_xa_to_xg_ratio=0.6792
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 15 by projected rating, fifa_overall 78.0)match_squad_rank=15
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0585
goal_rate=0.119
scorer_weight=0.0754
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0953
assist_rate=0.0016
provider_weight=0.0801
-
Granit XhakaM9000.030.0231%10.57.359.526FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0000, quality 0.505)market_value_eur=8500000
quality_factor=0.5047
boost_factor=1.0
reference_quality=0.505
history_matches=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.9947
prior_reliability=0.1333
competition=Premier League
wasFouled: 1.5944 -> 1.613
totalCross: 4.2514 -> 4.2634
totalShots: 0.7339 -> 0.7267
wonTackle: 1.1969 -> 1.19
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Tarik Muharemović', 'matchup_zone': 'LW vs CB', 'duel_win_rate': 0.234, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.7271, 'skill_edge': -0.1537, 'height_edge': -0.032, 'attacker_skill': 0.5047, 'defender_skill': 0.8462, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Tarik Muharemović', 'market_value': 43000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8462}], 'xg_override': 0.0273}
aerialWon: 0.9277 -> 1.2
totalShots: 0.7322 -> 0.5324
shotOffTarget: 0.5618 -> 0.4085
onTargetScoringAttempt: 0.1704 -> 0.1239
expectedGoals: 0.0376 -> 0.0273
goals: 0.037 -> 0.0269
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.33 (squad xG sum 1.3328, xG scale 0.9956, xA scale 0.9956, team xA 0.90 = 0.68 x lambda)scoreline_reset=true
team_lambda=1.327
squad_xg_sum=1.3328
squad_xa_sum=0.9052
team_expected_assists=0.9012
team_xa_to_xg_ratio=0.6792
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 85.0)match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0268
goal_rate=0.0269
scorer_weight=0.0271
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1619
assist_rate=0.1114
provider_weight=0.1413
-
Team totals11.33146.9
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Anthony PattersonG4.6m11.9%Market-value substitute prior
Daniel BallardD14.6m23.8%Market-value substitute prior
Lutsharel GeertruidaD14.4m33.7%Market-value substitute prior
Dayann MethalieM23.0m54.5%Market-value substitute prior
Chris RiggM15.8m71.1%Market-value substitute prior
Malick FofanaF26.4m60.8%Market-value substitute prior

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Dominic Calvert-LewinF8510.440.42ok31.86.955.529FBref 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.0096)blend_weight=0.0096
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=0.9414
prior_reliability=0.1333
competition=Premier League
totalShots: 2.4763 -> 2.4706
totalOffside: 0.819 -> 0.8247
onTargetScoringAttempt: 1.0445 -> 1.039
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Noah Sadiki, Omar Alderete', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle', 'duel_win_rate': 0.297, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 1.04, 'skill_edge': -0.0008, 'height_edge': 0.028, 'attacker_skill': 0.6941, 'defender_skill': 0.6959, 'attacker_role': 'SS', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Noah Sadiki', 'market_value': 42000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8221}, {'player': 'Omar Alderete', 'market_value': 10600000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5697}], 'xg_override': 0.4292}
totalShots: 2.4708 -> 2.5697
shotOffTarget: 1.4318 -> 1.4891
onTargetScoringAttempt: 1.039 -> 1.0806
bigChanceMissed: 0.9268 -> 0.9639
expectedGoalsOnTarget: 0.624 -> 0.649
goals: 0.4387 -> 0.4562
expectedGoals: 0.4127 -> 0.4292
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.45 (squad xG sum 1.4149, xG scale 1.0277, xA scale 1.1324, team xA 0.95 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.454
squad_xg_sum=1.4149
squad_xa_sum=0.8346
team_expected_assists=0.9451
team_xa_to_xg_ratio=0.65
expected_goals: 0.4292 -> 0.4411
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 79.0)match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.3567
goal_rate=0.4562
scorer_weight=0.4659
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0353
assist_rate=0.005
provider_weight=0.0287
-
Lukas NmechaF7400.170.1156%20.76.743.929FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0003, quality 0.512)market_value_eur=9100000
quality_factor=0.5118
boost_factor=1.0003
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.8189
prior_reliability=0.0133
competition=Premier League
totalCross: 0.7038 -> 0.7119
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Noah Sadiki, Omar Alderete', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle', 'duel_win_rate': 0.207, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 0.9077, 'skill_edge': -0.0828, 'height_edge': 0.02, 'attacker_skill': 0.5118, 'defender_skill': 0.6959, 'attacker_role': 'SS', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Noah Sadiki', 'market_value': 42000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8221}, {'player': 'Omar Alderete', 'market_value': 10600000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5697}], 'xg_override': 0.1606}
totalShots: 1.5344 -> 1.3928
shotOffTarget: 0.9753 -> 0.8853
onTargetScoringAttempt: 0.5565 -> 0.5051
bigChanceMissed: 0.4044 -> 0.3671
expectedGoalsOnTarget: 0.325 -> 0.295
goals: 0.1911 -> 0.1735
expectedGoals: 0.1769 -> 0.1606
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.45 (squad xG sum 1.4149, xG scale 1.0277, xA scale 1.1324, team xA 0.95 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.454
squad_xg_sum=1.4149
squad_xa_sum=0.8346
team_expected_assists=0.9451
team_xa_to_xg_ratio=0.65
expected_assists: 0.059 -> 0.0668
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 76.0)match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1521
goal_rate=0.1735
scorer_weight=0.1751
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0646
assist_rate=0.119
provider_weight=0.0835
-
Anton StachM8700.160.0980%21.37.056.924FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0085, quality 0.725)market_value_eur=31000000
quality_factor=0.7249
boost_factor=1.0085
reference_quality=0.505
history_matches=34
history_shrink=0.1282
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0111)blend_weight=0.0111
history_matches=34
season_overlap_discount=1.0
per90_to_match_factor=0.9654
prior_reliability=0.1333
competition=Premier League
totalCross: 6.6895 -> 6.6581
wasFouled: 1.2915 -> 1.3093
interceptionWon: 1.5057 -> 1.5211
fouls: 1.7226 -> 1.7142
totalShots: 1.4495 -> 1.4548
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Noah Sadiki', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.477, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 1.0395, 'skill_edge': -0.0331, 'height_edge': 0.06, 'attacker_skill': 0.7484, 'defender_skill': 0.8221, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Noah Sadiki', 'market_value': 42000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8221}], 'xg_override': 0.1569}
aerialWon: 2.2793 -> 1.4
totalShots: 1.4548 -> 1.5123
shotOffTarget: 0.9905 -> 1.0296
onTargetScoringAttempt: 0.4592 -> 0.4773
bigChanceMissed: 0.2995 -> 0.3113
goals: 0.1951 -> 0.2028
expectedGoals: 0.1509 -> 0.1569
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.45 (squad xG sum 1.4149, xG scale 1.0277, xA scale 1.1324, team xA 0.95 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.454
squad_xg_sum=1.4149
squad_xa_sum=0.8346
team_expected_assists=0.9451
team_xa_to_xg_ratio=0.65
expected_assists: 0.1103 -> 0.1249
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 80.0)match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1489
goal_rate=0.2028
scorer_weight=0.197
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1174
assist_rate=0.0952
provider_weight=0.1131
-
Gabriel GudmundssonM8300.040.01427%10.26.938.530FBref Prior M_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0068, quality 0.686)market_value_eur=26000000
quality_factor=0.6858
boost_factor=1.0068
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': 'Nordi Mukiele', 'matchup_zone': 'Left Wingback vs Right Back — Overlapping Run', 'duel_win_rate': 0.426, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0378, 'skill_edge': 0.0417, 'height_edge': -0.016, 'attacker_skill': 0.765, 'defender_skill': 0.6723, 'attacker_role': 'LWB', 'attacker_mv_price_index': 0.7, 'defender_adjusted_parts': [{'player': 'Nordi Mukiele', 'market_value': 17100000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.6723}], 'xg_override': 0.0388}
aerialWon: 0.8318 -> 1.1
totalShots: 0.6562 -> 0.681
shotOffTarget: 0.4924 -> 0.511
onTargetScoringAttempt: 0.1638 -> 0.17
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.45 (squad xG sum 1.4149, xG scale 1.0277, xA scale 1.1324, team xA 0.95 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.454
squad_xg_sum=1.4149
squad_xa_sum=0.8346
team_expected_assists=0.9451
team_xa_to_xg_ratio=0.65
expected_assists: 0.0857 -> 0.097
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.0391
goal_rate=0.0409
scorer_weight=0.0408
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0924
assist_rate=0.0771
provider_weight=0.0909
-
Ao TanakaM7500.070.0533%10.46.934.430FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0035, quality 0.592)market_value_eur=16200000
quality_factor=0.5921
boost_factor=1.0035
reference_quality=0.505
history_matches=32
history_shrink=0.1351
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0029)blend_weight=0.0029
history_matches=32
season_overlap_discount=1.0
per90_to_match_factor=0.8367
prior_reliability=0.0333
competition=Premier League
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Noah Sadiki', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.383, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9015, 'skill_edge': -0.095, 'height_edge': 0.028, 'attacker_skill': 0.6109, 'defender_skill': 0.8221, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Noah Sadiki', 'market_value': 42000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8221}], 'xg_override': 0.065}
aerialWon: 0.3851 -> 1.1
totalShots: 0.9412 -> 0.8485
shotOffTarget: 0.7152 -> 0.6448
onTargetScoringAttempt: 0.226 -> 0.2037
bigChanceMissed: 0.1632 -> 0.1471
expectedGoals: 0.0721 -> 0.065
goals: 0.0669 -> 0.0603
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.45 (squad xG sum 1.4149, xG scale 1.0277, xA scale 1.1324, team xA 0.95 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.454
squad_xg_sum=1.4149
squad_xa_sum=0.8346
team_expected_assists=0.9451
team_xa_to_xg_ratio=0.65
expected_assists: 0.0651 -> 0.0737
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.0646
goal_rate=0.0603
scorer_weight=0.0641
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.071
assist_rate=0.0701
provider_weight=0.0769
-
Ethan AmpaduM9000.040.05ok10.67.059.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.0078, quality 0.739)market_value_eur=33000000
quality_factor=0.7389
boost_factor=1.0078
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.9977
prior_reliability=0.1333
competition=Premier League
wonTackle: 1.2072 -> 1.2004
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Noah Sadiki', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.459, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 1.0133, 'skill_edge': -0.027, 'height_edge': 0.036, 'attacker_skill': 0.7622, 'defender_skill': 0.8221, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Noah Sadiki', 'market_value': 42000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8221}], 'xg_override': 0.0422}
aerialWon: 1.2611 -> 1.1
totalShots: 0.706 -> 0.7154
shotOffTarget: 0.5387 -> 0.5459
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.45 (squad xG sum 1.4149, xG scale 1.0277, xA scale 1.1324, team xA 0.95 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.454
squad_xg_sum=1.4149
squad_xa_sum=0.8346
team_expected_assists=0.9451
team_xa_to_xg_ratio=0.65
expected_assists: 0.0553 -> 0.0626
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.0425
goal_rate=0.0523
scorer_weight=0.0482
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0607
assist_rate=0.0626
provider_weight=0.0669
-
Jayden BogleM7700.170.08103%10.56.855.226FBref Prior M_service
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.0040, quality 0.623)market_value_eur=19200000
quality_factor=0.6231
boost_factor=1.004
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.8586
prior_reliability=0.1133
competition=Premier League
wasFouled: 1.1738 -> 1.1851
totalShots: 1.1481 -> 1.1385
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': "Luke O'Nien", 'matchup_zone': 'Right Wingback vs Left Back — Overlapping Run', 'duel_win_rate': 0.533, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.1956, 'skill_edge': 0.1171, 'height_edge': 0.016, 'attacker_skill': 0.6976, 'defender_skill': 0.4374, 'attacker_role': 'RWB', 'attacker_mv_price_index': 0.7, 'defender_adjusted_parts': [{'player': "Luke O'Nien", 'market_value': 660000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.4374}], 'xg_override': 0.1616}
totalShots: 1.1447 -> 1.3687
aerialWon: 0.8434 -> 1.0
shotOffTarget: 0.7426 -> 0.8879
onTargetScoringAttempt: 0.4021 -> 0.4808
expectedGoalsOnTarget: 0.226 -> 0.2702
expectedGoals: 0.1352 -> 0.1616
goals: 0.1205 -> 0.1441
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.45 (squad xG sum 1.4149, xG scale 1.0277, xA scale 1.1324, team xA 0.95 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.454
squad_xg_sum=1.4149
squad_xa_sum=0.8346
team_expected_assists=0.9451
team_xa_to_xg_ratio=0.65
expected_assists: 0.0872 -> 0.0987
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 76.0)match_squad_rank=12
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.153
goal_rate=0.1441
scorer_weight=0.1524
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.094
assist_rate=0.092
provider_weight=0.1022
-
Tarik MuharemovićD9000.130.05163%10.57.035.810FBref Prior D_service
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.0436, quality 0.796)market_value_eur=43000000
quality_factor=0.7957
boost_factor=1.0436
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=1.0
prior_reliability=0.1333
competition=Premier League
interceptionWon: 1.2227 -> 1.2564
wasFouled: 1.0578 -> 1.0336
totalShots: 1.0447 -> 1.0211
onTargetScoringAttempt: 0.1469 -> 0.1622
totalCross: 0.1728 -> 0.187
wonTackle: 0.7442 -> 0.7336
goalAssist: 0.2392 -> 0.2288
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Granit Xhaka', 'matchup_zone': '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.45 (squad xG sum 1.4149, xG scale 1.0277, xA scale 1.1324, team xA 0.95 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.454
squad_xg_sum=1.4149
squad_xa_sum=0.8346
team_expected_assists=0.9451
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 75.0)match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1209
goal_rate=0.0
scorer_weight=0.1031
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0111
assist_rate=0.2288
provider_weight=0.014
-
Nico ElvediD9000.040.01275%10.26.827.510FBref Prior D_service
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.0049, quality 0.534)market_value_eur=11000000
quality_factor=0.5341
boost_factor=1.0049
reference_quality=0.505
history_matches=4
history_shrink=0.5556
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0144)blend_weight=0.0144
history_matches=4
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.04
competition=Premier League
wasFouled: 0.0 -> 0.0481
wonTackle: 0.7687 -> 0.7576
totalShots: 0.6424 -> 0.6331
interceptionWon: 1.0194 -> 1.0287
onTargetScoringAttempt: 0.3906 -> 0.385
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Brian Brobbey', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.45 (squad xG sum 1.4149, xG scale 1.0277, xA scale 1.1324, team xA 0.95 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.454
squad_xg_sum=1.4149
squad_xa_sum=0.8346
team_expected_assists=0.9451
team_xa_to_xg_ratio=0.65
expected_assists: 0.1662 -> 0.1884
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 78.0)match_squad_rank=11
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0431
goal_rate=0.0
scorer_weight=0.0353
-
integer_assist_projectionTeam scoreline allocation: 1 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.1717
assist_rate=0.0
provider_weight=0.1507
-
James JustinD8900.060.06ok10.96.959.832FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0035, quality 0.595)market_value_eur=16500000
quality_factor=0.5953
boost_factor=1.0035
reference_quality=0.505
history_matches=34
history_shrink=0.1282
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0111)blend_weight=0.0111
history_matches=34
season_overlap_discount=1.0
per90_to_match_factor=0.9932
prior_reliability=0.1333
competition=Premier League
wonTackle: 1.3488 -> 1.3614
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Brian Brobbey', 'matchup_zone': 'Shape fallback'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.45 (squad xG sum 1.4149, xG scale 1.0277, xA scale 1.1324, team xA 0.95 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.454
squad_xg_sum=1.4149
squad_xa_sum=0.8346
team_expected_assists=0.9451
team_xa_to_xg_ratio=0.65
expected_assists: 0.0741 -> 0.0839
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.0628
goal_rate=0.0443
scorer_weight=0.0541
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0805
assist_rate=0.1366
provider_weight=0.1049
-
James TraffordG9000.00-n/a0.07.014.230FBref 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.0284, quality 0.770)market_value_eur=38000000
quality_factor=0.7699
boost_factor=1.0284
reference_quality=0.505
history_matches=9
history_shrink=0.3571
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0309)blend_weight=0.0309
history_matches=9
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Brian Brobbey, Habib Diarra', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.0895}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.45 (squad xG sum 1.4149, xG scale 1.0277, xA scale 1.1324, team xA 0.95 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.454
squad_xg_sum=1.4149
squad_xa_sum=0.8346
team_expected_assists=0.9451
team_xa_to_xg_ratio=0.65
shots_faced: 10.4 -> 12.6
expected_saves: 2.55 -> 3.08
high_pressure_saves: 0.87 -> 1.06
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.4817
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.9401
-
Team totals11.45166.9
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Lucas PerriG4.7m12.2%Market-value substitute prior
Joe RodonD14.3m23.2%Market-value substitute prior
Jaka BijolD14.3m23.1%Market-value substitute prior
Sean LongstaffM15.1m70.3%Market-value substitute prior
Ilia GruevM22.4m51.6%Market-value substitute prior
Noah OkaforF25.7m55.2%Market-value substitute prior
Antagonist / tactical summary
Midfield is evenly contested — Noah Sadiki vs Ethan Ampadu will be the pivotal duel. Total antagonist xG — Home: 0.59, Away: 1.05. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Shadow Striker vs CDM + CB — Zone 14 Battle.
Midfield — possession 50.2% / 49.8%, dominance ratio 0.50, key duel: Noah Sadiki vs Ethan Ampadu
Granit Xhaka xG 0.03Habib Diarra xG 0.13Brian Brobbey xG 0.43Dominic Calvert-Lewin xG 0.43Lukas Nmecha xG 0.16Gabriel Gudmundsson xG 0.04

Summary

Antagonist matchup analysis for Sunderland vs Leeds. Most likely scoreline: 1-1. Lambdas derived from 3 home and 7 away individual player duels. Head-to-head: Sunderland 3W-4D-3L vs Leeds 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 — Noah Sadiki vs Ethan Ampadu will be the pivotal duel. Total antagonist xG — Home: 0.59, Away: 1.05. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Shadow Striker vs CDM + CB — Zone 14 Battle.

Real Sociedad vs Levante

LaLiga · 20261025 · 4-4-2 vs 4-3-3
Predicted 2-1Winner: Real SociedadWinning H 2-1 (9.9%)Winning A 1-2 (5.3%)Confidence 0.76λ home/away 1.94 / 1.04Most-likely P 9.9%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset Tracing
Antagonist + XGBoost match analysis for Real Sociedad vs Levante. Player statistics regressed using position-specific XGBoost models (G, D, M, F) with 2026-2027 FBref priors. Micro-duels resolved across 4-4-2 vs 4-3-3 (duel lambdas: Home 2.009, Away 1.137). Final calibrated Poisson lambdas: Home 1.944, Away 1.040 (most likely score 2-1).
Home Starters 11/11 XGBoost (8 FBref) Away Starters 11/11 XGBoost (6 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 2.01 / 1.14 Final λ (H/A) 1.94 / 1.04
FBref Team Priors: Real Sociedad (Gls/90: 0.75, GA/90: 0.75 → E[λ]: 0.928) vs Levante UD (Gls/90: 1.6666666666666667, GA/90: 1.67 → E[λ]: 0.926) | 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 SociedadLevante
League position5.0017.00
Points per game1.611.08
Attack index1.150.99
Defense (concede) index1.121.15
Form multiplier1.030.97
Standing λ multiplier1.121.05

Lambda decomposition (how the goal rates were built)

StageReal Sociedad λLevante λ
FBref Squad Prior E[λ] (weight 0.228)0.9280.926
Pre-mismatch2.0231.129
Pre-competitive-floor2.2071.101
Pre-calibration (Micro-duels)2.0091.137
Final λ1.9441.040
competition calibration scale 0.947competition observed total goals 2.984quality gap applied Truemismatch score pressure applied Truecompetitive underdog floor applied Falsestage discount 1.0

Scoreline distribution & markets

Top 5 scorelinesP
1-110.3%
2-19.9%
1-09.8%
2-09.6%
3-16.4%
Home win58.4%
Draw21.9%
Away win19.8%
Over 2.557.3%
BTTS yes55.5%
Pregame fair line — favorite Real Sociedad (58.4%), fair total 2.98, fair spread 0.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.

Real Sociedad — projected line vs season baseline (4-4-2)

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Jon MartinD9000.090.0653%00.46.853.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.0068, quality 0.669)market_value_eur=24000000
quality_factor=0.6685
boost_factor=1.0068
reference_quality=0.505
history_matches=31
history_shrink=0.1389
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0241)blend_weight=0.0241
history_matches=31
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.2667
competition=La Liga
wonTackle: 0.706 -> 0.7251
interceptionWon: 0.9525 -> 0.9356
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Víctor García', 'matchup_zone': 'Right Wing vs Left Back — Flank Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.94 (squad xG sum 1.5225, xG scale 1.2768, xA scale 1.5962, team xA 1.26 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.944
squad_xg_sum=1.5225
squad_xa_sum=0.7916
team_expected_assists=1.2636
team_xa_to_xg_ratio=0.65
expected_goals: 0.0706 -> 0.0901
expected_assists: 0.0098 -> 0.0156
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 78.0)match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0862
goal_rate=0.0961
scorer_weight=0.1091
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0155
assist_rate=0.0
provider_weight=0.013
-
Héctor FortD6300.080.011486%10.26.630.813FBref 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.0052, quality 0.575)market_value_eur=14600000
quality_factor=0.5748
boost_factor=1.0052
reference_quality=0.505
history_matches=15
history_shrink=0.25
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Roger Brugué', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.94 (squad xG sum 1.5225, xG scale 1.2768, xA scale 1.5962, team xA 1.26 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.944
squad_xg_sum=1.5225
squad_xa_sum=0.7916
team_expected_assists=1.2636
team_xa_to_xg_ratio=0.65
expected_goals: 0.066 -> 0.0843
expected_assists: 0.0172 -> 0.0275
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 17 by projected rating, fifa_overall 72.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.0808
goal_rate=0.3823
scorer_weight=0.1054
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0271
assist_rate=0.2726
provider_weight=0.0344
-
Álex RemiroG9000.00-n/a0.07.163.629FBref Prior G_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost G_service raw output over 3 target models--
market_value_boostMarket-value quality scaling (boost 1.0004, quality 0.518)market_value_eur=9600000
quality_factor=0.5177
boost_factor=1.0004
reference_quality=0.505
history_matches=43
history_shrink=0.1042
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0181)blend_weight=0.0181
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.2667
competition=La Liga
saves: 2.9463 -> 2.9698
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Iván Romero, Roger Brugué', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.1367}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.94 (squad xG sum 1.5225, xG scale 1.2768, xA scale 1.5962, team xA 1.26 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.944
squad_xg_sum=1.5225
squad_xa_sum=0.7916
team_expected_assists=1.2636
team_xa_to_xg_ratio=0.65
shots_faced: 10.8 -> 9.9
expected_saves: 2.64 -> 2.42
high_pressure_saves: 0.91 -> 0.83
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 81.0)match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=2.1049
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.3089
-
Mamadou SarrD8300.160.03524%00.16.619.217FBref 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.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
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Roger Brugué', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.94 (squad xG sum 1.5225, xG scale 1.2768, xA scale 1.5962, team xA 1.26 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.944
squad_xg_sum=1.5225
squad_xa_sum=0.7916
team_expected_assists=1.2636
team_xa_to_xg_ratio=0.65
expected_goals: 0.1254 -> 0.1601
expected_assists: 0.0091 -> 0.0145
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 16 by projected rating, fifa_overall 77.0)match_squad_rank=16
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.1479
goal_rate=0.0
scorer_weight=0.1281
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0144
assist_rate=0.0
provider_weight=0.0123
-
Sergio GómezD8500.020.02ok10.46.860.628FBref Prior D_service
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.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
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0175)blend_weight=0.0175
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.9426
prior_reliability=0.2533
competition=La Liga
totalCross: 5.2217 -> 5.2302
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Iván Romero', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.94 (squad xG sum 1.5225, xG scale 1.2768, xA scale 1.5962, team xA 1.26 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.944
squad_xg_sum=1.5225
squad_xa_sum=0.7916
team_expected_assists=1.2636
team_xa_to_xg_ratio=0.65
expected_goals: 0.0186 -> 0.0237
expected_assists: 0.1323 -> 0.2112
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 78.0)match_squad_rank=11
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0234
goal_rate=0.0
scorer_weight=0.019
-
integer_assist_projectionTeam scoreline allocation: 1 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.1904
assist_rate=0.1606
provider_weight=0.244
-
Beñat TurrientesM7900.080.02235%10.66.954.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.0010, quality 0.529)market_value_eur=10600000
quality_factor=0.5295
boost_factor=1.001
reference_quality=0.505
history_matches=31
history_shrink=0.1389
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0175)blend_weight=0.0175
history_matches=31
season_overlap_discount=1.0
per90_to_match_factor=0.8728
prior_reliability=0.1933
competition=La Liga
fouls: 0.7861 -> 0.7724
onTargetScoringAttempt: 0.3033 -> 0.314
wasFouled: 0.9006 -> 0.8901
interceptionWon: 0.5154 -> 0.5064
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Oriol Rey, Daniel Requena', 'matchup_zone': 'CM vs CDM + CM', 'duel_win_rate': 0.342, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.0611, 'skill_edge': 0.0476, 'height_edge': -0.006, 'attacker_skill': 0.5431, 'defender_skill': 0.4374, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Oriol Rey', 'market_value': 1700000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4374}, {'player': 'Daniel Requena', 'market_value': 1500000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.4374}], 'xg_override': 0.0596}
aerialWon: 0.3334 -> 1.0
totalShots: 1.0552 -> 1.1197
shotOffTarget: 0.7412 -> 0.7865
onTargetScoringAttempt: 0.314 -> 0.3332
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.94 (squad xG sum 1.5225, xG scale 1.2768, xA scale 1.5962, team xA 1.26 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.944
squad_xg_sum=1.5225
squad_xa_sum=0.7916
team_expected_assists=1.2636
team_xa_to_xg_ratio=0.65
expected_goals: 0.0596 -> 0.0761
expected_assists: 0.0559 -> 0.0892
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_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.0733
goal_rate=0.0624
scorer_weight=0.078
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.0562
provider_weight=0.0894
-
Orri ÓskarssonF7810.530.2984%31.26.855.627XGBoost 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.641)market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.0066
reference_quality=0.505
history_matches=26
history_shrink=0.1613
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Aïssa Mandi, Ifeanyi Ndukwe', '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.094, 'skill_edge': 0.088, 'height_edge': -0.024, 'attacker_skill': 0.6408, 'defender_skill': 0.4453, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Aïssa Mandi', 'market_value': 1100000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'Ifeanyi Ndukwe', 'market_value': 3200000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4531}], 'xg_override': 0.4168}
totalShots: 2.3207 -> 2.5388
shotOffTarget: 1.3108 -> 1.434
onTargetScoringAttempt: 1.0099 -> 1.1048
bigChanceMissed: 0.9177 -> 1.004
expectedGoalsOnTarget: 0.7178 -> 0.7853
goals: 0.473 -> 0.5175
expectedGoals: 0.381 -> 0.4168
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
goals: 1.0 -> 0
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.94 (squad xG sum 1.5225, xG scale 1.2768, xA scale 1.5962, team xA 1.26 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.944
squad_xg_sum=1.5225
squad_xa_sum=0.7916
team_expected_assists=1.2636
team_xa_to_xg_ratio=0.65
expected_goals: 0.4168 -> 0.5323
expected_assists: 0.0351 -> 0.056
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=1
goal_probability=0.4127
goal_rate=0.5175
scorer_weight=0.6471
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0545
assist_rate=0.0
provider_weight=0.0448
-
Mikel OyarzabalF7910.300.32ok21.56.963.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.0062, quality 0.694)market_value_eur=27000000
quality_factor=0.6941
boost_factor=1.0062
reference_quality=0.505
history_matches=41
history_shrink=0.1087
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0141)blend_weight=0.0141
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=0.8763
prior_reliability=0.2
competition=La Liga
wasFouled: 1.1754 -> 1.1877
wonTackle: 0.8096 -> 0.7982
onTargetScoringAttempt: 0.6804 -> 0.6874
goalAssist: 0.1648 -> 0.1707
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Aïssa Mandi, Ifeanyi Ndukwe', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.268, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.0999, 'skill_edge': 0.112, 'height_edge': -0.044, 'attacker_skill': 0.6941, 'defender_skill': 0.4453, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Aïssa Mandi', 'market_value': 1100000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'Ifeanyi Ndukwe', 'market_value': 3200000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4531}], 'xg_override': 0.2332}
totalShots: 1.9195 -> 2.1113
shotOffTarget: 1.2321 -> 1.3552
onTargetScoringAttempt: 0.6874 -> 0.7561
bigChanceMissed: 0.6713 -> 0.7384
expectedGoalsOnTarget: 0.2492 -> 0.2741
expectedGoals: 0.212 -> 0.2332
goals: 0.2112 -> 0.2323
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.94 (squad xG sum 1.5225, xG scale 1.2768, xA scale 1.5962, team xA 1.26 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.944
squad_xg_sum=1.5225
squad_xa_sum=0.7916
team_expected_assists=1.2636
team_xa_to_xg_ratio=0.65
expected_goals: 0.2332 -> 0.2978
expected_assists: 0.112 -> 0.1788
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 90.0)match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=1
goal_probability=0.2576
goal_rate=0.2323
scorer_weight=0.2968
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1637
assist_rate=0.1707
provider_weight=0.2235
-
Ander BarrenetxeaF6700.210.06224%20.96.956.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.0036, quality 0.603)market_value_eur=17200000
quality_factor=0.6027
boost_factor=1.0036
reference_quality=0.505
history_matches=36
history_shrink=0.122
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0127)blend_weight=0.0127
history_matches=36
season_overlap_discount=1.0
per90_to_match_factor=0.7428
prior_reliability=0.16
competition=La Liga
interceptionWon: 0.4537 -> 0.4479
totalCross: 2.2798 -> 2.2744
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Aïssa Mandi, Ifeanyi Ndukwe', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.211, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.0159, 'skill_edge': 0.0708, 'height_edge': -0.06, 'attacker_skill': 0.6027, 'defender_skill': 0.4453, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Aïssa Mandi', 'market_value': 1100000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'Ifeanyi Ndukwe', 'market_value': 3200000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4531}], 'xg_override': 0.1612}
totalShots: 1.6295 -> 1.6554
shotOffTarget: 1.0875 -> 1.1048
onTargetScoringAttempt: 0.542 -> 0.5506
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.94 (squad xG sum 1.5225, xG scale 1.2768, xA scale 1.5962, team xA 1.26 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.944
squad_xg_sum=1.5225
squad_xa_sum=0.7916
team_expected_assists=1.2636
team_xa_to_xg_ratio=0.65
expected_goals: 0.1612 -> 0.2058
expected_assists: 0.0951 -> 0.1518
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 81.0)match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.186
goal_rate=0.2224
scorer_weight=0.2573
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1408
assist_rate=0.1071
provider_weight=0.1644
-
Carlos SolerM8600.150.0960%10.96.963.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.9992, quality 0.482)market_value_eur=6600000
quality_factor=0.4818
boost_factor=0.9992
reference_quality=0.505
history_matches=40
history_shrink=0.1111
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0111)blend_weight=0.0111
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=0.9526
prior_reliability=0.1533
competition=La Liga
wonTackle: 0.3931 -> 0.4025
totalShots: 1.1542 -> 1.146
fouls: 0.6296 -> 0.6226
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Jeremy Toljan', 'matchup_zone': 'Left Mid vs Right Back — Wide Channel', 'duel_win_rate': 0.476, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0234, 'skill_edge': 0.024, 'height_edge': -0.008, 'attacker_skill': 0.4907, 'defender_skill': 0.4374, 'attacker_role': 'LM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Jeremy Toljan', 'market_value': 1900000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.4374}], 'xg_override': 0.1157}
aerialWon: 0.1694 -> 1.1
totalShots: 1.1502 -> 1.1771
shotOffTarget: 0.7956 -> 0.8142
onTargetScoringAttempt: 0.3546 -> 0.3629
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.94 (squad xG sum 1.5225, xG scale 1.2768, xA scale 1.5962, team xA 1.26 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.944
squad_xg_sum=1.5225
squad_xa_sum=0.7916
team_expected_assists=1.2636
team_xa_to_xg_ratio=0.65
expected_goals: 0.1157 -> 0.1477
expected_assists: 0.1401 -> 0.2237
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 79.0)match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.1373
goal_rate=0.1106
scorer_weight=0.1432
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.2004
assist_rate=0.1133
provider_weight=0.1922
-
Takefusa KuboF7000.180.05227%10.46.844.726FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0060, quality 0.641)market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.006
reference_quality=0.505
history_matches=29
history_shrink=0.1471
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0147)blend_weight=0.0147
history_matches=29
season_overlap_discount=1.0
per90_to_match_factor=0.7751
prior_reliability=0.1533
competition=La Liga
wasFouled: 2.2211 -> 2.2132
totalShots: 1.1417 -> 1.1351
onTargetScoringAttempt: 0.4022 -> 0.3963
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Aïssa Mandi, Ifeanyi Ndukwe', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.228, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.0411, 'skill_edge': 0.088, 'height_edge': -0.06, 'attacker_skill': 0.6408, 'defender_skill': 0.4453, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Aïssa Mandi', 'market_value': 1100000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'Ifeanyi Ndukwe', 'market_value': 3200000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4531}], 'xg_override': 0.1398}
totalShots: 1.1357 -> 1.1824
shotOffTarget: 0.7394 -> 0.7698
onTargetScoringAttempt: 0.3963 -> 0.4126
bigChanceMissed: 0.1989 -> 0.2071
goals: 0.1373 -> 0.1429
expectedGoals: 0.1343 -> 0.1398
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.94 (squad xG sum 1.5225, xG scale 1.2768, xA scale 1.5962, team xA 1.26 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.944
squad_xg_sum=1.5225
squad_xa_sum=0.7916
team_expected_assists=1.2636
team_xa_to_xg_ratio=0.65
expected_goals: 0.1398 -> 0.1785
expected_assists: 0.0984 -> 0.1571
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 80.0)match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.1635
goal_rate=0.1429
scorer_weight=0.1814
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1454
assist_rate=0.0967
provider_weight=0.1553
-
Team totals21.94146.8
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Unai MarreroG4.4m10.9%Market-value substitute prior
Jon AramburuD14.1m22.7%Market-value substitute prior
Igor ZubeldiaD24.9m31.6%Market-value substitute prior
Jon GorrotxategiM19.1m71.3%Market-value substitute prior
Luka SučićM26.7m41.6%Market-value substitute prior
Gonçalo GuedesF20.8m72.2%Market-value substitute prior

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Roger BruguéF8200.250.3630%21.96.949.818XGBoost 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.9965, quality 0.437)market_value_eur=2800000
quality_factor=0.4374
boost_factor=0.9965
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': 'Héctor Fort, Mamadou Sarr', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 0.7521, 'skill_edge': -0.1087, 'height_edge': -0.06, 'attacker_skill': 0.4374, 'defender_skill': 0.6789, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Héctor Fort', 'market_value': 14600000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6258}, {'player': 'Mamadou Sarr', 'market_value': 24000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.732}], 'xg_override': 0.2675}
totalShots: 2.1875 -> 1.6452
shotOffTarget: 1.2253 -> 0.9215
onTargetScoringAttempt: 0.9622 -> 0.7237
bigChanceMissed: 0.3782 -> 0.2844
goals: 0.3687 -> 0.2773
expectedGoals: 0.3557 -> 0.2675
expectedGoalsOnTarget: 0.3369 -> 0.2534
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_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 1.0996, xG scale 0.9458, xA scale 1.1262, team xA 0.68 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.04
squad_xg_sum=1.0996
squad_xa_sum=0.6002
team_expected_assists=0.676
team_xa_to_xg_ratio=0.65
expected_goals: 0.2675 -> 0.253
expected_assists: 0.0599 -> 0.0675
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 88.0)match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_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.2235
goal_rate=0.2773
scorer_weight=0.2608
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.0323
provider_weight=0.054
-
Iván RomeroF7310.310.26ok21.87.061.328FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9995, quality 0.491)market_value_eur=7400000
quality_factor=0.4915
boost_factor=0.9995
reference_quality=0.505
history_matches=38
history_shrink=0.1163
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0126)blend_weight=0.0126
history_matches=38
season_overlap_discount=1.0
per90_to_match_factor=0.8069
prior_reliability=0.1667
competition=La Liga
totalShots: 2.3124 -> 2.3202
wasFouled: 1.8472 -> 1.8402
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Sergio Gómez', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.417, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.908, 'skill_edge': -0.0666, 'height_edge': 0.004, 'attacker_skill': 0.4915, 'defender_skill': 0.6394, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Sergio Gómez', 'market_value': 14600000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.6394}], 'xg_override': 0.3228}
totalShots: 2.3202 -> 2.1067
shotOffTarget: 1.4011 -> 1.2722
onTargetScoringAttempt: 0.9081 -> 0.8246
bigChanceMissed: 0.5186 -> 0.4709
expectedGoals: 0.3555 -> 0.3228
goals: 0.3511 -> 0.3188
expectedGoalsOnTarget: 0.218 -> 0.1979
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_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 1.0996, xG scale 0.9458, xA scale 1.1262, team xA 0.68 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.04
squad_xg_sum=1.0996
squad_xa_sum=0.6002
team_expected_assists=0.676
team_xa_to_xg_ratio=0.65
expected_goals: 0.3228 -> 0.3054
expected_assists: 0.0585 -> 0.0659
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 75.0)match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.2632
goal_rate=0.3188
scorer_weight=0.3021
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0638
assist_rate=0.0057
provider_weight=0.0527
-
Víctor GarcíaF7500.100.0740%10.66.748.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.9967, quality 0.437)market_value_eur=1500000
quality_factor=0.4374
boost_factor=0.9967
reference_quality=0.505
history_matches=26
history_shrink=0.1613
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0084)blend_weight=0.0084
history_matches=26
season_overlap_discount=1.0
per90_to_match_factor=0.8342
prior_reliability=0.08
competition=La Liga
totalShots: 1.25 -> 1.2395
totalCross: 4.415 -> 4.4071
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Jon Martin', 'matchup_zone': 'Right Wing vs Left Back — Flank Battle', 'duel_win_rate': 0.309, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 0.7479, 'skill_edge': -0.1395, 'height_edge': -0.032, 'attacker_skill': 0.4374, 'defender_skill': 0.7474, 'attacker_role': 'RW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Jon Martin', 'market_value': 24000000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.7474}], 'xg_override': 0.1072}
totalShots: 1.2462 -> 0.9321
shotOffTarget: 0.8078 -> 0.6042
onTargetScoringAttempt: 0.4384 -> 0.3279
expectedGoalsOnTarget: 0.2811 -> 0.2102
bigChanceMissed: 0.2739 -> 0.2048
expectedGoals: 0.1433 -> 0.1072
goals: 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.04 (squad xG sum 1.0996, xG scale 0.9458, xA scale 1.1262, team xA 0.68 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.04
squad_xg_sum=1.0996
squad_xa_sum=0.6002
team_expected_assists=0.676
team_xa_to_xg_ratio=0.65
expected_goals: 0.1072 -> 0.1014
expected_assists: 0.0813 -> 0.0916
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 72.0)match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0964
goal_rate=0.0969
scorer_weight=0.0948
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0875
assist_rate=0.0
provider_weight=0.0733
-
Daniel RequenaM8700.050.01469%10.26.732.68FBref Prior M_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 0.9873, quality 0.437)market_value_eur=1500000
quality_factor=0.4374
boost_factor=0.9873
reference_quality=0.505
history_matches=3
history_shrink=0.625
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=true
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Beñat Turrientes', 'matchup_zone': 'Central Mid vs Central Mid — Box-to-Box Midfield Contest', 'duel_win_rate': 0.4, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9713, 'skill_edge': -0.0476, 'height_edge': 0.028, 'attacker_skill': 0.4374, 'defender_skill': 0.5431, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Beñat Turrientes', 'market_value': 10600000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.5431}], 'xg_override': 0.0487}
aerialWon: 0.0 -> 1.2
totalShots: 0.693 -> 0.6731
shotOffTarget: 0.506 -> 0.4915
onTargetScoringAttempt: 0.187 -> 0.1816
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_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 1.0996, xG scale 0.9458, xA scale 1.1262, team xA 0.68 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.04
squad_xg_sum=1.0996
squad_xa_sum=0.6002
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 14 by projected rating, fifa_overall 84.0)match_squad_rank=14
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_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.0451
goal_rate=0.0481
scorer_weight=0.0458
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0341
assist_rate=0.0296
provider_weight=0.0342
-
Oriol ReyM8600.030.01366%10.26.834.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.9967, quality 0.437)market_value_eur=1700000
quality_factor=0.4374
boost_factor=0.9967
reference_quality=0.505
history_matches=26
history_shrink=0.1613
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0210)blend_weight=0.021
history_matches=26
season_overlap_discount=1.0
per90_to_match_factor=0.9543
prior_reliability=0.2
competition=La Liga
totalShots: 0.6064 -> 0.5937
wasFouled: 0.7716 -> 0.7621
totalCross: 0.2453 -> 0.2402
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Beñat Turrientes', 'matchup_zone': 'Holding Mid vs Central Mid — Midfield Anchor Duel', 'duel_win_rate': 0.336, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9066, 'skill_edge': -0.0476, 'height_edge': -0.016, 'attacker_skill': 0.4374, 'defender_skill': 0.5431, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Beñat Turrientes', 'market_value': 10600000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.5431}], 'xg_override': 0.0352}
aerialWon: 1.1859 -> 0.9
totalShots: 0.6032 -> 0.5469
shotOffTarget: 0.4547 -> 0.4122
onTargetScoringAttempt: 0.1485 -> 0.1346
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_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 1.0996, xG scale 0.9458, xA scale 1.1262, team xA 0.68 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.04
squad_xg_sum=1.0996
squad_xa_sum=0.6002
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 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.0328
goal_rate=0.0348
scorer_weight=0.0331
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0421
assist_rate=0.0479
provider_weight=0.0477
-
Jon Ander OlasagastiM8400.110.10ok11.06.964.029XGBoost 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.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
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Beñat Turrientes', 'matchup_zone': 'Central Mid vs Central Mid — Box-to-Box Midfield Contest', 'duel_win_rate': 0.36, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9125, 'skill_edge': -0.0476, 'height_edge': -0.012, 'attacker_skill': 0.4374, 'defender_skill': 0.5431, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Beñat Turrientes', 'market_value': 10600000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.5431}], 'xg_override': 0.1172}
aerialWon: 0.7264 -> 0.9
totalShots: 1.2602 -> 1.1499
shotOffTarget: 0.794 -> 0.7245
onTargetScoringAttempt: 0.4662 -> 0.4254
expectedGoalsOnTarget: 0.1944 -> 0.1774
goals: 0.1533 -> 0.1399
expectedGoals: 0.1284 -> 0.1172
bigChanceMissed: 0.0953 -> 0.087
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_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 1.0996, xG scale 0.9458, xA scale 1.1262, team xA 0.68 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.04
squad_xg_sum=1.0996
squad_xa_sum=0.6002
team_expected_assists=0.676
team_xa_to_xg_ratio=0.65
expected_goals: 0.1172 -> 0.1108
expected_assists: 0.13 -> 0.1463
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_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.1049
goal_rate=0.1399
scorer_weight=0.1258
-
integer_assist_projectionTeam scoreline allocation: 1 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.1361
assist_rate=0.1509
provider_weight=0.1633
-
Manuel SánchezD8800.000.0141%00.26.754.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 0.9991, quality 0.479)market_value_eur=6400000
quality_factor=0.4793
boost_factor=0.9991
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': 'Takefusa Kubo', '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 1.0996, xG scale 0.9458, xA scale 1.1262, team xA 0.68 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.04
squad_xg_sum=1.0996
squad_xa_sum=0.6002
team_expected_assists=0.676
team_xa_to_xg_ratio=0.65
expected_assists: 0.0594 -> 0.0669
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 78.0)match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_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.0047
goal_rate=0.0028
scorer_weight=0.0045
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0647
assist_rate=0.0263
provider_weight=0.0535
-
Aïssa MandiD8500.000.01ok00.16.851.98FBref Prior D_service
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=1100000
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.0591)blend_weight=0.0591
history_matches=6
season_overlap_discount=1.0
per90_to_match_factor=0.9458
prior_reliability=0.2
competition=La Liga
wonTackle: 0.756 -> 0.8045
fouls: 0.4414 -> 0.4153
interceptionWon: 1.0925 -> 1.0838
wasFouled: 0.7703 -> 0.762
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Orri Óskarsson', '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 1.0996, xG scale 0.9458, xA scale 1.1262, team xA 0.68 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.04
squad_xg_sum=1.0996
squad_xa_sum=0.6002
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 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.0047
goal_rate=0.0
scorer_weight=0.0043
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0082
assist_rate=0.0
provider_weight=0.0072
-
Ifeanyi NdukweD9000.00-n/a00.06.718.47FBref 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.9861, quality 0.440)market_value_eur=3200000
quality_factor=0.4399
boost_factor=0.9861
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': 'Orri Óskarsson', '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 1.0996, xG scale 0.9458, xA scale 1.1262, team xA 0.68 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.04
squad_xg_sum=1.0996
squad_xa_sum=0.6002
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 13 by projected rating, fifa_overall 84.0)match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.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.0007
assist_rate=0.0
provider_weight=0.001
-
Jeremy ToljanD8400.030.01124%00.26.661.029FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9979, quality 0.437)market_value_eur=1900000
quality_factor=0.4374
boost_factor=0.9979
reference_quality=0.505
history_matches=43
history_shrink=0.1042
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0036)blend_weight=0.0036
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=0.9328
prior_reliability=0.0533
competition=La Liga
totalCross: 2.4008 -> 2.409
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Carlos Soler', 'matchup_zone': '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.04 (squad xG sum 1.0996, xG scale 0.9458, xA scale 1.1262, team xA 0.68 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.04
squad_xg_sum=1.0996
squad_xa_sum=0.6002
team_expected_assists=0.676
team_xa_to_xg_ratio=0.65
expected_assists: 0.0726 -> 0.0818
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 18 by projected rating, fifa_overall 74.0)match_squad_rank=18
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0271
goal_rate=0.0003
scorer_weight=0.022
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0785
assist_rate=0.2351
provider_weight=0.1022
-
Mathew RyanG9000.000.01100%0.17.067.930FBref Prior G_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost G_service raw output over 3 target models--
market_value_boostMarket-value quality scaling (boost 0.9978, quality 0.437)market_value_eur=1700000
quality_factor=0.4374
boost_factor=0.9978
reference_quality=0.505
history_matches=42
history_shrink=0.1064
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0138)blend_weight=0.0138
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.2
competition=La Liga
saves: 3.0151 -> 3.0379
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Orri Óskarsson, Mikel Oyarzabal', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 2.0092}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_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 1.0996, xG scale 0.9458, xA scale 1.1262, team xA 0.68 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.04
squad_xg_sum=1.0996
squad_xa_sum=0.6002
team_expected_assists=0.676
team_xa_to_xg_ratio=0.65
shots_faced: 19.1 -> 18.5
expected_saves: 4.68 -> 4.53
high_pressure_saves: 1.61 -> 1.56
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 79.0)match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.0647
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.6667
-
Team totals11.04116.8
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Pablo Cunat CamposG4.4m10.9%Market-value substitute prior
Axel TapeD13.8m31.1%Market-value substitute prior
Matias MorenoD13.7m30.5%Market-value substitute prior
Carlos ÁlvarezM22.6m31.9%Market-value substitute prior
Enzo BardeliM22.1m50.5%Market-value substitute prior
Etta EyongF25.9m58.5%Market-value substitute prior
Antagonist / tactical summary
Midfield is evenly contested — Beñat Turrientes vs Jon Ander Olasagasti will be the pivotal duel. Total antagonist xG — Home: 1.13, Away: 0.90. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Left Wing vs Right Back — Flank Battle.
Midfield — possession 51.0% / 49.0%, dominance ratio 0.52, key duel: Beñat Turrientes vs Jon Ander Olasagasti
Orri Óskarsson xG 0.42Mikel Oyarzabal xG 0.23Ander Barrenetxea xG 0.16Iván Romero xG 0.32Víctor García xG 0.11Roger Brugué xG 0.27

Summary

Antagonist matchup analysis for Real Sociedad vs Levante. Most likely scoreline: 2-1. Lambdas derived from 6 home and 6 away individual player duels. Head-to-head: Real Sociedad 4W-3D-3L vs Levante over 10 meetings.
Tactical parity between 4-4-2 and 4-3-3. Match outcome driven primarily by individual player quality. Midfield is evenly contested — Beñat Turrientes vs Jon Ander Olasagasti will be the pivotal duel. Total antagonist xG — Home: 1.13, Away: 0.90. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Left Wing vs Right Back — Flank Battle.

Crystal Palace vs Newcastle

Premier League · 20261025 · 3-4-2-1 vs 4-2-3-1
Predicted 1-2Winner: NewcastleWinning H 2-1 (8.1%)Winning A 1-2 (8.5%)Confidence 0.7λ home/away 1.60 / 1.69Most-likely P 8.5%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset Tracing
Antagonist + XGBoost match analysis for Crystal Palace vs Newcastle. Player statistics regressed using position-specific XGBoost models (G, D, M, F) with 2026-2027 FBref priors. Micro-duels resolved across 3-4-2-1 vs 4-2-3-1 (duel lambdas: Home 1.364, Away 1.619). Final calibrated Poisson lambdas: Home 1.602, Away 1.686 (most likely score 1-2).
Home Starters 11/11 XGBoost (9 FBref) Away Starters 11/11 XGBoost (8 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.36 / 1.62 Final λ (H/A) 1.60 / 1.69
Modeling Pipeline Stages (5 layers)
  1. 1. XGBoost player regressions for volume & event rates with market-value quality scaling
  2. 2. Multi-source prior blending (FBref 2026-2027 tables + Sofascore season history)
  3. 3. Antagonist formation duel matrix resolving 1v1 and zonal matchups
  4. 4. Team-level prior calibration (FBref possession and attack/defense efficiencies)
  5. 5. Bivariate Poisson matrix with Dixon-Coles low-score correction

Standing & form context

MetricCrystal PalaceNewcastle
League position14.0011.00
Points per game1.161.24
Attack index1.010.94
Defense (concede) index1.081.32
Form multiplier0.991.00
Standing λ multiplier1.041.09

Lambda decomposition (how the goal rates were built)

StageCrystal Palace λNewcastle λ
Pre-competitive-floor1.6021.686
Pre-calibration (Micro-duels)1.3631.619
Final λ1.6021.686
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-110.2%
1-28.5%
2-18.1%
2-26.8%
0-16.2%
Home win36.6%
Draw23.2%
Away win40.2%
Over 2.563.8%
BTTS yes65.1%
Pregame fair line — favorite Newcastle (40.2%), fair total 3.29, fair spread -0.08

Projected players vs season baseline

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

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Tyrick MitchellM8500.090.0642%10.66.857.230FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0048, quality 0.660)market_value_eur=23000000
quality_factor=0.6595
boost_factor=1.0048
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.9399
prior_reliability=0.1333
competition=Premier League
wonTackle: 1.7126 -> 1.7056
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Lukáš Horníček', 'matchup_zone': 'Left Wingback vs Right Back — Overlapping Run', 'duel_win_rate': 0.329, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 0.8664, 'skill_edge': -0.0309, 'height_edge': -0.06, 'attacker_skill': 0.7379, 'defender_skill': 0.8066, 'attacker_role': 'LWB', 'attacker_mv_price_index': 0.7, 'defender_adjusted_parts': [{'player': 'Lukáš Horníček', 'market_value': 25000000, 'role': 'GK', 'price_index': 0.55, 'adjusted_quality': 0.8066}], 'xg_override': 0.0773}
totalShots: 1.1183 -> 0.9689
shotOffTarget: 0.8342 -> 0.7228
aerialWon: 0.8185 -> 0.9
onTargetScoringAttempt: 0.2831 -> 0.2453
bigChanceMissed: 0.1668 -> 0.1445
expectedGoalsOnTarget: 0.1424 -> 0.1234
goals: 0.1006 -> 0.0872
expectedGoals: 0.0892 -> 0.0773
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.60 (squad xG sum 1.3541, xG scale 1.1831, xA scale 1.3335, team xA 1.04 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.602
squad_xg_sum=1.3541
squad_xa_sum=0.7809
team_expected_assists=1.0413
team_xa_to_xg_ratio=0.65
expected_goals: 0.0773 -> 0.0915
expected_assists: 0.0899 -> 0.1199
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 79.0)match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0874
goal_rate=0.0872
scorer_weight=0.0986
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.113
assist_rate=0.0818
provider_weight=0.113
-
Daichi KamadaM8300.070.06ok10.56.855.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.0008, quality 0.526)market_value_eur=10300000
quality_factor=0.526
boost_factor=1.0008
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.9228
prior_reliability=0.1333
competition=Premier League
wonTackle: 1.5315 -> 1.5509
totalCross: 1.1368 -> 1.1449
interceptionWon: 0.4584 -> 0.4637
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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': 'Right Wingback vs Left Back — Overlapping Run', 'duel_win_rate': 0.285, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.8309, 'skill_edge': -0.1351, 'height_edge': 0.02, 'attacker_skill': 0.5761, 'defender_skill': 0.8762, 'attacker_role': 'RWB', 'attacker_mv_price_index': 0.7, 'defender_adjusted_parts': [{'player': 'Lewis Hall', 'market_value': 52000000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.8762}], 'xg_override': 0.0586}
aerialWon: 0.3158 -> 1.1
totalShots: 0.8775 -> 0.7291
shotOffTarget: 0.5699 -> 0.4735
onTargetScoringAttempt: 0.3076 -> 0.2556
bigChanceMissed: 0.1789 -> 0.1486
goals: 0.0813 -> 0.0676
expectedGoals: 0.0705 -> 0.0586
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.60 (squad xG sum 1.3541, xG scale 1.1831, xA scale 1.3335, team xA 1.04 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.602
squad_xg_sum=1.3541
squad_xa_sum=0.7809
team_expected_assists=1.0413
team_xa_to_xg_ratio=0.65
expected_goals: 0.0586 -> 0.0693
expected_assists: 0.0947 -> 0.1263
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.067
goal_rate=0.0676
scorer_weight=0.075
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1186
assist_rate=0.0917
provider_weight=0.1237
-
Adam WhartonM8600.090.03204%10.77.056.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.0128, quality 0.881)market_value_eur=79000000
quality_factor=0.8811
boost_factor=1.0128
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.9597
prior_reliability=0.1333
competition=Premier League
totalCross: 2.2635 -> 2.2459
totalShots: 1.1184 -> 1.1074
fouls: 0.9038 -> 0.8949
interceptionWon: 1.0643 -> 1.0727
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 González', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.447, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9949, 'skill_edge': 0.0125, 'height_edge': -0.016, 'attacker_skill': 0.8877, 'defender_skill': 0.8599, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Nico González', 'market_value': 54000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8599}], 'xg_override': 0.0736}
aerialWon: 0.4829 -> 1.1
totalShots: 1.1154 -> 1.1097
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.60 (squad xG sum 1.3541, xG scale 1.1831, xA scale 1.3335, team xA 1.04 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.602
squad_xg_sum=1.3541
squad_xa_sum=0.7809
team_expected_assists=1.0413
team_xa_to_xg_ratio=0.65
expected_goals: 0.0736 -> 0.0871
expected_assists: 0.1485 -> 0.1979
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.0834
goal_rate=0.0739
scorer_weight=0.0873
-
integer_assist_projectionTeam scoreline allocation: 1 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.1795
assist_rate=0.0974
provider_weight=0.1583
-
Anan KhalailiM8700.110.09ok10.66.939.811FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.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.0260)blend_weight=0.026
history_matches=5
season_overlap_discount=1.0
per90_to_match_factor=0.9638
prior_reliability=0.08
competition=Premier League
wonTackle: 2.1681 -> 2.2997
totalCross: 2.4018 -> 2.4855
interceptionWon: 1.1809 -> 1.2128
fouls: 0.7922 -> 0.8134
wasFouled: 0.1974 -> 0.2131
onTargetScoringAttempt: 0.3952 -> 0.3849
totalShots: 1.171 -> 1.1611
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 González', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.362, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.8709, 'skill_edge': -0.0758, 'height_edge': -0.012, 'attacker_skill': 0.6914, 'defender_skill': 0.8599, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Nico González', 'market_value': 54000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8599}], 'xg_override': 0.0913}
totalShots: 1.1611 -> 1.0112
shotOffTarget: 0.7758 -> 0.6756
aerialWon: 1.1675 -> 1.1
bigChanceMissed: 0.5056 -> 0.4403
onTargetScoringAttempt: 0.3849 -> 0.3352
goals: 0.1454 -> 0.1266
expectedGoals: 0.1048 -> 0.0913
expectedGoalsOnTarget: 0.0825 -> 0.0718
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.60 (squad xG sum 1.3541, xG scale 1.1831, xA scale 1.3335, team xA 1.04 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.602
squad_xg_sum=1.3541
squad_xa_sum=0.7809
team_expected_assists=1.0413
team_xa_to_xg_ratio=0.65
expected_goals: 0.0913 -> 0.108
expected_assists: 0.1038 -> 0.1384
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.1024
goal_rate=0.1266
scorer_weight=0.135
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1292
assist_rate=0.0748
provider_weight=0.1123
-
Axel DisasiD8200.030.0534%00.26.751.822FBref Prior D_service
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.0054, quality 0.585)market_value_eur=15500000
quality_factor=0.5846
boost_factor=1.0054
reference_quality=0.505
history_matches=17
history_shrink=0.2273
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0020)blend_weight=0.002
history_matches=17
season_overlap_discount=1.0
per90_to_match_factor=0.9062
prior_reliability=0.0133
competition=Premier League
fouls: 0.4774 -> 0.4854
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': 'Joelinton', '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.60 (squad xG sum 1.3541, xG scale 1.1831, xA scale 1.3335, team xA 1.04 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.602
squad_xg_sum=1.3541
squad_xa_sum=0.7809
team_expected_assists=1.0413
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.0299
goal_rate=0.0
scorer_weight=0.0243
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0126
assist_rate=0.0
provider_weight=0.0107
-
Chris RichardsD9000.100.0734%10.46.852.927FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0060, quality 0.677)market_value_eur=25000000
quality_factor=0.6773
boost_factor=1.006
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.9998
prior_reliability=0.1333
competition=Premier League
interceptionWon: 1.0899 -> 1.0991
wonTackle: 0.7908 -> 0.7979
totalCross: 0.5049 -> 0.4998
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'William Osula', '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.60 (squad xG sum 1.3541, xG scale 1.1831, xA scale 1.3335, team xA 1.04 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.602
squad_xg_sum=1.3541
squad_xa_sum=0.7809
team_expected_assists=1.0413
team_xa_to_xg_ratio=0.65
expected_goals: 0.0849 -> 0.1004
expected_assists: 0.0239 -> 0.0319
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 80.0)match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0955
goal_rate=0.0123
scorer_weight=0.0803
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0314
assist_rate=0.0
provider_weight=0.0255
-
Jaydee CanvotD8900.060.05ok00.26.845.828FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0117, quality 0.732)market_value_eur=32000000
quality_factor=0.732
boost_factor=1.0117
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.9939
prior_reliability=0.1333
competition=Premier League
wonTackle: 1.101 -> 1.1142
interceptionWon: 1.128 -> 1.1186
fouls: 0.5775 -> 0.5689
totalCross: 0.3616 -> 0.3562
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'William Osula', '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.60 (squad xG sum 1.3541, xG scale 1.1831, xA scale 1.3335, team xA 1.04 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.602
squad_xg_sum=1.3541
squad_xa_sum=0.7809
team_expected_assists=1.0413
team_xa_to_xg_ratio=0.65
expected_goals: 0.0497 -> 0.0588
expected_assists: 0.0294 -> 0.0392
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.0571
goal_rate=0.0
scorer_weight=0.047
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0384
assist_rate=0.0
provider_weight=0.0314
-
Walter BenítezG9000.00-n/a0.07.07.530FBref 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.9890, quality 0.446)market_value_eur=3700000
quality_factor=0.4461
boost_factor=0.989
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': 'William Osula, Yoane Wissa', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.6187}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.60 (squad xG sum 1.3541, xG scale 1.1831, xA scale 1.3335, team xA 1.04 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.602
squad_xg_sum=1.3541
squad_xa_sum=0.7809
team_expected_assists=1.0413
team_xa_to_xg_ratio=0.65
shots_faced: 15.4 -> 16.0
expected_saves: 3.77 -> 3.91
high_pressure_saves: 1.29 -> 1.35
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 78.0)match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.6514
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.917
-
Ismaïla SarrF8200.400.31ok21.46.752.322XGBoost 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.0128, quality 0.796)market_value_eur=43000000
quality_factor=0.7957
boost_factor=1.0128
reference_quality=0.505
history_matches=29
history_shrink=0.1471
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 González, Sven Botman', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle', 'duel_win_rate': 0.237, 'pressing_faced': 'HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.9508, 'skill_edge': -0.0155, 'height_edge': -0.018, 'attacker_skill': 0.7957, 'defender_skill': 0.8301, 'attacker_role': 'SS', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Nico González', 'market_value': 54000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8599}, {'player': 'Sven Botman', 'market_value': 33000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8002}], 'xg_override': 0.3411}
totalShots: 2.1221 -> 2.0177
shotOffTarget: 1.2846 -> 1.2214
onTargetScoringAttempt: 0.8375 -> 0.7963
bigChanceMissed: 0.6197 -> 0.5892
expectedGoalsOnTarget: 0.5496 -> 0.5226
expectedGoals: 0.3588 -> 0.3411
goals: 0.3237 -> 0.3078
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.60 (squad xG sum 1.3541, xG scale 1.1831, xA scale 1.3335, team xA 1.04 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.602
squad_xg_sum=1.3541
squad_xa_sum=0.7809
team_expected_assists=1.0413
team_xa_to_xg_ratio=0.65
expected_goals: 0.3411 -> 0.4037
expected_assists: 0.047 -> 0.0627
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.3322
goal_rate=0.3078
scorer_weight=0.3693
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0608
assist_rate=0.0071
provider_weight=0.0502
-
Yéremy PinoF6800.130.0788%10.96.952.631FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0062, quality 0.694)market_value_eur=27000000
quality_factor=0.6941
boost_factor=1.0062
reference_quality=0.505
history_matches=41
history_shrink=0.1087
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0052)blend_weight=0.0052
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=0.7558
prior_reliability=0.0733
competition=Premier League
totalCross: 2.6662 -> 2.6844
fouls: 0.8563 -> 0.8625
totalOffside: 0.3032 -> 0.3087
wasFouled: 1.02 -> 1.0254
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 González, Sven Botman', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.8219, 'skill_edge': -0.0612, 'height_edge': -0.06, 'attacker_skill': 0.6941, 'defender_skill': 0.8301, 'attacker_role': 'SS', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Nico González', 'market_value': 54000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8599}, {'player': 'Sven Botman', 'market_value': 33000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8002}], 'xg_override': 0.1126}
totalShots: 1.2761 -> 1.0488
shotOffTarget: 0.7784 -> 0.6398
onTargetScoringAttempt: 0.4914 -> 0.4039
expectedGoalsOnTarget: 0.1694 -> 0.1392
goals: 0.1654 -> 0.1359
expectedGoals: 0.137 -> 0.1126
bigChanceMissed: 0.1365 -> 0.1122
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.60 (squad xG sum 1.3541, xG scale 1.1831, xA scale 1.3335, team xA 1.04 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.602
squad_xg_sum=1.3541
squad_xa_sum=0.7809
team_expected_assists=1.0413
team_xa_to_xg_ratio=0.65
expected_goals: 0.1126 -> 0.1332
expected_assists: 0.1097 -> 0.1463
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 79.0)match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1247
goal_rate=0.1359
scorer_weight=0.1523
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1361
assist_rate=0.008
provider_weight=0.117
-
Jean-Philippe MatetaF7610.350.2443%20.86.750.120FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0081, quality 0.710)market_value_eur=29000000
quality_factor=0.71
boost_factor=1.0081
reference_quality=0.505
history_matches=33
history_shrink=0.1316
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0040)blend_weight=0.004
history_matches=33
season_overlap_discount=1.0
per90_to_match_factor=0.8484
prior_reliability=0.0467
competition=Premier League
fouls: 0.8452 -> 0.8515
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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.9132, 'skill_edge': -0.053, 'height_edge': -0.006, 'attacker_skill': 0.71, '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.2918}
totalShots: 1.7051 -> 1.5571
bigChanceMissed: 1.0224 -> 0.9337
shotOffTarget: 0.9286 -> 0.848
onTargetScoringAttempt: 0.7704 -> 0.7035
goals: 0.3596 -> 0.3284
expectedGoals: 0.3195 -> 0.2918
expectedGoalsOnTarget: 0.1923 -> 0.1756
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.60 (squad xG sum 1.3541, xG scale 1.1831, xA scale 1.3335, team xA 1.04 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.602
squad_xg_sum=1.3541
squad_xa_sum=0.7809
team_expected_assists=1.0413
team_xa_to_xg_ratio=0.65
expected_goals: 0.2918 -> 0.3452
expected_assists: 0.0354 -> 0.0472
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 15 by projected rating, fifa_overall 81.0)match_squad_rank=15
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.2919
goal_rate=0.3284
scorer_weight=0.3822
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0461
assist_rate=0.0
provider_weight=0.0378
-
Team totals11.60136.8
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Dean HendersonG5.5m15.4%Market-value substitute prior
Honest AhanorD14.9m36.1%Market-value substitute prior
Chadi RiadD14.3m23.2%Market-value substitute prior
Quinten TimberM22.9m54.0%Market-value substitute prior
Óscar MinguezaM19.0m70.7%Market-value substitute prior
Jørgen Strand LarsenF27.4m55.5%Market-value substitute prior

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Lukáš HorníčekG9000.00-n/a0.06.937.010FBref 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.0258, quality 0.677)market_value_eur=25000000
quality_factor=0.6773
boost_factor=1.0258
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=1.0
prior_reliability=0.1333
competition=Premier League
saves: 3.1507 -> 3.2092
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Ismaïla Sarr, Jean-Philippe Mateta', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.3635}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.69 (squad xG sum 1.3547, xG scale 1.2445, xA scale 1.5693, team xA 1.10 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.686
squad_xg_sum=1.3547
squad_xa_sum=0.6983
team_expected_assists=1.0959
team_xa_to_xg_ratio=0.65
shots_faced: 13.0 -> 15.2
expected_saves: 3.19 -> 3.72
high_pressure_saves: 1.09 -> 1.28
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.813
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.1691
-
Yoane WissaF8310.330.2065%20.86.743.031FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0080, quality 0.660)market_value_eur=23000000
quality_factor=0.6595
boost_factor=1.008
reference_quality=0.505
history_matches=24
history_shrink=0.1724
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0142)blend_weight=0.0142
history_matches=24
season_overlap_discount=1.0
per90_to_match_factor=0.9201
prior_reliability=0.1267
competition=Premier League
wasFouled: 1.5917 -> 1.6241
totalShots: 1.7158 -> 1.733
totalOffside: 0.3222 -> 0.3314
goalAssist: 0.1027 -> 0.1081
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Axel Disasi, Chris Richards', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 0.9038, 'skill_edge': -0.0134, 'height_edge': -0.052, 'attacker_skill': 0.6595, 'defender_skill': 0.6893, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Axel Disasi', 'market_value': 15500000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6376}, {'player': 'Chris Richards', 'market_value': 25000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7411}], 'xg_override': 0.267}
totalShots: 1.733 -> 1.5663
shotOffTarget: 0.8778 -> 0.7934
onTargetScoringAttempt: 0.8399 -> 0.7591
bigChanceMissed: 0.7641 -> 0.6906
expectedGoalsOnTarget: 0.3499 -> 0.3162
expectedGoals: 0.2954 -> 0.267
goals: 0.29 -> 0.2621
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.69 (squad xG sum 1.3547, xG scale 1.2445, xA scale 1.5693, team xA 1.10 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.686
squad_xg_sum=1.3547
squad_xa_sum=0.6983
team_expected_assists=1.0959
team_xa_to_xg_ratio=0.65
expected_goals: 0.267 -> 0.3323
expected_assists: 0.0365 -> 0.0573
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=1
goal_probability=0.2827
goal_rate=0.2621
scorer_weight=0.3271
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0557
assist_rate=0.1081
provider_weight=0.0716
-
Harvey BarnesF8500.200.1346%21.56.958.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 1.0085, quality 0.770)market_value_eur=38000000
quality_factor=0.7699
boost_factor=1.0085
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.9444
prior_reliability=0.1333
competition=Premier League
totalShots: 1.836 -> 1.8279
totalCross: 2.2211 -> 2.2137
onTargetScoringAttempt: 0.5935 -> 0.588
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Axel Disasi, Chris Richards', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.204, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 1.0062, 'skill_edge': 0.0362, 'height_edge': -0.032, 'attacker_skill': 0.7699, 'defender_skill': 0.6893, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Axel Disasi', 'market_value': 15500000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6376}, {'player': 'Chris Richards', 'market_value': 25000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7411}], 'xg_override': 0.1586}
totalShots: 1.8305 -> 1.8418
shotOffTarget: 1.2425 -> 1.2502
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.69 (squad xG sum 1.3547, xG scale 1.2445, xA scale 1.5693, team xA 1.10 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.686
squad_xg_sum=1.3547
squad_xa_sum=0.6983
team_expected_assists=1.0959
team_xa_to_xg_ratio=0.65
expected_goals: 0.1586 -> 0.1974
expected_assists: 0.1149 -> 0.1803
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 80.0)match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.1791
goal_rate=0.2292
scorer_weight=0.2467
-
integer_assist_projectionTeam scoreline allocation: 1 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.165
assist_rate=0.3738
provider_weight=0.2254
-
Matías Fernández-PardoF7300.170.012770%20.16.724.48XGBoost 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.0652, quality 0.853)market_value_eur=60000000
quality_factor=0.8526
boost_factor=1.0652
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': 'Axel Disasi, Chris Richards', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.249, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 1.0727, 'skill_edge': 0.0735, 'height_edge': -0.024, 'attacker_skill': 0.8526, 'defender_skill': 0.6893, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Axel Disasi', 'market_value': 15500000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6376}, {'player': 'Chris Richards', 'market_value': 25000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7411}], 'xg_override': 0.1384}
totalShots: 1.4569 -> 1.5629
shotOffTarget: 0.9787 -> 1.0499
onTargetScoringAttempt: 0.4782 -> 0.513
expectedGoals: 0.129 -> 0.1384
goals: 0.1122 -> 0.1204
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.69 (squad xG sum 1.3547, xG scale 1.2445, xA scale 1.5693, team xA 1.10 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.686
squad_xg_sum=1.3547
squad_xa_sum=0.6983
team_expected_assists=1.0959
team_xa_to_xg_ratio=0.65
expected_goals: 0.1384 -> 0.1722
expected_assists: 0.0508 -> 0.0797
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 15 by projected rating, fifa_overall 78.0)match_squad_rank=15
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.1582
goal_rate=0.1204
scorer_weight=0.1558
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0766
assist_rate=0.0
provider_weight=0.0638
-
JoelintonM8500.100.08ok11.16.847.817XGBoost 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.0064, quality 0.641)market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.0064
reference_quality=0.505
history_matches=27
history_shrink=0.1562
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Axel Disasi', 'matchup_zone': 'LW vs CB', 'duel_win_rate': 0.405, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9786, 'skill_edge': 0.0014, 'height_edge': -0.016, 'attacker_skill': 0.6408, 'defender_skill': 0.6376, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Axel Disasi', 'market_value': 15500000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6376}], 'xg_override': 0.0794}
aerialWon: 2.7851 -> 1.2
totalShots: 1.2113 -> 1.1854
shotOffTarget: 0.9169 -> 0.8973
onTargetScoringAttempt: 0.2944 -> 0.2881
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.69 (squad xG sum 1.3547, xG scale 1.2445, xA scale 1.5693, team xA 1.10 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.686
squad_xg_sum=1.3547
squad_xa_sum=0.6983
team_expected_assists=1.0959
team_xa_to_xg_ratio=0.65
expected_goals: 0.0794 -> 0.0988
expected_assists: 0.0574 -> 0.0901
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.0941
goal_rate=0.0888
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.0862
assist_rate=0.0677
provider_weight=0.0987
-
Nico GonzálezM6900.040.01471%10.16.930.924XGBoost 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.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
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Ismaïla Sarr, Yéremy Pino, Adam Wharton', 'matchup_zone': 'Shadow Striker vs CDM + CB — Zone 14 Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.69 (squad xG sum 1.3547, xG scale 1.2445, xA scale 1.5693, team xA 1.10 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.686
squad_xg_sum=1.3547
squad_xa_sum=0.6983
team_expected_assists=1.0959
team_xa_to_xg_ratio=0.65
expected_goals: 0.0332 -> 0.0413
expected_assists: 0.0493 -> 0.0774
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 81.0)match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0405
goal_rate=0.0378
scorer_weight=0.0436
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0745
assist_rate=0.056
provider_weight=0.0826
-
Lewis HallD8800.070.03138%10.77.052.729FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0122, quality 0.831)market_value_eur=52000000
quality_factor=0.8309
boost_factor=1.0122
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.9776
prior_reliability=0.1333
competition=Premier League
fouls: 0.701 -> 0.7093
wonTackle: 1.317 -> 1.3239
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Daichi Kamada', 'matchup_zone': 'Right Wingback vs Left Back — Overlapping Run'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.69 (squad xG sum 1.3547, xG scale 1.2445, xA scale 1.5693, team xA 1.10 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.686
squad_xg_sum=1.3547
squad_xa_sum=0.6983
team_expected_assists=1.0959
team_xa_to_xg_ratio=0.65
expected_goals: 0.0549 -> 0.0683
expected_assists: 0.119 -> 0.1867
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 83.0)match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.066
goal_rate=0.1693
scorer_weight=0.0854
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1703
assist_rate=0.1118
provider_weight=0.1787
-
Sven BotmanD8900.050.06ok10.56.947.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.0100, quality 0.739)market_value_eur=33000000
quality_factor=0.7389
boost_factor=1.01
reference_quality=0.505
history_matches=30
history_shrink=0.1429
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0124)blend_weight=0.0124
history_matches=30
season_overlap_discount=1.0
per90_to_match_factor=0.9878
prior_reliability=0.1333
competition=Premier League
interceptionWon: 1.2285 -> 1.2133
wonTackle: 0.7581 -> 0.7487
fouls: 0.542 -> 0.5353
wasFouled: 1.0006 -> 0.9943
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Jean-Philippe Mateta', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.69 (squad xG sum 1.3547, xG scale 1.2445, xA scale 1.5693, team xA 1.10 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.686
squad_xg_sum=1.3547
squad_xa_sum=0.6983
team_expected_assists=1.0959
team_xa_to_xg_ratio=0.65
expected_goals: 0.0389 -> 0.0484
expected_assists: 0.0435 -> 0.0683
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0472
goal_rate=0.0134
scorer_weight=0.0387
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.066
assist_rate=0.0
provider_weight=0.0546
-
Malick ThiawD9000.090.12ok00.56.856.929FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.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=0.9977
prior_reliability=0.1333
competition=Premier League
wasFouled: 0.4585 -> 0.4685
interceptionWon: 0.915 -> 0.9062
wonTackle: 0.6165 -> 0.6106
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Jean-Philippe Mateta', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.69 (squad xG sum 1.3547, xG scale 1.2445, xA scale 1.5693, team xA 1.10 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.686
squad_xg_sum=1.3547
squad_xa_sum=0.6983
team_expected_assists=1.0959
team_xa_to_xg_ratio=0.65
expected_goals: 0.0721 -> 0.0897
expected_assists: 0.0184 -> 0.0289
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.0858
goal_rate=0.0182
scorer_weight=0.0718
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0285
assist_rate=0.0
provider_weight=0.0231
-
Lewis MileyM8400.050.0448%10.26.948.820FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0103, quality 0.732)market_value_eur=32000000
quality_factor=0.732
boost_factor=1.0103
reference_quality=0.505
history_matches=28
history_shrink=0.1515
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0118)blend_weight=0.0118
history_matches=28
season_overlap_discount=1.0
per90_to_match_factor=0.9378
prior_reliability=0.12
competition=Premier League
totalCross: 1.4546 -> 1.4374
wasFouled: 0.2527 -> 0.262
wonTackle: 1.042 -> 1.0358
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Anan Khalaili', 'matchup_zone': 'Midfield lane'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.69 (squad xG sum 1.3547, xG scale 1.2445, xA scale 1.5693, team xA 1.10 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.686
squad_xg_sum=1.3547
squad_xa_sum=0.6983
team_expected_assists=1.0959
team_xa_to_xg_ratio=0.65
expected_goals: 0.0424 -> 0.0528
expected_assists: 0.0743 -> 0.1166
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 77.0)match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0514
goal_rate=0.0422
scorer_weight=0.0527
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1101
assist_rate=0.0755
provider_weight=0.1177
-
William OsulaF7310.420.17151%20.86.947.522FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0102, quality 0.710)market_value_eur=29000000
quality_factor=0.71
boost_factor=1.0102
reference_quality=0.505
history_matches=25
history_shrink=0.1667
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0043)blend_weight=0.0043
history_matches=25
season_overlap_discount=1.0
per90_to_match_factor=0.8134
prior_reliability=0.04
competition=Premier League
fouls: 1.3521 -> 1.3462
wasFouled: 1.372 -> 1.3661
goalAssist: 0.1972 -> 0.2022
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Axel Disasi, Chris Richards', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.217, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 1.0254, 'skill_edge': 0.0093, 'height_edge': 0.008, 'attacker_skill': 0.71, 'defender_skill': 0.6893, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Axel Disasi', 'market_value': 15500000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.6376}, {'player': 'Chris Richards', 'market_value': 25000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7411}], 'xg_override': 0.3393}
totalShots: 2.1252 -> 2.1792
shotOffTarget: 1.2081 -> 1.2388
onTargetScoringAttempt: 0.9108 -> 0.9339
goals: 0.467 -> 0.4789
bigChanceMissed: 0.4493 -> 0.4607
expectedGoalsOnTarget: 0.4342 -> 0.4452
expectedGoals: 0.3309 -> 0.3393
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.69 (squad xG sum 1.3547, xG scale 1.2445, xA scale 1.5693, team xA 1.10 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.686
squad_xg_sum=1.3547
squad_xa_sum=0.6983
team_expected_assists=1.0959
team_xa_to_xg_ratio=0.65
expected_goals: 0.3393 -> 0.4224
expected_assists: 0.0721 -> 0.1131
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 75.0)match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=1
goal_probability=0.3445
goal_rate=0.4789
scorer_weight=0.528
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.2022
provider_weight=0.1414
-
Team totals21.69146.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
Amar DedićD14.7m23.9%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
Antagonist / tactical summary
Midfield is evenly contested — Adam Wharton vs Nico González will be the pivotal duel. Total antagonist xG — Home: 1.05, Away: 0.98. Home danger zone: Shadow Striker vs CDM + CB — Zone 14 Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Midfield — possession 50.0% / 50.0%, dominance ratio 0.49, key duel: Adam Wharton vs Nico González
Jean-Philippe Mateta xG 0.29Ismaïla Sarr xG 0.34Yéremy Pino xG 0.11Joelinton xG 0.08William Osula xG 0.34Yoane Wissa xG 0.27

Summary

Antagonist matchup analysis for Crystal Palace vs Newcastle. Most likely scoreline: 1-2. Lambdas derived from 7 home and 5 away individual player duels. Head-to-head: Crystal Palace 2W-3D-5L vs Newcastle over 10 meetings.
Tactical parity between 3-4-2-1 and 4-2-3-1. Match outcome driven primarily by individual player quality. Midfield is evenly contested — Adam Wharton vs Nico González will be the pivotal duel. Total antagonist xG — Home: 1.05, Away: 0.98. Home danger zone: Shadow Striker vs CDM + CB — Zone 14 Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.

Barcelona vs Real Madrid

LaLiga · 20261025 · 4-2-3-1 vs 3-4-1-2
Predicted 2-1Winner: BarcelonaWinning H 2-1 (8.2%)Winning A 1-2 (4.7%)Confidence 0.78λ home/away 2.67 / 1.53Most-likely P 8.2%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset Tracing
Antagonist + XGBoost match analysis for Barcelona vs Real Madrid. Player statistics regressed using position-specific XGBoost models (G, D, M, F) with 2026-2027 FBref priors. Micro-duels resolved across 4-2-3-1 vs 3-4-1-2 (duel lambdas: Home 2.835, Away 1.840). Final calibrated Poisson lambdas: Home 2.674, Away 1.527 (most likely score 2-1).
Home Starters 11/11 XGBoost (11 FBref) Away Starters 11/11 XGBoost (10 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 2.83 / 1.84 Final λ (H/A) 2.67 / 1.53
FBref Team Priors: FC Barcelona (Gls/90: 3.6666666666666665, GA/90: 4.0 → E[λ]: 3.5) vs Real Madrid (Gls/90: 3.0, GA/90: 3.33 → 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

MetricBarcelonaReal Madrid
League position1.003.00
Points per game2.341.94
Attack index1.871.23
Defense (concede) index0.810.89
Form multiplier1.020.98
Standing λ multiplier1.191.03

Lambda decomposition (how the goal rates were built)

StageBarcelona λReal Madrid λ
FBref Squad Prior E[λ] (weight 0.228)3.5003.500
Pre-calibration (Micro-duels)2.8351.840
Final λ2.6741.527
competition calibration scale 0.85competition observed total goals 2.984quality gap applied Falsemismatch score pressure applied Falsecompetitive underdog floor applied Falsestage discount 1.0

Scoreline distribution & markets

Top 5 scorelinesP
2-18.2%
3-17.3%
2-26.2%
1-16.2%
3-25.6%
Home win61.9%
Draw17.6%
Away win20.4%
Over 2.579.0%
BTTS yes72.9%
Pregame fair line — favorite Barcelona (61.9%), fair total 4.20, fair spread 1.15

Projected players vs season baseline

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

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
RaphinhaF7810.600.57ok32.37.960.224FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0156, quality 0.859)market_value_eur=63000000
quality_factor=0.8589
boost_factor=1.0156
reference_quality=0.505
history_matches=29
history_shrink=0.1471
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0159)blend_weight=0.0159
history_matches=29
season_overlap_discount=1.0
per90_to_match_factor=0.8613
prior_reliability=0.1667
competition=La Liga
goals: 0.9518 -> 0.9641
totalCross: 2.7355 -> 2.7468
fouls: 0.3374 -> 0.3485
onTargetScoringAttempt: 1.8397 -> 1.8487
totalOffside: 0.5008 -> 0.5093
wonTackle: 0.4262 -> 0.4194
wasFouled: 0.7008 -> 0.6951
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 Cucurella, Dean Huijsen', '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.9291, 'skill_edge': -0.0122, 'height_edge': -0.036, 'attacker_skill': 0.8589, 'defender_skill': 0.886, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Marc Cucurella', 'market_value': 62000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8842}, {'player': 'Dean Huijsen', 'market_value': 66000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8879}], 'xg_override': 0.5149}
totalShots: 3.2273 -> 2.9985
onTargetScoringAttempt: 1.8487 -> 1.7176
shotOffTarget: 1.3786 -> 1.2809
expectedGoalsOnTarget: 1.116 -> 1.0369
goals: 0.9641 -> 0.8957
bigChanceMissed: 0.7397 -> 0.6873
expectedGoals: 0.5542 -> 0.5149
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
goals: 1.0 -> 0
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.67 (squad xG sum 2.2996, xG scale 1.1628, xA scale 1.2424, team xA 1.74 = 0.65 x lambda)scoreline_reset=true
team_lambda=2.674
squad_xg_sum=2.2996
squad_xa_sum=1.399
team_expected_assists=1.7381
team_xa_to_xg_ratio=0.65
expected_goals: 0.5149 -> 0.5987
expected_assists: 0.1826 -> 0.2269
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 88.0)match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=1
goal_probability=0.4505
goal_rate=0.8957
scorer_weight=0.7484
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.203
assist_rate=0.299
provider_weight=0.2836
-
Anthony GordonF7700.380.2744%21.56.951.826FBref 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.0154, quality 0.884)market_value_eur=82000000
quality_factor=0.8837
boost_factor=1.0154
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.8582
prior_reliability=0.1333
competition=La Liga
goalAssist: 0.2381 -> 0.2504
totalShots: 2.1326 -> 2.1426
totalCross: 1.2496 -> 1.24
onTargetScoringAttempt: 0.7739 -> 0.7798
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 Cucurella, Dean Huijsen', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.191, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.9867, 'skill_edge': -0.0011, 'height_edge': -0.008, 'attacker_skill': 0.8837, 'defender_skill': 0.886, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Marc Cucurella', 'market_value': 62000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8842}, {'player': 'Dean Huijsen', 'market_value': 66000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8879}], 'xg_override': 0.3306}
totalShots: 2.1426 -> 2.1141
shotOffTarget: 1.3587 -> 1.3406
onTargetScoringAttempt: 0.7798 -> 0.7694
bigChanceMissed: 0.3846 -> 0.3795
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.67 (squad xG sum 2.2996, xG scale 1.1628, xA scale 1.2424, team xA 1.74 = 0.65 x lambda)scoreline_reset=true
team_lambda=2.674
squad_xg_sum=2.2996
squad_xa_sum=1.399
team_expected_assists=1.7381
team_xa_to_xg_ratio=0.65
expected_goals: 0.3306 -> 0.3844
expected_assists: 0.1171 -> 0.1455
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 82.0)match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.3191
goal_rate=0.2618
scorer_weight=0.3149
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1354
assist_rate=0.2504
provider_weight=0.1819
-
Fermín LópezM8000.280.28ok21.97.163.527FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0143, quality 0.896)market_value_eur=113000000
quality_factor=0.8965
boost_factor=1.0143
reference_quality=0.505
history_matches=36
history_shrink=0.122
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0122)blend_weight=0.0122
history_matches=36
season_overlap_discount=1.0
per90_to_match_factor=0.888
prior_reliability=0.1533
competition=La Liga
onTargetScoringAttempt: 0.8838 -> 0.8965
goals: 0.2234 -> 0.2348
wasFouled: 0.9768 -> 0.9837
wonTackle: 0.6874 -> 0.6931
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 Cucurella', 'matchup_zone': 'LW vs CB', 'duel_win_rate': 0.43, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 1.014, 'skill_edge': 0.0055, 'height_edge': 0.004, 'attacker_skill': 0.8965, 'defender_skill': 0.8842, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Marc Cucurella', 'market_value': 62000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8842}], 'xg_override': 0.2419}
aerialWon: 0.5714 -> 0.9
totalShots: 2.1389 -> 2.1689
shotOffTarget: 1.2424 -> 1.2598
onTargetScoringAttempt: 0.8965 -> 0.9091
expectedGoalsOnTarget: 0.5662 -> 0.5741
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.67 (squad xG sum 2.2996, xG scale 1.1628, xA scale 1.2424, team xA 1.74 = 0.65 x lambda)scoreline_reset=true
team_lambda=2.674
squad_xg_sum=2.2996
squad_xa_sum=1.399
team_expected_assists=1.7381
team_xa_to_xg_ratio=0.65
expected_goals: 0.2419 -> 0.2813
expected_assists: 0.1781 -> 0.2213
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 90.0)match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.2452
goal_rate=0.2381
scorer_weight=0.2776
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1985
assist_rate=0.167
provider_weight=0.2105
-
Lamine YamalF8310.750.5246%53.68.467.328FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0148, quality 0.900)market_value_eur=237000000
quality_factor=0.9
boost_factor=1.0148
reference_quality=0.505
history_matches=35
history_shrink=0.125
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0146)blend_weight=0.0146
history_matches=35
season_overlap_discount=1.0
per90_to_match_factor=0.9181
prior_reliability=0.18
competition=La Liga
totalOffside: 0.9147 -> 0.9312
totalCross: 2.6881 -> 2.7035
goalAssist: 0.6874 -> 0.6773
fouls: 1.2032 -> 1.1955
interceptionWon: 0.2533 -> 0.2595
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 Cucurella, Dean Huijsen', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.198, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.9975, 'skill_edge': 0.0063, 'height_edge': -0.008, 'attacker_skill': 0.9, 'defender_skill': 0.886, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Marc Cucurella', 'market_value': 62000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8842}, {'player': 'Dean Huijsen', 'market_value': 66000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8879}], 'xg_override': 0.6468}
totalShots: 5.081 -> 5.0683
shotOffTarget: 3.3763 -> 3.3679
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
goals: 1.0 -> 0
assists: 1.0 -> 0
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.67 (squad xG sum 2.2996, xG scale 1.1628, xA scale 1.2424, team xA 1.74 = 0.65 x lambda)scoreline_reset=true
team_lambda=2.674
squad_xg_sum=2.2996
squad_xa_sum=1.399
team_expected_assists=1.7381
team_xa_to_xg_ratio=0.65
expected_goals: 0.6468 -> 0.7522
expected_assists: 0.2476 -> 0.3076
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 90.0)match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=1
goal_probability=0.5287
goal_rate=0.7925
scorer_weight=0.9095
-
integer_assist_projectionTeam scoreline allocation: 1 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.2648
assist_rate=0.6773
provider_weight=0.3845
-
PedriM8000.100.05111%10.67.264.625FBref Prior M_service
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.0144, quality 0.900)market_value_eur=164000000
quality_factor=0.8997
boost_factor=1.0144
reference_quality=0.505
history_matches=36
history_shrink=0.122
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0122)blend_weight=0.0122
history_matches=36
season_overlap_discount=1.0
per90_to_match_factor=0.8863
prior_reliability=0.1533
competition=La Liga
wonTackle: 0.9161 -> 0.9237
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Yan Diomande, Jude Bellingham, Aurélien Tchouaméni', 'matchup_zone': 'Attacking Mid vs Double Pivot — Tight Space 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.67 (squad xG sum 2.2996, xG scale 1.1628, xA scale 1.2424, team xA 1.74 = 0.65 x lambda)scoreline_reset=true
team_lambda=2.674
squad_xg_sum=2.2996
squad_xa_sum=1.399
team_expected_assists=1.7381
team_xa_to_xg_ratio=0.65
expected_goals: 0.0855 -> 0.0994
expected_assists: 0.1821 -> 0.2262
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 90.0)match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0946
goal_rate=0.0927
scorer_weight=0.1047
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.2024
assist_rate=0.2025
provider_weight=0.2461
-
RodriM8200.110.0842%10.77.568.923FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0156, quality 0.837)market_value_eur=54000000
quality_factor=0.837
boost_factor=1.0156
reference_quality=0.505
history_matches=27
history_shrink=0.1562
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0041)blend_weight=0.0041
history_matches=27
season_overlap_discount=1.0
per90_to_match_factor=0.9159
prior_reliability=0.04
competition=La Liga
wonTackle: 1.7173 -> 1.7103
interceptionWon: 1.3892 -> 1.3836
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Yan Diomande, Aurélien Tchouaméni', 'matchup_zone': 'Attacking Mid vs Double Pivot — Tight Space 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.67 (squad xG sum 2.2996, xG scale 1.1628, xA scale 1.2424, team xA 1.74 = 0.65 x lambda)scoreline_reset=true
team_lambda=2.674
squad_xg_sum=2.2996
squad_xa_sum=1.399
team_expected_assists=1.7381
team_xa_to_xg_ratio=0.65
expected_goals: 0.0957 -> 0.1113
expected_assists: 0.1041 -> 0.1293
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 90.0)match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.1053
goal_rate=0.0726
scorer_weight=0.0937
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1213
assist_rate=0.0662
provider_weight=0.1034
-
João CanceloD8300.050.02139%10.66.955.228FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9993, quality 0.493)market_value_eur=7500000
quality_factor=0.4927
boost_factor=0.9993
reference_quality=0.505
history_matches=22
history_shrink=0.1852
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0024)blend_weight=0.0024
history_matches=22
season_overlap_discount=1.0
per90_to_match_factor=0.9251
prior_reliability=0.02
competition=La Liga
totalCross: 2.4228 -> 2.417
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Federico Valverde', 'matchup_zone': 'Right Wingback vs Left Back — Overlapping Run'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.67 (squad xG sum 2.2996, xG scale 1.1628, xA scale 1.2424, team xA 1.74 = 0.65 x lambda)scoreline_reset=true
team_lambda=2.674
squad_xg_sum=2.2996
squad_xa_sum=1.399
team_expected_assists=1.7381
team_xa_to_xg_ratio=0.65
expected_goals: 0.0471 -> 0.0548
expected_assists: 0.1527 -> 0.1897
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 83.0)match_squad_rank=14
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0533
goal_rate=0.3069
scorer_weight=0.0685
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1728
assist_rate=0.0747
provider_weight=0.1518
-
Gerard MartínD8200.020.0183%00.27.156.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.0088, quality 0.758)market_value_eur=36000000
quality_factor=0.7581
boost_factor=1.0088
reference_quality=0.505
history_matches=38
history_shrink=0.1163
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0101)blend_weight=0.0101
history_matches=38
season_overlap_discount=1.0
per90_to_match_factor=0.9162
prior_reliability=0.1333
competition=La Liga
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Kylian Mbappé', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 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.67 (squad xG sum 2.2996, xG scale 1.1628, xA scale 1.2424, team xA 1.74 = 0.65 x lambda)scoreline_reset=true
team_lambda=2.674
squad_xg_sum=2.2996
squad_xa_sum=1.399
team_expected_assists=1.7381
team_xa_to_xg_ratio=0.65
expected_assists: 0.0229 -> 0.0285
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 79.0)match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0165
goal_rate=0.0
scorer_weight=0.0133
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0281
assist_rate=0.0
provider_weight=0.0228
-
Pau CubarsíD8500.050.02105%00.27.255.629FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.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.7334 -> 0.7407
interceptionWon: 1.1487 -> 1.1416
totalShots: 0.4521 -> 0.4573
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Kylian Mbappé', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 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.67 (squad xG sum 2.2996, xG scale 1.1628, xA scale 1.2424, team xA 1.74 = 0.65 x lambda)scoreline_reset=true
team_lambda=2.674
squad_xg_sum=2.2996
squad_xa_sum=1.399
team_expected_assists=1.7381
team_xa_to_xg_ratio=0.65
expected_goals: 0.0427 -> 0.0497
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 86.0)match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0485
goal_rate=0.0113
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.0248
assist_rate=0.0
provider_weight=0.0201
-
Joan GarcíaG8400.00-n/a0.07.162.228FBref 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.0111, quality 0.809)market_value_eur=46000000
quality_factor=0.8089
boost_factor=1.0111
reference_quality=0.505
history_matches=36
history_shrink=0.122
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0159)blend_weight=0.0159
history_matches=36
season_overlap_discount=1.0
per90_to_match_factor=0.9288
prior_reliability=0.2
competition=La Liga
saves: 2.7355 -> 2.7167
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Kylian Mbappé, Jude Bellingham', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.8402}
-
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.67 (squad xG sum 2.2996, xG scale 1.1628, xA scale 1.2424, team xA 1.74 = 0.65 x lambda)scoreline_reset=true
team_lambda=2.674
squad_xg_sum=2.2996
squad_xa_sum=1.399
team_expected_assists=1.7381
team_xa_to_xg_ratio=0.65
shots_faced: 17.5 -> 14.5
expected_saves: 4.28 -> 3.55
high_pressure_saves: 1.47 -> 1.22
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 86.0)match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 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.8912
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.8872
-
Xavi EspartD8800.030.01320%10.26.926.021FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0194, quality 0.686)market_value_eur=26000000
quality_factor=0.6858
boost_factor=1.0194
reference_quality=0.505
history_matches=9
history_shrink=0.3571
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0464)blend_weight=0.0464
history_matches=9
season_overlap_discount=1.0
per90_to_match_factor=0.9799
prior_reliability=0.2
competition=La Liga
wasFouled: 0.9951 -> 0.9641
totalCross: 0.6563 -> 0.6865
interceptionWon: 0.9864 -> 1.0164
fouls: 1.5835 -> 1.5555
goalAssist: 0.3055 -> 0.3216
goals: 0.2455 -> 0.2341
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Eduardo Camavinga', 'matchup_zone': 'Left Wingback vs Right Back — Overlapping Run'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 2.67 (squad xG sum 2.2996, xG scale 1.1628, xA scale 1.2424, team xA 1.74 = 0.65 x lambda)scoreline_reset=true
team_lambda=2.674
squad_xg_sum=2.2996
squad_xa_sum=1.399
team_expected_assists=1.7381
team_xa_to_xg_ratio=0.65
expected_assists: 0.069 -> 0.0857
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0338
goal_rate=0.2341
scorer_weight=0.043
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0821
assist_rate=0.3216
provider_weight=0.1071
-
Team totals22.67197.3
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Dominik LivakovićG4.5m11.1%Market-value substitute prior
Jules KoundéD12.9m50.8%Market-value substitute prior
Alejandro BaldeD15.2m37.1%Market-value substitute prior
Ferran TorresM23.6m57.3%Market-value substitute prior
Dani OlmoM25.5m59.7%Market-value substitute prior
Karim AdeyemiF19.1m61.9%Market-value substitute prior

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Marc CucurellaD8800.030.0763%00.36.857.625FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0115, quality 0.857)market_value_eur=62000000
quality_factor=0.8569
boost_factor=1.0115
reference_quality=0.505
history_matches=41
history_shrink=0.1087
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0085)blend_weight=0.0085
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=0.9801
prior_reliability=0.12
competition=La Liga
totalCross: 1.5102 -> 1.4974
wasFouled: 0.7829 -> 0.7763
fouls: 0.7318 -> 0.7256
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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': '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.53 (squad xG sum 1.5869, xG scale 0.9623, xA scale 1.1580, team xA 0.99 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.527
squad_xg_sum=1.5869
squad_xa_sum=0.8571
team_expected_assists=0.9925
team_xa_to_xg_ratio=0.65
expected_assists: 0.037 -> 0.0428
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 17 by projected rating, fifa_overall 85.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: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.026
goal_rate=0.0
scorer_weight=0.021
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0419
assist_rate=0.066
provider_weight=0.0535
-
Eduardo CamavingaM7800.030.01149%00.37.059.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.0117, quality 0.817)market_value_eur=48000000
quality_factor=0.8168
boost_factor=1.0117
reference_quality=0.505
history_matches=35
history_shrink=0.125
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0070)blend_weight=0.007
history_matches=35
season_overlap_discount=1.0
per90_to_match_factor=0.8658
prior_reliability=0.0867
competition=La Liga
interceptionWon: 0.7623 -> 0.771
wasFouled: 1.1843 -> 1.176
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': 'Xavi Espart', 'matchup_zone': 'Left Wingback vs Right Back — Overlapping Run', 'duel_win_rate': 0.475, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 1.1097, 'skill_edge': 0.0466, 'height_edge': 0.028, 'attacker_skill': 0.8686, 'defender_skill': 0.765, 'attacker_role': 'LWB', 'attacker_mv_price_index': 0.7, 'defender_adjusted_parts': [{'player': 'Xavi Espart', 'market_value': 26000000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.765}], 'xg_override': 0.0326}
aerialWon: 0.4488 -> 1.1
totalShots: 0.413 -> 0.4583
shotOffTarget: 0.2963 -> 0.3288
onTargetScoringAttempt: 0.1167 -> 0.1295
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.53 (squad xG sum 1.5869, xG scale 0.9623, xA scale 1.1580, team xA 0.99 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.527
squad_xg_sum=1.5869
squad_xa_sum=0.8571
team_expected_assists=0.9925
team_xa_to_xg_ratio=0.65
expected_assists: 0.0457 -> 0.0529
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.0309
goal_rate=0.0428
scorer_weight=0.0353
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0515
assist_rate=0.0359
provider_weight=0.0475
-
Aurélien TchouaméniM7900.050.07ok11.37.062.723XGBoost M_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0135, quality 0.875)market_value_eur=73000000
quality_factor=0.8747
boost_factor=1.0135
reference_quality=0.505
history_matches=36
history_shrink=0.122
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=true
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Pedri', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.498, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 1.0711, 'skill_edge': -0.0076, 'height_edge': 0.056, 'attacker_skill': 0.883, 'defender_skill': 0.8999, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Pedri', 'market_value': 164000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8999}], 'xg_override': 0.0536}
aerialWon: 1.4642 -> 1.2
totalShots: 0.9994 -> 1.0705
shotOffTarget: 0.7871 -> 0.8431
onTargetScoringAttempt: 0.2123 -> 0.2274
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.53 (squad xG sum 1.5869, xG scale 0.9623, xA scale 1.1580, team xA 0.99 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.527
squad_xg_sum=1.5869
squad_xa_sum=0.8571
team_expected_assists=0.9925
team_xa_to_xg_ratio=0.65
expected_assists: 0.0549 -> 0.0636
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: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0503
goal_rate=0.0549
scorer_weight=0.0522
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0616
assist_rate=0.0571
provider_weight=0.0649
-
Federico ValverdeM8200.090.08ok11.37.068.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.0127, quality 0.887)market_value_eur=87000000
quality_factor=0.8873
boost_factor=1.0127
reference_quality=0.505
history_matches=40
history_shrink=0.1111
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0135)blend_weight=0.0135
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=0.9144
prior_reliability=0.1867
competition=La Liga
wonTackle: 0.6717 -> 0.6847
wasFouled: 0.6002 -> 0.5921
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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 Cancelo', 'matchup_zone': 'Right Wingback vs Left Back — Overlapping Run', 'duel_win_rate': 0.561, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.237, 'skill_edge': 0.1652, 'height_edge': -0.004, 'attacker_skill': 0.898, 'defender_skill': 0.5308, 'attacker_role': 'RWB', 'attacker_mv_price_index': 0.7, 'defender_adjusted_parts': [{'player': 'João Cancelo', 'market_value': 7500000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.5308}], 'xg_override': 0.0931}
aerialWon: 0.7368 -> 1.1
totalShots: 0.9499 -> 1.175
shotOffTarget: 0.6587 -> 0.8148
onTargetScoringAttempt: 0.2912 -> 0.3602
goals: 0.0908 -> 0.1123
expectedGoalsOnTarget: 0.0829 -> 0.1025
expectedGoals: 0.0753 -> 0.0931
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.53 (squad xG sum 1.5869, xG scale 0.9623, xA scale 1.1580, team xA 0.99 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.527
squad_xg_sum=1.5869
squad_xa_sum=0.8571
team_expected_assists=0.9925
team_xa_to_xg_ratio=0.65
expected_assists: 0.0693 -> 0.0802
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 87.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.0857
goal_rate=0.1123
scorer_weight=0.1016
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0771
assist_rate=0.0648
provider_weight=0.0772
-
Dean HuijsenD8200.090.0656%10.57.060.025FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0138, quality 0.864)market_value_eur=66000000
quality_factor=0.8644
boost_factor=1.0138
reference_quality=0.505
history_matches=34
history_shrink=0.1282
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0167)blend_weight=0.0167
history_matches=34
season_overlap_discount=1.0
per90_to_match_factor=0.9133
prior_reliability=0.2
competition=La Liga
totalShots: 0.5436 -> 0.5498
fouls: 0.9422 -> 0.9366
onTargetScoringAttempt: 0.3172 -> 0.3119
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Lamine Yamal', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.53 (squad xG sum 1.5869, xG scale 0.9623, xA scale 1.1580, team xA 0.99 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.527
squad_xg_sum=1.5869
squad_xa_sum=0.8571
team_expected_assists=0.9925
team_xa_to_xg_ratio=0.65
expected_assists: 0.0363 -> 0.042
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 81.0)match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0825
goal_rate=0.0285
scorer_weight=0.0689
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.0173
provider_weight=0.0336
-
Ibrahima KonatéD8900.050.0381%10.36.860.928FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0097, quality 0.809)market_value_eur=46000000
quality_factor=0.8089
boost_factor=1.0097
reference_quality=0.505
history_matches=42
history_shrink=0.1064
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0092)blend_weight=0.0092
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.9877
prior_reliability=0.1333
competition=La Liga
wonTackle: 0.6798 -> 0.6917
fouls: 1.1435 -> 1.1375
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Raphinha', 'matchup_zone': '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.53 (squad xG sum 1.5869, xG scale 0.9623, xA scale 1.1580, team xA 0.99 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.527
squad_xg_sum=1.5869
squad_xa_sum=0.8571
team_expected_assists=0.9925
team_xa_to_xg_ratio=0.65
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 16 by projected rating, fifa_overall 84.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.0472
goal_rate=0.0069
scorer_weight=0.0387
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0143
assist_rate=0.0
provider_weight=0.0115
-
Antonio RüdigerD8800.050.04ok10.56.941.825FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9984, quality 0.477)market_value_eur=6200000
quality_factor=0.4769
boost_factor=0.9984
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.9793
prior_reliability=0.0667
competition=La Liga
interceptionWon: 0.7771 -> 0.7706
wasFouled: 0.2651 -> 0.2711
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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': '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.53 (squad xG sum 1.5869, xG scale 0.9623, xA scale 1.1580, team xA 0.99 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.527
squad_xg_sum=1.5869
squad_xa_sum=0.8571
team_expected_assists=0.9925
team_xa_to_xg_ratio=0.65
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 83.0)match_squad_rank=12
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0481
goal_rate=0.0427
scorer_weight=0.0452
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0148
assist_rate=0.0
provider_weight=0.0119
-
Thibaut CourtoisG9000.00-n/a0.07.063.023FBref 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.0023, quality 0.574)market_value_eur=14500000
quality_factor=0.5737
boost_factor=1.0023
reference_quality=0.505
history_matches=39
history_shrink=0.1136
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0148)blend_weight=0.0148
history_matches=39
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.2
competition=La Liga
saves: 2.7104 -> 2.695
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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, Raphinha', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 2.8353}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.53 (squad xG sum 1.5869, xG scale 0.9623, xA scale 1.1580, team xA 0.99 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.527
squad_xg_sum=1.5869
squad_xa_sum=0.8571
team_expected_assists=0.9925
team_xa_to_xg_ratio=0.65
shots_faced: 26.9 -> 25.4
expected_saves: 6.58 -> 6.22
high_pressure_saves: 2.27 -> 2.14
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: 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.5727
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.0718
-
Jude BellinghamM8300.200.17ok21.67.166.823FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0148, quality 0.899)market_value_eur=151000000
quality_factor=0.8995
boost_factor=1.0148
reference_quality=0.505
history_matches=35
history_shrink=0.125
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0146)blend_weight=0.0146
history_matches=35
season_overlap_discount=1.0
per90_to_match_factor=0.9238
prior_reliability=0.18
competition=La Liga
totalShots: 2.0296 -> 2.0402
interceptionWon: 0.5849 -> 0.5763
onTargetScoringAttempt: 0.7994 -> 0.8078
goalAssist: 0.1397 -> 0.1477
fouls: 1.1525 -> 1.1457
goals: 0.2175 -> 0.2243
wasFouled: 2.8032 -> 2.7972
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Pedri', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.506, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 1.0822, 'skill_edge': -0.0001, 'height_edge': 0.056, 'attacker_skill': 0.8998, 'defender_skill': 0.8999, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Pedri', 'market_value': 164000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8999}], 'xg_override': 0.2085}
aerialWon: 0.7921 -> 1.2
totalShots: 2.0402 -> 2.2079
shotOffTarget: 1.2301 -> 1.3312
onTargetScoringAttempt: 0.8078 -> 0.8742
expectedGoalsOnTarget: 0.317 -> 0.3431
goals: 0.2243 -> 0.2427
expectedGoals: 0.1927 -> 0.2085
bigChanceMissed: 0.183 -> 0.198
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.53 (squad xG sum 1.5869, xG scale 0.9623, xA scale 1.1580, team xA 0.99 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.527
squad_xg_sum=1.5869
squad_xa_sum=0.8571
team_expected_assists=0.9925
team_xa_to_xg_ratio=0.65
expected_goals: 0.2085 -> 0.2006
expected_assists: 0.1453 -> 0.1683
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 90.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.1818
goal_rate=0.2427
scorer_weight=0.2271
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1549
assist_rate=0.1477
provider_weight=0.1704
-
Yan DiomandeF8100.100.03203%10.56.957.311FBref 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.0492, quality 0.899)market_value_eur=132000000
quality_factor=0.8986
boost_factor=1.0492
reference_quality=0.505
history_matches=7
history_shrink=0.4167
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0126)blend_weight=0.0126
history_matches=7
season_overlap_discount=1.0
per90_to_match_factor=0.8954
prior_reliability=0.0467
competition=La Liga
totalCross: 1.9738 -> 2.0136
wasFouled: 2.251 -> 2.2225
totalShots: 1.1221 -> 1.1079
wonTackle: 0.8958 -> 0.8845
fouls: 0.7034 -> 0.6945
interceptionWon: 0.5316 -> 0.5249
onTargetScoringAttempt: 0.4204 -> 0.4151
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Pedri, Rodri', 'matchup_zone': 'Attacking Mid vs Double Pivot — Tight Space Battle', 'duel_win_rate': 0.239, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.9979, 'skill_edge': 0.0086, 'height_edge': -0.01, 'attacker_skill': 0.899, 'defender_skill': 0.8799, 'attacker_role': 'CAM', 'attacker_mv_price_index': 0.95, 'defender_adjusted_parts': [{'player': 'Pedri', 'market_value': 164000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8999}, {'player': 'Rodri', 'market_value': 54000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.8599}], 'xg_override': 0.0988}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.53 (squad xG sum 1.5869, xG scale 0.9623, xA scale 1.1580, team xA 0.99 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.527
squad_xg_sum=1.5869
squad_xa_sum=0.8571
team_expected_assists=0.9925
team_xa_to_xg_ratio=0.65
expected_assists: 0.1326 -> 0.1536
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 84.0)match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0907
goal_rate=0.1077
scorer_weight=0.1008
-
integer_assist_projectionTeam scoreline allocation: 1 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.1424
assist_rate=0.1944
provider_weight=0.192
-
Kylian MbappéF8910.680.70ok54.37.964.223FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0138, quality 0.900)market_value_eur=212000000
quality_factor=0.9
boost_factor=1.0138
reference_quality=0.505
history_matches=38
history_shrink=0.1163
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0151)blend_weight=0.0151
history_matches=38
season_overlap_discount=1.0
per90_to_match_factor=0.9897
prior_reliability=0.2
competition=La Liga
totalShots: 4.8434 -> 4.8899
onTargetScoringAttempt: 2.2079 -> 2.2444
totalOffside: 1.4266 -> 1.41
totalCross: 1.2446 -> 1.2358
goals: 0.746 -> 0.7547
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Pau Cubarsí, Gerard Martín', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.199, 'pressing_faced': 'ULTRA_HIGH', 'numerical_situation': '1v2', 'xg_multiplier': 0.9987, 'skill_edge': 0.0191, 'height_edge': -0.02, 'attacker_skill': 0.9, 'defender_skill': 0.8575, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Pau Cubarsí', 'market_value': 94000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8981}, {'player': 'Gerard Martín', 'market_value': 36000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8168}], 'xg_override': 0.7032}
totalShots: 4.8899 -> 4.8835
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
goals: 1.0 -> 0
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.53 (squad xG sum 1.5869, xG scale 0.9623, xA scale 1.1580, team xA 0.99 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.527
squad_xg_sum=1.5869
squad_xa_sum=0.8571
team_expected_assists=0.9925
team_xa_to_xg_ratio=0.65
expected_goals: 0.7032 -> 0.6765
expected_assists: 0.1718 -> 0.199
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 91.0)match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.4916
goal_rate=0.7537
scorer_weight=0.7218
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1805
assist_rate=0.2471
provider_weight=0.2488
-
Team totals11.53177.0
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Andriy LuninG4.8m12.7%Market-value substitute prior
Trent Alexander-ArnoldD12.9m44.3%Market-value substitute prior
Álvaro CarrerasD15.1m24.9%Market-value substitute prior
Arda GülerM12.9m47.2%Market-value substitute prior
Franco MastantuonoM23.4m56.4%Market-value substitute prior
Vinícius JúniorF27.1m37.1%Market-value substitute prior
Antagonist / tactical summary
Midfield is evenly contested — Pedri vs Jude Bellingham will be the pivotal duel. Total antagonist xG — Home: 1.73, Away: 1.19. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Midfield — possession 49.5% / 50.5%, dominance ratio 0.49, key duel: Pedri vs Jude Bellingham
Fermín López xG 0.24Lamine Yamal xG 0.65Raphinha xG 0.51Kylian Mbappé xG 0.70Yan Diomande xG 0.10Eduardo Camavinga xG 0.03

Summary

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


Generated 2026-10-25 15:17:36 UTC · Soccer prediction reporting