Modifiers and substitutes let one program fit different athletes. A modifier changes sets for athletes who meet a condition: a group, one athlete, or a metric value. A substitute is the exercise an injured athlete gets in place of one their injury rules out. This article covers where modifiers live, writing one, how they reach plans, checking what an athlete gets, injury swaps, and what to check when a modifier doesn't apply.
Modifiers
A modifier reads as one sentence, such as "If athlete is in Speed Development: change Back Squat — reps by −1, weight by −10%." FYTT checks it for each athlete when they start a workout and changes only that athlete's sets. Nothing changes in the builder.
Where modifiers live
Every Modifiers section works the same way. Where you put the rule decides what it reaches:
Block: only that block's sets. Open the block and scroll to Modifiers. See Blocks.
Program: every block in the program. Click Edit at the top of the program. See Programs.
Progression: every block in the progression. Click Edit in the progression's header. See Progressions.
A block lists the program and progression rules it inherits under its own, marked read-only here, with a link to Edit in program settings or Edit in progression settings. An athlete's adjusted copy of a block has no Modifiers section.
Writing a modifier
To give one group lighter loads, for example:
Open the program's panel with Edit and click Add modifier (1 above).
Under If, click A group and pick the group.
Under Then, pick the exercise beside Change: one exercise, or All exercises (All exercises in this block on a block).
Click Weight, choose Change by %, and enter −10.
Click Save modifier. Nothing applies until you save.
Each condition (1) is one of:
A metric: the athlete's value for a metric compared with A value or Another metric. It uses the athlete's latest value on or before the workout date. An athlete with no value yet counts as 0.
A group: the athlete is, or is not, in the group.
One athlete: the athlete is, or is not, that person.
With two or more conditions, choose All of these or Any of these beside Apply when.
What a modifier changes
Under Then, Change (2) picks the exercise the rule applies to. Each change is one row (3):
Swap exercise replaces the exercise, for example Swap to Hip Thrust for one athlete who can't deadlift.
Reps, Weight, Rest, Time, Distance, and the measures under Speed, power, more can be Set to a value, changed by an amount (Change by), or changed by a percent (Change by %).
Custom replaces the set's custom text.
On a block, Example set shows one of its sets before and after the change. A saved modifier saves each field as you change it; the badge reads Saved, or Won't apply yet when the rule has no condition, no change, or points at something deleted.
When two rules can hit the same sets, the row says so ("Stacks with #2") and both apply.
Modifiers in plans
Adding a library program to a plan gives the plan its own copy, modifiers included (see Plans). The copy's modifiers are the ones its athletes get. To change a rule for a plan, open the program inside the plan and edit it there.
Edits to the library program reach the copy only when Keep plans in sync is on in the library program's Enrollments section. Even then, only the blocks' own modifiers travel with the days. Rules in the library program's own Modifiers section are copied once, when the program is added to the plan, so change them in the plan's copy too. See Programs.
Checking what an athlete gets
Open the program's Detailed View and choose an athlete from Preview for athlete (1). Every set shows as that athlete gets it, with modifiers and injury swaps applied (2, 3). Nothing is saved.
Athletes see only the result: the changed sets in their workout, with no mention of the rule. In the training report, a set a modifier changed is marked Modifier and a set swapped for an injury is marked Injury swap.
To change one workout for one athlete, rather than write a rule, use Make adjustments on the workout (see Blocks).
Injury swaps
An injury swap needs no rule. While an athlete has an active injury (see Injuries for recording one), FYTT checks each exercise in their workouts against its injury settings.
Setting up substitutes
Open the exercise in the Library and expand When an athlete is injured (see Exercises):
Ruled out by an injury to: the body parts where a current injury rules the exercise out.
Can be done one side at a time: for single-arm or single-leg work, so a one-sided injury moves the athlete to the uninjured side instead.
Substitutes: exercises in the order FYTT tries them (1).
When a swap happens
If the injury rules the exercise out, FYTT gives the athlete the first substitute their injury doesn't also rule out. If none qualifies, or the exercise has no substitutes, the athlete gets the exercise as written. When the injury gets a rehabilitation date, the swaps stop.
Every body part is checked on a new exercise
Any injury rules a new exercise out until you uncheck the parts that shouldn't. With substitutes listed, that swaps it for every injured athlete, whatever the injury.
Load rules, which turn a percentage into a weight for each athlete, are also set on the exercise. See Exercises.
Why a modifier didn't apply
The athlete had already started the workout. Rules are checked when an athlete starts it; later edits reach only athletes who haven't.
The exercise doesn't match. A rule for Back Squat doesn't touch "BB Back Squat". Pick the exercise from the list, or use All exercises.
The set was swapped first. Injury swaps happen before modifiers, so a rule for an exercise an injury swapped out no longer finds it.
The rule says Won't apply yet. It has no condition or no change, or a metric, group, athlete, or exercise it reads was deleted. Open it and fix or delete it.
The metric value isn't what you expect. A metric condition uses the latest value on or before the workout date, and a missing value counts as 0.
You edited the library program. The plan's copy has its own modifiers; edit them in the plan (see above).
Any vs. all. With All of these, every condition has to hold.



