Soccer predictions: actual data vs predicted data

Slate 20261019 · 2 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
Tottenham vs Coventry
Premier League
1-0Tottenham59.0% / 23.6% / 17.5%47.1%46.3%0.751.74 / 0.82-pending
Getafe vs Rayo Vallecano
LaLiga
0-1Rayo Vallecano31.0% / 31.3% / 37.7%31.6%39.4%0.70.92 / 1.05-pending

Match detail

Tottenham vs Coventry

Premier League · 20261019 · 4-2-3-1 vs 5-4-1
Predicted 1-0Winner: TottenhamWinning H 1-0 (13.4%)Winning A 0-1 (6.3%)Confidence 0.75λ home/away 1.74 / 0.82Most-likely P 13.4%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset Tracing
Antagonist + XGBoost match analysis for Tottenham vs Coventry. Player statistics regressed using position-specific XGBoost models (G, D, M, F) with 2026-2027 FBref priors. Micro-duels resolved across 4-2-3-1 vs 5-4-1 (duel lambdas: Home 1.616, Away 0.928). Final calibrated Poisson lambdas: Home 1.735, Away 0.824 (most likely score 1-0).
Home Starters 11/11 XGBoost (10 FBref) Away Starters 11/11 XGBoost (9 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.62 / 0.93 Final λ (H/A) 1.74 / 0.82
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

MetricTottenhamCoventry
League position19.0014.00
Points per game0.921.17
Attack index0.780.85
Defense (concede) index1.081.01
Form multiplier0.981.01
Standing λ multiplier0.930.94

Lambda decomposition (how the goal rates were built)

StageTottenham λCoventry λ
Pre-mismatch1.6510.908
Pre-competitive-floor1.8460.876
Pre-calibration (Micro-duels)1.6160.928
Final λ1.7350.824
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-013.4%
2-011.7%
1-111.1%
2-19.6%
0-07.8%
Home win59.0%
Draw23.6%
Away win17.5%
Over 2.547.1%
BTTS yes46.3%
Pregame fair line — favorite Tottenham (59.0%), fair total 2.56, fair spread 0.91

Projected players vs season baseline

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

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Antonín KinskýG9000.00-n/a0.07.029.030FBref Prior G_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost G_service raw output over 3 target models--
market_value_boostMarket-value quality scaling (boost 1.0096, quality 0.620)market_value_eur=18900000
quality_factor=0.6201
boost_factor=1.0096
reference_quality=0.505
history_matches=13
history_shrink=0.2778
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0241)blend_weight=0.0241
history_matches=13
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League
saves: 2.9662 -> 2.955
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Taiwo Awoniyi, Ephron Mason-Clark', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 0.9283}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.74 (squad xG sum 1.2805, xG scale 1.3549, xA scale 1.3756, team xA 1.13 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.735
squad_xg_sum=1.2805
squad_xa_sum=0.8198
team_expected_assists=1.1278
team_xa_to_xg_ratio=0.65
shots_faced: 8.8 -> 7.8
expected_saves: 2.15 -> 1.91
high_pressure_saves: 0.74 -> 0.66
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 77.0)match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 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.8026
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.0618
-
Dominic SolankeF7810.480.14245%21.16.751.425FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0109, quality 0.694)market_value_eur=27000000
quality_factor=0.6941
boost_factor=1.0109
reference_quality=0.505
history_matches=21
history_shrink=0.1923
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0033)blend_weight=0.0033
history_matches=21
season_overlap_discount=1.0
per90_to_match_factor=0.8613
prior_reliability=0.0267
competition=Premier League
wasFouled: 0.8276 -> 0.8392
totalOffside: 0.1756 -> 0.1822
totalShots: 2.1674 -> 2.1734
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Bobby Thomas, Ethan Pinnock', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.238, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.0557, 'skill_edge': 0.0539, 'height_edge': -0.016, 'attacker_skill': 0.6941, 'defender_skill': 0.5744, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Bobby Thomas', 'market_value': 21000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7022}, {'player': 'Ethan Pinnock', 'market_value': 2800000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4465}], 'xg_override': 0.3536}
totalShots: 2.1734 -> 2.2945
shotOffTarget: 1.3522 -> 1.4275
onTargetScoringAttempt: 0.8191 -> 0.8647
bigChanceMissed: 0.5209 -> 0.5499
expectedGoalsOnTarget: 0.3535 -> 0.3732
goals: 0.3392 -> 0.3581
expectedGoals: 0.3349 -> 0.3536
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.74 (squad xG sum 1.2805, xG scale 1.3549, xA scale 1.3756, team xA 1.13 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.735
squad_xg_sum=1.2805
squad_xa_sum=0.8198
team_expected_assists=1.1278
team_xa_to_xg_ratio=0.65
expected_goals: 0.3536 -> 0.479
expected_assists: 0.0502 -> 0.0691
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 15 by projected rating, fifa_overall 79.0)match_squad_rank=15
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.3806
goal_rate=0.3581
scorer_weight=0.4843
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0668
assist_rate=0.0
provider_weight=0.0553
-
SávioF8200.200.09113%30.97.039.130XGBoost 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.0148, quality 0.831)market_value_eur=52000000
quality_factor=0.8309
boost_factor=1.0148
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': 'Bobby Thomas, Ethan Pinnock', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.259, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.0874, 'skill_edge': 0.1154, 'height_edge': -0.056, 'attacker_skill': 0.8309, 'defender_skill': 0.5744, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Bobby Thomas', 'market_value': 21000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7022}, {'player': 'Ethan Pinnock', 'market_value': 2800000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4465}], 'xg_override': 0.1456}
totalShots: 1.9408 -> 2.1104
shotOffTarget: 1.3938 -> 1.5156
onTargetScoringAttempt: 0.5469 -> 0.5947
bigChanceMissed: 0.2677 -> 0.2911
expectedGoalsOnTarget: 0.1507 -> 0.1639
goals: 0.1494 -> 0.1625
expectedGoals: 0.1339 -> 0.1456
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.74 (squad xG sum 1.2805, xG scale 1.3549, xA scale 1.3756, team xA 1.13 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.735
squad_xg_sum=1.2805
squad_xa_sum=0.8198
team_expected_assists=1.1278
team_xa_to_xg_ratio=0.65
expected_goals: 0.1456 -> 0.1973
expected_assists: 0.1764 -> 0.2427
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 80.0)match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1791
goal_rate=0.1625
scorer_weight=0.2143
-
integer_assist_projectionTeam scoreline allocation: 1 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.2155
assist_rate=0.0498
provider_weight=0.1942
-
Conor GallagherM7800.130.0865%10.66.850.228FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0075, quality 0.725)market_value_eur=31000000
quality_factor=0.7249
boost_factor=1.0075
reference_quality=0.505
history_matches=39
history_shrink=0.1136
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0025)blend_weight=0.0025
history_matches=39
season_overlap_discount=1.0
per90_to_match_factor=0.862
prior_reliability=0.0333
competition=Premier League
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Caleb Yirenkyi, Matt Grimes', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.74 (squad xG sum 1.2805, xG scale 1.3549, xA scale 1.3756, team xA 1.13 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.735
squad_xg_sum=1.2805
squad_xa_sum=0.8198
team_expected_assists=1.1278
team_xa_to_xg_ratio=0.65
expected_goals: 0.0964 -> 0.1306
expected_assists: 0.0646 -> 0.0889
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.1224
goal_rate=0.0827
scorer_weight=0.1184
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0851
assist_rate=0.074
provider_weight=0.0962
-
Mohammed KudusF7200.170.05280%10.66.836.922FBref 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.0163, quality 0.821)market_value_eur=49000000
quality_factor=0.8206
boost_factor=1.0163
reference_quality=0.505
history_matches=24
history_shrink=0.1724
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0022)blend_weight=0.0022
history_matches=24
season_overlap_discount=1.0
per90_to_match_factor=0.8029
prior_reliability=0.02
competition=Premier League
totalCross: 4.2735 -> 4.2939
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Bobby Thomas, Ethan Pinnock', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.255, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.0805, 'skill_edge': 0.1108, 'height_edge': -0.056, 'attacker_skill': 0.8206, 'defender_skill': 0.5744, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Bobby Thomas', 'market_value': 21000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7022}, {'player': 'Ethan Pinnock', 'market_value': 2800000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4465}], 'xg_override': 0.1275}
totalShots: 1.2798 -> 1.3828
shotOffTarget: 0.8416 -> 0.9093
onTargetScoringAttempt: 0.433 -> 0.4679
goals: 0.1507 -> 0.1628
expectedGoals: 0.118 -> 0.1275
expectedGoalsOnTarget: 0.0938 -> 0.1014
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.74 (squad xG sum 1.2805, xG scale 1.3549, xA scale 1.3756, team xA 1.13 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.735
squad_xg_sum=1.2805
squad_xa_sum=0.8198
team_expected_assists=1.1278
team_xa_to_xg_ratio=0.65
expected_goals: 0.1275 -> 0.1728
expected_assists: 0.0998 -> 0.1373
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 81.0)match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1587
goal_rate=0.1628
scorer_weight=0.2072
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1283
assist_rate=0.0982
provider_weight=0.1358
-
Sandro TonaliM8500.110.0689%11.27.256.927FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0124, quality 0.884)market_value_eur=83000000
quality_factor=0.8845
boost_factor=1.0124
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.942
prior_reliability=0.12
competition=Premier League
totalCross: 1.7914 -> 1.7851
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Bobby Thomas', 'matchup_zone': 'LW vs CB', 'duel_win_rate': 0.482, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 1.0912, 'skill_edge': 0.082, 'height_edge': -0.02, 'attacker_skill': 0.8845, 'defender_skill': 0.7022, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Bobby Thomas', 'market_value': 21000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7022}], 'xg_override': 0.0779}
aerialWon: 0.4991 -> 1.1
totalShots: 1.1395 -> 1.2434
shotOffTarget: 0.7625 -> 0.832
onTargetScoringAttempt: 0.3746 -> 0.4088
goals: 0.0945 -> 0.1031
expectedGoals: 0.0714 -> 0.0779
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.74 (squad xG sum 1.2805, xG scale 1.3549, xA scale 1.3756, team xA 1.13 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.735
squad_xg_sum=1.2805
squad_xa_sum=0.8198
team_expected_assists=1.1278
team_xa_to_xg_ratio=0.65
expected_goals: 0.0779 -> 0.1055
expected_assists: 0.1396 -> 0.192
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.1001
goal_rate=0.1031
scorer_weight=0.1263
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1747
assist_rate=0.1273
provider_weight=0.1795
-
Lucas BergvallM6500.110.03320%10.36.835.222FBref 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.786)market_value_eur=41000000
quality_factor=0.7859
boost_factor=1.0132
reference_quality=0.505
history_matches=27
history_shrink=0.1562
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0034)blend_weight=0.0034
history_matches=27
season_overlap_discount=1.0
per90_to_match_factor=0.725
prior_reliability=0.0333
competition=Premier League
fouls: 1.7572 -> 1.7513
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Caleb Yirenkyi', 'matchup_zone': 'CAM vs CM', 'duel_win_rate': 0.487, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 1.0992, 'skill_edge': 0.0514, 'height_edge': 0.016, 'attacker_skill': 0.7964, 'defender_skill': 0.6821, 'attacker_role': 'CAM', 'attacker_mv_price_index': 0.95, 'defender_adjusted_parts': [{'player': 'Caleb Yirenkyi', 'market_value': 23000000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.6821}], 'xg_override': 0.083}
aerialWon: 0.4301 -> 1.2
totalShots: 0.7485 -> 0.8228
shotOffTarget: 0.4886 -> 0.5371
onTargetScoringAttempt: 0.2599 -> 0.2857
expectedGoals: 0.0755 -> 0.083
goals: 0.074 -> 0.0813
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.74 (squad xG sum 1.2805, xG scale 1.3549, xA scale 1.3756, team xA 1.13 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.735
squad_xg_sum=1.2805
squad_xa_sum=0.8198
team_expected_assists=1.1278
team_xa_to_xg_ratio=0.65
expected_goals: 0.083 -> 0.1125
expected_assists: 0.0555 -> 0.0763
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 78.0)match_squad_rank=14
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1064
goal_rate=0.0813
scorer_weight=0.1111
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0735
assist_rate=0.0692
provider_weight=0.0862
-
Destiny UdogieD7900.010.00145%00.16.643.921FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0085, quality 0.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.0022)blend_weight=0.0022
history_matches=24
season_overlap_discount=1.0
per90_to_match_factor=0.882
prior_reliability=0.02
competition=Premier League
totalCross: 1.1888 -> 1.1993
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Jay DaSilva', 'matchup_zone': '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.74 (squad xG sum 1.2805, xG scale 1.3549, xA scale 1.3756, team xA 1.13 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.735
squad_xg_sum=1.2805
squad_xa_sum=0.8198
team_expected_assists=1.1278
team_xa_to_xg_ratio=0.65
expected_assists: 0.028 -> 0.0385
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 17 by projected rating, fifa_overall 79.0)match_squad_rank=17
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0095
goal_rate=0.0
scorer_weight=0.0083
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0378
assist_rate=0.0
provider_weight=0.0308
-
Micky van de VenD8800.100.05105%10.36.855.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.0105, quality 0.821)market_value_eur=49000000
quality_factor=0.8206
boost_factor=1.0105
reference_quality=0.505
history_matches=40
history_shrink=0.1111
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0048)blend_weight=0.0048
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=0.9762
prior_reliability=0.0667
competition=Premier League
fouls: 0.8744 -> 0.8796
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Brandon Thomas-Asante', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.74 (squad xG sum 1.2805, xG scale 1.3549, xA scale 1.3756, team xA 1.13 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.735
squad_xg_sum=1.2805
squad_xa_sum=0.8198
team_expected_assists=1.1278
team_xa_to_xg_ratio=0.65
expected_goals: 0.0769 -> 0.1042
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 81.0)match_squad_rank=12
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.099
goal_rate=0.0163
scorer_weight=0.0834
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0124
assist_rate=0.0059
provider_weight=0.0118
-
Jan Paul van HeckeD9000.180.08141%10.67.159.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.0114, quality 0.863)market_value_eur=65000000
quality_factor=0.8627
boost_factor=1.0114
reference_quality=0.505
history_matches=42
history_shrink=0.1064
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0092)blend_weight=0.0092
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.9976
prior_reliability=0.1333
competition=Premier League
interceptionWon: 1.331 -> 1.3233
totalCross: 0.7619 -> 0.7549
wasFouled: 1.0373 -> 1.0323
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Brandon Thomas-Asante', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.74 (squad xG sum 1.2805, xG scale 1.3549, xA scale 1.3756, team xA 1.13 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.735
squad_xg_sum=1.2805
squad_xa_sum=0.8198
team_expected_assists=1.1278
team_xa_to_xg_ratio=0.65
expected_goals: 0.1351 -> 0.1831
expected_assists: 0.0753 -> 0.1036
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 81.0)match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1673
goal_rate=0.1666
scorer_weight=0.2143
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0984
assist_rate=0.032
provider_weight=0.0829
-
Archie GrayM8200.080.04103%10.46.846.935FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0106, quality 0.746)market_value_eur=34000000
quality_factor=0.7455
boost_factor=1.0106
reference_quality=0.505
history_matches=29
history_shrink=0.1471
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0108)blend_weight=0.0108
history_matches=29
season_overlap_discount=1.0
per90_to_match_factor=0.9134
prior_reliability=0.1133
competition=Premier League
wasFouled: 0.7856 -> 0.8004
totalShots: 0.6865 -> 0.6791
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Caleb Yirenkyi', '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.74 (squad xG sum 1.2805, xG scale 1.3549, xA scale 1.3756, team xA 1.13 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.735
squad_xg_sum=1.2805
squad_xa_sum=0.8198
team_expected_assists=1.1278
team_xa_to_xg_ratio=0.65
expected_goals: 0.0604 -> 0.0818
expected_assists: 0.0524 -> 0.0721
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 77.0)match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0785
goal_rate=0.0555
scorer_weight=0.0782
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0696
assist_rate=0.0795
provider_weight=0.0901
-
Team totals11.74146.9
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Guglielmo VicarioG5.0m13.9%Market-value substitute prior
Pedro PorroD15.0m24.6%Market-value substitute prior
Marcos SenesiD14.4m23.5%Market-value substitute prior
Mateus FernandesM35.4m53.4%Market-value substitute prior
Xavi SimonsM23.4m56.3%Market-value substitute prior
Omar MarmoushF26.9m36.7%Market-value substitute prior

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Taiwo AwoniyiF7200.170.17ok20.66.735.926FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9994, quality 0.494)market_value_eur=7600000
quality_factor=0.4939
boost_factor=0.9994
reference_quality=0.505
history_matches=21
history_shrink=0.1923
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0100)blend_weight=0.01
history_matches=21
season_overlap_discount=1.0
per90_to_match_factor=0.8046
prior_reliability=0.08
competition=Premier League
totalShots: 1.7697 -> 1.7781
totalOffside: 0.7141 -> 0.7204
onTargetScoringAttempt: 0.7504 -> 0.7559
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Micky van de Ven, Jan Paul van Hecke', '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.7007, 'skill_edge': -0.1716, 'height_edge': -0.032, 'attacker_skill': 0.4939, 'defender_skill': 0.8752, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Micky van de Ven', 'market_value': 49000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8633}, {'player': 'Jan Paul van Hecke', 'market_value': 65000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.887}], 'xg_override': 0.2113}
totalShots: 1.7781 -> 1.2459
shotOffTarget: 1.0193 -> 0.7142
onTargetScoringAttempt: 0.7559 -> 0.5297
expectedGoalsOnTarget: 0.3999 -> 0.2802
bigChanceMissed: 0.3785 -> 0.2652
expectedGoals: 0.3016 -> 0.2113
goals: 0.2839 -> 0.1989
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.82 (squad xG sum 1.0424, xG scale 0.7904, xA scale 0.9073, team xA 0.54 = 0.65 x lambda)scoreline_reset=true
team_lambda=0.824
squad_xg_sum=1.0424
squad_xa_sum=0.5903
team_expected_assists=0.5356
team_xa_to_xg_ratio=0.65
expected_goals: 0.2113 -> 0.1672
expected_assists: 0.0573 -> 0.052
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 74.0)match_squad_rank=12
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.154
goal_rate=0.1989
scorer_weight=0.1593
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0507
assist_rate=0.0
provider_weight=0.0416
-
Ephron Mason-ClarkF6500.140.03409%10.26.721.218FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0146, quality 0.603)market_value_eur=17200000
quality_factor=0.6027
boost_factor=1.0146
reference_quality=0.505
history_matches=5
history_shrink=0.5
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0130)blend_weight=0.013
history_matches=5
season_overlap_discount=1.0
per90_to_match_factor=0.7172
prior_reliability=0.04
competition=Premier League
totalCross: 2.0022 -> 2.0694
wasFouled: 0.6862 -> 0.7084
totalShots: 1.647 -> 1.6256
fouls: 1.185 -> 1.2007
onTargetScoringAttempt: 0.5758 -> 0.5683
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Micky van de Ven, Jan Paul van Hecke', '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.7433, 'skill_edge': -0.1226, 'height_edge': -0.052, 'attacker_skill': 0.6027, 'defender_skill': 0.8752, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Micky van de Ven', 'market_value': 49000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8633}, {'player': 'Jan Paul van Hecke', 'market_value': 65000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.887}], 'xg_override': 0.1824}
totalShots: 1.6395 -> 1.2186
shotOffTarget: 1.0712 -> 0.7962
onTargetScoringAttempt: 0.5683 -> 0.4224
expectedGoals: 0.2454 -> 0.1824
goals: 0.2163 -> 0.1608
expectedGoalsOnTarget: 0.0456 -> 0.0339
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.82 (squad xG sum 1.0424, xG scale 0.7904, xA scale 0.9073, team xA 0.54 = 0.65 x lambda)scoreline_reset=true
team_lambda=0.824
squad_xg_sum=1.0424
squad_xa_sum=0.5903
team_expected_assists=0.5356
team_xa_to_xg_ratio=0.65
expected_goals: 0.1824 -> 0.1442
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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.1343
goal_rate=0.1608
scorer_weight=0.1308
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0433
assist_rate=0.0
provider_weight=0.0354
-
Matt GrimesM8700.030.01150%00.46.837.211FBref 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.0394)blend_weight=0.0394
history_matches=6
season_overlap_discount=1.0
per90_to_match_factor=0.9661
prior_reliability=0.1333
competition=Premier League
totalCross: 2.445 -> 2.539
fouls: 0.9768 -> 0.9383
wonTackle: 0.7013 -> 0.6737
interceptionWon: 0.3507 -> 0.3369
wasFouled: 0.7622 -> 0.7702
onTargetScoringAttempt: 0.1803 -> 0.1732
totalShots: 0.6479 -> 0.6414
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Antonín Kinský', 'matchup_zone': 'Left Mid vs Right Back — Wide Channel', 'duel_win_rate': 0.248, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v1', 'xg_multiplier': 0.7468, 'skill_edge': -0.1243, 'height_edge': -0.048, 'attacker_skill': 0.4717, 'defender_skill': 0.7479, 'attacker_role': 'LM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Antonín Kinský', 'market_value': 18900000, 'role': 'GK', 'price_index': 0.55, 'adjusted_quality': 0.7479}], 'xg_override': 0.0325}
totalShots: 0.6414 -> 0.479
shotOffTarget: 0.4675 -> 0.3491
aerialWon: 0.899 -> 1.0
onTargetScoringAttempt: 0.1732 -> 0.1293
goals: 0.0579 -> 0.0432
expectedGoals: 0.0435 -> 0.0325
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.82 (squad xG sum 1.0424, xG scale 0.7904, xA scale 0.9073, team xA 0.54 = 0.65 x lambda)scoreline_reset=true
team_lambda=0.824
squad_xg_sum=1.0424
squad_xa_sum=0.5903
team_expected_assists=0.5356
team_xa_to_xg_ratio=0.65
expected_goals: 0.0325 -> 0.0257
expected_assists: 0.0723 -> 0.0656
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 76.0)match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0254
goal_rate=0.0432
scorer_weight=0.029
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0635
assist_rate=0.0688
provider_weight=0.0637
-
Caleb YirenkyiM8000.040.001090%10.16.735.611FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0211, quality 0.660)market_value_eur=23000000
quality_factor=0.6595
boost_factor=1.0211
reference_quality=0.505
history_matches=6
history_shrink=0.4545
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0295)blend_weight=0.0295
history_matches=6
season_overlap_discount=1.0
per90_to_match_factor=0.8834
prior_reliability=0.1
competition=Premier League
wonTackle: 0.6408 -> 0.6219
interceptionWon: 0.3204 -> 0.3109
fouls: 1.987 -> 1.9805
wasFouled: 1.3762 -> 1.3703
onTargetScoringAttempt: 0.1828 -> 0.1774
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Conor Gallagher', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.414, 'pressing_faced': 'HIGH', 'numerical_situation': '1v1', 'xg_multiplier': 0.9478, 'skill_edge': -0.0355, 'height_edge': 0.0, 'attacker_skill': 0.6821, 'defender_skill': 0.761, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Conor Gallagher', 'market_value': 31000000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.761}], 'xg_override': 0.047}
aerialWon: 1.4842 -> 1.1
totalShots: 0.5937 -> 0.5627
shotOffTarget: 0.4104 -> 0.389
onTargetScoringAttempt: 0.1774 -> 0.1681
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.82 (squad xG sum 1.0424, xG scale 0.7904, xA scale 0.9073, team xA 0.54 = 0.65 x lambda)scoreline_reset=true
team_lambda=0.824
squad_xg_sum=1.0424
squad_xa_sum=0.5903
team_expected_assists=0.5356
team_xa_to_xg_ratio=0.65
expected_goals: 0.047 -> 0.0372
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 73.0)match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0365
goal_rate=0.0518
scorer_weight=0.039
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0416
assist_rate=0.0578
provider_weight=0.0473
-
Brandon Thomas-AsanteF8300.080.03205%10.56.735.513FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0123, quality 0.595)market_value_eur=16500000
quality_factor=0.5953
boost_factor=1.0123
reference_quality=0.505
history_matches=6
history_shrink=0.4545
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0217)blend_weight=0.0217
history_matches=6
season_overlap_discount=1.0
per90_to_match_factor=0.9181
prior_reliability=0.0733
competition=Premier League
totalShots: 1.56 -> 1.5262
interceptionWon: 2.4752 -> 2.4939
totalCross: 1.0123 -> 1.0265
onTargetScoringAttempt: 0.4653 -> 0.4552
goalAssist: 0.3935 -> 0.385
wonTackle: 0.3935 -> 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': 'Micky van de Ven, Jan Paul van Hecke', '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.7502, 'skill_edge': -0.1259, 'height_edge': -0.044, 'attacker_skill': 0.5953, 'defender_skill': 0.8752, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Micky van de Ven', 'market_value': 49000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.8633}, {'player': 'Jan Paul van Hecke', 'market_value': 65000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.887}], 'xg_override': 0.1053}
totalShots: 1.5499 -> 1.1627
shotOffTarget: 1.0947 -> 0.8212
onTargetScoringAttempt: 0.4552 -> 0.3415
goals: 0.1564 -> 0.1173
expectedGoals: 0.1403 -> 0.1053
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.82 (squad xG sum 1.0424, xG scale 0.7904, xA scale 0.9073, team xA 0.54 = 0.65 x lambda)scoreline_reset=true
team_lambda=0.824
squad_xg_sum=1.0424
squad_xa_sum=0.5903
team_expected_assists=0.5356
team_xa_to_xg_ratio=0.65
expected_goals: 0.1053 -> 0.0832
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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0798
goal_rate=0.1173
scorer_weight=0.0896
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0288
assist_rate=0.385
provider_weight=0.0365
-
Jay DaSilvaD8900.070.06ok10.46.844.414FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0049, quality 0.541)market_value_eur=11600000
quality_factor=0.5411
boost_factor=1.0049
reference_quality=0.505
history_matches=6
history_shrink=0.4545
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0394)blend_weight=0.0394
history_matches=6
season_overlap_discount=1.0
per90_to_match_factor=0.9939
prior_reliability=0.1333
competition=Premier League
totalCross: 2.1099 -> 2.1247
goalAssist: 0.242 -> 0.2325
goals: 0.2057 -> 0.1976
interceptionWon: 0.6862 -> 0.6787
fouls: 0.332 -> 0.3385
onTargetScoringAttempt: 0.332 -> 0.3385
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Antonín Kinský, Destiny Udogie', 'matchup_zone': 'LWB vs RW + RB'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.82 (squad xG sum 1.0424, xG scale 0.7904, xA scale 0.9073, team xA 0.54 = 0.65 x lambda)scoreline_reset=true
team_lambda=0.824
squad_xg_sum=1.0424
squad_xa_sum=0.5903
team_expected_assists=0.5356
team_xa_to_xg_ratio=0.65
expected_goals: 0.0888 -> 0.0702
expected_assists: 0.0922 -> 0.0837
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.0678
goal_rate=0.1976
scorer_weight=0.0877
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0803
assist_rate=0.2325
provider_weight=0.1046
-
Bobby ThomasD8900.060.0444%10.96.840.511FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0185, quality 0.641)market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.0185
reference_quality=0.505
history_matches=6
history_shrink=0.4545
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0374)blend_weight=0.0374
history_matches=6
season_overlap_discount=1.0
per90_to_match_factor=0.9874
prior_reliability=0.1267
competition=Premier League
interceptionWon: 1.1525 -> 1.1094
wasFouled: 1.2065 -> 1.2392
fouls: 0.7314 -> 0.7624
totalCross: 0.128 -> 0.1427
totalShots: 0.8614 -> 0.8491
wonTackle: 0.7537 -> 0.7449
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Sandro Tonali', 'matchup_zone': 'LW vs CB'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.82 (squad xG sum 1.0424, xG scale 0.7904, xA scale 0.9073, team xA 0.54 = 0.65 x lambda)scoreline_reset=true
team_lambda=0.824
squad_xg_sum=1.0424
squad_xa_sum=0.5903
team_expected_assists=0.5356
team_xa_to_xg_ratio=0.65
expected_goals: 0.0809 -> 0.0639
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 74.0)match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0619
goal_rate=0.0
scorer_weight=0.0511
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0432
assist_rate=0.0
provider_weight=0.0354
-
Ethan PinnockD8700.010.00210%00.16.713.131XGBoost D_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9928, quality 0.437)market_value_eur=2800000
quality_factor=0.4374
boost_factor=0.9928
reference_quality=0.505
history_matches=9
history_shrink=0.3571
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Sávio', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.82 (squad xG sum 1.0424, xG scale 0.7904, xA scale 0.9073, team xA 0.54 = 0.65 x lambda)scoreline_reset=true
team_lambda=0.824
squad_xg_sum=1.0424
squad_xa_sum=0.5903
team_expected_assists=0.5356
team_xa_to_xg_ratio=0.65
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 75.0)match_squad_rank=11
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0133
goal_rate=0.0
scorer_weight=0.0107
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0057
assist_rate=0.0
provider_weight=0.0051
-
Stephen MfuniD9000.090.02363%10.26.613.911XGBoost 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=2700000
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': 'Dominic Solanke', '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
goals: 1.0 -> 0
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.82 (squad xG sum 1.0424, xG scale 0.7904, xA scale 0.9073, team xA 0.54 = 0.65 x lambda)scoreline_reset=true
team_lambda=0.824
squad_xg_sum=1.0424
squad_xa_sum=0.5903
team_expected_assists=0.5356
team_xa_to_xg_ratio=0.65
expected_goals: 0.1105 -> 0.0873
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 18 by projected rating, fifa_overall 69.0)match_squad_rank=18
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0836
goal_rate=0.5327
scorer_weight=0.1091
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0036
assist_rate=0.0
provider_weight=0.0033
-
Milan van EwijkD9000.00-n/a00.06.736.313FBref Prior D_service
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.0232, quality 0.660)market_value_eur=23000000
quality_factor=0.6595
boost_factor=1.0232
reference_quality=0.505
history_matches=5
history_shrink=0.5
-
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
wonTackle: 1.3352 -> 1.299
interceptionWon: 1.3217 -> 1.2861
wasFouled: 0.7449 -> 0.7126
totalCross: 0.9835 -> 1.0059
totalShots: 0.3741 -> 0.3579
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Sandro Tonali, Destiny Udogie', 'matchup_zone': 'RWB vs LW + LB'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.82 (squad xG sum 1.0424, xG scale 0.7904, xA scale 0.9073, team xA 0.54 = 0.65 x lambda)scoreline_reset=true
team_lambda=0.824
squad_xg_sum=1.0424
squad_xa_sum=0.5903
team_expected_assists=0.5356
team_xa_to_xg_ratio=0.65
expected_assists: 0.0583 -> 0.0529
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 75.0)match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0
goal_rate=0.0
scorer_weight=0.001
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0515
assist_rate=0.0
provider_weight=0.0423
-
Carl RushworthG9000.00-n/a0.07.136.611FBref 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.0185, quality 0.641)market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.0185
reference_quality=0.505
history_matches=6
history_shrink=0.4545
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0394)blend_weight=0.0394
history_matches=6
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.1333
competition=Premier League
saves: 3.0742 -> 3.0122
wasFouled: 0.1772 -> 0.1702
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Dominic Solanke, Sávio', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.616}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.82 (squad xG sum 1.0424, xG scale 0.7904, xA scale 0.9073, team xA 0.54 = 0.65 x lambda)scoreline_reset=true
team_lambda=0.824
squad_xg_sum=1.0424
squad_xa_sum=0.5903
team_expected_assists=0.5356
team_xa_to_xg_ratio=0.65
shots_faced: 15.4 -> 16.5
expected_saves: 3.77 -> 4.04
high_pressure_saves: 1.29 -> 1.39
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 76.0)match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=0.8589
-
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.5255
-
Team totals00.82116.8
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Daniel BentleyG4.4m10.9%Market-value substitute prior
Aurèle AmendaD14.2m22.9%Market-value substitute prior
Liam KitchingD14.1m32.5%Market-value substitute prior
Jack RudoniM22.8m53.5%Market-value substitute prior
Victor TorpM23.9m70.3%Market-value substitute prior
Sidiki CherifF26.1m59.5%Market-value substitute prior
Antagonist / tactical summary
Home midfield dominates with ~53% possession expected (Sandro Tonali vs Caleb Yirenkyi). Total antagonist xG — Home: 0.79, Away: 0.74. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Midfield — possession 52.7% / 47.3%, dominance ratio 0.60, key duel: Sandro Tonali vs Caleb Yirenkyi
Sandro Tonali xG 0.08Lucas Bergvall xG 0.08Sávio xG 0.15Brandon Thomas-Asante xG 0.11Taiwo Awoniyi xG 0.21Ephron Mason-Clark xG 0.18

