| Scale | Value | Meaning |
|---|---|---|
| {{ row.label }} | {{ row.value }} |
{{ row.detail }}
{{ row.supporting }}
|
| Minutes | sRPE | Load band |
|---|---|---|
| {{ row.minutes }} | {{ row.load }} | {{ row.band }} |
| Metric | Value | Copy |
|---|---|---|
| {{ row.label }} | {{ row.value }} |
Rate of perceived exertion, usually shortened to RPE, puts a number on how hard effort feels. That matters whenever pace, power, or heart-rate data are missing, delayed, or difficult to compare across different workouts. A felt-effort scale is also useful when the real decision is simple: was this recovery work, steady training, threshold-like effort, or a near-limit set?
This calculator accepts three common effort languages: Borg 6 to 20, CR10 from 0 to 10, and a strength-focused 1 to 10 scale. It turns the selected value into one normalized effort line, then shows matching values on the other scales, an intensity band, a talk-test cue, a strength-equivalent RPE and reps-in-reserve estimate, an optional heart-rate cue, and an optional session load based on minutes.
That makes the result easier to carry between training settings. A runner can stay with CR10, a rehab or clinical user can stay with Borg, and a lifter can stay with strength RPE without losing the ability to compare the same felt effort across those views. The exported table, charts, and JSON record all come from that same single effort entry.
Routine calculation stays in the browser. The main privacy tradeoff is convenience: non-default settings are written into the page address so the same run can be reopened or shared. That is practical for coaching notes and repeat checks, but a copied link can still reveal session settings you might prefer to keep private.
RPE is still subjective. Sleep, heat, pain, caffeine, terrain, stress, and training experience can all change how a given effort feels on a given day. The heart-rate output is an estimate rather than a device reading, and the strength readout stays intentionally conservative by stopping at strength-equivalent RPE and RIR instead of pretending one felt effort can guarantee a fixed percent of one-repetition maximum.
All three supported scales are translated into the same internal effort fraction from 0 to 1. Borg 6 to 20 uses (x - 6) / 14, CR10 uses x / 10, and Strength 1 to 10 uses (x - 1) / 9. The mapping setting then shapes that fraction. Linear leaves it unchanged, Mild bias applies an exponent of 0.85, and Hard bias applies 1.2. That is why the same raw RPE can look gentler or steeper on the response curve without changing the original scale definition.
Once the internal fraction is set, the rest of the page is deterministic. Normalized intensity is the fraction multiplied by 100. Equivalent Borg and CR10 values are reverse conversions from the same fraction. Strength guidance uses a strength-equivalent RPE and an RIR-style cue, while the context selector only changes the wording of the recommendation cards for general conditioning, cardio, or lifting.
The heart-rate path is optional. You can let the page estimate maximum heart rate from Tanaka, Fox, or Gulati, or you can supply a known maximum heart rate directly. If resting heart rate is also valid and lower than maximum heart rate, the page switches to a heart-rate-reserve calculation. If not, it falls back to a straight fraction of the selected maximum heart rate. Session load is separate again: it uses the CR10-equivalent value times minutes, so duration changes load but never changes intensity.
The presets are quick starts rather than separate scoring models. Recovery effort uses cardio CR10 2.5, Steady cardio uses cardio CR10 5, Threshold cardio uses Borg 15, Working sets uses strength RPE 8, and Near max lift uses strength RPE 9.5. Choosing a preset also resets the mapping to linear, after which every field can still be edited manually.
| Optional field | Accepted range used here | What it changes |
|---|---|---|
| Age | 10 to 100 years | Enables age-based maximum heart-rate estimates from Tanaka, Fox, or Gulati. |
| Known max HR | 100 to 240 bpm | Replaces age-based formulas with a direct maximum heart-rate input. |
| Resting HR | 30 to 120 bpm, and below max HR | Switches the heart-rate cue from a plain percent-of-max read to heart-rate reserve. |
| Session length | 0 to 600 minutes | Activates sRPE load, load banding, the snapshot table, and the load-ladder chart when the value is above 0. |
Start with the scale you already trust in training. If your workouts are normally logged as Borg numbers, stay there. If your coaching notes or rehab plan already use CR10, stay there. If you think in lifting effort and reserve, start on Strength 1 to 10. The crosswalk matters most when you need to translate one effort into another context, not when you are deciding which scale is morally correct.
Use the optional fields only when they answer a real question. Add age or a known maximum heart rate if you want a planning cue for cardio intensity. Add resting heart rate if you want that cue expressed through heart-rate reserve. Add session length if you want a cumulative load estimate. If you do not need those outputs, leaving the fields blank keeps the result cleaner and avoids pretending that every workout needs the same level of detail.
The quickest reading order is the Effort Brief tab first, then the Effort Gauge, Response Curve, and sRPE Load Ladder tabs if you need more context. The table export is the simplest record for notes, the chart exports are better when the picture matters, and the JSON tab is the most complete state capture when you want to reopen the same run later.
Advanced only if you want heart-rate guidance, session-load math, or a different mapping curve.Normalized intensity is the cleanest headline number because every cross-scale value comes from it. The Borg, CR10, and strength values are not separate judgments. They are alternate views of the same internal effort position. If you change the mapping, you are changing how fast that internal line rises across the chosen scale, not redefining what the scale is.
| Normalized intensity | Band | Talk-test cue | Best first reading |
|---|---|---|---|
| 0 to 35% | Recovery | Full sentences | Low-stress movement, warm-up work, or easy recovery effort. |
| Over 35 to 55% | Easy | Easy conversation | Comfortable aerobic work that should still feel well controlled. |
| Over 55 to 70% | Steady | Short sentences | Meaningful training effort that remains sustainable with control. |
| Over 70 to 85% | Hard | Short phrases | Focused work where breathing is high and duration usually shortens. |
| Over 85 to 95% | Very hard | Single words | Near-limit effort best saved for short intervals, surges, or top sets. |
| Over 95 to 100% | Maximal | No talking | Limit effort rather than normal training pace. |
The heart-rate cue is easiest to read as a planning anchor. If resting heart rate is valid, the page uses heart-rate reserve. If not, it uses a direct fraction of the chosen maximum heart rate. That estimate is helpful for planning and post-session comparison, but it should not override a measured heart-rate response from a strap, watch, or lab test. The same caution applies to load. sRPE is useful because it combines how hard the work felt with how long it lasted, but the load band is a coaching summary rather than a readiness diagnosis.
| sRPE load | Band | How to read it here |
|---|---|---|
| Under 150 | Light | Usually a manageable internal load. |
| 150 to under 300 | Moderate | Meaningful load, but often recoverable with normal planning. |
| 300 to under 450 | Hard | High load where recovery and next-session timing matter more. |
| 450 or more | Very Hard | Very demanding load where recovery cost rises quickly. |
Strength guidance needs the most restraint. The page can translate any supported scale into a strength-equivalent RPE and RIR, but that does not make a cardio session into a precise lifting prescription. If you choose a strength context while working from Borg or CR10, or choose cardio guidance while working from Strength 1 to 10, the page warns that the crosswalk is approximate. It also deliberately stops short of a fixed percent-of-1RM claim because real loading depends on the lift, rep count, bar speed, and the lifter.
Set the scale to CR10, enter 5, choose age-based heart rate with Age 40 and Resting HR 60, keep Tanaka, and enter 45 minutes. The page returns 50% normalized intensity, which lands in the Easy band. The crosswalk becomes Borg 13.0 and Strength 5.5, which implies about 4.5 RIR. The heart-rate cue is about 120 bpm because the page uses heart-rate reserve, and the session load becomes 225, which sits in the Moderate load band.
Use the threshold preset or set Borg 15 manually, then enter Age 32, Resting HR 58, and 30 minutes with the default Tanaka formula. The page returns about 64% normalized intensity, which reads as Steady on this tool's banding. The crosswalk becomes roughly CR10 6.4, Strength 6.8, and about 3.2 RIR. Estimated heart rate is about 140 bpm, while session load is about 193, still in the Moderate load band. That is a good reminder that load blends intensity and time instead of tracking intensity alone.
Set the scale to Strength 1-10 and enter 9.5, then leave the heart-rate inputs and session length blank. The page reports about 94% normalized intensity, an equivalent CR10 9.4, an equivalent Borg 19.2, and about 0.5 RIR. The effort lands in the Very hard band. Because no duration is entered, no session-load band appears. That is the intended read: the effort crosswalk is defined, but cumulative load still needs time before it can be estimated.
No. It estimates a heart-rate cue from a known maximum heart rate or from age-based equations. It does not read a watch, chest strap, or lab device.
Tanaka is the default general option. Fox is the simple legacy rule of 220 - age. Gulati is an alternative equation derived from exercise testing in asymptomatic women. None of them replaces a measured maximum heart rate if you already know it.
Because the page treats intensity and cumulative load as different things. Intensity comes from the chosen RPE and mapping. Session load is the CR10-equivalent value multiplied by minutes, so duration only affects the load side of the result.
All supported scales are converted into one shared effort fraction first. The strength-equivalent RPE and RIR are the lifting-language version of that same effort, not evidence that the original session was a strength workout.
Because the page keeps the strength result as an effort cue rather than pretending one felt effort maps cleanly to one loading percentage. Real percent-of-1RM estimates depend on the lift, rep count, skill, fatigue, and bar speed.
Routine calculation stays in the browser. The main exposure comes from saved links and exported files, because the page writes non-default settings into the address and lets you copy or download the resulting records.