FSFootyScout
PlayersTeam IntelligenceScoutingLeaderboardCompareArchetypesModel

FootyScout · Football scouting and analytics

Based on available StatsBomb 2023/24 Bundesliga event data.

Passing methodology

Expected Pass model

FootyScout predicts the probability that a pass will be completed using information available about the pass before its outcome.

Expected Goals model →Attacking Impact model →

Selected model

Xgboost

lower validation log loss by 0.008164 versus pytorch_mlp

Training passes
39,214
Grouped OOF folds
5

Architecture

  1. 01XGBClassifier (315 boosting rounds)
  2. 02max_depth=4
  3. 03learning_rate=0.05
  4. 04objective=binary:logistic · tree_method=hist

Pre-outcome features

Identifiers, player/team names, pass outcomes, recipients, and future events are excluded from model inputs.

Pitch position

start_xstart_yend_xend_ystart_zoneend_zonedistance_to_goal_beforedistance_to_goal_afterdistance_toward_goal

Pass geometry

pass_lengthpass_angleforward_distancelateral_distance

Pressure / context

under_pressureprogressive

Pass characteristics

pass_heightbody_partpass_type

Evaluation performance

OOF probabilities drive player analytics and are highlighted below. The untouched test split was evaluated only after validation selected the model.

Validation · selected form

ROC-AUC
0.9210
Log loss
0.2615
Brier score
0.0810
Accuracy
0.8840
ECE (10-bin)
0.0102

Untouched test

ROC-AUC
0.9158
Log loss
0.2354
Brier score
0.0691
Accuracy
0.9065
ECE (10-bin)
0.0073

Grouped out-of-fold

ROC-AUC
0.9221
Log loss
0.2338
Brier score
0.0706
Accuracy
0.9023
ECE (10-bin)
0.0041

Calibration

Temperature scaling was fit on the validation split only. It was not retained: not retained because validation log loss, Brier score, and ECE did not jointly satisfy the conservative improvement rule

Temperature
0.9849
Fit split
validation only

Calibration can improve probability quality without improving ranking; FootyScout does not claim it improves every held-out metric.

Evaluation sequence

  1. 1. Match-grouped split. grouped by match_id; whole matches; approximately 80/10/10
  2. 2. Validation selection. Model selection was performed using validation data.
  3. 3. Untouched test. The test data was not used for model selection.
  4. 4. Grouped OOF predictions. Player profiles use grouped out-of-fold predictions.
  5. 5. Production fit. The production full-data model is for future inference and is not used for evaluation claims.

Player Intelligence

Player-style similarity

FootyScout compares eligible outfield players within the same broad position using six style-only passing and carrying tendencies. Each feature is converted to a population z-score within DEF, MID, or FWD, then profiles are ranked by root-mean-square Euclidean distance. The 0–100 index is cohort-calibrated: 100 is identical and 50 is approximately the median same-position pair distance.

Sample support

Support uses the lower observed-match count of the two players. Pairs below three matches are marked limited. Coverage is uneven, so low-sample neighbor ranks may move as more matches are observed; support never changes the score.

What it is not

Similarity describes observed playing style. It is not player quality, future performance, probability of success, tactical fit, or transfer success. Performance metrics, outcomes, team identity, and archetype labels are excluded.

Team Intelligence

Team Intelligence and Role Fit

Team style and positional roles. Team style describes Leverkusen's 34 observed Bundesliga matches. DEF, MID and FWD roles pool the observed events and actions of players assigned to each frozen broad position.

Role Fit. Eligible players and roles share the same six-feature, position-relative playing-style coordinate system. Root-mean-square distance measures observed style resemblance; lower is closer.

Current players. A Leverkusen player is compared with a leave-self-out role so their own actions do not contribute to the target profile.

Scouting Recommendations. External same-position players are ranked only by Role Fit. This is not transfer-success probability, a player-quality score, causal tactical compatibility, or a forecast.

ROC-AUC

How well the model ranks completed passes above incomplete ones across thresholds; higher is better.

Log loss

Scores probability confidence and heavily penalizes confident mistakes; lower is better.

Brier score

Mean squared error of predicted probabilities; lower is better.

ECE

The gap between predicted probability and observed completion across probability bins; lower suggests better calibration.

Validation model selection

Validation model comparison

ModelROC-AUCLog lossBrierECE
Logistic Regression0.88760.31180.09890.0326
PyTorch MLP0.91590.26970.08500.0109
XGBoost · Selected0.92100.26150.08100.0102

Untouched-test model comparison

ModelROC-AUCLog lossBrierECE
Logistic Regression0.87860.27780.08240.0067
PyTorch MLP0.90180.25460.07480.0181
XGBoost · Selected0.91580.23540.06910.0073

Primary: Validation Log Loss · tie-breaker: Validation Brier Score · supporting: Validation ROC-AUC. Test metrics used for selection: no.

XGBoost feature importance

Gain-based model feature importance; this is not a causal claim.

pass_height_Ground Pass34.1%
progressive26.4%
pass_type_Throw-in5.4%
distance_to_goal_after3.5%
pass_length3.2%
distance_toward_goal3.1%
pass_height_High Pass1.6%
forward_distance1.5%
under_pressure1.5%
end_y1.3%