Summary

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

Getafe vs Rayo Vallecano

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

Standing & form context

MetricGetafeRayo Vallecano
League position14.0013.00
Points per game1.161.25
Attack index0.730.96
Defense (concede) index1.120.92
Form multiplier0.991.00
Standing λ multiplier0.920.95

Lambda decomposition (how the goal rates were built)

StageGetafe λRayo Vallecano λ
FBref Squad Prior E[λ] (weight 0.228)0.3280.326
Pre-competitive-floor0.9241.050
Pre-calibration (Micro-duels)0.9511.021
Final λ0.9241.050
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-114.4%
0-014.0%
1-113.6%
1-012.7%
0-27.7%
Home win31.0%
Draw31.3%
Away win37.7%
Over 2.531.6%
BTTS yes39.4%
Pregame fair line — favorite Rayo Vallecano (37.7%), fair total 1.97, 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.

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
David SoriaG9000.00-n/a0.07.068.331FBref Prior G_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost G_service raw output over 3 target models--
market_value_boostMarket-value quality scaling (boost 0.9980, quality 0.437)market_value_eur=2700000
quality_factor=0.4374
boost_factor=0.998
reference_quality=0.505
history_matches=46
history_shrink=0.098
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0127)blend_weight=0.0127
history_matches=46
season_overlap_discount=1.0
per90_to_match_factor=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': 'Sergio Camello, Álvaro García', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.0214}
-
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.9597, xG scale 0.9628, xA scale 0.9905, team xA 0.60 = 0.65 x lambda)scoreline_reset=true
team_lambda=0.924
squad_xg_sum=0.9597
squad_xa_sum=0.6064
team_expected_assists=0.6006
team_xa_to_xg_ratio=0.65
shots_faced: 9.7 -> 10.0
expected_saves: 2.37 -> 2.45
high_pressure_saves: 0.82 -> 0.84
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.885
-
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.5917
-
DjenéD8300.00-n/a00.06.760.827FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9978, quality 0.437)market_value_eur=1500000
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.0134)blend_weight=0.0134
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.9193
prior_reliability=0.1933
competition=La Liga
fouls: 0.7891 -> 0.7997
interceptionWon: 1.0599 -> 1.0669
wasFouled: 0.4172 -> 0.4116
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Jorge de Frutos', 'matchup_zone': 'Shape fallback'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 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.9597, xG scale 0.9628, xA scale 0.9905, team xA 0.60 = 0.65 x lambda)scoreline_reset=true
team_lambda=0.924
squad_xg_sum=0.9597
squad_xa_sum=0.6064
team_expected_assists=0.6006
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 79.0)match_squad_rank=12
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0003
goal_rate=0.0
scorer_weight=0.001
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0099
assist_rate=0.0
provider_weight=0.0082
-
Nemanja GudeljM8600.070.03115%10.96.761.531FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 0.9977, quality 0.437)market_value_eur=1900000
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.0010)blend_weight=0.001
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=0.9574
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': 'Unai López, Pathé Ismaël Ciss', 'matchup_zone': 'Central Mid vs Mid + CDM Pressing Trap', 'duel_win_rate': 0.294, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.0647, 'skill_edge': 0.0, 'height_edge': 0.044, 'attacker_skill': 0.4374, 'defender_skill': 0.4374, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Unai López', 'market_value': 2600000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.4374}, {'player': 'Pathé Ismaël Ciss', 'market_value': 1600000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4374}], 'xg_override': 0.0756}
aerialWon: 1.506 -> 1.2
totalShots: 0.8848 -> 0.942
shotOffTarget: 0.6309 -> 0.6717
onTargetScoringAttempt: 0.249 -> 0.2651
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.9597, xG scale 0.9628, xA scale 0.9905, team xA 0.60 = 0.65 x lambda)scoreline_reset=true
team_lambda=0.924
squad_xg_sum=0.9597
squad_xa_sum=0.6064
team_expected_assists=0.6006
team_xa_to_xg_ratio=0.65
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 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 skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0702
goal_rate=0.0653
scorer_weight=0.0668
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0416
assist_rate=0.0491
provider_weight=0.0453
-
Francho SerranoM8600.060.01444%10.36.844.39FBref 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.9910, quality 0.439)market_value_eur=3100000
quality_factor=0.4387
boost_factor=0.991
reference_quality=0.505
history_matches=6
history_shrink=0.4545
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0355)blend_weight=0.0355
history_matches=6
season_overlap_discount=1.0
per90_to_match_factor=0.955
prior_reliability=0.12
competition=La Liga
totalCross: 1.0836 -> 1.1392
totalShots: 0.9111 -> 0.8788
interceptionWon: 0.8633 -> 0.8891
wonTackle: 0.1395 -> 0.1534
onTargetScoringAttempt: 0.26 -> 0.2508
fouls: 0.7869 -> 0.7778
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Jorge de Frutos', 'matchup_zone': 'Left Wingback vs Right Winger — Tracking Run Duel', 'duel_win_rate': 0.421, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.972, 'skill_edge': -0.035, 'height_edge': 0.016, 'attacker_skill': 0.4551, 'defender_skill': 0.533, 'attacker_role': 'LWB', 'attacker_mv_price_index': 0.7, 'defender_adjusted_parts': [{'player': 'Jorge de Frutos', 'market_value': 10900000, 'role': 'RW', 'price_index': 1.0, 'adjusted_quality': 0.533}], 'xg_override': 0.0662}
aerialWon: 0.2271 -> 1.0
totalShots: 0.9019 -> 0.8767
shotOffTarget: 0.6511 -> 0.6329
onTargetScoringAttempt: 0.2508 -> 0.2438
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.9597, xG scale 0.9628, xA scale 0.9905, team xA 0.60 = 0.65 x lambda)scoreline_reset=true
team_lambda=0.924
squad_xg_sum=0.9597
squad_xa_sum=0.6064
team_expected_assists=0.6006
team_xa_to_xg_ratio=0.65
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 79.0)match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0617
goal_rate=0.0547
scorer_weight=0.0574
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0587
assist_rate=0.0812
provider_weight=0.0714
-
Kiko FemeníaD6700.020.03ok00.26.655.723FBref Prior D_service
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=32
history_shrink=0.1351
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0088)blend_weight=0.0088
history_matches=32
season_overlap_discount=1.0
per90_to_match_factor=0.745
prior_reliability=0.1
competition=La Liga
totalCross: 1.7621 -> 1.7728
interceptionWon: 0.877 -> 0.8693
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Sergio Camello', 'matchup_zone': '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.9597, xG scale 0.9628, xA scale 0.9905, team xA 0.60 = 0.65 x lambda)scoreline_reset=true
team_lambda=0.924
squad_xg_sum=0.9597
squad_xa_sum=0.6064
team_expected_assists=0.6006
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 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.0236
goal_rate=0.0378
scorer_weight=0.0281
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0607
assist_rate=0.005
provider_weight=0.0501
-
Martín SatrianoF8100.210.17ok21.76.863.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.0012, quality 0.529)market_value_eur=10600000
quality_factor=0.5295
boost_factor=1.0012
reference_quality=0.505
history_matches=26
history_shrink=0.1613
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0189)blend_weight=0.0189
history_matches=26
season_overlap_discount=1.0
per90_to_match_factor=0.8978
prior_reliability=0.18
competition=La Liga
wasFouled: 1.7966 -> 1.8129
fouls: 1.8161 -> 1.8069
interceptionWon: 0.3459 -> 0.3394
onTargetScoringAttempt: 0.6325 -> 0.6268
wonTackle: 0.2655 -> 0.2605
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Mujaid Sadick, Unai López', 'matchup_zone': 'Shadow Striker vs CB + Mid Cover — Layered Defense', 'duel_win_rate': 0.352, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.1064, 'skill_edge': 0.0324, 'height_edge': 0.04, 'attacker_skill': 0.5295, 'defender_skill': 0.4576, 'attacker_role': 'SS', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Mujaid Sadick', 'market_value': 4700000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4777}, {'player': 'Unai López', 'market_value': 2600000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.4374}], 'xg_override': 0.2234}
totalShots: 1.8731 -> 2.0724
shotOffTarget: 1.2386 -> 1.3704
onTargetScoringAttempt: 0.6268 -> 0.6935
expectedGoals: 0.2019 -> 0.2234
expectedGoalsOnTarget: 0.1922 -> 0.2127
goals: 0.1725 -> 0.1909
bigChanceMissed: 0.1151 -> 0.1273
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=0
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.92 (squad xG sum 0.9597, xG scale 0.9628, xA scale 0.9905, team xA 0.60 = 0.65 x lambda)scoreline_reset=true
team_lambda=0.924
squad_xg_sum=0.9597
squad_xa_sum=0.6064
team_expected_assists=0.6006
team_xa_to_xg_ratio=0.65
expected_goals: 0.2234 -> 0.215
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 77.0)match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.1935
goal_rate=0.1909
scorer_weight=0.1894
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0513
assist_rate=0.1653
provider_weight=0.0659
-
Ramón TerratsM8200.180.07147%21.06.860.829FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 0.9976, quality 0.440)market_value_eur=3200000
quality_factor=0.4399
boost_factor=0.9976
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.912
prior_reliability=0.2
competition=La Liga
totalCross: 2.0692 -> 2.099
totalShots: 1.5424 -> 1.5664
wasFouled: 2.4836 -> 2.4924
interceptionWon: 0.8041 -> 0.7962
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Álvaro García', 'matchup_zone': 'Right Wingback vs Left Winger — Tracking Run Duel', 'duel_win_rate': 0.493, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0776, 'skill_edge': 0.0088, 'height_edge': 0.044, 'attacker_skill': 0.4569, 'defender_skill': 0.4374, 'attacker_role': 'RWB', 'attacker_mv_price_index': 0.7, 'defender_adjusted_parts': [{'player': 'Álvaro García', 'market_value': 1500000, 'role': 'LW', 'price_index': 1.0, 'adjusted_quality': 0.4374}], 'xg_override': 0.1905}
totalShots: 1.5664 -> 1.688
shotOffTarget: 0.9822 -> 1.0584
onTargetScoringAttempt: 0.561 -> 0.6045
bigChanceMissed: 0.2056 -> 0.2216
goals: 0.1849 -> 0.1992
expectedGoals: 0.1768 -> 0.1905
expectedGoalsOnTarget: 0.1519 -> 0.1637
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.9597, xG scale 0.9628, xA scale 0.9905, team xA 0.60 = 0.65 x lambda)scoreline_reset=true
team_lambda=0.924
squad_xg_sum=0.9597
squad_xa_sum=0.6064
team_expected_assists=0.6006
team_xa_to_xg_ratio=0.65
expected_goals: 0.1905 -> 0.1834
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 82.0)match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.1676
goal_rate=0.1992
scorer_weight=0.19
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.1059
assist_rate=0.0966
provider_weight=0.1007
-
Andrés GarcíaD7600.030.01122%10.46.646.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.9991, quality 0.494)market_value_eur=7600000
quality_factor=0.4939
boost_factor=0.9991
reference_quality=0.505
history_matches=13
history_shrink=0.2778
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0301)blend_weight=0.0301
history_matches=13
season_overlap_discount=1.0
per90_to_match_factor=0.8491
prior_reliability=0.1667
competition=La Liga
wonTackle: 1.2071 -> 1.2321
interceptionWon: 0.7188 -> 0.6972
fouls: 0.6506 -> 0.631
totalCross: 2.9733 -> 2.986
totalShots: 0.5797 -> 0.5924
wasFouled: 0.1355 -> 0.1416
onTargetScoringAttempt: 0.1875 -> 0.1819
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Álvaro García', 'matchup_zone': '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.9597, xG scale 0.9628, xA scale 0.9905, team xA 0.60 = 0.65 x lambda)scoreline_reset=true
team_lambda=0.924
squad_xg_sum=0.9597
squad_xa_sum=0.6064
team_expected_assists=0.6006
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 73.0)match_squad_rank=16
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0308
goal_rate=0.0
scorer_weight=0.025
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0403
assist_rate=0.0
provider_weight=0.0329
-
Johan MojicaD8500.030.0268%10.46.759.429FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9978, quality 0.437)market_value_eur=1400000
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.0092)blend_weight=0.0092
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.9394
prior_reliability=0.1333
competition=La Liga
totalCross: 6.6809 -> 6.7059
wasFouled: 1.4184 -> 1.4313
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': 'Sergio Camello', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 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.9597, xG scale 0.9628, xA scale 0.9905, team xA 0.60 = 0.65 x lambda)scoreline_reset=true
team_lambda=0.924
squad_xg_sum=0.9597
squad_xa_sum=0.6064
team_expected_assists=0.6006
team_xa_to_xg_ratio=0.65
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 76.0)match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0263
goal_rate=0.0
scorer_weight=0.0214
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.1057
assist_rate=0.0437
provider_weight=0.0894
-
Mario MartínM8100.110.08ok10.76.759.826FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0009, quality 0.531)market_value_eur=10700000
quality_factor=0.5306
boost_factor=1.0009
reference_quality=0.505
history_matches=40
history_shrink=0.1111
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0034)blend_weight=0.0034
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=0.9051
prior_reliability=0.0467
competition=La Liga
wasFouled: 1.7552 -> 1.7667
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Unai López, Pathé Ismaël Ciss', 'matchup_zone': 'Central Mid vs Mid + CDM Pressing Trap', 'duel_win_rate': 0.302, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.0766, 'skill_edge': 0.0481, 'height_edge': 0.004, 'attacker_skill': 0.5444, 'defender_skill': 0.4374, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Unai López', 'market_value': 2600000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.4374}, {'player': 'Pathé Ismaël Ciss', 'market_value': 1600000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4374}], 'xg_override': 0.1114}
aerialWon: 1.9945 -> 1.0
totalShots: 1.1031 -> 1.1876
shotOffTarget: 0.7242 -> 0.7797
onTargetScoringAttempt: 0.3789 -> 0.4079
bigChanceMissed: 0.1608 -> 0.1731
expectedGoals: 0.1035 -> 0.1114
goals: 0.0796 -> 0.0857
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.9597, xG scale 0.9628, xA scale 0.9905, team xA 0.60 = 0.65 x lambda)scoreline_reset=true
team_lambda=0.924
squad_xg_sum=0.9597
squad_xa_sum=0.6064
team_expected_assists=0.6006
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 74.0)match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.1017
goal_rate=0.0857
scorer_weight=0.0902
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0431
assist_rate=0.0772
provider_weight=0.0551
-
Abdel AbqarD8000.000.0179%00.16.651.218FBref Prior D_service
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.9969, quality 0.441)market_value_eur=3300000
quality_factor=0.4412
boost_factor=0.9969
reference_quality=0.505
history_matches=26
history_shrink=0.1613
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0070)blend_weight=0.007
history_matches=26
season_overlap_discount=1.0
per90_to_match_factor=0.8872
prior_reliability=0.0667
competition=La Liga
wasFouled: 1.6275 -> 1.6223
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Álvaro García', 'matchup_zone': 'Shape fallback'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 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.9597, xG scale 0.9628, xA scale 0.9905, team xA 0.60 = 0.65 x lambda)scoreline_reset=true
team_lambda=0.924
squad_xg_sum=0.9597
squad_xa_sum=0.6064
team_expected_assists=0.6006
team_xa_to_xg_ratio=0.65
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 15 by projected rating, fifa_overall 79.0)match_squad_rank=15
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation skipped: 0 projected goalsteam_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0014
goal_rate=0.0
scorer_weight=0.0014
-
integer_assist_projectionTeam scoreline allocation skipped: 0 projected assistsallocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0085
assist_rate=0.0664
provider_weight=0.0106
-
Team totals00.92136.7
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Jiří LetáčekG4.4m10.9%Market-value substitute prior
Zaid RomeroD13.7m21.9%Market-value substitute prior
Dani CarvajalD13.6m30.0%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

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Álvaro GarcíaF8100.190.15ok21.06.753.934FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9977, quality 0.437)market_value_eur=1500000
quality_factor=0.4374
boost_factor=0.9977
reference_quality=0.505
history_matches=39
history_shrink=0.1136
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0108)blend_weight=0.0108
history_matches=39
season_overlap_discount=1.0
per90_to_match_factor=0.8948
prior_reliability=0.1467
competition=La Liga
totalShots: 1.825 -> 1.8141
fouls: 0.5514 -> 0.5586
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Andrés García', 'matchup_zone': 'LW vs CB', 'duel_win_rate': 0.321, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.8545, 'skill_edge': -0.039, 'height_edge': -0.06, 'attacker_skill': 0.4374, 'defender_skill': 0.524, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Andrés García', 'market_value': 7600000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.524}], 'xg_override': 0.2051}
totalShots: 1.8225 -> 1.5573
shotOffTarget: 1.1818 -> 1.0098
onTargetScoringAttempt: 0.6407 -> 0.5475
goals: 0.2603 -> 0.2224
expectedGoals: 0.24 -> 0.2051
expectedGoalsOnTarget: 0.2227 -> 0.1903
bigChanceMissed: 0.157 -> 0.1342
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.05 (squad xG sum 1.1585, xG scale 0.9063, xA scale 1.0070, team xA 0.68 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.05
squad_xg_sum=1.1585
squad_xa_sum=0.6777
team_expected_assists=0.6825
team_xa_to_xg_ratio=0.65
expected_goals: 0.2051 -> 0.1859
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 81.0)match_squad_rank=12
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1696
goal_rate=0.2224
scorer_weight=0.1985
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.067
assist_rate=0.2934
provider_weight=0.0868
-
Sergio CamelloF7310.300.1780%21.47.247.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.0012, quality 0.533)market_value_eur=10900000
quality_factor=0.533
boost_factor=1.0012
reference_quality=0.505
history_matches=29
history_shrink=0.1471
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0134)blend_weight=0.0134
history_matches=29
season_overlap_discount=1.0
per90_to_match_factor=0.8142
prior_reliability=0.14
competition=La Liga
goals: 0.4648 -> 0.4741
totalCross: 0.2302 -> 0.2375
wasFouled: 1.7834 -> 1.7907
onTargetScoringAttempt: 0.9953 -> 1.0025
fouls: 1.216 -> 1.2101
wonTackle: 0.8087 -> 0.8031
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Andrés García, Johan Mojica', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.196, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 0.9934, 'skill_edge': 0.0235, 'height_edge': -0.028, 'attacker_skill': 0.533, 'defender_skill': 0.4807, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Andrés García', 'market_value': 7600000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.524}, {'player': 'Johan Mojica', 'market_value': 1400000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.3326}
totalShots: 2.3459 -> 2.3304
shotOffTarget: 1.3434 -> 1.3345
onTargetScoringAttempt: 1.0025 -> 0.9959
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.05 (squad xG sum 1.1585, xG scale 0.9063, xA scale 1.0070, team xA 0.68 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.05
squad_xg_sum=1.1585
squad_xa_sum=0.6777
team_expected_assists=0.6825
team_xa_to_xg_ratio=0.65
expected_goals: 0.3326 -> 0.3014
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 74.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.2602
goal_rate=0.471
scorer_weight=0.3768
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0919
assist_rate=0.1014
provider_weight=0.1002
-
Jorge de FrutosF7500.130.2240%21.36.861.532XGBoost F_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 1.0009, quality 0.533)market_value_eur=10900000
quality_factor=0.533
boost_factor=1.0009
reference_quality=0.505
history_matches=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': 'Andrés García', 'matchup_zone': 'RW vs CB', 'duel_win_rate': 0.384, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9471, 'skill_edge': 0.004, 'height_edge': -0.04, 'attacker_skill': 0.533, 'defender_skill': 0.524, 'attacker_role': 'RW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Andrés García', 'market_value': 7600000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.524}], 'xg_override': 0.1441}
totalShots: 1.3582 -> 1.2864
shotOffTarget: 0.7923 -> 0.7504
onTargetScoringAttempt: 0.5659 -> 0.536
expectedGoalsOnTarget: 0.2431 -> 0.2302
bigChanceMissed: 0.1557 -> 0.1475
goals: 0.1532 -> 0.1451
expectedGoals: 0.1521 -> 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.05 (squad xG sum 1.1585, xG scale 0.9063, xA scale 1.0070, team xA 0.68 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.05
squad_xg_sum=1.1585
squad_xa_sum=0.6777
team_expected_assists=0.6825
team_xa_to_xg_ratio=0.65
expected_goals: 0.1441 -> 0.1306
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 81.0)match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1224
goal_rate=0.1451
scorer_weight=0.1313
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0596
assist_rate=0.093
provider_weight=0.0769
-
Unai LópezM8000.050.02132%10.57.150.727FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 0.9975, quality 0.437)market_value_eur=2600000
quality_factor=0.4374
boost_factor=0.9975
reference_quality=0.505
history_matches=35
history_shrink=0.125
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0146)blend_weight=0.0146
history_matches=35
season_overlap_discount=1.0
per90_to_match_factor=0.8876
prior_reliability=0.18
competition=La Liga
totalShots: 0.8993 -> 0.891
wonTackle: 1.2143 -> 1.2206
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Mario Martín', 'matchup_zone': 'Central Mid vs Central Mid — Box-to-Box Midfield Contest', 'duel_win_rate': 0.34, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.8822, 'skill_edge': -0.0481, 'height_edge': -0.032, 'attacker_skill': 0.4374, 'defender_skill': 0.5444, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Mario Martín', 'market_value': 10700000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.5444}], 'xg_override': 0.0603}
aerialWon: 0.4412 -> 0.8
totalShots: 0.9 -> 0.794
shotOffTarget: 0.622 -> 0.5487
onTargetScoringAttempt: 0.278 -> 0.2453
expectedGoals: 0.0683 -> 0.0603
goals: 0.0674 -> 0.0595
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.05 (squad xG sum 1.1585, xG scale 0.9063, xA scale 1.0070, team xA 0.68 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.05
squad_xg_sum=1.1585
squad_xa_sum=0.6777
team_expected_assists=0.6825
team_xa_to_xg_ratio=0.65
expected_goals: 0.0603 -> 0.0547
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 76.0)match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0532
goal_rate=0.0595
scorer_weight=0.0543
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1204
assist_rate=0.1025
provider_weight=0.1103
-
Pedro DíazM8100.110.05120%21.26.855.231FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 0.9977, quality 0.437)market_value_eur=2900000
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.0024)blend_weight=0.0024
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=0.8968
prior_reliability=0.0333
competition=La Liga
totalCross: 0.799 -> 0.8143
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': 'Mario Martín', 'matchup_zone': 'Central Mid vs Central Mid — Box-to-Box Midfield Contest', 'duel_win_rate': 0.385, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9487, 'skill_edge': -0.0469, 'height_edge': 0.012, 'attacker_skill': 0.4402, 'defender_skill': 0.5444, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Mario Martín', 'market_value': 10700000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.5444}], 'xg_override': 0.1225}
aerialWon: 0.153 -> 1.1
totalShots: 1.64 -> 1.5559
shotOffTarget: 1.1728 -> 1.1126
onTargetScoringAttempt: 0.4672 -> 0.4432
expectedGoals: 0.1291 -> 0.1225
goals: 0.1258 -> 0.1193
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.05 (squad xG sum 1.1585, xG scale 0.9063, xA scale 1.0070, team xA 0.68 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.05
squad_xg_sum=1.1585
squad_xa_sum=0.6777
team_expected_assists=0.6825
team_xa_to_xg_ratio=0.65
expected_goals: 0.1225 -> 0.111
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 75.0)match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1051
goal_rate=0.1193
scorer_weight=0.1089
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.077
assist_rate=0.0906
provider_weight=0.087
-
Adrià PedrosaD8500.020.0195%10.36.644.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.9973, quality 0.437)market_value_eur=2700000
quality_factor=0.4374
boost_factor=0.9973
reference_quality=0.505
history_matches=32
history_shrink=0.1351
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0041)blend_weight=0.0041
history_matches=32
season_overlap_discount=1.0
per90_to_match_factor=0.9452
prior_reliability=0.0467
competition=La Liga
fouls: 1.4052 -> 1.4105
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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', '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.05 (squad xG sum 1.1585, xG scale 0.9063, xA scale 1.0070, team xA 0.68 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.05
squad_xg_sum=1.1585
squad_xa_sum=0.6777
team_expected_assists=0.6825
team_xa_to_xg_ratio=0.65
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 15 by projected rating, fifa_overall 74.0)match_squad_rank=15
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0239
goal_rate=0.1476
scorer_weight=0.0302
-
integer_assist_projectionTeam scoreline allocation: 1 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.1438
assist_rate=0.1737
provider_weight=0.1701
-
Mujaid SadickD8300.00-n/a00.06.828.07XGBoost 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.9913, quality 0.458)market_value_eur=4700000
quality_factor=0.4585
boost_factor=0.9913
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': 'Martín Satriano', 'matchup_zone': 'Shadow Striker vs CB + Mid Cover — Layered Defense'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.05 (squad xG sum 1.1585, xG scale 0.9063, xA scale 1.0070, team xA 0.68 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.05
squad_xg_sum=1.1585
squad_xa_sum=0.6777
team_expected_assists=0.6825
team_xa_to_xg_ratio=0.65
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 84.0)match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.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.0028
assist_rate=0.0
provider_weight=0.0027
-
Florian LejeuneD9000.070.06ok11.46.960.830FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9979, quality 0.437)market_value_eur=1700000
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.0135)blend_weight=0.0135
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.2
competition=La Liga
interceptionWon: 1.1432 -> 1.1638
wonTackle: 0.9578 -> 0.9719
totalShots: 1.2005 -> 1.2069
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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', '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.05 (squad xG sum 1.1585, xG scale 0.9063, xA scale 1.0070, team xA 0.68 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.05
squad_xg_sum=1.1585
squad_xa_sum=0.6777
team_expected_assists=0.6825
team_xa_to_xg_ratio=0.65
expected_goals: 0.075 -> 0.068
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 79.0)match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0657
goal_rate=0.0653
scorer_weight=0.0627
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0107
assist_rate=0.0129
provider_weight=0.0112
-
Iván BalliuD8300.030.002957%00.06.626.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 0.9959, quality 0.437)market_value_eur=1100000
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.0173)blend_weight=0.0173
history_matches=20
season_overlap_discount=1.0
per90_to_match_factor=0.9274
prior_reliability=0.1333
competition=La Liga
totalShots: 0.3121 -> 0.3067
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
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', '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.05 (squad xG sum 1.1585, xG scale 0.9063, xA scale 1.0070, team xA 0.68 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.05
squad_xg_sum=1.1585
squad_xa_sum=0.6777
team_expected_assists=0.6825
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 74.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.0259
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.0124
assist_rate=0.0
provider_weight=0.01
-
Emil AuderoG9000.00-n/a0.07.028.77XGBoost G_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost G_service raw output over 3 target models--
market_value_boostMarket-value quality scaling (boost 0.9873, quality 0.437)market_value_eur=2700000
quality_factor=0.4374
boost_factor=0.9873
reference_quality=0.505
history_matches=3
history_shrink=0.625
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Martín Satriano, Ramón Terrats', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 0.9511}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.05 (squad xG sum 1.1585, xG scale 0.9063, xA scale 1.0070, team xA 0.68 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.05
squad_xg_sum=1.1585
squad_xa_sum=0.6777
team_expected_assists=0.6825
team_xa_to_xg_ratio=0.65
shots_faced: 9.0 -> 8.8
expected_saves: 2.2 -> 2.16
high_pressure_saves: 0.76 -> 0.74
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.1378
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by 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.7191
-
Pathé Ismaël CissM8900.040.0849%10.56.962.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.9975, quality 0.437)market_value_eur=1600000
quality_factor=0.4374
boost_factor=0.9975
reference_quality=0.505
history_matches=36
history_shrink=0.122
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Mario Martín, Nemanja Gudelj, Ramón Terrats', 'matchup_zone': 'Central Mid vs Mid + CDM Pressing Trap'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.05 (squad xG sum 1.1585, xG scale 0.9063, xA scale 1.0070, team xA 0.68 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.05
squad_xg_sum=1.1585
squad_xa_sum=0.6777
team_expected_assists=0.6825
team_xa_to_xg_ratio=0.65
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 82.0)match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0423
goal_rate=0.0515
scorer_weight=0.0449
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.033
assist_rate=0.0458
provider_weight=0.0386
-
Team totals11.05146.8
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Augusto BatallaG4.5m13.4%Market-value substitute prior
Andrei RațiuD14.4m23.4%Market-value substitute prior
Abdul MuminD13.6m29.9%Market-value substitute prior
Isi PalazónM22.0m49.9%Market-value substitute prior
Óscar ValentínM29.7m43.5%Market-value substitute prior
AlemãoF25.4m56.2%Market-value substitute prior
Antagonist / tactical summary
Midfield is evenly contested — Mario Martín vs Pedro Díaz will be the pivotal duel. Total antagonist xG — Home: 0.67, Away: 0.86. Home danger zone: Shadow Striker vs CB + Mid Cover — Layered Defense. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Midfield — possession 50.2% / 49.8%, dominance ratio 0.53, key duel: Mario Martín vs Pedro Díaz
Martín Satriano xG 0.22Francho Serrano xG 0.07Ramón Terrats xG 0.19Unai López xG 0.06Pedro Díaz xG 0.12Álvaro García xG 0.21

Summary

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


Generated 2026-10-18 13:37:42 UTC · Soccer prediction reporting