← All work
Case Study · Phase 1 + 1.5 shipped

Chiron

Moneyball for junior tennis.

A dad needed evidence his son was actually improving. A coach needed match analysis when he couldn't be courtside. A 12-year-old needed to know the patterns his coach kept naming were real.

Built with
Jarvis (Claude Code) · Python · YAML schemas · phone-notes
Status
Phase 1 + 1.5 shipped · 3 tournaments analyzed
First handoff
June 27, 2026 — coach session
For
My son. My husband. His coach.
The Problem

Junior tennis runs on opinion. We needed evidence.

My oldest son plays competitive junior tennis. His head coach is excellent. So is his supplemental coach. So are the parents around the draw who happily share their reads on his game.

But the reads sometimes contradict each other. One voice says "he needs to be more aggressive." Another says "he's overcooking it; play patient." A parent on the next court swears the backhand needs work. Another swears the forehand. My husband and I are USTA adult recreational players. We've never been junior tennis parents before.The landscape is genuinely hard to read from the outside, and the people inside it disagree about what they're looking at.

Three real problems sat underneath this:

  1. 1. My husband needed evidence.

    Evidence that the coaching investment was producing improvement — not just opinions about it, but a measurable arc he could trust. We are spending real money and real schedule on this, including pulling our son out of conventional schooling to homeschool around academy hours. That decision deserves data, not vibes.

  2. 2. His head coach needed match analysis for matches he couldn't physically attend.

    He coaches my son once or twice a week and sees maybe one tournament a month. The other matches — sometimes three or four in a single tournament weekend — were essentially invisible to him. He was coaching forward without knowing what had actually been happening at competition.

  3. 3. My son needed to know the patterns were real.

    When his coach kept saying "target the backhand" or "trust the process," my son needed to see — in his own data — that the strategy actually worked. A 12-year-old hears coaching differently when the patterns are shown to him in his own play, not just told.

I needed a neutral evaluator. Not another opinion. A way to extract the truth from the matches themselves.

There are tennis-tracking apps for juniors — video-based, similar to the youth basketball tools that capture footage and surface stats automatically. But practically: you need permission to film other people's children at every match. You need hours of post-match review per tournament weekend. You need infrastructure I don't have. I know exactly one parent on the circuit who does this. It's real engineering, and it didn't fit the life I actually live. I needed something I could do during the match, with what I already had in my hand.

The Build

Match logs → pattern detection → coach reports.

Same partnership pattern as everything I build with Jarvis: I named the patterns I was already noticing. Jarvis named the architecture for capturing them at scale. I bring the in-person eye and the tennis-parent instinct. Jarvis brings the schema, the statistics engine, the report generation.

How the data-capture format actually emerged.

At first I tried to narrate the matches into voice notes — coaching-style commentary, like calling a match. That worked outdoors. It didn't work indoors at a tournament a few weeks in, where four parents were squeezed onto a balcony watching their kids' semifinals across six courts. Whisper-quiet. The other opponent's family standing right next to me. There was no way to narrate without being heard.

So I started typing. And typing slowly was its own problem — I couldn't write "my son served, the serve was out, second serve, return in, four-shot rally, opponent missed" for every point. I'd lose the next three points trying to catch up.

The format that emerged was a stripped-down per-point shorthand: Yes / No for first serve, Yes / No for return, a rally number, a short tag for how the point ended, the score. Boring. Repeatable. Fast enough that I could keep up.

That format became the schema.When I started running my phone notes through Jarvis, the data came back cleaner than anything I'd gotten from voice recordings. The structure had been forced by the courtside reality — quiet balcony, fast points, no time to spell things out — and that constraint turned out to be the design.

The pipeline.

Phone notes feed into a YAML match-log schema. Jarvis runs my structured entries through a pattern-detection engine I helped design — rally-length win rates, tipping-point detection, backhand-attack frequency, drop-shot patterns, opponent-style classification.

The output is two artifacts per match: a statistical analysis block (the cold numbers) and a coach-ready report (the narrative for the session). After enough matches at a tournament, a third artifact rolls them up across opponents.

Pipeline
Courtside phone notes
        ↓
   YAML match log
   (shot counts, winners, opponents, conditions)
        ↓
   Chiron parser + stats engine
        ↓
  ┌─────────┴────────┐
  Stats analysis    Coach report
  (rally buckets,   (narrative for
   tipping point,    the coach, with
   pattern counts)   the data story)
        ↓
   Tournament rollup
   (cross-match trends)

The plain pattern Chiron made visible first.

My son had an 11-match win streak. Across that streak, the same offensive shape kept appearing in the data: get into the point, sit in the rally, extend it. Let the opponent make the mistake, or wear them down both physically and mentally with heavy lefty topspin landing deep, until they were throwing up purely defensive balls he could attack.

That was the playbook. Patience. Depth. Heavy left-handed topspin. Let the rally come to him. Chiron showed it across opponents who were retrievers, junkier players, mixed-style players — same shape, same result.

The breakthrough.

Then came the matches that broke the playbook. Past 12 shots in a rally, my son was winning at extraordinary rates against most opponents — but only certain types.

Against retrievers and counter-punchers, he won extended exchanges 75–100% of the time. The longer the rally, the more it tilted his way.

Against aggressive baseliners with no weak side, the same pattern inverted. Past 12 shots, his backhand defense broke down under sustained attack. Same vulnerability, three opponents in a row.

That isn't a coaching opinion. That's a 6-match, 300-rally, statistically reproducible pattern.

The triangulation moment.

After the most recent tournament final — a straight-sets loss to an aggressive baseliner with no weak side, silver medal — Jarvis and I both independently arrived at the same strategic diagnosis. From completely different paths.

