Substituting an Exercise
Swap an exercise mid-workout when something hurts or equipment is unavailable.
client guide/workout-tracker
What this is for: Don't skip the workout — pick a smart alternative that hits the same muscle group.
When to substitute
Real-life reasons:
- The squat rack is taken — no barbell back squat.
- Your shoulder is twingy — barbell bench is sketchy.
- You forgot your dumbbells.
- The exercise just doesn't feel right today.
Don't skip the muscle group — substitute.
Step-by-step
- In the execution screen, on any exercise card, tap Substitute Exercise.
- The
ExerciseSubstitutionmodal opens. - The system shows alternatives from
/api/exercises/alternatives. Each alternative is filtered to:
- Same primary muscle group (e.g. chest)
- Compatible equipment (or "anything available")
- Similar difficulty
- Tap the alternative you want.
- The current exercise is replaced for THIS session only — the program template is not modified.
- Continue your workout.
How alternatives are picked
The /api/exercises/alternatives endpoint scores candidates by:
- Muscle group overlap (primary + secondary)
- Equipment match
- Movement pattern (push / pull / squat / hinge / carry)
- Difficulty within ±1 of original
Top 5-10 results are shown. The original sets / reps / RPE targets are kept.
What your trainer sees
Your session log marks the substitution explicitly:
- Original exercise name struck through.
- Replacement name shown.
- Tag:
[substituted].
If you keep substituting the same exercise repeatedly, it's a signal — message your trainer about it.
Permanent vs one-time
- One-time substitution — just pick from the modal. Affects this session only.
- Permanent change — ask your trainer to update the workout template. They can edit it for all future occurrences.
Common pitfalls
Where to find this
- Trigger: any exercise card during workout → Substitute Exercise.
- Component:
ExerciseSubstitution. - API:
GET /api/exercises/alternatives(query params:exerciseId,equipment).
Was this article helpful?
