Skip to content
TrainDash
All articles

Training

RPE, RIR and your 1RM: the one scale everything runs on

What RPE and RIR mean, how a rating converts to a percentage of your max, what the evidence says about how accurate that is, and how TrainDash reads a one-rep max off a set.

TrainDash11 min readLire en français

Every strength program has to answer one question before it can say anything else: how heavy? Percentage programs answer it with a number you tested once, months ago, on a day that may not have been representative of anything. Effort-based programs answer it with a rating you give after the set — and it turns out that rating carries most of what a percentage table knows, plus one thing it never could: how you are today.

This article is about that rating. What RPE and RIR are, how a set at a given RPE converts to a share of your one-rep max, how far to trust the conversion, and how TrainDash uses all of it to price a session without ever asking you to test a max.

What the research says

The scale is reps in reserve, read backwards

The RPE scale strength coaches use is not the 6–20 breathing-and-heart-pounding scale from endurance physiology. It is Mike Tuchscherer's adaptation for lifting, published in the Reactive Training Manual (2008): a 1–10 scale anchored to how many more reps you could have done. RPE 10 means none. RPE 9 means one more. RPE 8 means two. Below about 6 the scale stops meaning much, because nobody can tell four reps in reserve from six.

So the two notations are the same number: RIR = 10 − RPE. Eric Helms and colleagues formalised that reading for resistance training and argued for prescribing with it (Helms et al. 2016), and Zourdos and colleagues validated the RIR-based scale in the squat and the bench: ratings tracked proximity to failure closely, and did so better in trained lifters than in novices (Zourdos et al. 2016). The field settled on the concrete count rather than the abstract feeling because a rep left in the tank is something a lifter can actually picture; "how hard was that, out of ten" is not.

The grid: about three percent per point

Put reps on one axis and RPE on the other and each cell is a percentage of your one-rep max. There is essentially one chart in circulation — Tuchscherer's — and Helms uses the same numbers under an RIR label, so there is nothing to choose between. An excerpt:

RepsRPE 10RPE 9RPE 8RPE 7
1100 %95.5 %92.2 %89.2 %
392.2 %89.2 %86.3 %83.7 %
586.3 %83.7 %81.1 %78.6 %
878.6 %76.2 %73.9 %71.7 %

Two things about this table matter more than any single cell. Each RPE point costs about 3 % of the bar, and that cost is flat across the rep range: from RPE 9 to RPE 8 is 3.3 % on a single, 2.9 % on a set of three, 2.6 % on a set of five. And each extra rep at the same RPE costs a similar amount — a set of five at RPE 8 sits where a set of three at RPE 7 does. The regularity is not an accident of the chart; it is why the chart works as a two-way conversion. Read one way, a target of five at RPE 8 means about 81 % of your max. Read the other way, 100 kg for five at RPE 8 means a max of about 123 kg. Stronger By Science's survey of the reps-to-percentage relationship across the literature lands on the same shape (Stronger By Science, reps and percentages).

The published grid covers reps 1–10 at RPE 6.5–10. The RPE 6 column and the rows past ten reps that many calculators show are extrapolated along the same diagonal — internally consistent, but independent implementations diverge past the published region by about a point.

What a set can and cannot tell you about your max

The grid lets you estimate a max from a submaximal set. The literature is clear about where that estimate is good and where it is not.

It is good at low reps and gets worse as reps climb. The classic accuracy study found that prediction equations landed within about 3 % of a tested max only when the set was in the 2–10 rep range (LeSuer et al. 1997, Journal of Strength and Conditioning Research), and later work recommends keeping estimates to sets of ten or fewer (Reynolds et al. 2006, Journal of Strength and Conditioning Research). Past ten reps a set is telling you about work capacity, not about your ceiling.

Even at low reps, the answer is a band, not a point. A meta-regression across 7 289 people found that the number of reps a person gets at a given percentage of their max varies enormously between individuals — a standard deviation of about 2.5 reps at 80 % of 1RM, widening to about 4.4 reps at 60 % — and that sex, age and training status explained almost none of it (Nuzzo et al. 2023). The often-quoted "±2–3 % at low reps" is a group average. Until your rep-to-percentage curve is known, a strength-y lifter is being under-predicted by the grid and an endurance-y lifter over-predicted, and the honest thing a calculator can do is show a range.

The rating itself carries error. Most people, most of the time, feel closer to failure than they are: they under-predict how many reps they have left, by four or five reps in novices and by one or two in trained lifters, and the error is worst far from failure and at higher rep counts (Steele et al. 2017; Hackett et al. 2017). The encouraging half of the same literature is that accuracy is governed by proximity to failure, not training age — everyone, novices included, rates zero to three reps in reserve far better than four or more, and a lifter's accuracy inside a set does not depend on their training status (Remmert et al. 2023). It is also trainable within weeks. So the useful rule is not "beginners cannot use RPE"; it is "nobody's RPE means much more than three reps from failure".

