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 RIR on every working set. The format is simple: weight, reps, RIR. A row that reads 185 x 8 @ 2 RIR tells you everything. A row that reads 185 x 8 tells you almost nothing.
Use the RIR column to decide your next session. If last week's top set was 2 RIR, this week is the same weight at 1 RIR or one more rep at 2 RIR. If last week was 4 RIR, 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 RIR 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's lifting templates ship with an RIR column on every set, and a quick-tap input that lets you log it in two seconds. Programs adjust week over week based on the RIR you logged, not just the reps. The Strength block uses a slow RIR drop across mesocycles. The Hypertrophy block uses a faster one with built-in deloads when sets stay above 0 RIR for three sessions running.
The variable was always going to be effort. Forgd just makes it visible.