Understanding RPE: When to Use It, When to Skip It
RPE works. It's also frequently misused—knowing the difference will save you from chasing a number that means something different every session.
Rate of Perceived Exertion (RPE) is a scale—typically 6–10 in strength training contexts—where 10 is a maximal effort with no reps left in reserve, and a 7 means you had approximately 3 reps remaining. The scale was adapted for weight training by Mike Tuchscherer of Reactive Training Systems and has since been validated as a reasonable proxy for percentage-based loading in trained lifters.
RPE accuracy is messier than the tool implies. Lifters systematically underestimate RPE, especially on sets far from failure. A set that felt like an 8 often turns out to have been a 6 or 7. This narrows with training experience, but even competitive powerlifters show meaningful variance between perceived and actual effort. RPE works better as a relative measure across a training block than as an absolute one.
Where RPE adds real value is in daily autoregulation: adjusting loads on days when fatigue, stress, or poor sleep has degraded your readiness. If your 80% target feels like an RPE 9 on Monday, RPE programming lets you drop to 77–78% without violating the program. Percentage-only programming gives you no legitimate mechanism to handle that variation.
RPE is less useful for true beginners. An inexperienced lifter's effort rating is unreliable because they lack a reference point for close to failure on competition lifts. Running linear progression with fixed percentages for the first 6–12 months is more appropriate—adding weight when the target reps are made, deloading when they aren't.
Using percentages as the structure and RPE as a quality check is probably the most practical setup. If your working sets consistently feel like RPE 7 or below, the training max may be too conservative and can be bumped. If they're hitting 9+ on anything other than AMRAP sets, back off. LiftProof logs your working sets with an optional RPE field — enough data to run this check without committing to full RPE programming.