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.