KPI Lab · Tool in design · Prototype
A tool I have been designing and building: it hears one line shouted from the touchline and cuts the moment that just passed from two angles — the tactical view and the manager's own — saving it with a tactical tag. Nothing is operated during the match. Four claps is the whole procedure. This is a record of that design process, and of the one thing I have actually proved so far.
Stated up front
This tool has never processed a single real match. All six pipeline stages are built, and exactly one of them has been verified. Below, each stage is marked for what is proved and what is still a claim. This is not a product page. It is a design note.
Most of what a manager says during a match is about something that just happened. "Why didn't you close there." "You should have switched then." "Next time go a beat later." These sentences only mean anything to someone who is watching that exact moment.
And when the match ends, what remains is one ninety-minute video and a few lines of notes written from memory. The analyst takes those notes and searches through ninety minutes again. What the manager actually saw is already gone.
So I inverted it. Nothing is done during the match. Three sources simply run for the full ninety minutes, and everything else happens after the final whistle.
Here a problem appears. The three devices keep different time. Each crystal oscillator runs at a fractionally different frequency, so even if you start all three at kick-off, they drift apart as the match goes on.
Why that is fatal: the error grows the further into the match you go. Align only the start and your first-half clips land while your second-half clips slide off. And the second half is exactly when the instructions come thickest.
One clap versus four
Vertical = drift from the reference clock (audio) · horizontal = elapsed time
What this design asks of the user
All it asks of the manager is four claps: first-half kick-off, half-time whistle, second-half kick-off, full time. No equipment to touch, no sequence to memorise. The number was chosen by asking whether the procedure would actually survive a real touchline.
After the match you hand it three files and the tool does the rest. Each stage is marked with its current verification status.
The six stages · verification status
■ verified □ built but unverified
The way to verify stage one is this: build a problem whose answer you already know, then show the pipeline recovers it.
I generated three synthetic recordings. Into one I deliberately injected exactly 3.4 s of offset and 1,200 ppm of drift. Then I checked whether the pipeline could find those values again.
Injected error and recovered value
Synthetic data · 4-minute sample · four claps
That was the original design. Looking again, one thing bothered me. Even processing after the match, the amount to process is still the full ninety minutes. To find what the manager said you must push ninety minutes of audio through transcription, and on a laptop that takes a while.
So I changed the order. On the touchline it only marks "here". Everything heavy is deferred.
Separating marking from processing
During the match, no network and no processing
This has to be split precisely. The answer depends on where the mark can be written.
| Mark in all three streams | Mark in the audio only | |
|---|---|---|
| Requires | Three devices driven by one app, or cameras that accept markers while recording | Off-the-shelf glasses and cameras that take no external signal |
| Clock problem | Gone. Each device wrote the same instant in its own clock, so no conversion is needed | Remains. Audio time must still be mapped onto video time — which is what the four claps were for |
| Drift exposure | None | Only inside the clip window (~20 s) → far smaller than across 90 min |
| Everything else | Identical in both cases — nothing processed on site · no network · far less to transcribe | |
So the substance of this change is not the clock. It is making it unnecessary to process anything on site; the clock problem dissolving is a bonus that arrives when the hardware allows. The synchronisation work in the previous section is not discarded — it remains the bridge for the case where the mark can only go into the audio.
The first shoot just got easier
A side effect of this change. In a real field test, the only thing that must succeed on the day is the marking. Everything else can be re-run later, as many times as needed. That is a much smaller surface for the first attempt to break on.
The first idea was "record when the manager speaks". That does not work. People react after the event is over. The cross goes in, the header comes, it is cleared — and only then does "why didn't you close!" arrive. Start recording at the moment of speech and the passage he is talking about has already gone.
What you miss if recording starts at the utterance
Horizontal = time, with the utterance at zero
At the transcription stage, shirt numbers come up constantly. Korean has two number systems, so "chil-beon" and "ilgop-beon" both mean "number seven" and both must normalise to 7 before a player can be identified downstream.
But Korean sets a trap. "i-beon" means "this time", not "number two" — even though "i" is also the numeral two. Convert "that overlap this time was good" into "number two's overlap was good" and the sentence inverts. The same holds for "once more", "like last time", "late every time".
This part is proved
I keep a blocklist of everyday expressions and convert only numbers actually on the team sheet — two independent guards. Then I pinned the rule down with 33 unit tests. Removing the guard on purpose made exactly those tests fail, and nothing else — which is how you know the tests have teeth rather than being decoration.
This sits outside the six stages, but vocabulary handling governs the accuracy of stages ③ and ④. Being pure functions, it can be verified with no external dependency, so I nailed it down first.
Reach fifteen seconds back from the utterance and you sometimes land in a passage where the ball is out. A clip that opens on players waiting for a throw-in is no use to anyone.
So whistle sounds and total on-screen motion are used to estimate in-play segments. If a clip's start lands in a dead segment it is pulled forward to the restart, and the end is cut at the next stoppage.
But this one I do not trust yet
The accuracy of this detector has never been measured. It has been run on synthetic data, but that test is circular — the still segments in the synthetic sample are a flat colour, so their frame difference is exactly zero. It cannot fail to separate them.
Measuring it on a real match means hand-labelling ground-truth segments and comparing. I have not done that.
There is no accuracy figure I can currently state about this tool. The means to measure it are built; the measurement has not been made.
| Stage | Built | Synthetic | Real match | Accuracy measured |
|---|---|---|---|---|
| ① Time sync | yes | verified | — | — |
| Squad vocabulary | yes | 33 tests | — | — |
| ② In-play detection | yes | circular | — | — |
| ③ Transcription | yes | — | — | — |
| ④ Tactical tagging | yes | — | — | — |
| ⑤ Clip boundaries | yes | — | — | — |
| ⑥ Two-angle playback | yes | — | — | — |
| On-site marking (§05 revision) | not built | — | — | — |
A single real shoot fills in much of the table above. Four things to measure.
And the 6.5 seconds in §02. That is a value I put into the synthetic test, not one measured on real hardware. Running two devices for ninety minutes and measuring how far they actually drift is — given that it is the starting point of this whole design — the first number to confirm.
The convention is to publish when it is finished. But the interesting part of building a tool usually happens before it is. Why the auto-recording glasses were dropped, why four claps and not one, why "this time" must not be touched — none of these judgements survive into a finished product page.
And writing down the current state precisely means I can check later what actually changed. When the field test is done I will update the table in §07, and this piece will be revised. Whether my predictions held will be visible in that table.
Designed and working are different words. This is a record written with its own position stated — near the beginning.
This is not a standalone tool but one component of a larger idea: an AI sitting beside the manager, watching the same match and trading evidence with him. In that idea this tool is the ears and eyes — the input organ that captures what he says and what he looks at, and turns it into data.
That piece sets out what the Laws of the Game actually permit, and what such an AI may and may not say.
The idea this belongs toThe AI sitting next to the manager — HOVI →