The basics
Type a set like you’d say it:
2 x 300 @ 5:00 kick build
Commit reads all of it: 600 yards, kick, building intensity, and your pace
per 100. Type just 300 and the defaults kick in (freestyle, swim). Add
stroke, type, equipment, or intensity words anywhere in the line and they
all count.
Let the parser work. It understands more than you think
None of these need brackets. Every one tracks in your stats:
6 x 100 on 1:25 odds sprint evens easy
Odds and evens each get their own intensity. This is real data, not a note.
12 x 50 1-4 kick @ 1:00, 5-8 paddle pull @ 0:55, 9-12 swim @ 0:50
Rep ranges: reps 1 through 4 are kick, 5 through 8 are paddle pull (yes, the paddles count as equipment), 9 through 12 swim, each on their own interval.
300 choice (50 drill 25 swim)
Patterns in parentheses split the distance: this logs the drill and swim portions separately.
6x50 25 back kick/25 free on 1:30
One send-off on a line with a breakdown is per rep: six 50s on 1:30 is 300 yards in 9:00.
6x100 @1.30
6x100 on 2.10
6x100 @1'30
A send-off written with a dot or an apostrophe reads as minutes and
seconds when it comes after @, on or at on a line with a distance:
@1.30 is 1:30. A bare 1.30 with none of those in front isn’t read as
a send-off, and neither is a time of day like Meet warmup at 18.30.
1 x 4000 @ 1:00:00
1 x 3000 on 60:00
Long swims can have long send-offs. 1:00:00 is one hour, and so is
60:00.
1,000 swim
3 x 1,000 pull
3x100s kick
Write distances the way you like. A comma in a distance from 1,000 to
10,000 is fine, and 3x100s kick reads the same as 3 x 100s kick: 300
yards of kick.
#gold 6x100 @1:30
A #tag at the start of a one-line set counts the same as one at the end: this set is Gold’s alone. Splitting a whole practice by subgroup is in multi-group workouts.
4 x 100 free @ 1:30 descend 1-4
6:00 easy swimming, focus on technique
2:00 rest
100 d/k
Descend reads as intensity. Time-based lines log minutes. Rest lines are
understood. Shorthand like d/k (drill/kick) and 75 k 25 d works.
8 x 100 easy/fast by 50
A split “by 50” breaks each rep into 50s: every 100 is 50 easy and 50
fast. A single word for every part works too: fast/easy choice makes
both halves choice.
8 x 50 @ :50/:55/1:00
A list of send-offs is used in turn, one rep at a time: three reps on :50, three on :55, and two on 1:00.
10 x 100 1-4 easy, 5 fast
A pattern that mixes ranges and single reps repeats: reps 1 to 4 easy, 5 fast, then 6 to 9 easy and 10 fast.
8 x 100 IMO
IMO (or IM order) gives each rep one stroke in IM order. When the reps
divide by 4, it goes fly, back, breast, free and around again. When they
divide by 3, it goes fly, back, breast. Otherwise each rep is a full IM.
Reverse IMO starts with free.
100 stroke + 50 race pace + 200 swim
Swims joined with +, each starting with its own distance, count as
separate swims: 350 yards here. With one send-off at the end for all of
them, only the first swim counts, so give each swim its own line and
send-off.
10 x 50 35 fast 15 easy
4 x 50 at 1000 pace on 1:10
Parts that add up to the rep split it, so each 50 is 35 fast and 15
easy. 35y reads like 35m. A race distance before “pace” is a pace,
not a distance or a send-off.
6 x 100 @ :30 rest
4 x 75 B3/5s
@ :30 rest is rest after each rep, not a send-off, so the reps use the
workout’s default 100 interval. Breathing patterns like B3/5s or
bilateral 3s aren’t distances.
Brackets are the opt-out
Only use [brackets] for words you don’t want Commit to read:
4 x 50 @ 0:50 fly - [strong underwater kick off the wall]
The coaching cue stays on the printout but out of the parsing. If your
instruction is something Commit tracks (a stroke, a type, an intensity, an
odds/evens split), leave the brackets off and let it count. A bracketed
[3x] stays a note too, so it doesn’t repeat anything.
Headers and indentation
Name a block, then indent its sets underneath:
Warmup
100 drill
100 choice
Headers organize the printout and the stats roll up per block.
Lines indented under a set read as if they were on the set’s own line:
8 x 50 kick
odds fly
evens back
That’s 200 fly kick and 200 back kick, the same as writing 8 x 50 kick odds fly evens back on one line. Rep ranges, odds and evens, and
intensity words all work this way.
A cue that has nothing Commit tracks stays a plain note, and the set counts as written:
8x50 @1:00
focus on streamline
If a note has a word Commit tracks but you don’t mean it, put it in
brackets. focus on pull pattern under a set would count it as pull, and
Set check offers Wrap in
brackets:
6 x 25 single arm @ :45
[focus on pull pattern]
Circuits
A number-x line multiplies everything indented under it:
3x
100 kick
200 pull
That’s 900 yards, written once. Write the count the way you’d say it:
3 rounds, 3 sets, 2 times, 3x:, 3× and x3 (up to x20) all
repeat the block, and so do labeled lines like Main set 2 rounds of: and
Warmup x 3. Circuits nest as deep as you like, and you can label them
(“Warmup 3x”):
2x
100 kick
4x
3 x 50s
100 easy
Rounds
Rounds change something on each pass through a circuit. Write the per-round variation right on the circuit line, in whichever style you’d put on the whiteboard:
3x fly/ back/ free
100 kick
200 pull
3x 1 fly, 2 back, 3 free
100 kick
200 pull
3x round 1 fly, round 2 back, round 3 free
100 kick
200 pull
All three mean the same thing: round one is fly, round two back, round three free, and each round tracks with its own stroke.
5x 3 free, 2 choice
100 kick
200 swim
Counts work too: three rounds are free and two are choice. So does
5x 1-3 free, 4-5 choice. The counts need to add up to the rounds.
You can also write each round out on its own line:
3 rounds:
Round 1: 4x50 fly
Round 2: 4x50 back
Round 3: 4x50 breast
When the lines under the header start with Round 1, R1, Set 1 or
1st round, Commit counts each written round once. This one is 600 yards,
not 1,800.
Send-offs for each subgroup
6 x 100 @ 1:30 #Gold 1:20 #Silver
A send-off followed by a subgroup’s #tag, then another send-off and tag, reads as one line per subgroup: Gold goes on 1:30 and Silver on 1:20. See multi-group workouts.
Why this matters
Everything the parser reads becomes your training data: volume, stroke and type breakdowns, and intensity by the words your group uses. Write naturally, skip the brackets unless you mean them, and the reports build themselves.
Common questions
My yardage total looks wrong. Check for a number in a comment that should be bracketed, or a bracketed instruction that should not be. Set check marks sets Commit misreads while you write, with a one-click fix for most.
Do I have to write this way? No. Commit reads normal coach shorthand. These habits just get you the cleanest data.
Where do intensity words come from? Each training group’s intensity list. Rename the levels to your energy-system language and write with those words.