Programming · 4 minute read

Why your "perfect" program is failing you

You picked the program based on Reddit consensus or a YouTube breakdown. You're hitting the prescribed sets and reps. The bar isn't moving. The mirror isn't moving. The program "isn't working."

The program is fine. You're not training close enough to failure.

The variable nobody logs

Every coaching app worth using tracks weight, reps, and sets. Most lifters can recite their volume to the rep. Almost none of them log RIR (reps in reserve), and that omission is why programs that work in studies stop working in real gyms.

A set with 5 reps left in the tank produces a fraction of the muscular tension needed to drive hypertrophy. A set with 1 RIR produces almost all of it. The research keeps converging on the same finding: stimulus scales steeply with proximity to failure, and below 3 RIR most of the gain disappears. You can do 20 sets a week of clean reps that stop too early and end up with nothing to show for it, while a lifter doing 10 hard sets at 1 RIR makes steady progress.

Why this happens

Three reasons.

First, RIR is uncomfortable. Two reps from failure is the part of the set that hurts. The brain treats discomfort as a problem to solve, and the nearest solution is to rack the bar.

Second, the cues you grew up with were calibrated for safety, not stimulus. "Stop with one good rep in the tank" is good advice for a beginner who doesn't know what failure feels like. It is not advice that produces growth in year three.

Third, intensity is invisible after the fact. A logbook shows 8 reps at 185. It does not show whether those 8 reps were hard 8s or pillow 8s. Without RIR, you cannot tell the program from your effort, and so the program takes the blame.

How to start logging it

Calibrate by taking one set per session to honest failure. The number of reps you got past your "hard" feeling is your previous RIR. Most people learn they were 4 to 6 reps off.

Once calibrated, log your effort on every working set. Forgd captures this as RPE (rate of perceived exertion) and shows the reps-in-reserve equivalent right beside it, since they are the same scale read from opposite ends: an RPE of 8 is about 2 reps in reserve. The format is simple: weight, reps, and a one-tap effort score. A row that reads 185 x 8 at RPE 8 (2 RIR) tells you everything. A row that reads 185 x 8 tells you almost nothing.

Use that effort score to decide your next session. If last week's top set was RPE 8 (2 in reserve), this week is the same weight at RPE 9 or one more rep at RPE 8. If last week was RPE 6, you have permission, and the obligation, to push.

What changes when you do this

Programs you previously called "broken" start working. Volumes you assumed were too low produce more growth than the high-volume blocks you abandoned. Your body recovers, because the systemic load comes from intensity, not from bloated set counts.

You also stop program-hopping. Most program changes are emotional reactions to slow progress that was caused by under-stimulus, not by a flawed program. When you can see your effort in your log, the diagnosis is obvious. Either the bar moved and the program is working, or you trained too cautiously and you owe yourself a harder week.

The Forgd default

Forgd logs effort as RPE on every working set, with a quick-tap input that takes about two seconds and shows the reps-in-reserve equivalent next to it, so you can log in whichever scale you think in. As you log, its per-exercise suggestion card reads your recent sessions and proposes the working weight for the next one: it adds load when a set felt easy, holds when it was hard, and prescribes a lighter recovery week once you have ground out three sessions at or near failure. It is a suggestion you approve, not an automatic rewrite of your program.

The variable was always going to be effort. Forgd just makes it visible.

← Back to the Journal