If you want to stand out as a football data analyst, building your own player rating system is one of the best portfolio projects you can do.
One of the most common questions I get from aspiring analysts is: "How do I build my own player rating system?" It's a great question because it sits at the intersection of data skills, football understanding, and practical output — exactly the kind of project that belongs in a portfolio.
I've written about player rating methodology before, and my own approach has evolved significantly over time. But here's a starting point for anyone looking to have a go at it themselves.
Start with the question, not the data
Before you write a single line of code, decide what your rating is actually measuring. "How good is this player?" is too vague. You need specificity.
Are you rating centre-backs on their defensive contribution? Wingers on their creative output? Number 10s on their involvement in the final third? The question shapes the metrics you select, the weights you assign, and ultimately whether your output is useful or just noise.
A rating system without a clear purpose is just a number. And numbers without context are dangerous in recruitment.
Where to find the data
You don't need a StatsBomb subscription to get started. FBref provides a solid foundation of per-90 statistics across Europe's major leagues. You can scrape it with Python using libraries like requests and BeautifulSoup, or simply download CSV exports manually.
The kind of metrics worth looking at for outfield players include passing accuracy and volume, progressive carries and passes, defensive actions per 90, expected goal contributions, and touch-related data where available.
Normalisation and context
Raw numbers are meaningless without context. A centre-back making 5 tackles per 90 in the Championship is operating in a completely different environment to one doing the same in La Liga.
One approach is to normalise metrics using percentile ranks within the same league and position group. This puts every player on a 0-100 scale for each metric relative to their peers. From there, you can assign weights based on what matters most for the role you're evaluating.
For example, a ball-playing centre-back rating might weight progressive passing heavily, with aerial duels, defensive actions, and passing accuracy making up the rest.
Making it visual
Once you have normalised, weighted metrics, creating a composite score is relatively simple arithmetic. pandas handles the data manipulation well, and libraries like matplotlib or mplsoccer are great for the visual output.
A clean radar chart or bar chart showing how a player compares to the positional average goes a long way in a scouting report or portfolio piece.
The important caveat
No rating system replaces watching the player. Data tells you what happened. Video tells you how and why. The best analysts I've seen use ratings as a filtering tool — narrowing thousands of players down to dozens — and then apply their football knowledge to the shortlist.
Build the tool. Use the tool. But never let the tool do your thinking for you. And keep iterating — my own approach to this has changed significantly since I first wrote about it, and yours should too.