Skip to content
RIRVana
Demonstration blockNot customer data · the product is not open yet

What a block of readings looks like.

Inventing results would be the opposite of the point. What is real here is the shape: this is the structure the app records and the rule it applies. Below it, the literature the estimator is built on.

Added to the top set+19kg
Sets landing on the prescribed effort100%
Median gap, prescribed to measured0.0RIR

Load follows the reading

The jump is only taken when the measured effort said there was room. Week four of each wave backs off on purpose, and its week tick is ambered.

95105114W1W2W3W4W5W6W7W8W9
Every set in the block, as recorded. Measured RIR is a model estimate and is inked as one.
WeekTop setPrescribedMeasuredCall
W195 kg3 RIR3 RIROn target
W297.5 kg2 RIR2.5 RIRRoom · add load
W3101.5 kg1 RIR1 RIROn target
W4104 kg4 RIR4.5 RIRDeload · hold
W5104 kg3 RIR3 RIROn target
W6106.5 kg2 RIR2.5 RIRRoom · add load
W7110 kg1 RIR1.5 RIRRoom · add load
W8114 kg4 RIR4 RIRDeload · hold
W9114 kg3 RIR3 RIROn target
Model vs self-report

Where the guess goes wrong.

Self-reported effort against measured effort on the same sets. The mass sits off the diagonal, and on one side of it: people think they are closer to failure than they are. Rows are what the lifter said; columns are what the camera measured. Anything to the right of the diagonal had more left in it than the lifter believed.

This is the calibration the paid tier tracks over time: your reported number beside the estimated one, set after set, so the gap closes.

Building the matrix
Literature

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.

Velocity tracks fatigue

Within-set velocity loss is an established index of neuromuscular fatigue[1], and concentric velocity falls as RPE rises, with strong inverse relationships across the powerlifts[2].

Self-report drifts

Lifters misjudge RIR by roughly a rep near failure and more further out[7]; accuracy improves closer to failure and with experience but is not perfect even at 1 RIR[3][4].

Feedback closes the gap

Trained lifters' intraset RIR predictions sit within about one rep[5]. Phone-camera velocity apps have been validated against lab references[6].

The bands, as shipped
Every velocity-loss band the estimator applies, read from packages/core.
Velocity lossRIRRangeConfidenceBasis
≥ 45%00–1highthe last rep was a grind; at or near failure
≥ 30%10–2highpronounced slowdown, very close to failure
≥ 20%21–3mediumclear fatigue, a couple of reps left
≥ 10%43–5mediummoderate slowdown, several reps in reserve
≥ 0%64–10lowfar from failure; estimates this far out are rough
Source: packages/core/src/rirEstimate.ts · sets under 4 reps downgrade confidence one step

The reading earns trust one set at a time.

Join the waitlist