A true max is not rated 10. When lifters actually test a one-rep max and rate it, the average rating comes out around 9.6–9.7 (Helms et al. 2017), so the chart's 100 % = RPE 10 anchor slightly overstates real behaviour at the very top. And the most honest framing of the whole approach comes from the same group: RPE's value is in choosing the load and reacting to the day, not in being a more accurate way to estimate a max than a rep-max formula — it is not (Helms et al. 2018). No submaximal method is accurate in an absolute sense. What RPE buys is a program that flexes with you. It also follows that when the point is to read a max, a maximal set — even one of five or six reps taken to RPE 10 — is worth more than a submaximal one rated somewhere between 6 and 9.

How TrainDash does it

Everything above is priced into the app in five decisions. None of them asks you for anything you would not log anyway.

The weight is discovered, not stored

Every prescription in a TrainDash program is reps @ RPEfive at RPE 8, three at RPE 9 — and the kilogram on the card is computed at the moment you look at it, from your current estimated max and the grid, rounded to plates that exist on your bar. There is no percentage of a number you typed in once. A block written on Monday re-weights itself if your estimate moves before week three, and the top set you actually hit on the day overrides it entirely. Say the card asks for 100 kg for six at RPE 8 and the set feels like a 7: your estimated max moves up and the remaining sets of the session get heavier off the same grid (and, if it holds, so do the coming weeks). Rate it a 9 and the sets that follow come down. The set you just did is the most current information about you there is, and the app reads it that way.

Two gates before a set counts

The estimator reads a set only if it clears both of the gates the literature above draws, and the two are independent. A set past ten reps is a capacity reading: it goes to a separate number the app keeps for your work capacity and never touches your one-rep max, however hard it was. A set rated under RPE 6.5 is too far from failure to read anything off, however few reps it took.

That second gate is why the RPE widget in the logger does not present 6 as one more notch on an even scale. RPE 6 and RPE 6.5 are not half a point apart in consequence — one feeds your max and the other is discarded — so the bottom of the scale is its own labelled button, and a set that lands there on a row that was meant to measure earns an offer of one more set that would read: fewer reps if the rep count was the miss, more weight if the effort was. Never a nag on a row the plan itself prescribed outside the gates — a return week's opening sets are deliberately there.

One number per lift, moved carefully

Each qualifying set gives an estimate — load ÷ P(reps, RPE) — and a trust weight: full trust for one to five reps, discounted at six to eight, heavily discounted at nine and ten; full trust at RPE 7 and above, discounted at 6.5. A session's estimate is its highest-trust set, and the number you see is a trust-weighted moving average over sessions: one heavy, well-rated session moves it about 30 % of the way toward what it implied, a light high-rep session barely nudges it, and there is no decay with time — a real layoff is priced by the return logic, not by a clock.

Two guards ride on that average. A light-by-choice set can raise your max but never lower it. If you overshoot the prescribed reps at or under the target RPE — eight reps at RPE 8 where five were asked — the bar was light, not you weak, so the set is a lower bound: it may pull the estimate up, it is dropped if it would pull it down. And the estimate is shown with its band: ±3–4 % of 1RM when the last contributing set was heavy work, ±5–7 % when it was light or high-rep, which is the Nuzzo finding rendered as a range rather than hidden behind a decimal point.

A first session with no number at all

Because the plan stores reps @ RPE, it needs no max to exist. A lift you have never measured is a legal, fully designed lift whose rows simply render without a weight, and its first session opens with a discovery set: a rep target and an effort target, no load, warm up on an open ramp and log the set that lands on the asked effort. The moment it is logged, every row in the session is priced off it. The app does not invent a number and pretend; the first honest set is the number.

Where the estimate learns

The grid is a population prior, and the Nuzzo result says the population is wide. So the app fits your own rep-to-percentage curve per lift, re-estimated at every block boundary and, for a lifter training without a program, every six qualifying sessions — the curve moves the level of the grid for you while keeping its shape. The one thing it deliberately does not learn from your ratings alone is a rating bias: a lifter who has under-pushed from day one produces loads that agree perfectly with their own ratings, so that correction comes only from an objective read — a rep-out the plan schedules and reads with no RPE in it. That is the subject of the next article.

Try the arithmetic

The grid, the estimate and its band are on the strength calculators page: estimate a max from any set, or convert reps and RPE to a percentage and read the full chart with its extrapolated cells marked. It is the same arithmetic the logger runs, re-implemented on the static site and pinned to the app's own tables by a test.

Every set you log in TrainDash carries this number, and every load it suggests is priced off it — the logger, the check-in and the estimated max are free, on or off a program. Create a free account — no card needed. The app opens to new lifters in January; until then, the button below this article leaves you an address to be told on the day.

Sources

Train on a plan that answers back

The logger, the check-in and the in-session coach are free forever. Set up one lift and see what it says at the end of the week.

Coming January 2027

Keep reading