Skip to content

Build a program

A Cleanpull program is a reusable training plan, not one athlete’s fixed list of weights. Build the weeks, days, exercises, and progression once, then assign that program to multiple athletes with individual targets and starting positions.

That separation lets you improve one block without rebuilding the same structure for every athlete.

Layer What it controls Reused?
Program Block length, training days, exercises, and their order Across athletes
Progression scheme The intensity, reps, and sets for every week Across exercises in that program
Exercise slot Scheme, active weeks, note, RPE, intensity basis, and exceptions Wherever that slot appears
Assignment Athlete, current week and day, target weights, and hold targets Specific to one athlete
  1. In Coach mode, open Programs.
  2. Choose New program, or choose a starter template.
  3. Name the program and set its duration.
  4. Set the number of training days per week.
  5. Define the progression schemes, then add exercises to each day.
  6. Preview the whole program and choose Save program.

A template is an editable starting point. Saving it creates a program in your workspace and does not alter the original template.

New program screen with a 12-week duration, three training days, and Primary, Secondary, and Accessory schemes
Start with the shape of the block. The program holds the reusable logic; athlete-specific targets come later.

A progression scheme is a reusable week-by-week prescription curve inside a program. For every week it stores three values:

  • Intensity — a percentage used to calculate the working load, or to scale the duration of a timed hold.
  • Reps — repetitions per working set for regular exercises.
  • Sets — working sets in that session.

Create schemes for exercise groups that should progress together. A simple strength block might use:

  • Primary for the competition lifts: lower reps and a climb toward heavier percentages.
  • Secondary for close variations: moderate volume and intensity.
  • Accessory for smaller movements: steadier intensity and higher reps.

The names describe the role of the work; they do not need to match those examples. You can also use phases such as Base, Build, and Peak.

Select a scheme, switch between Intensity, Reps, and Sets, select a week, and adjust its value. Exercises assigned to that scheme inherit the entire curve. This is the main reuse mechanism: change a shared curve once instead of editing every exercise week by week.

Program builder progression view with Primary and Volume schemes, an eight-week intensity curve, and projected athlete loads
The scheme is the shared curve. Projected loads make the abstract percentages concrete for a selected athlete.

Suppose Primary uses 4 × 5 at 80% in week 3. Back Squat, Bench Press, and Deadlift can all use Primary, but each athlete’s load is calculated from the target for that exercise on their assignment.

For an athlete with a 150 kg Back Squat target, week 3 prescribes 120 kg before load rounding. Another athlete can follow the same program with a 100 kg target and receive 80 kg. The shared training logic stays the same.

Open each day and add exercises from the library. You can also enter a custom name. Each exercise card is a slot in the program: the same exercise can appear on multiple days or in more than one phase with different settings.

For each slot:

  1. Choose the progression scheme it follows.
  2. Set Applies if it should run for only part of the block.
  3. Add a coaching note, RPE target, or superset link when useful.
  4. Choose what its intensity percentage reads from.
  5. Open its progression editor only when that exercise needs to depart from the shared scheme.

Use the whole-program preview to check exercise order, week ranges, schemes, sets, reps, and intensity before saving.

Desktop program builder showing three training days, their exercises, progression schemes, and weekly prescriptions
The Exercises view shows which scheme each slot follows and the resulting prescription across the block.

The scheme should describe the normal pattern. Use an exercise-specific override for a real exception—for example, fewer sets of Deadlift than the other Primary lifts, or a lower percentage for a technically demanding variation.

Choose the pencil on an exercise to open Progression, select the metric and week, and enter the exception. Overridden values are highlighted in red. Reset removes the exercise’s overrides and reconnects it fully to the scheme.

If many exercises need the same exceptions, that is usually a sign that they should have their own scheme.

For the exact rules behind this calculation, including other-lift and bodyweight bases, RPE-only work, and timed holds, read Intensity targets and timed holds.

After saving, choose Assign to athlete from the confirmation or from the program’s menu.

  1. Select an athlete who is waiting for a program.
  2. Review the target weights that Cleanpull can seed from their tracked, manual, or estimated maxes.
  3. Edit a target, clear it for athlete-selected loading, or copy it to repeated slots of the same lift.
  4. Set the hold-duration targets for timed exercises.
  5. Set the athlete’s current week and day if they are not starting at week 1, day 1.
  6. Preview the prescription and choose Assign.

Targets are optional and belong to the assignment. Two athletes can therefore use the same program with different loads. If a weighted slot has no target, the athlete enters the load they work at; a target RPE can provide the effort prescription.

Coach program overview showing an athlete at week 4 day 1 with prescribed sets, reps, and loads
The assignment combines the reusable program with the athlete’s targets and current place in the block.
  • To move an athlete to a different block, open Roster → athlete → Program → Change program.
  • To reuse a block while preserving the original, open its menu and choose Duplicate.
  • To remove a program from the active Programs list, choose Archive. Existing assignments keep their program.

Be deliberate when editing a program already in use. A workout that has already started keeps the prescription it began with; later sessions use the current assignment and program state.