Scheme syntax
The helper bar turns typed shorthand into volume rows. This page is the lookup table for what it reads. For how the bar fits into writing a program, see Writing schemes.
How to read this
In the builder, select an exercise row. Type a scheme in the helper bar. Before you press Enter, the ↵ Create row shows what the line will become. This preview is the "reads as" echo. The echo is the authority. If it doesn't say what you meant, rewrite the line.

Four rules hold across every table below:
- The aimed row decides the grammar. The bar reads a line against the exercise's Type: Weightlifting, Sprint Training, Distance, Jump Training, or Throwing. The same text can land differently on a lift than on a sprint. Each table names the types it covers.
- Order is free and
@is optional.3x5 @ 80%,at 80% 3x5, and80% 3x5all land the same. - A fill patches. It doesn't replace. Anything the line leaves out stays
as it was. Typing
5x3over a row already set to 80% keeps the 80%. - The field mirrors the aimed row. Selecting a row loads its current
prescription back into the bar, in the same language you'd type. This
happens whenever the prescription can be written as one line.
×reads asx, and–reads as-, so what the builder writes back always re-reads.
Sets and reps — Weightlifting rows
| Syntax | Reads as |
|---|---|
3x5 | 3 sets of 5. Spaces are optional: 3 x 5. |
2-4x6 | 2 to 4 sets of 6 |
4x8-10 | 4 sets of 8 to 10 |
2-4x6-8 | 2 to 4 sets of 6 to 8 |
2/3/4x8 | a week-to-week progression, stored as 2 to 4 sets of 8 |
2x6/6 | 2 sets of 6 per side |
60%x3x6 | 3 sets of 6 at 60%. A leading percentage applies to the sets and reps after it. |
Intensity — Weightlifting rows
One intensity per clause: a percent, RPE, RIR, an effort word, or a back-off. The first form the bar recognizes wins.
| Syntax | Reads as |
|---|---|
@ 75% | 75%. at 75% and a bare 75% read the same. |
@ 60-65% | a percent range |
50/55/60/65/70% | a ramp, stored as 50 to 70% |
@ rpe 8 | RPE 8. 8.5RPE and rpe 9-10 also read. |
@ 2-3 RIR | 2 to 3 reps in reserve. RIR 2-3 reads the same. |
heavy | an effort word — light, moderate, or heavy |
drop 10% | a back-off 10% below the segment above. -10% reads the same. |
Several segments on one line
A comma or the word then starts a new segment. With the exercise's top row
aimed, the line is the whole prescription. The first clause fills the first
segment, the second clause fills the second segment, and so on.
3x5 @ 75%, 2x3 @ 85%— two segments.4x5 @ rpe 8, then drop 15%— a working block and a back-off. A clause with no sets and reps of its own copies the segment above it and changes only what it names.
If the line has more clauses than the exercise has segments, the bar adds rows. If it has fewer, the bar removes the extras. The bar asks Remove segments? before it removes a segment that still carries data. Aiming one segment row instead of the exercise row patches only that row. The bar ignores extra clauses.
Runs — Sprint Training and Distance rows
A run is sets × measure. The measure is a distance or a time. It takes
the place of reps. Leave a space between the multiplier and the measure.
4 x 30m reads as four 30-meter runs. 4x30m reads as four sets and no
distance at all.
| Syntax | Reads as |
|---|---|
4 x 30m | 4 runs of 30 m |
3 x 20s | 3 runs of 20 seconds |
5 x 400m | 5 runs of 400 m. A number carrying m or km is always a distance, never reps. |
1-2 x 2 x 20m | 1 to 2 sets of 2 runs at 20 m |
4 x 50m tempo | trailing words name the segment ("Tempo") |
4 x 50m @ 70% | effort as a percent of top speed (Sprint Training) |
6 km at 4:30 pace | pace per kilometer. 4:30/km and 4:30-4:45 pace also read. (Distance) |
4 x 20m build + 10m fly | one continuous run in two phases. The second phase inherits the 4 x. |
100m, 200m, 400m | also one continuous run. A term with no multiplier of its own continues the term before it. |
4 x 20m, 4 x 30m | two separate blocks, because each carries its own multiplier |
2 x (20m, 30m, 40m) accel | a ladder run twice — one segment per distance, all named "Accel" |
Jumps and throws — Jump Training and Throwing rows
| Syntax | Reads as |
|---|---|
3x5 | 3 sets of 5 |
3x5 box jumps | trailing words name the segment ("Box Jumps") |
@ 24" | a height target in inches. @ 30 cm for centimeters. (Jump Training) |
@ 6kg | the implement or added load. 10% bw and bands also read. |
rest 90s | rest between sets. rest 2:00 and rest 2 min also read. |
heavy | an effort word — light, moderate, or heavy |
Per-segment lists in a cell
The grid takes lists as well as the helper bar. A comma-separated cell value
gives each segment its own number. 8, 10, 12 in Reps on a one-segment
exercise makes three segments. On Sprint Training and Distance rows, +
splits Dist and Duration the same way (20m+15m+30m). A - is
always a range, never a separator.
Only some columns can change the number of segments:
- Sets, Reps, and Intensity on lifts, jumps, and throws.
- Dist, Duration, and Sets on runs, plus Intensity on Sprint Training.
Every other column takes either one value for all segments or exactly one per segment.
What the helper bar doesn't read
Set these in the grid instead
- Tempo — the bar doesn't read tempo notation anywhere in the line. Put tempo in the row's Notes.
- Rest on Weightlifting and run rows — the Rest column takes
90,2min,1:30, or30-60s. - A weight on a Weightlifting row —
3x5 @ 40kgfills the sets and reps and drops the weight. You prescribe lifts as intensity, and the percentage resolves against the athlete's max. - Bar speed — the bar doesn't read
1.2 m/sfrom the line. The Intensity cell takes it. - AMRAP — the Reps cell takes
AMRAP. - Added resistance on a run — in the line,
sledandbandsonly name the segment. The Load column takes10kg,10% bw, andbands.
Forms that read as something else
1rm at 10RPE— the bar doesn't read a rep-max anchor. It refuses the whole line with "Couldn't read that scheme".70x5, 75x4— a weight-per-set ramp reads the number before eachxas sets: 70 sets of 5, then 75 sets of 4.3x2+2+1on a Weightlifting row — reads as 3 × 2. The bar drops the rest of the cluster pattern.