The full rules

Every rule behind every number.

Anneal's progression engine in full: what triggers each rule, what the app does, a worked example with real numbers, and where you can see the reason. This is the detailed companion to how Anneal decides each weight.

Examples use kilograms and a standard barbell; the app converts to your units and rounds to the plates you own. Last reviewed against the app on October 19, 2026.

The rules at a glance

RuleTriggerWhat the app does
LinearAll sets hit target reps+ increment next session; 3 misses in a row triggers a deload
Double progressionAll sets at current target / top of range+1 rep, or + increment and reset reps; AMRAP of top + 3 skips ahead
TieredA miss at a stageDrops to another set and rep scheme, then max test or restart
UndulatingHeavy, medium and light daysEach day progresses on its own
Stall3 flat exposures with at least 66% volumeOne 90% deload, resume one step lower
Return ramp10+ days away from a liftStart at 90, 85, 70 or 50%, +5% a session, capped at old load
ReadinessScore under 80 (Pro)Fewer accessory sets, top sets -5%, or a mobility offer
Live RPERPE logged mid-workoutRemaining sets move between -10% and +5%

Each rule in detail

Increments below are the defaults and can be changed per exercise. Everything is deterministic: the same history and settings always give the same result.

Estimated one-rep max

Trigger
Any completed working set with a weight and reps. Warm-ups never count.
What happens
One rep counts as the weight itself. For 2 to 10 reps the estimate is the average of the Epley formula (weight x (1 + reps / 30)) and the Brzycki formula (weight x 36 / (37 - reps)). Above 10 reps only Epley is used and confidence is low. If you record reps left in reserve, those reps are added first (up to 12 effective reps). A session's estimate is its best working set. The trend is the best session estimate with older sessions faded by a 30-day half-life. Confidence is high with 3 or more sessions in the last 21 days, medium with 1 or 2, low with none.
Example
60 kg for 8 reps: Epley gives 76.0 kg, Brzycki gives 74.5 kg, so the estimate is about 75.2 kg.
Where you see it
The strength chart on the exercise screen. Low-confidence stretches are drawn dashed, and the reason sheet says how much recent data the estimate rests on.

Plate-true rounding

Trigger
Every target weight, before it reaches the screen.
What happens
The target is rounded to a weight you can load with your gym profile: bar plus symmetric plates, the nearest dumbbell in your range, or the nearest machine step (2.5 kg by default). Normal progression rounds to the nearest weight. Deloads, return ramps and readiness cuts round down. If rounding would erase an intended increase, the increase is carried to the next session instead of being lost.
Example
A +2.5 kg step on a bar with only 5 kg plate pairs cannot be loaded, so the step is carried and added to the next one.
Where you see it
Open "Why this target" on the exercise in Today or your plan. A carried step shows its own reason line.

Linear progression

Trigger
All working sets hit their target reps at or above the prescribed weight.
What happens
Next session adds the exercise's increment: 2.5 kg for upper body, 5 kg for squat, hinge, lunge and carry patterns, 2 kg for dumbbells, 1.5 kg for isolation work. You can override the increment per exercise. Any missed set repeats the weight. After 3 misses in a row, one deload session is scheduled (see stalls).
Example
Squat 3x5 at 100 kg, all sets completed: next session is 105 kg. Miss a set: stay at 105 kg.
Where you see it
Open "Why this target" on the exercise in Today or your plan.

Double progression

Trigger
You finish a session inside a rep range such as 3 sets of 8 to 12.
What happens
One shared rep target applies to every set. If every set reaches the current target, the target rises by one rep, same weight. When every set reaches the top of the range, the weight goes up by the increment and the target resets to the bottom. If any set falls short of the target, the plan repeats. The last set is an AMRAP (as many reps as you can): beating the top of the range by 3 or more reps there skips straight to the next weight. The weight you lifted also has to match the prescription for a set to count.
Example
Bench 3x8 to 12 at 60 kg. Sets of 8, 8, 8: next target is 9 reps at 60 kg. Sets of 12, 12, 12: next is 8 reps at 62.5 kg. Last set AMRAP of 15 (12 + 3): next is 62.5 kg even if the other sets were short of 12.
Where you see it
Open "Why this target" on the exercise in Today or your plan. Rep rises and weight jumps carry different reason lines.

Tiered progression

Trigger
The tiered template (inspired by the GZCL method): heavy, moderate and light lifts each follow their own track.
What happens
Heavy lift: 5 sets of 3+. A miss moves to 6 sets of 2+ at the same weight, then 10 sets of 1+, then a single-set max test the next session aimed 5% above the working weight. The restart is 5x3+ at 85% of the weight you actually lifted in that test, rounded down. Any success adds the increment and returns to 5x3+. Moderate lift: 3x10, a miss drops to 3x8, then 3x6, then the weight rises one increment over where the cycle began and it restarts at 3x10. A success adds the increment. Light lift: 3x15+. A last set of 25 or more reps adds the increment, otherwise it repeats.
Example
Heavy squat 5x3 at 100 kg, miss: 6x2 at 100 kg. Miss again: 10x1 at 100 kg. Miss again: test a single at 105 kg. Lift 105 kg: restart 5x3 at 89.25 kg rounded down, 87.5 kg with 2.5 kg steps.
Where you see it
Open "Why this target" on the exercise in Today or your plan. Each stage change names the new set and rep scheme.

