How it works

The whole algorithm, written out

Not a summary of it. Every rule the coach runs, at the numbers it ships with, including the ones that take weight off you.


The loop

1

Get to the top of your rep rangeEvery exercise has one — a compound sits at 6 to 10. Same weight every session until you hit 10 on all of your sets. 9, 8, 8 reps  →  not there yet, same weight next time

2

And the last set has to be hardTwo reps left in you at most. If you could have done five more, it does not count. 10, 10, 10 reps  →  and the last one was a fight

3

Then the weight goes up one notchThe smallest jump the equipment allows, never a percentage. Your reps drop back down, and you start climbing again. +5 lb  →  back to about 6 or 7 reps

That loop is the whole coach. A rough check-in can hold step 3 back for a day — skipping the check-in never does.

When it takes weight off

−7.5%

Your reps went down twice in a rowAt the same weight, two sessions running. Adding a plate always costs you reps, so that on its own never counts as going backwards.

−5%

You emptied the tank and still came up shortNothing left on the last set and still under 6 reps a set. The weight is ahead of you.

A deload week sits above all of it and freezes the weight on its own.

And how many sets you do

1

It counts your hard setsPer muscle, over the last 7 days. Warm-ups do not count.

2

It checks that against what the muscle can takeToo few and you are only maintaining. Too many and you cannot recover from it.

3

It names one exercise to add a set toAlways a lift you are already progressing on, never one it is backing off.

progress score = rep ratio × recovery
and the gate all sets at the top· last ≤ 2 RIR

That is the whole thing. Everything below is one of those steps in detail.

01Double progression

Every lift carries a rep range. You keep the same weight until you can hit the top of that range on every working set — then the weight goes up and the reps fall back toward the bottom. That drop is the mechanism working, not a bad session, and the engine is built so it never reads as one.

This is the part every tracker leaves to you. The set is stored either way; what changes is whether anything reads four outings of it back and says which of the two things just happened.

02The gate

Two conditions, both required, no exceptions:

Every working setat the top of the range
The last setat 2 RIR or closer

A high score with one set short of the range holds the load. The score can never open the gate on its own — it is advisory, and the gate is binding. That order matters more than anything else on this page: a model that can talk itself into a load increase is a model that will, on the week you slept five hours a night.

03Rep ratio

Where your average set sat inside the range — 1.00 at the top, 0.90 at the bottom. Not distance from the ceiling: the bottom of the range is exactly where the last load increase put you, so it has to score as normal work. On a 6–10 lift:

10 reps a set1.00
8 reps a set0.95
6 reps a set0.90

Anchored the other way — measured against the ceiling — every class scores under the floor just by sitting at the bottom of its own range, and the engine prescribes a load cut on a session that did exactly what it asked for. That is not hypothetical: it is what this one did before it was fixed, on 300 of 598 evaluations of a real four-year log.

04Recovery

The optional check-in, and the only other term in the score. Each answer pulls the multiplier by a fixed amount, then the whole thing is clamped so no single bad night can wipe out a session:

Sleep+0.02per hour above 7 h
Soreness−0.035per point above 2
Stress−0.02per point above 2
Motivation+0.01per point above 3
Clamped to0.80 – 1.05
Left blank1.000

Skipping is free. An unanswered check-in returns exactly 1.000 rather than a guess, so it can never quietly cost you an increase — which is why “Skip and start” is a peer of “Start workout” and not a link underneath it.

05What it decides

The steps at the top, in the order they are actually tested, with what triggers each one. The heading is the word the app will put on the lift.

Deload

DeloadA deload week. Hold the load, cut the volume, stay 4–5 RIR.

−7.5%

Back offReps per set down two sessions running, at a weight that did not go up.

−5%

Back offWent to 0 RIR and still averaged under the bottom of the range.

+1 step

Add loadGate cleared and the score is ≥ 0.95. One equipment increment, once.

Same

Chase repsScore is there, the range is not. Same weight, chase the top of it.

Same

HoldEverything else. Build toward the top of the range before anything moves.

Adding weight is never counted as going backwards. Both back-off lines require the load to have stayed the same or dropped, so a session where you added a plate and lost a rep reads as progress. Without that guard the engine punishes the exact session it just asked for — a machine row went 176 lb × 23 reps, then 190 lb × 22, and was told to back off to 176.

06Ranges, rest and the step up

Every movement belongs to a class, and the class sets the defaults before any of your own overrides:

Heavy compound5–8reps · 3:30rest
Compound6–10reps · 2:30rest
Machine8–12reps · 1:45rest
Isolation10–15reps · 1:30rest
Pump15–20reps · 1:30rest

