How often it counts the set right.
Current tracker counts compared with the counts lifters saved.
Data covers to .
One rep makes the difference.
Demonstration: tracker 7, saved count 8.
An illustrative example, not a recorded set.
Loaded . Totals include all captured tracker versions.
422 Matched saved count
204 Did not match
Set agreement. Each set is counted once.
Count agreement by exercise. Rep differences share one scale: missed left, extra right. Saved counts are lifter reports, not independent video labels.
- Exercise
- pulldown_pullup
- Sets
- 106
- Matched
- 87 / 106
- Missed reps
- 59
- Extra reps
- 4
- Rep difference
- Exercise
- curl
- Sets
- 105
- Matched
- 72 / 105
- Missed reps
- 90
- Extra reps
- 15
- Rep difference
- Exercise
- bench_press
- Sets
- 92
- Matched
- 64 / 92
- Missed reps
- 44
- Extra reps
- 19
- Rep difference
- Exercise
- deadlift
- Sets
- 67
- Matched
- 44 / 67
- Missed reps
- 27
- Extra reps
- 16
- Rep difference
- Exercise
- lateral_raise
- Sets
- 61
- Matched
- 37 / 61
- Missed reps
- 53
- Extra reps
- 25
- Rep difference
- Exercise
- row
- Sets
- 58
- Matched
- 27 / 58
- Missed reps
- 97
- Extra reps
- 19
- Rep difference
- Exercise
- squat
- Sets
- 50
- Matched
- 45 / 50
- Missed reps
- 5
- Extra reps
- 2
- Rep difference
- Exercise
- triceps_extension
- Sets
- 45
- Matched
- 22 / 45
- Missed reps
- 95
- Extra reps
- 8
- Rep difference
- Exercise
- overhead_press
- Sets
- 37
- Matched
- 20 / 37
- Missed reps
- 17
- Extra reps
- 12
- Rep difference
- Exercise
- lunge
- Sets
- 5
- Matched
- 4 / 5
- Missed reps
- 2
- Extra reps
- 0
- Rep difference
| Exercise | Sets | Matched | Missed reps | Extra reps | Rep difference |
|---|---|---|---|---|---|
| pulldown_pullup | 106 | 87 / 106 | 59 | 4 | |
| curl | 105 | 72 / 105 | 90 | 15 | |
| bench_press | 92 | 64 / 92 | 44 | 19 | |
| deadlift | 67 | 44 / 67 | 27 | 16 | |
| lateral_raise | 61 | 37 / 61 | 53 | 25 | |
| row | 58 | 27 / 58 | 97 | 19 | |
| squat | 50 | 45 / 50 | 5 | 2 | |
| triceps_extension | 45 | 22 / 45 | 95 | 8 | |
| overhead_press | 37 | 20 / 37 | 17 | 12 | |
| lunge | 5 | 4 / 5 | 2 | 0 |
A matching count means the tracker and saved count agree. It does not independently establish a correct count or measure RIR accuracy. Results combine historical tracker versions; they do not isolate the current version.
What a block of readings looks like.
No real training blocks exist yet, so this one is made up. What is real is the shape: the structure the app records and the rule it applies to load. Below it, the literature the estimator is built on.
Load follows the reading
The jump is only taken when the estimated effort said there was room, and it waits out the deload. Week four of each wave holds the load and backs the effort off on purpose, and its week tick is ambered.
Every set in the block. Estimated RIR comes from the model, not the camera, and is inked as an estimate.
- Week
- W1
- Top set
- 300 lbs
- Prescribed
- 3 RIR
- Estimated
- 2 RIR (1–3)
- Call
- On target
- Week
- W2
- Top set
- 305 lbs
- Prescribed
- 2 RIR
- Estimated
- 4 RIR (3–5)
- Call
- Room · add load
- Week
- W3
- Top set
- 315 lbs
- Prescribed
- 1 RIR
- Estimated
- 0 RIR (0–1)
- Call
- On target
- Week
- W4
- Top set
- 315 lbs
- Prescribed
- 4 RIR
- Estimated
- 6 RIR (4–10)
- Call
- Deload · on target
- Week
- W5
- Top set
- 320 lbs
- Prescribed
- 3 RIR
- Estimated
- 2 RIR (1–3)
- Call
- On target
- Week
- W6
- Top set
- 325 lbs
- Prescribed
- 2 RIR
- Estimated
- 4 RIR (3–5)
- Call
- Room · add load
- Week
- W7
- Top set
- 335 lbs
- Prescribed
- 1 RIR
- Estimated
- 1 RIR (0–2)
- Call
- On target
- Week
- W8
- Top set
- 335 lbs
- Prescribed
- 4 RIR
- Estimated
- 6 RIR (4–10)
- Call
- Deload · on target
- Week
- W9
- Top set
- 340 lbs
- Prescribed
- 3 RIR
- Estimated
- 4 RIR (3–5)
- Call
- On target
| Week | Top set | Prescribed | Estimated | Call |
|---|---|---|---|---|
| W1 | 300 lbs | 3 RIR | 2 RIR (1–3) | On target |
| W2 | 305 lbs | 2 RIR | 4 RIR (3–5) | Room · add load |
| W3 | 315 lbs | 1 RIR | 0 RIR (0–1) | On target |
| W4 | 315 lbs | 4 RIR | 6 RIR (4–10) | Deload · on target |
| W5 | 320 lbs | 3 RIR | 2 RIR (1–3) | On target |
| W6 | 325 lbs | 2 RIR | 4 RIR (3–5) | Room · add load |
| W7 | 335 lbs | 1 RIR | 1 RIR (0–2) | On target |
| W8 | 335 lbs | 4 RIR | 6 RIR (4–10) | Deload · on target |
| W9 | 340 lbs | 3 RIR | 4 RIR (3–5) | On target |
Where the guess goes wrong.
Self-reported effort against estimated effort on the same sets. Rows are what the lifter said; columns are what the model estimated from the reading. Anything to the right of the diagonal had more left in it than the lifter believed. This matrix is demonstration data, drawn to show how the comparison reads, not a result.
This is the calibration the paid tier tracks over time: your reported number beside the estimated one, set after set, so the gap closes.
What the estimator stands on.
Velocity-loss-to-RIR bands are adapted conservatively from bar-velocity research. Those studies measured linear bar speed under known loads; RIRVana measures angular joint velocity from a phone camera, so the ranges are kept wide and the confidence honest.
Within-set velocity loss is an established index of neuromuscular fatigue[1], and concentric velocity falls as reps in reserve run out, with strong relationships across the powerlifts[2].
Every velocity-loss band the estimator applies, read from packages/core.
- Velocity loss
- ≥ 45%
- RIR
- 0
- Range
- 0–1
- Confidence
- medium
- Basis
- at or near failure
- Velocity loss
- ≥ 30%
- RIR
- 1
- Range
- 0–2
- Confidence
- medium
- Basis
- pronounced slowdown, very close to failure
- Velocity loss
- ≥ 20%
- RIR
- 2
- Range
- 1–3
- Confidence
- medium
- Basis
- clear fatigue, a couple of reps left
- Velocity loss
- ≥ 10%
- RIR
- 4
- Range
- 3–5
- Confidence
- medium
- Basis
- moderate slowdown, several reps in reserve
- Velocity loss
- ≥ 0%
- RIR
- 6
- Range
- 4–10
- Confidence
- low
- Basis
- far from failure; estimates this far out are rough
| Velocity loss | RIR | Range | Confidence | Basis |
|---|---|---|---|---|
| ≥ 45% | 0 | 0–1 | medium | at or near failure |
| ≥ 30% | 1 | 0–2 | medium | pronounced slowdown, very close to failure |
| ≥ 20% | 2 | 1–3 | medium | clear fatigue, a couple of reps left |
| ≥ 10% | 4 | 3–5 | medium | moderate slowdown, several reps in reserve |
| ≥ 0% | 6 | 4–10 | low | far from failure; estimates this far out are rough |
Read from packages/core/src/rirEstimate.ts. Sets under 4 reps drop confidence one step.
- [1]Sánchez-Medina & González-Badillo (2011). Velocity loss as an indicator of neuromuscular fatigue during resistance training. Med Sci Sports Exerc.
- [2]Zourdos et al. (2016). Novel resistance training-specific RPE scale measuring repetitions in reserve. J Strength Cond Res.
- [3]Zourdos et al. (2021). Proximity to failure and total repetitions performed in a set influence accuracy of intraset RIR-based RPE. J Strength Cond Res 35(2S).
- [4]Steele et al. (2017). Ability to predict repetitions to momentary failure is not perfectly accurate, though improves with resistance training experience. PeerJ.
- [5]Remmert et al. (2023). Changes in intraset RIR prediction accuracy during six weeks of bench press training in trained men. Percept Mot Skills.
- [6]Renner, Mitter & Baca (2024). Concurrent validity of novel smartphone-based apps monitoring barbell velocity in powerlifting exercises. PLOS One.
- [7]Stronger by Science (2024). How to perfect your ability to predict repetitions in reserve.