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.
| Player | Pos | Min | Proj G | Proj xG | Season xG/g | | Proj Sh | Season Sh/g | Proj Rtg | Season Rtg | Rec | Model / FBref Prior |
|---|
| Antonín Kinský | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 7.0 | 29.0 | 30 | FBref Prior G_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost G_service raw output over 3 target models | - | - | market_value_boost | Market-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_blend | FBref 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_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model 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_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player 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_attached | Display-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_projection | Team scoreline allocation: 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_projection | Team scoreline allocation: 1 projected assists distributed by 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 Solanke | F | 78 | 1 | 0.48 | 0.14 | 245% | 2 | 1.1 | 6.7 | 51.4 | 25 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-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_blend | FBref 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_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model 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_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player 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_attached | Display-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_projection | Team 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_projection | Team scoreline allocation: 1 projected assists distributed by 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ávio | F | 82 | 0 | 0.20 | 0.09 | 113% | 3 | 0.9 | 7.0 | 39.1 | 30 | XGBoost F_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-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_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model 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_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player 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_attached | Display-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_projection | Team scoreline allocation: 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_projection | Team scoreline allocation: 1 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 Gallagher | M | 78 | 0 | 0.13 | 0.08 | 65% | 1 | 0.6 | 6.8 | 50.2 | 28 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-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_blend | FBref 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_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model 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_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player 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_attached | Display-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_projection | Team scoreline allocation: 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_projection | Team scoreline allocation: 1 projected assists distributed by 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 Kudus | F | 72 | 0 | 0.17 | 0.05 | 280% | 1 | 0.6 | 6.8 | 36.9 | 22 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-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_blend | FBref 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_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model 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_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player 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_attached | Display-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_projection | Team scoreline allocation: 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_projection | Team scoreline allocation: 1 projected assists distributed by 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 Tonali | M | 85 | 0 | 0.11 | 0.06 | 89% | 1 | 1.2 | 7.2 | 56.9 | 27 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-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_blend | FBref 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_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model 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_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player 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_attached | Display-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_projection | Team scoreline allocation: 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_projection | Team scoreline allocation: 1 projected assists distributed by 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 Bergvall | M | 65 | 0 | 0.11 | 0.03 | 320% | 1 | 0.3 | 6.8 | 35.2 | 22 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-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_blend | FBref 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_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model 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_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player 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_attached | Display-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_projection | Team scoreline allocation: 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_projection | Team scoreline allocation: 1 projected assists distributed by 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 Udogie | D | 79 | 0 | 0.01 | 0.00 | 145% | 0 | 0.1 | 6.6 | 43.9 | 21 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-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_blend | FBref 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_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model 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_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player 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_attached | Display-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_projection | Team scoreline allocation: 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_projection | Team scoreline allocation: 1 projected assists distributed by 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 Ven | D | 88 | 0 | 0.10 | 0.05 | 105% | 1 | 0.3 | 6.8 | 55.2 | 28 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-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_blend | FBref 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_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model 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_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player 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_attached | Display-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_projection | Team scoreline allocation: 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_projection | Team scoreline allocation: 1 projected assists distributed by 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 Hecke | D | 90 | 0 | 0.18 | 0.08 | 141% | 1 | 0.6 | 7.1 | 59.5 | 29 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-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_blend | FBref 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_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model 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_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player 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_attached | Display-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_projection | Team scoreline allocation: 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_projection | Team scoreline allocation: 1 projected assists distributed by 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 Gray | M | 82 | 0 | 0.08 | 0.04 | 103% | 1 | 0.4 | 6.8 | 46.9 | 35 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-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_blend | FBref 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_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Caleb Yirenkyi', 'matchup_zone': 'Midfield lane'} | - | scoreline_reset | Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection | scoreline_reset=true
team_goals=1 | - | team_lambda_rescale | Player 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_attached | Display-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_projection | Team scoreline allocation: 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_projection | Team scoreline allocation: 1 projected assists distributed by 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 totals | 1 | 1.74 | | 14 | | 6.9 | | |
| Player | Pos | Min | Proj G | Proj xG | Season xG/g | | Proj Sh | Season Sh/g | Proj Rtg | Season Rtg | Rec | Model / FBref Prior |
|---|
| Taiwo Awoniyi | F | 72 | 0 | 0.17 | 0.17 | ok | 2 | 0.6 | 6.7 | 35.9 | 26 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-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_blend | FBref 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_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model 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_reset | Team 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_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player 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_attached | Display-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_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.154
goal_rate=0.1989
scorer_weight=0.1593 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0507
assist_rate=0.0
provider_weight=0.0416 | - |
|
| Ephron Mason-Clark | F | 65 | 0 | 0.14 | 0.03 | 409% | 1 | 0.2 | 6.7 | 21.2 | 18 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-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_blend | FBref 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_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model 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_reset | Team 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_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player 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_attached | Display-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_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.1343
goal_rate=0.1608
scorer_weight=0.1308 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0433
assist_rate=0.0
provider_weight=0.0354 | - |
|
| Matt Grimes | M | 87 | 0 | 0.03 | 0.01 | 150% | 0 | 0.4 | 6.8 | 37.2 | 11 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-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_blend | FBref 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_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model 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_reset | Team 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_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player 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_attached | Display-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_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0254
goal_rate=0.0432
scorer_weight=0.029 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0635
assist_rate=0.0688
provider_weight=0.0637 | - |
|
| Caleb Yirenkyi | M | 80 | 0 | 0.04 | 0.00 | 1090% | 1 | 0.1 | 6.7 | 35.6 | 11 | FBref Prior M_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost M_service raw output over 8 target models | - | - | market_value_boost | Market-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_blend | FBref 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_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model 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_reset | Team 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_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player 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_attached | Display-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_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0365
goal_rate=0.0518
scorer_weight=0.039 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0416
assist_rate=0.0578
provider_weight=0.0473 | - |
|
| Brandon Thomas-Asante | F | 83 | 0 | 0.08 | 0.03 | 205% | 1 | 0.5 | 6.7 | 35.5 | 13 | FBref Prior F_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost F_service raw output over 7 target models | - | - | market_value_boost | Market-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_blend | FBref 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_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model 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_reset | Team 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_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player 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_attached | Display-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_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0798
goal_rate=0.1173
scorer_weight=0.0896 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0288
assist_rate=0.385
provider_weight=0.0365 | - |
|
| Jay DaSilva | D | 89 | 0 | 0.07 | 0.06 | ok | 1 | 0.4 | 6.8 | 44.4 | 14 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-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_blend | FBref 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_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model 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_reset | Team 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_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player 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_attached | Display-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_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0678
goal_rate=0.1976
scorer_weight=0.0877 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0803
assist_rate=0.2325
provider_weight=0.1046 | - |
|
| Bobby Thomas | D | 89 | 0 | 0.06 | 0.04 | 44% | 1 | 0.9 | 6.8 | 40.5 | 11 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-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_blend | FBref 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_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model 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_reset | Team 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_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player 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_attached | Display-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_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0619
goal_rate=0.0
scorer_weight=0.0511 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0432
assist_rate=0.0
provider_weight=0.0354 | - |
|
| Ethan Pinnock | D | 87 | 0 | 0.01 | 0.00 | 210% | 0 | 0.1 | 6.7 | 13.1 | 31 | XGBoost D_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-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_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model 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_reset | Team 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_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player 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_attached | Display-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_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0133
goal_rate=0.0
scorer_weight=0.0107 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0057
assist_rate=0.0
provider_weight=0.0051 | - |
|
| Stephen Mfuni | D | 90 | 0 | 0.09 | 0.02 | 363% | 1 | 0.2 | 6.6 | 13.9 | 11 | XGBoost D_service |
Step-by-step (9 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-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_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model output after duel-context enrichment (pre router post-processing) | duel_context_applied=true
duel_context={'opponent_faced': 'Dominic Solanke', 'matchup_zone': 'Shape fallback'} | - | scoreline_reset | Team 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_projection | scoreline_reset=true
team_goals=0 | goals: 1.0 -> 0 | team_lambda_rescale | Player 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_attached | Display-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_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0836
goal_rate=0.5327
scorer_weight=0.1091 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0036
assist_rate=0.0
provider_weight=0.0033 | - |
|
| Milan van Ewijk | D | 90 | 0 | 0.00 | - | n/a | 0 | 0.0 | 6.7 | 36.3 | 13 | FBref Prior D_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost D_service raw output over 7 target models | - | - | market_value_boost | Market-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_blend | FBref 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_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model 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_reset | Team 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_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player 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_attached | Display-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_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0
goal_rate=0.0
scorer_weight=0.001 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0515
assist_rate=0.0
provider_weight=0.0423 | - |
|
| Carl Rushworth | G | 90 | 0 | 0.00 | - | n/a | | 0.0 | 7.1 | 36.6 | 11 | FBref Prior G_service |
Step-by-step (10 steps)| Step | Description | Key params | Changes |
|---|
xgboost_raw | XGBoost G_service raw output over 3 target models | - | - | market_value_boost | Market-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_blend | FBref 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_cap | Stats clamped to historical constraints and shot-component identity | stats_clamped=0
shot_identity_applied=false | - | enriched_model_output | Model 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_reset | Team 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_projection | scoreline_reset=true
team_goals=0 | - | team_lambda_rescale | Player 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_attached | Display-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_projection | Team scoreline allocation skipped: 0 projected goals | team_goals=0
allocation_applied=false
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=0.8589 | - | integer_assist_projection | Team scoreline allocation skipped: 0 projected assists | allocation_applied=false
team_assists=0
assists_allocated=0
assist_probability=0.0
provider_weight=0.0
squad_weight_total=0.5255 | - |
|
| Team totals | 0 | 0.82 | | 11 | | 6.8 | | |
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.