All guides

Programming 6 min read

Programming 101: Sets, Reps & Progression

How sets, reps, and load fit together into a plan that keeps working, from simple linear progression to classic templates.

The three dials: intensity, volume, frequency

Every program, no matter how exotic it looks, is set by three dials. Intensity is how heavy the weight is, usually expressed as a percentage of your one-rep max (1RM). Volume is how much total work you do, roughly sets times reps times load. Frequency is how often you train a lift or muscle per week.

The dials trade off against each other because recovery is finite. Turn intensity way up and you must turn volume down, which is why nobody does ten sets of ten at 90%. A program is just a deliberate setting of these three dials aimed at a goal, plus a rule for turning them up over time.

When you understand the dials, program hopping stops making sense. Two programs with similar settings will produce similar results, whatever their names are.

Rep ranges and what they train

The number of reps you can do in a set is tied to how heavy the weight is, and different rep ranges emphasize different adaptations. Sets of 1 to 5 reps at roughly 80 to 95% of 1RM are best for maximal strength, because they let you practice producing high force. Sets of 6 to 12 at roughly 65 to 80% are the classic hypertrophy zone, packing a lot of hard work into each set. Sets of 15 and up at lighter loads build muscular endurance.

These are emphases, not walls. Heavy triples still grow muscle and sets of ten still build strength, especially for beginners. The ranges tell you where each adaptation is most efficient, not where it exclusively lives.

Rest matters too. For heavy strength sets, rest 3 to 5 minutes so each set is done fresh. For hypertrophy work, 1.5 to 3 minutes is typical. Cutting rest short mostly just reduces how much weight you can handle on the next set.

  • 1-5 reps at 80-95%: maximal strength
  • 6-12 reps at 65-80%: muscle growth
  • 15+ reps under 60%: muscular endurance
  • Rest 3-5 min for heavy work, 1.5-3 min for volume work

Linear progression: the beginner default

Progressive overload says training must get harder over time. The simplest way to arrange that is linear progression: do the same sets and reps every session and add a small amount of weight each time, typically 2.5 kg on upper-body lifts and 2.5 to 5 kg on lower-body lifts.

Beginners can progress this fast because they recover between sessions and because early gains are largely neurological, meaning the body is learning to use muscle it already has. As long as adding weight keeps working, nothing more clever is needed, and switching to something fancier early actually slows you down.

When you fail to complete your reps, do not panic. Repeat the weight next session. If you fail it three sessions in a row, drop the weight by about 10% and build back up. Often you will blow past the old sticking point.

Why and when to periodize

Eventually session-to-session jumps stop being recoverable, because the stress needed to drive adaptation now exceeds what you can bounce back from in 48 hours. Progress does not stop, it just needs a longer wavelength. That is all periodization is: organizing overload over weeks instead of days.

A typical block might spend three weeks pushing volume or intensity up, then reset slightly higher than where the last block started. You are still doing linear progression, just measured in weeks. More advanced schemes wave intensity and volume against each other, but the logic never changes: apply rising stress, allow recovery, repeat.

The practical signal to periodize is simple. If you have deloaded, fixed your sleep and food, and still cannot add weight session to session, you have earned a weekly progression model.

Classic templates, decoded

A few famous programs show the dials in action. 5x5 programs like StrongLifts or Starting Strength variants have you squat, press, and pull for five sets of five, adding weight every session. High frequency, moderate volume, session-to-session linear progression: a pure beginner design.

Wendler 5/3/1 works in monthly cycles based on 90% of your 1RM. Each week you work up to one heavy top set (5+, then 3+, then 1+ reps), then take a deload week, and add 2.5 to 5 kg to your training max for the next cycle. Progression is monthly and submaximal, built for lifters who can no longer add weight every session.

Smolov Jr is the opposite extreme: a three-to-four-week specialization block with four sessions a week on one lift at high volume and rising intensity. It works by deliberately overreaching then tapering, and it is brutally unsustainable by design. Compare the three and you can see there are no secrets, only different settings of intensity, volume, and frequency for different stages.

Deloads: scheduled recovery

Fatigue accumulates faster than fitness. After weeks of hard training you carry residual tiredness that masks the strength you have built. A deload is a deliberately easy week, commonly the same lifts at 50 to 60% of normal weight or half the usual sets, that lets fatigue drain away while fitness stays.

Take one roughly every 4 to 8 weeks of hard training, or whenever the signs pile up: weights feel heavier than they should, sleep worsens, joints ache, motivation drops. Deloading feels like wasted time and is the opposite. Lifters who refuse to deload eventually get deloaded by injury instead.

  • Deload = same movements, about 50-60% of normal load or volume
  • Schedule one every 4-8 hard weeks, or when performance and mood dip
  • You are shedding fatigue, not losing fitness

Test days: proving the progress

Training weights are not the same as maximal weights, especially on submaximal programs like 5/3/1. Every few months it is worth testing: work up to a heavy single, or a rep-max you can compare to an old one, and use the result to reset your training percentages.

Test at the end of a cycle, after a deload, when fatigue is low. Do not test weekly. Maxing out is a stress with a poor stimulus-to-fatigue ratio, and chasing daily maxes is the fastest way to stall a program. Test rarely, train mostly, and let the boring weeks do the work.