01 · Data to report

PIRlo: from player data to a report people can read.

A large youth and professional soccer database became the source for readable player reports through a deliberately separated flow: deterministic checks and prepared findings first, narrative generation and review second.

Public PIRlo professional report showing a narrative summary and player profile
A professional report from the public PIRlo showcase.

Problem

Player reports had to make a lot of structured information useful to a player, family or coach. The system needed to turn computed findings into a clear narrative while keeping the source of each important claim visible.

The hard part was not asking a model to write. It was deciding what the model was allowed to see, what had already been checked, and what should stop for a person’s review.

Approach

First, deterministic filters prepare the facts. A separate narrative step turns those findings into prose for a player, family or coach. A second model reviews claims, and a human route catches anything that needs another look.

  1. Source dataLineage
  2. Validate + prepareDeterministic checks
  3. Narrative generationReader voice
  4. Claim reviewSeparate model
  5. Refine + renderHuman route
The system keeps source data, prepared findings and writing decisions in view as the report takes shape.

What changed

The workflow generated and stored more than 2,000 youth reports and several hundred professional reports, with reports rendered on demand.

Repeated review tuned the writing for a clearer read. The prose moved from carrying around twenty numbers to carrying roughly four to six, while the surrounding charts held the detail. Automated numeric checks remained separate from a second model’s claim review, and failures had a route to a person.