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.
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.
- Source dataLineage
- Validate + prepareDeterministic checks
- Narrative generationReader voice
- Claim reviewSeparate model
- Refine + renderHuman route
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.