There's a particular kind of Tuesday night that every swim coach knows.
The session plan is half-written in one document. Best times live in a spreadsheet that hasn't been properly updated since the last meet. Target paces are scribbled on a whiteboard that gets wiped every Thursday. Somewhere there's a third file with the squad's CSS figures, and a fourth where you've been trying to track who's been complaining of dead legs. You've got browser tabs open for two different session-builder tools because neither one does quite what you need. And in the middle of all of it, you're trying to answer a question that actually matters: is this set right for these swimmers, tonight?
Not the squad — these swimmers. The one who sat a chemistry exam this afternoon, the one who played rugby on Sunday and hasn't mentioned it, the one whose times have quietly flatlined for three weeks while you've been too stretched to notice.
We built this app because that question — the one that should sit at the centre of coaching — was the one we kept getting wrong.
Where it started
The frustration was logistical before it was philosophical. The information needed to coach an athlete properly existed — it was just scattered across six places, none of which talked to each other. Best times in one file, session history in another, and a vague sense, carried around in the coach's head, of who seemed tired and who seemed sharp. Pull it all together and you could make a genuinely good decision. The problem was that pulling it together took twenty minutes per swimmer, and a coach on poolside with three lanes and a session starting in four minutes does not have twenty minutes. So you guess. The good coaches guess well, off years of pattern recognition — but it's still a guess, and guesses miss.
The deeper frustration came out in conversations with other coaches — the same story playing out at a different pool. Everyone had built their own elaborate spreadsheet system that only they understood, everyone was planning sessions in a different tool, and everyone was quietly afraid of the same thing: writing a session that was wrong for the athlete in front of them. Loading a swimmer who needed rest. Resting one who needed loading. Mistiming the work so that race-pace sets landed on legs with nothing left to give.
And the thing none of us could properly see — the thing no spreadsheet captured — was the load these kids were actually carrying.
The load you can't see
Here's what the planning tools never accounted for: most of our swimmers aren't full-time athletes. They're teenagers in full-time education. They sit exams. They have coursework deadlines that spike their stress for a fortnight. They play other sports. They sleep badly the night before a mock and then turn up to a 5am session you've designed as a hard threshold set, and you load them anyway, because the plan said load them.
Fatigue doesn't care that it came from a maths paper instead of a kick set. A swimmer carrying academic stress, a poor night's sleep, and the residue of Sunday's match is not the swimmer the session was written for — but you'd never know it from the plan, because the plan was written on Sunday afternoon for an idealised athlete who doesn't exist.
We were trying to coach readiness without any way to read it. Race-pace work delivers its specific high-velocity and technical adaptations only when the swimmer can actually hold race velocity and race mechanics. Once accumulated fatigue forces the pace or the stroke to fall off, the swimmer is no longer training the target quality — they're just adding fatigue. So we'd programme the hard race-pace set for Thursday and cross our fingers the athlete arrived recovered enough to express it. When they didn't, the set was worse than useless: disproportionate fatigue for diminished adaptation, the work quietly biased away from the speed and skill we were actually chasing. A step backwards dressed up as training.
That's the swimmer we got wrong. The coaching wasn't the failure; the information was.
What we actually wanted
We didn't set out to build software. We set out to stop guessing.
We wanted one place where a swimmer's best times, target paces, session history, and readiness all sat together — and where the system could tell us, before the session, whether the work we'd planned matched the athlete who was about to do it. We wanted to see fatigue accumulating before it showed up as a flat performance. We wanted to know that the race-pace set we'd written for Thursday was landing on a swimmer who could actually hit the velocity and mechanics it demanded — and to know it without carrying twelve tabs and a wiped whiteboard around in our heads.
We wanted the twenty-minutes-per-swimmer question answered in the time it takes to glance at a screen.
So we built it. None of the underlying methodology is new — coaches have understood readiness and race-pace specificity for decades. What had never existed was a way to apply that thinking to a real, multi-stressed, exam-sitting, part-time teenage athlete and see the answer at the moment a coach actually needed it.
This blog is where we'll write about that work: the sports science we lean on, the decisions we make about load and readiness, and the messy reality of coaching athletes who have entire lives happening outside the pool.
It started with one swimmer we got wrong, and a Tuesday night with too many tabs open. It turned into this.
We're opening up early access now. Join the founders list to be among the first squads on the platform, or book a demo and we'll show you what reading your swimmers' readiness actually looks like.
