Add reps before weight.
Double progression is the boring rule that keeps a workout log honest: keep the weight, add reps inside the target range, and only increase the load after every working set reaches the top.
Written and maintained by Alex Tirim, founder of RepStack — this is the rule his own training log runs on. Published June 10, 2026.
The rule
Do not add weight just because the calendar changed.
A useful progression rule should answer one question before the next session starts: should the lifter keep the load, add reps, add weight, or back off? Double progression answers that without pretending strength moves in perfect weekly steps.
If your target is 3 sets of 8-12, a session of 80 kg x 10, 9, 8 does not earn more weight. It earns the same weight again, with a better rep target. A session of 80 kg x 12, 12, 12 earns the next load jump.
The next-session decision
Example target range: 3 working sets of 8-12 reps
If
Any working set misses the bottom of the range
80 kg x 8, 7, 6
reduce or hold
If
Sets are inside the range but not all at the top
80 kg x 12, 10, 9
add reps
If
Every working set reaches the top of the range
80 kg x 12, 12, 12
add weight
Stop chasing progression if technique breaks, pain changes the lift, or the load jump is too large for the equipment.
Logbook example
The win is clearer before the bar gets heavier.
Session 1
80 kg x 9, 8, 8
Keep 80
Build reps inside the range.
Session 2
80 kg x 11, 10, 9
Keep 80
Progress happened, but the last set is not at 12.
Session 3
80 kg x 12, 12, 12
Add load
All working sets reached the top.
Session 4
82.5 kg x 10, 9, 8
Keep 82.5
The new load resets the rep climb.
Evidence note
The evidence supports progression. The exact rule is an implementation choice.
The American College of Sports Medicine's 2009 position stand on progression describes progressive overload, specificity, and variation as core resistance-training principles. It does not say every lifter should add load every week. Load, reps, sets, rest, velocity, and training status all affect the prescription.
More recent work points the same direction. A 2021 network meta-analysis by Lopez and colleagues found that adults doing resistance training built muscle across a broad load range when work was hard enough, while heavier loading remained more specific for maximal strength. A 2022 umbrella review of hypertrophy variables reached the same conclusion across rep ranges, and Grgic and colleagues' meta-analysis found training to failure is not required for most strength or size gains. That is why the rule here is conservative: earn the load jump instead of forcing it.
When it fails
Double progression is not a fix for every stall.
The jump is too large
Some dumbbell racks jump by 5 kg per hand. In that case, the next weight may be too big even after the range is complete. Use smaller jumps, more reps, slower tempo, or a different movement before pretending the jump is earned.
The exercise changed
A machine row, chest-supported row, and barbell row should not share one progression history. The exercise identity has to stay stable for the log to mean anything.
Technique is degrading
Reps only count if they are comparable. If every extra rep is shorter, sloppier, or more dependent on momentum, the log is recording a different lift.
Pain changes the lift
This page is not injury advice. Stop chasing progression and get qualified help if pain changes your setup, range of motion, or willingness to load the movement.
How RepStack runs this rule
The diagram above is the engine that picks your next session.
RepStack's progression engine walks a fixed ladder over your logged sets before every workout. These are the actual triggers, from the code that ships in the app:
-
1
Every working set reaches the top of the range
Weight goes up by the smallest practical jump — 2.5 kg on a barbell, 2 kg on dumbbells (5 lb in pounds) — and the rep target resets to the bottom of the range.
-
2
Any working set lands below the bottom of the range
The weight holds. The target is the range bottom on every set.
-
3
Two sessions in a row below the bottom
The load drops 10% so you can climb back instead of grinding.
-
4
You rate a session “too hard”
Same call: 10% off the bar next time, reps rebuilt from the bottom.
-
5
Your estimated 1RM is flat across 4 sessions
A 10% reset, but only if your reps are not already at the top — a plateau at max reps is not a stall, it is one session away from a weight jump.
-
6
Three identical sessions — same weight, same reps
The engine changes the stimulus instead of the load: heavier weight for sets of 6 if you were working at 8 or above, lighter for sets of 10 if below.
-
7
Rebuilding after a deload, every set back at the top
It skips the slow climb and returns you straight to the pre-deload weight.
That is product logic from your workout history. It is not a diagnosis, recovery score, injury screen, or proof of your true one-rep max — the estimated 1RM behind triggers 5 and 6 is a coaching estimate from your logged sets, nothing more. The full math behind that estimate, and the Strength Score it feeds, is documented on the Strength Score methodology page.
Free on iOS — double progression is not paywalled.
The bottom line
The bar earns weight. The calendar does not.
Pick a range, log every working set honestly, and let the log make the call: reps first, weight second, 10% off when two sessions in a row say the load is lying to you. Most lifters who stall are adding weight on a schedule. Most lifters who keep progressing let the reps set the schedule.
Sources
What this page is based on.
- ACSM 2009 position stand on resistance-training progression
- Lopez et al. 2021 network meta-analysis on training load
- Grgic et al. 2022 meta-analysis on training to failure
- Bernardez-Vazquez et al. 2022 umbrella review on hypertrophy variables
Spotted an error? Email [email protected]. Factual errors are corrected within 48 hours, with a visible note on this page.