Skip to content

Scouting

Scouting registers external players observed by the club (opponents, transfer targets, free agents). Imports the same Wyscout / SIX PDFs as Performance, but without filtering to the club’s own squad: any player in the report is stored as external_player with an axis radar, shortlist, status (signed / follow / contact / discarded), and notes.

  • Problem it solves: the sporting area sees PDFs of opponent matches or foreign leagues and needs to register a specific player without building another separate database. CÉNIT stores them in the same DB as the own squad, with a comparable radar profile.
  • Typical use cases:
    • Transfer market: load 5 PDFs of target players and compare profiles.
    • Opponents: register the opposing team’s #10 with their technical profile to cross-reference with tactical analysis.
    • Shortlist: flag 8–10 priority players, each with scouting status and free-form note.
  • Plans that include it: all plans. AI parser available in all of them (same backend as Performance).
  • Differentiator: reuse of the match PDF parser — no competitor parses Wyscout/SIX reports directly for scouting, with merging of multiple observations of the same player.

Module access: Head of Performance, Sporting Director, and Return-to-play primarily. The opponent catalog is shared with Performance.

Module tabs:

  1. List — grid of external players with photo, team, position, age, status, shortlist toggle.
  2. Import opponent PDF — upload Wyscout/SIX report and let the scout pick which players to save from the extracted grid.
  3. Comparison — axis radar to cross-reference an external player vs. an own player.

Main flow — import and save externals:

  1. The system runs the same parser as Performance, but without the own-squad filter.
  2. The grid shows all players in the PDF.
  3. The scout edits name / team / position / age per player and marks which to save.
  4. The system runs the merge:
    • Match by normalized name (no accents, no extra spaces, etc.).
    • If it exists: the axes are averaged weighted by the number of previous matches, the counter is incremented, and the last-report date is updated. Team, position, and age are updated only if values are provided.
    • If it does not exist: new entry with one match in the counter.

Secondary flows:

  • Toggle shortlist from the grid: marking it also sets status to “follow”.
  • Change status: signed / follow / contact / discarded.
  • Edit free-form note.
  • Shares the competition and opponent catalog with Performance (no duplication).
  • “I loaded the same player twice and the axes changed” — expected. The system averages weighted by match count, so each additional match smooths the profile.
  • “A strange-name player appeared” — the parser doesn’t filter by own squad. Edit the name in the grid before saving.
  • “The external’s radar is at 0” — the PDF didn’t have enough minutes or the parser failed to extract stats. Retry with another report of the same player to accumulate.

Player surface: N/A. Scouting is an internal staff module. External players never access the system.

  • Axes per external player: weighted average by the number of imported matches.
  • Implicit status: marking the shortlist also sets status to “follow”. Other transitions (signed, contact, discarded) are free.
  • Wyscout / SIX PDF — same parser as Performance. In Scouting it is invoked without own-squad filtering to extract every player in the report.
  • Manual creation: today there is no UI to manually create externals without a PDF.
  • Performance — shares the parser, the competition and opponent catalogs, and axis normalization.
  • Squad — the system computes the own-squad radar by averaging each player’s axes for the comparison view.
  • No integration with scouting APIs (Wyscout API, Transfermarkt API): everything enters via PDF.
  • No manual external creation: requires uploading a PDF, even with a single player.