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+30kg
Sets landing on the prescribed effort67%
Median gap, prescribed to measured0.5RIR

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.

140155170W1W2W3W4W5W6
Every set in the block, as recorded. Measured RIR is a model estimate and is inked as one.
WeekTop setPrescribedMeasuredCall
W1140 kg3 RIR4.5 RIRRoom · add load
W2147.5 kg2 RIR2.5 RIRRoom · add load
W3155 kg1 RIR2 RIRRoom · add load
W4162.5 kg4 RIR4 RIRDeload · hold
W5162.5 kg3 RIR3.5 RIRRoom · add load
W6170 kg2 RIR2 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