Your log knows if you actually trained to failure.
In-session effort perception lies. Eight to twelve weeks of logged outcomes don't. Here's how your training history cross-examines the RPE 10 you wrote down.
Ten weeks of RPE 10, and the bar never moved
Ten weeks. Every incline press top set logged at RPE 10, a few of them starred, the sets you'd have sworn were failure. And the weight sat at 90 for 6 the whole time. Same load, same reps, same grind-face across the block.
The uncomfortable part: the RPE 10 was a feeling, and the feeling was wrong. Not lying-to-yourself wrong. Wrong the way effort perception is wrong for almost everyone under a loaded bar, in the moment, with adrenaline doing its job. You stopped the set convinced you'd hit the wall. The next ten weeks disagree.
Effort is a claim. The log is the audit.
Effort is a claim you file at the moment of the set. Whether the claim was true is a question only the following weeks can answer. Call it the effort audit: the block's outcome cross-examines the RPE you wrote down, one rep at a time, long after you've forgotten how the set felt.
A genuine RPE 10, repeated across a block with adequate volume and recovery, moves something. Estimated 1RM. Rep PRs at a fixed load. The weight you can hit at a fixed RPE. When a set actually takes you to the edge, adaptation is the receipt. No receipt, no purchase.
The in-session fix asks a broken instrument to check itself
Almost every attempt to fix effort accuracy happens inside the set. Reps-in-reserve cues, tempo tricks, a spotter yelling two more, a velocity unit beeping when bar speed drops past a threshold. All of it tries to make the lifter perceive failure better in real time.
And that project is mostly doomed. Proximity to failure is exactly the variable trained lifters read worst, because years of training teach you to tolerate discomfort, and tolerance blunts the signal you're trying to feel. So you stop on a sensation that a hundred prior sets calibrated, and most of those also stopped a rep or two early. Asking the same nervous system to grade its own effort in the moment is asking a broken instrument to check itself.
What the research actually says about feeling failure
The evidence on effort perception isn't subtle. Zourdos and colleagues built the RIR-based RPE scale in 2016 precisely because raw "how hard did that feel" ratings were too noisy to program against. Work by Hackett and colleagues found trained lifters routinely stop sets believing they're at or near failure while still holding real reps in reserve, often by a meaningful margin. The error isn't random noise either. It's systematic, and it runs in one direction.
The other half matters just as much. Refalo and colleagues' 2023 systematic review in Sports Medicine found training closer to failure carried a small additional hypertrophy benefit, while strength gains were largely indifferent to how close to failure the sets landed. Read those two findings together and the picture sharpens: lifters can't feel failure reliably, and the exact distance to it matters less than whether the block produced adaptation at all. The outcome is what you can trust. The feeling comes with too much noise to program against.
Don't collapse three different questions into one
Effort verification (did that set actually reach failure?) is not RPE calibration drift (has your sense of RPE 8 slid over months?) and not plateau detection (is load or volume the thing that stalled?). Same log, three different reads. This piece is about the first, and it uses multi-week outcome data to test a single-session effort claim. Cross-examine with the wrong signal and you'll deload when you should push, or pile on volume when volume was never the problem.
Two lifters, same logged RPE, different truth
Two lifters, same hypertrophy block, identical intensity on paper. Both write RPE 9 to 10 on their incline top sets for ten weeks.
Lifter A's e1RM creeps: 84, 85, 86, 88 kg across the block, rep PRs showing up at fixed loads, the fixed-RPE weight drifting north. Lifter B's e1RM sits: 90, 90, 89, 90, a flat line with a little noise. Same RPE column. Completely different truth underneath it.
You already know which one trained hard. The RPE column can't tell them apart, but the outcome column screams. Lifter B wasn't sandbagging on purpose. He hit a hard-feeling set, stopped, wrote 10, and repeated a stimulus his body had already grown around three reps earlier. Week after week, the log caught what his nervous system couldn't feel in the moment.
The set felt like failure. The eight-week trend says it wasn't.
Change what you audit and you change what you fix
If effort is a claim the block settles, the useful question at the end of a mesocycle stops being 'did my sets feel hard.' It becomes 'did the sets I called hard actually cash out.'
For most intermediate and advanced lifters, that reframes the entire troubleshooting flow. A flat block behind a wall of logged RPE 10s isn't a recovery problem or a program problem first. It's an effort-verification problem. The reps you thought were at the edge were a rep or two shy, over and over, and no amount of extra volume fixes a distance-to-failure error you can't perceive live. The retroactive read is the one that isn't lying to you.
A log that makes the RPE and the outcome argue
This is a read a training log hands you for free, if it plots the right things next to each other. Most trackers store the RPE and store the load and never make them argue. You end up scrolling a list of numbers instead of watching the block cross-examine itself.
Platepusher lays logged RPE against the estimated-1RM trend it should have produced. When a run of RPE 10 sets rides alongside a flat strength line, the app surfaces it. No judgment, no coaching, just the math the block already ran. The instrument hands back what your own work recorded. What you do with a fortnight of maxed-out sets that never moved the bar is your call, and you'll be making it from the outcome data instead of a memory of how the sets felt.
What we're tracking next
The open question is how much of this an app should automate versus simply surface. Velocity-based training promises an in-session objective read on proximity to failure, and the hardware keeps getting cheaper. If bar-speed data becomes routine in the log, the effort audit gains a second witness: real-time velocity drop-off sitting next to multi-week outcome. We're watching whether that pairing tightens the read or just adds one more number lifters learn to game. Worth a follow-up once velocity data in real logs is dense enough to say something honest.
See what your last twelve weeks actually say about your effort. Platepusher lays logged RPE next to the estimated-1RM line, so the block audits the set for you. The free tier ships full history and CSV in and out.
Built for lifters with multi-year logs who already know what RPE 10 is supposed to feel like. The app doesn't grade your effort. It plots logged RPE against the estimated-1RM trend across the block, so a stretch of maxed-out sets that never moved the bar shows up as exactly that.