Undulating (heavy, medium, light)

Trigger
A program built on the undulating scheme.
What happens
Three intensity days rotate: by default heavy 4x4, medium 4x8, light 3x12. Each day progresses independently by the double progression rules inside its own rep range, with its own weight, stalls and deloads. A deload on one day never changes another day.
Example
Heavy day moves 100 to 102.5 kg after 4x4 is cleared at the top of its range while the light day is still at 70 kg.
Where you see it
Open "Why this target" on the exercise in Today or your plan.

What counts as a miss

Trigger
Logged reps below the prescribed reps, or logged weight below the prescribed weight, on a working set.
What happens
Grading compares against what the plan prescribed at the start of the session. Warm-ups are never graded. A set with no prescription (backfilled, imported or ad hoc) cannot miss. A set you did not log is absent, not missed: it lowers the completed-volume figure and nothing else. Going lighter than prescribed counts as a miss, never as a success.
Example
Prescribed 3x10 at 60 kg. You log 10, 10, 9: that is a miss. You log 10, 10 and skip the third: no miss, but only 67% of volume was completed.
Where you see it
Open "Why this target" on the exercise in Today or your plan.

Stalls and deloads

Trigger
Double progression or undulating lifts: three exposures at the same weight and rep target where you missed the target, you completed at least 66% of the prescribed volume, and the estimated max moved less than 0.5% from one exposure to the next. Linear lifts: 3 misses in a row. Tiered lifts use their own stage drops instead.
What happens
One deload session at 90% of the last working weight with the same reps, rounded down. Then you resume one increment below the last working weight and build again. Skipped sessions do not count toward a stall. A deload is never followed by another deload until you have completed a normal session. A second stall within 6 weeks adds a suggestion to switch to an easier scheme (linear lifts move to double progression at 5 to 8 reps, double progression widens its range by 2 on the top end). It is only a suggestion: you apply or dismiss it.
Example
Bench stuck at 60 kg for 3 sessions: deload at 54 kg, rounded down to 52.5 kg with 1.25 kg plates. Then resume at 57.5 kg (60 minus 2.5) at the bottom of the rep range.
Where you see it
Open "Why this target" on the exercise in Today or your plan. The deload reason lists the three flat sessions.

Warm-up ramp

Trigger
Generated for each lift from its first working weight.
What happens
Barbell lifts: the empty bar for 10, then 40% for 5, 60% for 3 and 80% for 1. Dumbbell and machine lifts: 50% for 8 and 75% for 3. A step at or below the empty implement, or within 5% of the working weight, is skipped. Warm-ups round down and are excluded from all progression math.
Example
Bench at 100 kg with a 20 kg bar: 20 kg x 10, 40 kg x 5, 60 kg x 3, 80 kg x 1, then work sets.
Where you see it
Warm-up sets appear marked as warm-ups before your work sets.

Time away: return ramps

Trigger
The first session of a lift after 10 or more days since you last trained that lift.
What happens
The ramp restarts you below your last working weight and adds 5 percentage points a session until it reaches your previous load, which it never exceeds. 10 to 21 days: start at 90%. 22 to 35 days: 85%. 36 days to about 6 months: 70%. Beyond about 6 months: 50% of your earlier working weight, with your old numbers kept as targets to reclaim. A high readiness score (80 or more) on the first session back can shorten a 10 to 35 day ramp by one session. Gaps under 10 days never trigger a ramp. The copy never scolds.
Example
Back after 24 days, last working weight 60 kg: session 1 at 51 kg rounded down to 50 kg, then 90% (54 kg, 52.5 kg loadable), then 95% (57 kg, 55 kg loadable), then 60 kg again.
Where you see it
Open "Why this target" on the exercise in Today or your plan.

Readiness shaping

Trigger
Your readiness score is below 80 and you use Pro auto-adjust. The score weights HRV 40%, sleep 30%, resting heart rate 20% and your check-in 10% against your own 30-day baselines, and re-weights when a signal is missing.
What happens
80 and above: no change. 60 to 79: no change, except one accessory set is dropped when the planned session is over 45 minutes. 40 to 59: accessory volume drops by about 20% (never more than 25% of all working sets), top sets stay, and top-set loads are cut 5%, rounded down. Below 40: you are offered a mobility or rest session that still counts toward your weekly ring; if you decline, the 40 to 59 rules apply. Readiness only ever reduces a session and a trimmed session you finish still counts as a success.
Example
Score 45, bench top set 60 kg: top set becomes 57 kg rounded down to 55 kg with 2.5 kg steps, and the last accessory set is dropped.
Where you see it
The readiness strip on Today, and a reason line on every adjusted exercise.

Live RPE adjustment

