Scout X is a high-performance tactical scouting tool covering every outfield player in Europe's Big Five leagues — Premier League, La Liga, Bundesliga, Serie A, and Ligue 1. By merging advanced metrics from multiple data providers with custom tactical algorithms, Scout X bridges the gap between raw data and actionable scouting insights.
Most scouting tools rely on "black-box" ratings or raw volume. Scout X uses a transparent, dual-signal approach to evaluate players:
- Quality (Q): How effective is the player at the specific tasks a role demands?
- Style Fit (S): Does the player's statistical "shape" (spikes and troughs) match the role archetype?
By blending these two signals, Scout X prevents "elite-player carpet-bombing"—where world-class, highly versatile players dominate every leaderboard regardless of the role being searched for. Instead, it prioritizes players whose profiles genuinely align with the specific tactical requirements and responsibilities of the role.
Scout X is built on transparent mathematical foundations. Every grade can be traced back to the following logic:
- Minutes Floor: Only players with ≥ 900 minutes are included to ensure statistical significance.
- Positional Peers: Percentile ranks are calculated strictly within position groups ( Defenders, Midfielders, Forwards).
-
Percentile Calculation:
$$P = \text{rank}(v) / N \times 100$$ *For inverted stats (e.g., Dispossessed),$$P=(1−rank(v)/N)×100$$ .
To neutralize the structural bias of high-pressing leagues (like the Bundesliga) vs. possession-heavy ones (like La Liga), Scout X can apply a mean-normalization to defensive volume stats:
Roles are defined by stat weights on a 0–5 scale. Only sliders above 2.5 ("Neutral") contribute to the grade.
-
Importance:
$I = \text{clip}((w - 2.5) / 2.5, 0, 1)$ -
Category Fit:
$\text{CatFit} = \frac{\sum (P \times I)}{\sum I}$ -
Category Influence (Pull):
$\text{CatPull} = \text{mean}(I)$ -
Quality Grade:
$Q = \frac{\sum (\text{CatFit} \times \text{CatPull})}{\sum \text{CatPull}}$
To understand the relationship between a player and a role, Scout X uses two primary category-level metrics:
- CatScores (Absolute Strength): The raw average of a player's percentile ranks within a category (e.g., "Passing"). This represents how good the player is at that category in general. It is the data source for the Attribute Radar.
-
CatPull (Tactical Importance): The average "Importance"
$(I)$ of all stats in a category for a specific role. It defines how much a category "pulls" the final grade. For example, a Regista has a high CatPull for Passing but a low CatPull for Shooting.
Style Fit measures the correlation between the player's category profile and the role's emphasis profile, independent of quality level.
-
Centered Shapes:
$PlayerShape = \text{CatScores} - \text{mean}(\text{CatScores})$ $RoleShape = \text{CatPull} - \text{mean}(\text{CatPull})$ -
Cosine Similarity:
$S = \frac{\cos(PlayerShape, RoleShape) + 1}{2} \times 100$
The final rating shown in the UI (and represented by FM-style stars) is an equal-weighted average:
Similar players are found using a category-equalized Manhattan distance:
- Scouting Report: Deep-dive into a single player's fit for any role, with cohort filtering (U21, same-league, etc.).
- Role Ranking: Europe-wide leaderboards for 22+ tactical archetypes (Regista, Mezzala, Inverted Wing-Back, etc.).
- Stat Leaderboards: Pure volume and efficiency rankings for every metric in the catalog.
- Player Comparison: Side-by-side visualization of two players' styles and quality.
- Shortlist Analyser: Batch-process a custom list of targets to see which role they fit best.
- Export CSV: Instant client-side export for visible tables or manual selections across all pages.
- Selection System: Multi-select players across different position groups and save them to a global export list.
- Responsive UI: Sticky navigation, mobile-first design, and high-performance radar charts.
- Dynamic Data: The app reloads its 1,400+ player dataset automatically if the source CSV is updated.
- Framework: Streamlit (Python)
- Data Science: Pandas, NumPy, SciPy
- Visualization: Plotly, Custom HTML/CSS
- Data Sources: FBref, Sofascore, Understat
.
├── scouting_app.py # Core application logic & UI
├── player_scouting_data_2026.csv # Master merged dataset
├── requirements.txt # Dependencies
└── README.md # Documentation
git clone https://github.com/your-repo/scout-x.git
cd scout-xpython -m venv .venv
.\.venv\Scripts\Activate.ps1python -m venv .venv
.venv\Scripts\activate.batpython -m venv .venv
source .venv/bin/activatepip install -r requirements.txtstreamlit run scouting_app.pyhttp://localhost:8501
live demo : https://scoutx.streamlit.app/
- Universal CSV Export & Selection
- Premium "Scout X" Branding & Navigation
- Advanced Team-Possession Normalization
- Goalkeeper-specific Model & Dashboard
- Historical Time-Series Tracking
This project is made possible by the incredible data infrastructure provided by FBref, Sofascore, and Understat. Statistical scraping and processing are powered by soccerdata and ScraperFC. Tactical role archetypes are inspired by the Football Manager taxonomy.
