Skip to content
← For muscle nerds

What we're not
pretending to know.

Every analytic in flexRep has at least one assumption embedded in it. Below: the assumptions we're aware of, severity-rated, with the reasoning we used when we made the call. Disagree, audit, and run the math yourself — that's why the export is free forever.

4minor
1small
4medium
0major
The caveats

Severity-rated assumptions, surfaced honestly.

Color-coded by severity so the structural ones (medium) and the cosmetic ones (small) are visually distinct.

MINOR

e1RM is a model, and models are wrong.

Single-rep-max estimation formulas fit the working-rep range well and degrade outside it. We constrain the rep range we'll compute e1RM from. A 1RM extrapolated from a set of fifteen is a fiction we don't want to participate in.

MINOR

RPE is subjective.

It always will be. We could replace it with average bar velocity, but average bar velocity requires hardware most lifters don't own. RPE is the honest middle: subjective, but disclosed.

MEDIUM

Fractional sets are a heuristic, not a measurement.

The literature is clear that secondary mover work contributes — just not at the rate of primary mover work. The exact weighting we use is a practical choice informed by how serious coaches credit accessory work. Your disagreement with our weighting is really a disagreement with the meta-analysis design, not us.

MEDIUM

Movement-pattern inference is heuristic.

For curated exercises in our library, movement pattern is hand-tagged. For user-created and imported exercises, we infer it from the name and primary muscle. Inference is high accuracy, not perfect — and any correction you make sticks across seed updates.

MINOR

Stall detection is conservative.

We flag a stall only when progress flattens against stable effort over several weeks. We don't flag stalls on missed reps alone. We'd rather miss two stalls than fire a false-positive that nudges you to deload during your best block of the year.

MEDIUM

Your data is one lifter's data.

Every analytic in flexRep computes on the lifter using flexRep. We don't cross-reference your numbers against a normative population. There are good reasons (privacy, statistical validity at small N, generalizability across populations). There are also philosophical ones: your numbers should be measured against your numbers.

SMALL

The strength glyph is decorative.

It is generative art driven by your data. It is not a diagnostic instrument. Do not show your glyph to your doctor.

MEDIUM

On-device AI is conservative.

It has less context than a coach who has watched you train for six months. The insights skew toward observation ("bench e1RM unchanged for several weeks") and away from prescription ("you should deload"). When in doubt, we err on the side of saying less.

MINOR

Imported data is annotated, not laundered.

Sets imported from other apps carry provenance tags. Analytics treat them the same as native data, but the source is preserved so you can always tell which logs came from where if you ever care.

Receipts for the receipts.

If you disagree with any of these, the data is yours to re-score.