Trigger
You log an RPE on a completed working set during a workout.
What happens
The remaining unlogged sets of that exercise adjust from the weight you just lifted: reps missed with RPE 9.5 or more, minus 10%; reps missed otherwise, minus 5%; RPE 10, minus 7.5%; RPE 9.5, minus 5%; RPE 7.5 to 9, no change; RPE 6.5 to 7, plus 2.5%; RPE 6 or lower, plus 5%. Cuts round down. Across a whole session the total stays between 10% below and 5% above the first working set, and an increase also cannot exceed 5% above your best prior weight. Increases are blocked while a return ramp, deload, injury re-ramp, break-in or readiness trim is in play. Grading still uses the original prescription, so tapping RPE 10 cannot manufacture a progression.
Example
Bench 3x8 at 60 kg, set 1 done at RPE 10: sets 2 and 3 become 55.5 kg rounded down to 55 kg. Change the RPE to 8 and they go back to 60 kg.
Where you see it
Each adjusted set carries a reason, and editing or clearing the RPE reverts it.

Lifts you add yourself

Trigger
A strength lift you add to a workout that is not part of your active program.
What happens
After your first qualifying session Anneal seeds a double progression from your heaviest working sets: the rep range comes from the fewest reps at the top weight, the weight is rounded down to something loadable, and after that the normal double progression, stall and return rules apply. Away-mode maintenance sessions never advance anything.
Example
You add curls and do 3 sets of 10 at 15 kg. The range is 10 to 13 reps at 15 kg, and the next target is 11 reps.
Where you see it
The "next time" line on the finish summary shows the target straight away.

Block forecast

Trigger
You open the forecast on an exercise.
What happens
The forecast runs the real engine forward 4 to 12 weeks, logging simulated sessions against each prescription, so the projected deloads, increments and ramps come from the same rules above. The shaded band comes from three runs that differ only in assumed progress and success rate. It is a range, not a promise.
Example
A projection might read "A deload is likely around week 6" because the simulated sessions hit the stall rule.
Where you see it
The Forecast section on the exercise screen, with a What if control for sessions a week.

Away mode

Trigger
You declare a holiday, illness, life event or busy period.
What happens
Ring and streak targets scale for the days you are away. The weekly target becomes at least 1 and otherwise the base target times the share of days not away, rounded down. A week with 3 or more away days is paused for the streak. Notifications stay quiet. If you opt in, and it is not an illness, a maintenance session of up to 20 minutes with at most 2 working sets per exercise is available, and it never moves your progression. Coming back, the return ramp applies lift by lift from the real gap since each lift was last trained.
Example
Base target 4 sessions, 2 days away: 4 x 5 / 7 = 2.86, rounded down to a 2-session ring for that week.
Where you see it
The Away mode sheet and the calm Away state on Today.

Injury flags

Trigger
You flag a body region.
What happens
Movement patterns that load that region get no prescriptions at all while it is flagged, and everything else keeps progressing. You declare when it has cleared. Affected lifts then restart at 70% of the pre-injury weight, add 2.5% a session, and stay capped at the old load until two clean sessions are logged. Anneal never prescribes exercises for the injured area or estimates recovery time. It is not medical advice or rehab: see a professional for pain or injury.
Example
Shoulder flagged: overhead and bench presses disappear, squats keep progressing. Cleared, bench was 80 kg: restart at 56 kg.
Where you see it
Open "Why this target" on the exercise in Today or your plan. The re-ramp sessions name the rule.

Break-in for new lifters

Trigger
You told Anneal you are new (or returning after years) and you have completed fewer than 6 sessions.
What happens
Set counts drop by one (never below 2), no AMRAP sets are prescribed, and weights progress at half the usual increment for the first 3 sessions. A muscle you mark very sore holds its volume and load once. After 6 sessions, or 4 check-ins in a row with low soreness, the normal rules take over. Break-in only ever reduces the plan.
Example
A 3x8 plan with a 2.5 kg increment becomes 2x8, and the first successful steps are 1.25 kg.
Where you see it
Open "Why this target" on the exercise in Today or your plan.

Anneal is a training tool, not medical advice. See a professional for pain, injury or health conditions.

Questions

Is the progression random or generated by AI?

No. Every target comes from a fixed rule, so the same history and settings always give the same prescription. Each change comes with a stated reason.

When does Anneal add weight?

With linear progression, after every set hits its target reps. With double progression, after every set reaches the top of the rep range, or after a last-set AMRAP beats the top by 3 or more reps.

What happens if I miss reps?

A set below its prescribed reps or weight is a miss and the weight repeats. Three misses in a row on a linear lift, or three flat sessions on a double progression lift, schedules one deload at 90%.

What happens if I take a few weeks off?

After 10 or more days away from a lift, the first session back starts at 90%, 85%, 70% or 50% of your last working weight depending on the gap, then climbs 5% a session and never passes your old load.

Can low readiness make a workout harder?

No. Readiness only reduces a session, by dropping accessory sets and trimming top-set loads, and total changes are capped.

Where can I see why a weight changed?

Open the Why this target sheet on any exercise. It lists each rule that applied, in plain language, with the numbers it used.

See the reason for every weight.

14 days of everything with no signup and no card, then a free logger for as long as you like, or Pro.

Download on the App Store