Skip to content

01Platform

Scouting Platform

CF União de Lamas

The scouting department runs on this. It replaced a spreadsheet with a database that holds players, match observations, an evaluation model and the recruitment decisions that follow from them — so a judgement made in October can still be read, and argued with, in March.

Role
Methodology, design and development
Stack
React · Express · MongoDB
Access
Three roles — editor, viewer, coaching staff
Database
96 players since September 2026
Platform home screen with KPIs, shadow team, targets and upcoming fixtures
Home — KPIs, shadow team, targets to sign and the week ahead.Screens show the platform's demo dataset, not the club's database.

01The problem

A department produces information and loses memory

Scouting generates a lot of material and keeps very little of it. Notes live in a notebook, a shortlist in a spreadsheet, the reasoning in the head of whoever watched the match. The information survives the week it was produced and not much longer.

Six months later the questions that matter are the hard ones. Why was this player dropped? Who else did we watch in that position? Was the decision based on one match or five, and against what kind of opposition? Without a record, recruitment falls back on the most recent impression.

The platform was built to close that gap. Not to make scouting faster — to make it accountable.

02Approach

Three decisions the rest follows from

01

One evaluation model, applied every time

Every observation is scored on the same position-specific attribute grid, so two players in the same role are measured on the same terms. The grid feeds four dimensions, the dimensions feed a weighted rating, and the rating a player carries is the mean of all his observations. No number is loose.

02

The verdict is the unit of work

A player carries a verdict — sign, keep watching, needs another observation, not progressing — alongside a read on current level, ceiling and profile, and the league level he is projected to reach immediately, in the medium term and in the long term. The database is a snapshot of where every decision stands.

03

Built around a scouting week

Schedule, watch, record, review. The schedule shows the fixtures worth attending, the observation is filled in the same evening, and the recruitment screens read from it. A tool that does not get used on a Sunday night is not a tool.

Player database with filters and a sortable table of observed players
Database — every observed player, with verdict, current level, ceiling, profile and projected league level, filterable by each of them.

03Modules

Seven modules

Each one exists because the work needed it, not to fill a menu.

01

Database

Players, filters and search; a profile with bio, classification and the full observation history.

02

Observations

Match records evaluated on a position-specific attribute grid. A player's rating is the mean of his observations.

03

Recruitment

Shadow team, per-position lists and player comparison, with a printable market report.

04

Planning

Squad and structure by position, for the current season and the next.

05

Schedule and competitions

Weekly plan, matches watched, fixtures and standings.

06

Leagues, clubs and contacts

A catalogue of the leagues and clubs being followed, and the agent contacts behind them.

07

Home

KPIs and coverage by position — the first screen of the week.

Recruitment screen showing a shadow team laid out on a pitch
Recruitment — the shadow team by position, with per-position lists and comparison behind the tabs.

04Evaluation

How a rating is built

Every observation is scored on an attribute grid specific to the position. The attributes group into four dimensions — technical, tactical, physical and mental — which are weighted into a single rating on a 1 to 5 league-level scale. The question it answers is not how good the player looked, but what level he could play at.

A player's rating is the mean of his observations, so it moves as evidence accumulates instead of being fixed by the first match he was seen in.

Dimensions

  • Technical
  • Tactical
  • Physical
  • Mental

The scale is anchored to pressure

What separates a 7 from a 4 is not how good the action looked, but the pressure it was executed under. The same 1–10 scale runs through the whole grid.

9 – 10
Executes well under heavy pressure
7 – 8
Executes under some pressure
5 – 6
Executes without pressure
3 – 4
Fails under pressure
1 – 2
Fails even without pressure
Observation record showing the position attribute grid and four dimension scores
Observation — the attribute grid for the position, the four dimensions it feeds, and the notes that go with them.

05My contribution

What is mine in this

The methodology, the product decisions and the code. I wrote it alone, while working as the club's scout — which is why it fits a scouting week rather than a specification.

  • Methodology

    The attribute grid for each position, the four dimensions and their weights, and the pressure-anchored scale behind every score.

  • Product

    The information architecture: what a scout sees first, what a verdict commits you to, what has to come out on paper.

  • Engineering

    React and Vite on the front, Express and Mongoose over MongoDB on the back, session authentication with three roles.

  • Operation

    Used daily in a working department. Every change came from something that did not hold up on a Sunday night.

Weekly schedule of fixtures with watched and unwatched matches
Schedule — the week's fixtures, what was watched and what is still to watch.

06For a department

What this gives a scouting department

A shared language

Any scout joining the department grades the same attributes on the same scale. Reports become comparable instead of personal.

Coverage you can see

The home screen shows coverage by position, so a position nobody has watched reads as a gap rather than as silence.

Decisions that survive the season

Every verdict sits on a visible chain — attributes, dimensions, rating, observation history. A decision can be revisited without re-watching the player.

Printable where it has to be

Shortlists and market reports export to PDF, because a meeting still runs on paper.

Not tied to one club

The club name, the squad structure and the attribute grid are configuration, not code.

Honest limits

What it is not

A working tool used daily in one club, published so the approach can be read — not software ready to be installed somewhere else. Worth being explicit:

  • One club, one dataset. A single database and a single club, with no separation between clubs or between users' data.
  • Local only. It runs on localhost over plain HTTP — no hosting, no HTTPS, and backups are a manual script.
  • Built around one workflow. Positions, the four dimensions and the 1–5 scale are fixed in code; the attribute grid inside them is configurable.
  • Portuguese interface, with no translation layer.
  • One user means untested paths. Any bug someone else hits will be a new one.

Next

Football Data Platform

Statistical profiling