Jarvis got there through the data.My son's first serve dropped to 57%; the opponent's was 77.5%. My son hit eight double faults; the opponent hit two. Return percentages were 14 points apart. 9 backhand-attack losses. 27 unforced errors. Short-rally win rate at 21%.

I got there through the in-person eye.I watched the opponent's clean first serve. The way his returns took time away from my son. The way his second serves weren't being punished. I named the solution intuitively as a four-part offensive pivot to take back to the coach: first serve has to go up. Returns have to become offensive, not just "get the ball back." The opponent's second serve has to be annihilated, because better players don't give many windows and that's the window. And every chance my son gets, he has to run around for the forehand.

Same diagnosis. Independent paths. That convergence is what gives me confidence walking into the next coach session: the in-person read is real, and the data confirms it with receipts.

That's what Chiron is supposed to do. It doesn't replace the parent's eye, the coach's judgment, or my son's instinct. It backs them up with evidence — so when we agree, we know we're right; and when we disagree, we know exactly where to look.

The honesty layer.

Every coach report leads with a disclaimer: stats captured on a phone during play, often in wind or rain, often with other parents talking to me, often with the score-tracker losing a point or two when the rally got fast.This is closer to a thoughtful parent's notebook than an ATP scorer's clipboard.

Magnitude and direction are reliable. Exact percentages are ±2–3 points. That honesty isn't a weakness; it's the whole reason the coach can trust what he reads. He knows what he's getting.

The Outcome

What it actually changed.

Three tournaments this past month, Chiron has produced:

  • Normal stats you'd expect— first serve %, second serve %, return %, double faults, winners, unforced errors — the pro-grade columns you read on a TV broadcast, computed from my real-time courtside notes.
  • A reproducible 12-shot tipping point— verified across multiple opponents. Real, not gut feel.
  • A diagnosed strategic gap— backhand defense against aggressive baselines is the missing playbook. Same pattern across three opponents now.
  • A four-part offensive pivot— proposed strategy for the gap, ready for the coach to confirm, refine, or replace at the next session.
  • Per-match coach reportsfor matches the head coach couldn't physically attend — bridging the gap between training sessions and tournament results.
  • For my son specifically:when his coach says "trust the process," he now has data on his own play that proves the process is working when he executes it. That changes how a 12-year-old hears coaching.

And for my husband — the original question, is the coaching investment producing results?— the answer now lives in the rollup reports: yes, with caveats, with this specific gap to close, with a clear strategy.

The Lessons

What another parent-builder could borrow.

  1. 1. Capture the data you already capture — just structure it.

    I was already taking phone notes during my son's matches. I had been for over a year. The work wasn't adding new effort; it was giving structure to effort already happening. That's the whole secret. If you're already paying attention to something, you already have the data — you just need a schema.

  2. 2. The format follows the constraint — and the schema has to absorb real life.

    My note-taking format didn't emerge from a design session. It emerged from a quiet balcony where I couldn't talk out loud, surrounded by other tennis families, watching matches I had no time to spell out. The constraint of the place I was sitting designed the system.

    And the system has to absorb real life. Over twelve tournament matches in the last month, conditions kept changing: rain pushed us indoors mid-match, a tornado warning paused a final for 25 minutes, the wind changed how points were ending, other parents kept talking to me. The schema can't pretend any of that didn't happen. It has to be simple enough that I keep using it and forgiving enough that gaps don't break it. A perfect stat is a fantasy. A usable stat is the goal.

  3. 3. Park gracefully when the score-tracker loses a point.

    Pretending the data is cleaner than it is would have killed the coach's trust in the first session. Naming the conditions preserved it. The honest version isn't the weak version — it's the version someone can act on. (And case-in-point against the "just film everything" alternative: the technology can shut down too. Batteries die. Cameras get bumped. Software crashes mid-set. There is no perfect capture layer; there's only the one you actually use.)

  4. 4. Different opponent types need different strategies. The data made that obvious.

    My first instinct was "the 12-shot tipping point is real" — full stop. The data forced a more honest reading: it's real against certain opponent types and inverts against others.Retrievers and counter-punchers can be worn down past 12 shots. Aggressive baseliners with no weak side don't let you get there in the first place. Same player. Same patience. Wildly different outcomes. The strategic playbook had to multiply.

  5. 5. Triangulation beats certainty.

    When my in-person read and the data analysis arrived at the same diagnosis independently, the confidence multiplied. When they disagree, that's where the next conversation needs to happen. Build the system to expose disagreement, not hide it.

    The lesson I carry into the next coach session is this: the most recent final loss wasn't about my son's technique failing. The opponent's aggression was so relentless that he took my son out of his own game entirely — never let him build a rally, never let him settle into the patience playbook that had won eleven matches in a row. Going forward, my son needs to be able to recognize that opponent type mid-set, the way a pro recognizes a windy day, and shift tactics in real time. The data is what makes that recognition teachable.

  6. 6. Build for the people in your house first.

    Chiron exists because my husband needed evidence, my son's coach needed match coverage, and my son needed to trust the process. Three real people, three specific problems, in my house. The product market fit was already there — I was solving for the family I have, not for "the junior tennis market."

Code

Sanitized public repo coming.

The current repository holds my son's actual match data — opponents' names, location identifiers, in-match observations a 12-year-old probably wouldn't want public. A sanitized public version with anonymized example fixtures is part of the July 15 site launch.

The schema, the pattern-detection approach, and the data-quality discipline are the reusable pieces. Reach out via the contact page for serious collaboration.

More

See other case studies