Rest is a floor, not a target. Under about a minute costs you growth; past 90 seconds nothing further is bought — the longer numbers exist to keep your later sets from falling apart. All of it is per exercise: 3:30 after a heavy squat and 1:30 after leg extensions is one setting, made once, on the exercise rather than on the session.

Barbell5 lb2.5 kg
Dumbbell5 lb2 kg, per hand
Machine and cable10 lb5 kg

The step is what the equipment actually allows, not a percentage, and it depends on the unit as much as on the machine — a pound gym has no 2.5 kg step, so prescribing one tells a 225 lb bench to load 231.5 lb. An increase moves one increment, once. Override it per exercise if your stack is pinned differently or you own microplates.

07Effort

How hard each set is meant to be, in reps left in the tank:

Compounds, 3 sets2 / 1 / 0RIR
Isolation, 3 sets1 / 1 / 0RIR

RPE 10 is 0 RIR, not failure. A rep you missed is logged as a miss and is a different thing. Calling 10 “fail” is how you end up with a log full of 9s and a coach quietly under-loading you for a month.

Self-reported effort is also the least reliable number in the model — trained lifters routinely think they are two reps further from failure than they are — so it corroborates a decision and never triggers one alone. That is why the −5% cut needs the reps to agree with the RIR before it fires.

08Volume

Load is the weakest of the levers. Hard sets per muscle per week is the one that moves growth most, and yours are measured against three landmarks — the middle one being a band rather than a line:

MEVbelow it you maintain
MAVwhere most adaptation happens
MRVmore than you can recover from

At around a dozen sets a week each further set is still buying growth, with the return shrinking as you climb. Every muscle is listed, zeros included — a muscle you have not trained cannot show up in a count of what you trained, which is the whole reason calves go missing for a year.

Then it names the muscle with room and the exercise that should absorb the next set: always one the coach is already progressing, never one it is backing off, with ties broken toward whatever carries the fewest sets.

09Training days and time off

Your plan is a rotation, not a week — an ordered list of workouts with no weekdays attached, so a missed day costs you nothing but the day. Training days is the one number that turns a rotation into a week, and every weekly figure above scales off it:

weekly sets = rotation total × (days ÷ workouts)
5 workouts, training 7 days1.40×

Left on Auto it is counted from your last four weeks rather than guessed, and the app says which of the two it used. Read the rotation total straight and you understate every muscle by up to 40%, which is enough to hide a group sitting past MRV.

Come back from a real break and the prescription waiting for you is the one written the day you last trained. It is adjusted when you open it — never written into your history — and it takes two reasons, because on a long rotation a ten-day gap between outings is simply your normal cadence:

−10%

Off 35+ daysAnd more than 3× the gap this lift usually gets. Opens lighter so you rebuild into it.

−5%

Off 21+ daysAnd more than 2.5× its usual gap.

HOLD

Off 14+ days, and an increase queuedThe load holds and the increase waits — repeat the session once before adding.

Nothing happens under two weeks. Bodyweight lifts have no load to take off, so they only ever hold.

10Deload

Fatigue markers trigger a deload; the calendar only ever asks. Two reasons have to stack and at most one of them can be the date, so a deload always carries a real signal:

Since the last one6 weeksyour setting
Lifts stalled or regressing3 or more
Soreness3.5+persistently
Sleepunder 6.5 h
Sessions trending down4 or more

A deload dropped into the middle of a block purely because it was due produced no growth benefit and measurably cost strength. That is why a due date alone will suggest one and never announce one — and why the week itself holds the load and cuts the volume rather than the other way round. Intensity is what maintains the strength you are trying to keep; volume is what is making you tired.

11What it does not know

The list every app in this category leaves off its own page:

  • Technique. Nothing collects it, so it is not in the score. It used to be, sitting at a constant and pretending to measure something.
  • Your weekly volume, per lift. The per-exercise decision is made in isolation, so it can add load to a muscle already past MRV. The volume screen is where the two get reconciled, by you.
  • Assisted movements. An assisted pull-up logs help, so progress runs down — the engine reads a heavier set as a better one and coaches those two lifts backwards.
  • Whether you took the rest. Nothing records it, so no decision can depend on it.
  • Your actual one-rep max. An estimated 1RM fits a curve to a set you did. Three formulas disagree by up to 8% — only compare figures from the same one, which is why the app names which it used.

12Where it runs

Your prescriptions are computed on the server, against your whole training log rather than the slice your phone is carrying. A second copy of the same engine ships inside the app and is what coaches you with no signal — the two are held to the same rules on purpose, and the set you log in a basement is queued on the device and settled later.

Weight is stored in kilograms end to end, which is why switching a lift to pounds changes what you read and never what is recorded. Four years of history follows the switch, including the halves.

Now put it on a bar

Bring your own rotation. It calls your next load after one session.

Download on the App Store Get it on Google Play