26 Chapter 26 — From Numbers to Narrative: Reports, Scouting, Coach UX
The analyst-to-coach bridge, the SportsCode XML contract, and the honesty rules in prose
26.1 A Report Is a Decision, Not a Table
The pipeline in this book produces rows. The coach needs one message. The distance between them is the analyst's craft: a report is a gating artifact — it tells the coach what to decide, with the evidence attached and the gaps named. This chapter is that craft: the four report types, the SportsCode XML contract, and the honesty rules that keep a narrative from overclaiming.
The discipline is source-backed (the workflow dossier's verified findings) and the lab output is measured (the auto-drafted report from the real artifacts).
The honest-narrative problem is the difference between a verdict and a weather report. A report that says "they lose points on the left side" is not useful — it names an outcome, not a lever, and the coach can do nothing with it. A report that says "the left-side attacker's dink lands short in 62% of reviewed cases [Wilson 95% CI 58–66, n=340 third-shot sequences across 12 matches]; drop the return deep to their backhand and the dink becomes a pop-up" is useful — it names a mechanism, a denominator, an interval, and a counter-move. The same rule holds in rugby league: "our right edge leaked" is noise; "the right-edge centre jammed in on 9 of 14 reviewed shift plays, leaving the winger one-on-one — hold the inside runner and show outside" is a decision. Every section of this chapter exists to move the artifact from the first kind of sentence to the second.
The division of labor that makes this safe: the LLM drafts, the human decides. The model's job is to render a fixed, n-disciplined table into readable prose under the claim-gate language rules; the coach's job is to dispose of every claim — confirm, correct, or reject — before the artifact leaves the workspace. An agent that both generates and releases its own narrative is an automated overclaiming machine, and chapter 19's gating exists precisely to prevent that.
26.2 The Analyst-to-Coach Bridge
- One message per review: the cognitive-load rule — a coach reviews, they do not study. The 8-12 clips rule bounds the evidence; one message bounds the decision.
- One cue per clip: each review clip carries a single coaching cue, not five observations.
- The dashboard is a summary, not the analysis — a report is a decision, not a table.
- The reviewed row becomes the next fixture: human corrections write back, and the regression chain (chapter 5) re-runs.
Three findings from the workflow dossier (source-backed) govern everything downstream. First, translation beats volume: professional performance departments are judged on whether the coach uses the output, not on how much data they produce — the recorded pro deliverable is ruthlessly edited to 8–12 clips, one page, one message (Hudl / FA / FSI workflows on record). An agent that emits 40 findings is worse than a human who emits five; the agent's core competence is selection, not generation. Second, trust is the rate limiter: analysis changes nothing without a shared tactical vocabulary and the analyst understanding the coach's game eye. The agentic implication is that the system must learn this coach's language — the report is a drafted conversation the coach can correct, not a generic dashboard. Third, cognitive load theory governs the medium: working-memory bandwidth is limited, which produces three hard constraints — the redundancy effect (do not talk over a clip while displaying dense on-screen text), the split-attention effect (keep the evidence, the claim, and the decision in one visual flow), and the element-interactivity effect (one cue per intervention, the motor-learning consensus).
The cadence differs by sport but the architecture does not. A pickleball coach working club fixtures reviews post-match within a day and pre-match against a specific opponent pair the night before; the artifacts are one page plus a handful of clips from a fixed camera. An NRL performance department runs the full professional cycle — pre-match opposition dossier 1–3 days out, live coding with 1–3 clips pushed to the bench tablet, post-match debrief inside 12–24 hours, individual development plans weekly. The four report types in §26.3 are the same four containers in both worlds; only the latency and the lexicon change.
26.3 The Four Report Types
| Type | Structure (one page, one decision, 8-12 clips) |
|---|---|
| Post-match debrief | Context → Verdict → Evidence (clip strips) → Missing Evidence (grey box) → Next Action |
| Pre-match scouting | Opponent patterns by player/zone (from PBN rows) → our adjustment → the 2-3 drills |
| Individual development | The player's rate vs the league average (with the shrinkage-adjusted CI) → one cue |
| Season review | Trends (with n), the two patterns worth acting on, the two that need more data |
Each type is a container for a single decision, and each inherits the same honesty machinery. The post-match debrief answers "what should tomorrow's training emphasize?" — its verdict is one sentence ("our transition spacing collapsed when the far pair had to cover wide recovery" in pickleball; "our A-defenders bit on the decoy line on 6 of 11 reviewed shift sets" in rugby league), its evidence is 3–5 clips with one cue each, and its missing-evidence box states what the clips cannot prove (ball visibility, contact state, sample size). The pre-match scouting report answers "how do we adjust the game plan?" and adds a tendency table with reviewed-n counts and unknown counts — the discipline is to sample the opponent, never to narrate from highlights. The individual development plan answers "what is the one thing this player works on next?" — one gap, one model clip, one self clip, one external-focus cue — and it inherits the chapter-20 shrinkage rule: a small-n hot streak is not a trend, so the player's estimate is shrunk toward the squad mean before it becomes a ranking. The season review is where n-discipline bites hardest: a 20-match NRL season is not n=20 for every claim when the same opponent, tactic, or injury window clusters the sample — the report must state its resampling unit (matches, not rows or clips) and any shrinkage applied.
26.4 The Scouting Dossier From CV (W6.2 Lab)
Our lab auto-drafted a coach summary from the verified artifacts — the measured template:
One message: the four-player rally window is confirmed; the third-shot pattern needs ball evidence before any shot-level claim.
- Rally window confirmed (E06): two four-player windows, 8.33s and 12.83s. Movement-only evidence — no shot claims.
- Tactical model (E12): receiver accuracy 0.846 on 3,416 rows (one clip; CV mean 0.836); threat 0.64 → 0.22 with a +0.35m shift (A2). Honest caveat: n=1 clip, sign-test not significant.
- Threat model calibration (C22): Brier 0.173; bins track within ~0.05.
What is NOT claimed: no shot-type assertions (ball evidence absent); no per-player identity (player_id blank until C13 review); no performance guarantees.
The point of the example is the "What is NOT claimed" section — the report's honesty lives there, and it is where the three-tier gating (chapter 19) becomes prose. The worked case is the pickleball fixture pb-003 (the PPA doubles clip, chapter 3's court model): the report states the rally windows, the tactical model values, and — critically — names the gaps the ball-labeling work (G0.5) must close before any shot-level coaching claim.
The dossier is built from three inputs: event rows (the C19/PBN contract), expected-value estimates (C22), and tracking-derived tactical cues (E12). The honest synthesis rule is that the CV supplies the raw frequency and context, the stats supply the baseline and value, and the coach supplies the decision — the agent never skips the coach gate. The canonical scouting query, "what does player X do from zone Y?", is a grouped aggregation over reviewed rows with the unknowns kept visible:
player_zone_shot = reviewed_pbn_rows .group_by(player_id, court_zone, shot_type) .agg(n, n_unknown, wilson_ci_low, wilson_ci_high) # cluster-bootstrap by match
On the current pb-003 evidence pack this query is honestly empty: all 11 PBN rows have shot_type = unknown and review_required = yes (measured, verified on disk). The correct scouting output is therefore not a fabricated pattern but a missing-evidence statement plus a prioritized review list — the two candidate-contact rows (pb003-e001, pb003-e007) and the two E06 rally windows. When the data is richer — pklmart's 300k+ shot corpus joined to reviewed PBN rows — the same query returns a real tendency table, and the report may say "the opponent drops from the transition zone in 62% [Wilson 95% CI 58–66] of 340 reviewed third shots across 12 matches, against a pklmart-wide baseline of 55%" [verify — template phrasing, not a measured value from our corpus]. It may never say "they always drop from transition." C22's expected-value surface then converts the tendency into a decision: if the opponent's preferred option is also the higher-EV option, force them off it; if they over-prefer a lower-EV option, anticipate it and punish. Frequency without value is a habit; value without frequency is a hypothetical — the dossier shows both.
26.4b Humans Above the Loop: The Exception Gate (E22)
The reporting pipeline's real discipline is what reaches the human. The E22 benchmark implements the gate: 1,000 routine events in, 119 anomalies out — 88.1% routine-noise suppression at 0.08ms per event. The mechanics: every event gets a p-value against the routine baseline (NVZ foot-fault warning p=0.012, middle-seam exposure p=0.034); only p<0.05 events surface. The coach is above the loop — not drowning in the 88%, but deciding on the 12% that matters.
The gate ran dual-sport from the same 1,000-event stream (measured): pickleball anomalies (kitchen-line encroachment, transition-zone exposure) and NRL anomalies (defensive-line compression, dog-leg rupture risk) surfaced through the identical statistical filter, because the gate tests p-values, not sport semantics. The honest label stands: the anomalies are generated by the thresholded noise model (p<0.05 on a synthetic event distribution); a real-video validation of the gate is the open next run (the events' content comes from chapters 19/22; the gate's statistics come from chapter 20). And the chapter-20 multiple-comparisons rule means the p<0.05 threshold buys triage, not truth — a surfaced anomaly still needs its reviewed n before it becomes Tier-3 prose.
26.5 Video Calling: The SportsCode XML Contract
The verified pro contract: SportsCode's code window is the team's tactical vocabulary (buttons + labels, lead/lag times, hotkeys, scripting), and its XML interchange is how external data lands there. The agent's job is to emit that XML — a PBN row becomes a SportsCode instance with code, lead/lag, labels — dropping straight into the coach's existing workflow. This is the integration that makes an automated pipeline feel native to the team's video work.
The mapping is mechanical, which is exactly why it is trustworthy (source-backed: kloppy and SportsCodePy both implement it; Hudl Sportscode is the de-facto standard in the NRL, Premier League, and NCAA):
| SportsCode concept | PBN / C19 equivalent |
|---|---|
| Button / code | shot_type or event enum (serve, third_shot_drop, dink; or tackle, kick, PTB) |
| Label group | shot_phase, court_zone, player_slot, outcome |
| Instance | One event row → one clip with start/end time |
| Lead / lag time | Pre/post-roll around the event instant (e.g. −2s / +3s for a contact) |
| Matrix / sorter | Cross-tab of code × label frequencies |
Lead/lag is policy, not magic: start = max(0, t − lead), end = min(clip_duration, t + lag), documented per event type and reviewed by the coach. In pickleball the E06 windows (8.33s and 12.83s) are natural rally-level lead/lag bounds; a contact instant from E10 anchors a tighter −2s/+3s window that captures approach and outcome. In rugby league a PTB event wants a short lag (the ruck clears fast), while a tackle-5 kick wants lead deep enough to show the set's field position — one wrong constant and every clip in the matrix is miscut. The spine key (clip_id, frame_idx, pts_s) carries the presentation timestamp, so the agent can compute the import offset when the video's clock starts elsewhere; the report must document the offset used, because a clip that is two seconds off is a wrong clip. The open generation path is a short script: build Code objects with timestamp, end_timestamp, and a labels dict matching the code window exactly — extra labels are ignored or break the matrix — then sportscode.save(...). Our provenance addition is an Evidence label pointing back to the PBN row and the E-series artifact, so every imported clip remains auditable. Telestration obeys the CLT rule: one arrow, one circle, one cue — the agent may suggest overlays but never auto-generates them, because the wrong annotation is worse than none.
26.6 The Narrative Honesty Rules
- No pattern claims from fewer than 30 reviewed observations — the C20 n-discipline, stated as a language rule.
- Three-tier gating in prose: facts ("the window was 8.33s"), windows ("the receiving pair was active"), patterns ("they shift right on the third shot" — needs the ≥30 rule).
- Never say "because" without the evidence: the analyst's language is "this correlates with", not "this caused" (the C24 counterfactual framing).
The three tiers map to allowed language, and the report may not skip tiers by adding adjectives. Tier 1 (movement facts) licenses "on this footage we observed…" — four on-court tracks co-persisted for 8.33s at 0.8 m/s median pace (E06, measured). Tier 2 (review windows) licenses "look at this window" — a nomination for human attention, no semantic claim. Tier 3 (gated events) licenses "player X did Y in Z% of reviewed cases" and is unreachable until ball/contact evidence plus human review confirm the rows. "The player was stretched" (a Tier-1 body state) never becomes "the player therefore rushed the drop" (a Tier-3 tactical decision) without contact and outcome evidence. The same grammar disciplines the rugby prose: "the defensive line retreated 10.2m on that set" is Tier 1; "the edge is vulnerable to the sweep play" is Tier 3 and needs its reviewed count.
Every quantitative claim must carry four things: n, an interval (Wilson, bootstrap, or posterior), a baseline, and the resampling unit. Forbidden phrases include "Player X is 84.6% accurate" (no n, no baseline), "we saw it three times, so they always do it" (n=3 is not a pattern), and "the model says the threat is 0.64" (uncalibrated, no interval). The required phrasing is "in 12 reviewed matches, the opponent dropped from transition in 62% [Wilson 95% CI 58–66] of 340 third shots; the pklmart baseline is 55%." Before emitting any sentence, the agent runs a decision tree — fact → cite the row; window → emit "review this"; pattern → require n≥30 at the right unit or downgrade to "hypothesis: needs N more reviewed instances"; decision → one actionable step, one alternative, and what would change the call. Every claim the tree rejects lands in the Missing Evidence section, which is the trust-building counterpart to the verdict.
26.7 The Coach UX Hierarchy
The pyramid (verified from cognitive-load + the workflow dossier): apex = one Decision (burnt-orange); middle = 8-12 evidence clips; base = data/dashboards in grey. Dashboard is summary, not analysis; report is decision, not table.
The dashboard's honest job is to show the state of the evidence, not the tactic. For pb-003 the correct dashboard reads: 11 PBN rows, 11 review-required, 0 confirmed contacts, 0 confirmed shot types, 2 candidate contacts, 2 E06 rally windows, 1 E12 threat window — it tells the coach what is missing, not what to fix. The presentation rules that keep the artifact inside working-memory limits: one message per review, 8–12 clips, a 15–20 minute session ceiling, one cue per clip, the unknown count always visible, pull-before-push (self-controlled feedback outperforms imposed feedback), and model-versus-self clips (the player's own best example as the reference, not an unreachable pro). These hold identically for a pickleball clinic handout and an NRL Monday-morning review — the medium differs, the memory budget does not.
26.8 The Agent-Assisted Report Pipeline
- Event rows (C19) → the C26 starter script → report draft.
- The VLM (C25) renders the draft to prose — grounded, schema-validated.
- The human gatekeeper (C27) approves or corrects.
- Corrected rows become the next fixture (the regression chain).
End to end, the pipeline is: perception stack → E06 movement windows and E10 contact candidates → C19 eventing with confidence routing → the C18 human review queue → the reviewed PBN event table → C22 EV summaries → the agent report draft → the coach gate → SportsCode XML / clip list / practice constraint → reviewed rows feeding the next fixture. Two properties make this agent-assisted rather than automated. First, the report is a draft until the coach disposes of every claim — each claim is a review task with three dispositions (confirm, correct, reject) that write back to the row's review_state and human_correction fields; rejected rows become negative training examples rather than being deleted. Second, the reviewed row becomes the next fixture: the label store regenerates, the fixture hash updates, and the next report version is tied to that version — the pipeline is versioned end to end, and a report that cannot name its source rows is a memo, not a report.
The review gate is where §26.4b's exception filter meets the human. The E22 gate crushes volume (1,000 events → 119 alerts, 88.1% suppression, measured) so the coach adjudicates a bounded set; the three dispositions then produce truth. The flow is symmetric in both sports: a pickleball report draft and an NRL opposition dossier both enter as unreviewed claims, both pass the statistical triage, and both wait on the same confirm/correct/reject interface before anything is released to a player.
The LLM's seat in this pipeline is precisely bounded: it renders the fixed, n-disciplined summary table into prose, after the numbers and their intervals are locked — never the other way around. The auto-summary step is structured aggregation (frequency tables with unknown counts, trend tables with cluster-bootstrap CIs, coverage audits of ball_visible/contact_state, queue metrics); prose comes last, schema-validated, and every sentence must resolve to an evidence_refs pointer. E07 is the counterexample on record for prose-first generation. Every report carries a provenance block — dataset version, fixture hash, E-series artifact paths, reviewed/confirmed/rejected claim counts, generation date — so the artifact is auditable back to the rows that licensed it.
26.8b The 10 Report Use Cases: Applied Framework
The use cases below are the applied bridge from the report types and honesty rules above to the two sports. They follow four categories: Category I: The Cadence Reports (01, 06, 07) — pre, live, post; Category II: Scouting & Team Reports (02, 04); Category III: Development & Trend Reports (03, 05); and Category IV: The Production Layer (08-10) — the XML, the drafting step, and the gate that every report passes through. Each case carries its metrics-aggregation math, its figure, both sports, and its evidence label — measured (E-series), source-backed (paper/docs), or [verify] (template phrasing or practitioner value, not measured in the book lab).
Category I: The Cadence Reports (01, 06, 07)
UC 01 — The Post-Match Debrief: Third-Shot Analysis (Pickleball)
The club coach's Monday question is "what does tomorrow's drill fix?" The report answers it with the third shot — the shot that decides whether the serving pair reaches the kitchen. The mechanism is a grouped aggregation over reviewed PBN rows: group_by(player_slot, court_zone, shot_type).agg(n, wilson_ci), cluster-bootstrapped by match (C20). The verdict sentence carries the full n-discipline: "the opponent drops from the transition zone in 62% [Wilson 95% CI 58–66] of 340 reviewed third shots across 12 matches; the pklmart baseline is 55%" [verify — template phrasing from the C26 lab spec, not a measured run; the current pb-003 pack has 11 rows, all shot_type unknown]. Evidence is 3–5 clips, one cue each; the missing-evidence box names what the clips cannot prove.
UC 06 — The Pre-Match Briefing (Both Sports)
The night-before question is "how do we adjust the game plan for this opponent?" The mechanism is a sampled tendency table: select 3–5 opponent matches, weight by recency w_m ∝ exp(−λ·Δt) and competition level [verify — the multi-match sampling protocol is undefined in both sports today, §26.11], then re-aggregate shot/play distributions by zone on the weighted sample. The briefing is one page: verdict, tendency table with reviewed-n and unknown counts, 2–3 danger players with one clip each, the counter-move, and the honest caveat about which opponent matches were actually sampled. Sample the opponent; never narrate from highlights.
UC 07 — The Live Report: The Bench Feed (C28)
The in-game question is "is the plan working right now?" The live report is not a document; it is 1–3 clips pushed to the bench tablet within seconds. The mechanism is the E22 exception gate run on the streaming event feed: every event gets a p-value against the routine baseline, and only p<0.05 events surface — 1,000 events in, 119 anomalies out, 88.1% routine-noise suppression at 0.08ms per event (measured, E22). The math per event is a threshold test, not a model: alert(e) ⟺ p(e | routine baseline) < 0.05, with the C20 multiple-comparisons warning that the threshold buys triage, not truth. The clip lands with one cue and its evidence row; the bench decides.
Category II: Scouting & Team Reports (02, 04)
UC 02 — The Opposition Scouting Report: Tendencies (Rugby League)
The NRL analyst's Wednesday question is "what does their left edge do on tackle 3?" The mechanism is the same grouped aggregation as UC 01, on the rugby grammar: group_by(edge, tackle_number, play_type).agg(n, wilson_ci) over reviewed NRLSheet rows, cluster-bootstrapped by match. The verdict: "the opponent's left edge runs the sweep on tackle 3 in 41% [CI, n, matches sampled] of reviewed sets; the competition baseline is 28%" [verify — template phrasing; no reviewed NRLSheet rows exist yet, §26.9's honest gap]. C22's EV surface then converts the tendency into a decision: if they over-prefer a lower-EV play, anticipate it and punish; frequency without value is a habit, value without frequency is a hypothetical.
UC 04 — The Team Report (Both Sports)
The head coach's weekly question is "is our game model holding?" The team report aggregates the unit-level indicators that define the model: for pickleball, partner tandem spacing (the ~2.4m corridor, split-seam failures >3.2m [verify — practitioner value]) and kitchen-arrival timing; for rugby league, line-speed, 10m retreat compliance, and ruck-speed bands. The math is a set-level indicator table — one row per match, indicator values per unit, cluster-bootstrap CIs with matches as the resampling unit — plus a coverage audit stating how many rows were review-required. The verdict compares this fortnight to the team's own baseline, never to an abstract league average the sample cannot support.
Category III: Development & Trend Reports (03, 05)
UC 03 — The Individual Player Report (IDP)
The player's question is "what is the one thing I work on next?" The report compares the player's rate to the squad — but only after shrinkage: θ̂_shrunk = w·θ̂_player + (1−w)·θ̄_squad with w = n/(n+k), so a small-n hot streak is pulled toward the squad mean before it becomes a ranking (the C20 shrinkage rule). The artifact is one gap paragraph, a model clip (the player's own best example — pull-before-push), a self clip of the gap, one external-focus cue, one representative drill, and the review probe date. One cue per intervention is the motor-learning consensus (source-backed, workflow dossier).
UC 05 — The Season-Long Trend Report
The end-of-season question is "what do we keep, stop, and start?" The mechanism is a per-match trend series: one point per match per selected metric, a cluster-bootstrap confidence band, matches as the resampling unit — never rows or clips, because a 20-match season is not n=20 for every claim when opponent, tactic, or injury windows cluster the sample (C20). The "why" section is framed as a hypothesis with the C24 counterfactual language — "this correlates with," never "this caused" — and the next-cycle plan names the metrics to track and the review schedule. Two patterns worth acting on, two that need more data: that is the honest shape of a season.
Category IV: The Production Layer (08-10)
UC 08 — The Video-Callout Report: SportsCode XML
The video analyst's question is "how do these clips land in our existing workflow?" The answer is the SportsCode XML contract (§26.5): every reviewed PBN row becomes an instance with code, labels, and lead/lag. The math is the window policy: start = max(0, t − lead), end = min(clip_duration, t + lag), documented per event type — E06's 8.33s and 12.83s windows are natural rally-level bounds (measured), a contact instant anchors −2s/+3s, and a PTB wants a short lag while a tackle-5 kick wants deep lead. Emission is via kloppy or SportsCodePy (source-backed, docs verified); the import offset comes from the spine key's pts_s. A clip two seconds off is a wrong clip.
UC 09 — The LLM-Drafting Step: The Honest Narrative (C25 Feed)
The drafting question is "who writes the prose?" The answer is: the LLM drafts, after the numbers are locked. The mechanism is a two-stage pipeline: structured aggregation first (frequency tables with unknown counts, trend tables with cluster-bootstrap CIs, coverage audits), then the C25 VLM renders the fixed table into prose, schema-validated, every sentence resolving to an evidence_refs pointer. Prose-first is the failure mode on record (E07: 66.7% baseline hallucination error before grounding, measured). The drafted sentence carries the §26.6 decision tree with it: fact → cite the row; pattern → n≥30 at the right unit or downgrade to "hypothesis: needs N more reviewed instances."
UC 10 — The Review Gate: The E22 p<0.05 Filter
The release question is "what reaches the coach, and who decides?" Every report claim passes the gate: the E22 statistical filter crushes volume (1,000 events → 119 alerts, 88.1% suppression, measured) and the coach then disposes of each surfaced claim — confirm, correct, or reject — writing back to the row's review_state and human_correction fields. Confirmed and corrected rows feed the next report version; rejected rows become negative training examples, not deletions. The gate ran dual-sport from one stream (measured): pickleball kitchen-encroachment alerts and NRL defensive-compression alerts through the identical p<0.05 filter. The honest label: the anomalies are synthetic-distribution events; real-video validation is the open run (§26.4b).
26.8c What This Adds to the Pipeline
These 10 use cases are not separate products. They are the reporting layer applied across the cadence: UC 01/06/07 are the pre/live/post rhythm the workflow dossier verifies; UC 02/04 scout the opponent and audit the team; UC 03/05 carry development across a week and a season; UC 08/09/10 are the production machinery every one of them passes through. Each feeds an existing chapter rather than duplicating it: the tendency tables aggregate C17 PBN rows and C19 gated events; the EV conversion comes from C22; the live feed is C28's cockpit surfaced to the bench; the drafting step consumes C25's VLM under its documented limits; the review gate is C27's human-in-the-loop made concrete; and UC 01/05 hand their next-action constraints to C29's practice design. The honest labels mark exactly which numbers are measured (E06, E12, E22), which are source-backed (kloppy, cognitive-load, the 8–12 clip rule), and which remain [verify] — the template phrasings and practitioner values the book's lab has not yet measured.
26.9 Transfer Note: Rugby League Reporting
The rugby report is the same artifact with the set grammar as its spine: one message ("the edge defense conceded 3 line breaks off kicks on tackle 5"), the evidence clips (the 8-12 rule, from the nrl-001 clip pack), and the honest gap (no NRLSheet rows exist yet — the report's "missing evidence" box names the schema work). The SportsCode XML contract applies identically; the code window's vocabulary is the team's tackle/kick/PTB lexicon.
The transfer is structural, not cosmetic. The pickleball tendency table (player × zone × shot type) becomes the rugby tendency table (edge × tackle number × play type) with the same n/interval/baseline discipline: "the opponent's left edge runs the sweep play on tackle 3 in 41% [CI, n, matches sampled] of reviewed sets; the competition baseline is 28%" [verify — template phrasing]. The scouting verdict names a mechanism and a counter: "their five-eighth kicks early from inside our 40 when the ruck speed exceeds 3.5s — slow the PTB and the kick disappears." The E22 exception engine already ran dual-sport (§26.4b): the same p<0.05 gate that surfaced pickleball anomalies surfaced NRL alerts from the same event stream, which is the transfer argument in one row — the gate is sport-agnostic because it filters on statistics, not semantics. What does not transfer is the evidence base: the NRLSheet schema (chapter 17) must be populated before any rugby tendency claim can carry an n, and until then the rugby scouting report's Missing Evidence box is the largest section on the page — which is the correct, honest output.
26.10 The Reporting Recipe (Copy This)
- One decision: what should the coach decide after reading this?
- 8-12 clips: the evidence set, selected by the C19 confidence tier.
- The verdict: one sentence, the measured fact, its caveat (n, CI).
- The missing-evidence box: what this report cannot claim, and why (the honesty section is load-bearing).
- The next action: one drill or adjustment, grounded in the evidence.
- Emit SportsCode XML: the agent's contract — code, lead/lag, labels into the coach's code window.
- Human gate: the gatekeeper (chapter 27) approves before release.
Two checklist additions from this chapter's evidence. Step 0: run the honest-narrative decision tree on every drafted sentence and publish the rejects in the missing-evidence box. Step 8: stamp the provenance block (dataset version, fixture hash, artifact paths, claim counts) — in both sports, a report that cannot name its rows is a memo.
26.11 What I Would Measure Next
- SportsCode import test: does the emitted XML actually load into the code window without timestamp drift? [verify — the kloppy path is documented, not yet import-tested on the lab machine]
- The scouting report from a PBN shot-type distribution, once ball labels exist (G0.5).
- The multi-match opponent sampling protocol: how to select 3–5 opponent matches and weight by recency, competition level, and game-model similarity — undefined in both sports today.
- Per-event-type lead/lag policy, agreed with the coach and versioned with the code window; the wrong constant miscuts every clip.
- A clickable coach-review UI prototype, so the confirm/correct/reject dispositions are exercised by a real coach, not asserted.
- The C22 drive-vs-drop EV surface on pklmart, and the NRLSheet population that would let the rugby template carry real n's instead of an honest gap.
- Report versioning as a CI step: provenance block embedded automatically, so every released artifact is auditable by construction.
26.12 Sources
- Workflow dossier (coaching-workflow-practice) — 8-12 clips, one message, IRR; cognitive-load theory (InnerDrive coach guide, https://www.innerdrive.co.uk/blog/coach-guide-cognitive-load-theory/; video-feedback integrative review, ResearchGate).
- SportsCode XML interchange (Hudl, https://www.hudl.com/blog/hudl-sportscode-xml-wyscout); kloppy export (https://kloppy.pysport.org/user-guide/exporting-data/sportscode/); SportsCodePy (https://github.com/FCrSTATS/SportsCodePy); PBN rows (book-research/PBN).
- Lab (measured):
experiments/c26-report/outputs/report.mdandmetrics.json; E06 event candidates; E12 TacticAI-doubles metrics; E22 exception-gating alerts (experiments/e22-humans-above-the-loop/). - Book-internal: C17 (PBN contract), C18 (annotation/review), C19 (three-tier gating), C20 (n-discipline), C22 (EV), C25 (VLM limits), C27 (human gate).