Glossary.
Every equation the app computes, every term it uses, every progression setting it offers. The formulas are the code, not approximations.
The math
Every equation.
These run the app. Each one is exactly as the code computes it.
01Estimated one-rep max, with RPE
weight × (1 + (reps + RIR) ÷ 30)
RIR = 10 − RPE. Reps in reserve: how many more you had in you. RPE 8 → about 2 left.
02Estimated one-rep max, no RPE logged
weight × (1 + reps ÷ 30)
The classic Epley equation. When no RPE is logged, RIR counts as 0 and the formula reduces to this.
03The RPE trigger
top-set RPE ≤ trigger → earn it
Top-set RPE at or under the trigger earns progression. Default trigger is RPE 8, adjustable per program. Above the trigger, or no RPE logged, the target holds.
04Double progression
below max → +(10 − RPE) reps, min +2 · at max → +increment, back to min
Reps below your max → add 10 − RPE reps, never fewer than 2: RPE 8 earns +2, RPE 7 earns +3, RPE 6 earns +4. Half-step RPEs round to whole reps, half up: RPE 7.5 earns +3. At the top of your range → add the increment and reset to the range minimum.
05Load increments
lb: round((w + v) ÷ v) × v · %: round(w × (1 + v ÷ 100))
Pounds: the new load lands on your increment grid: weight + value, rounded to the nearest multiple of value. Percent: weight × (1 + value ÷ 100), rounded to the nearest whole unit. Default increment: 5 lb.
06%1RM target
snap_to_increment(basis × pct ÷ 100)
Basis = your training max, or your best same-rep-range estimated 1RM. pct defaults to 75%, clamped 1–100. The result snaps to your increment grid (05), not plates, and is set at your range-minimum reps.
07Training max basis
entered TM wins; else best same-zone e1RM
A training max you type in beats everything. Without one, the app takes the best estimated 1RM from a top set logged in the same rep range.
08%1RM wave
pct = wave[(week − 1) mod length]
Weekly percentages cycle through your wave. Week 5 of a 4-week wave reuses week 1's percent. The wave only applies while its toggle is on.
09Plate snapping, warm-up ladder only
round(x ÷ 5) × 5 / round(kg ÷ 2.5) × 2.5
Warm-up ladder rungs snap to loadable plates: 5 lb imperial, 2.5 kg metric. Working prescriptions keep the exact computed load and snap to your increment grid (05) instead.
10Linear progression
+increment every session
No RPE gate. Reps carry over from the latest top set; only the load moves. Default: +5 lb a session.
11Time progression
latest + step × (10 − RPE), min 2 steps, clamped to range
Timed work progresses in seconds, scaled by RPE headroom like reps (04), and always lands on whole seconds. Default step is 5 seconds, clamped to the time range. On deload weeks, unweighted timed work holds its seconds as-is — deloads reduce load only. Weighted timed work keeps its seconds and only the load deloads.
12Deload week
load × d%, every n weeks
A scheduled lighter week: the normal prescription at the deload intensity. Defaults 60% every 4 weeks; intensity clamps to 40–80%. Bodyweight rep work scales reps to the deload intensity instead, since there is no load to reduce; unweighted timed work holds its seconds as-is.
13Week-range rebase
e1RM ÷ (1 + targetReps ÷ 30)
When you change an exercise's rep range, the app rebases the load with Epley in reverse: the weight your current estimated max predicts for the new range.
14Volume
weight × reps → add it up
Per set, summed. A set counts fully toward each primary muscle and 45% toward each secondary muscle in muscle-volume views.
15Dumbbell weight
enter per bell → stored = 2 × entered
Entry and display default to per-dumbbell. The app stores the combined total of both bells; volume and PRs use that stored total, so both bells are already counted and nothing is ever doubled.
16Similar exercises
3 × shared primary + shared secondary + 2 if same equipment + 2 if same push/pull + 1 if same category
How the app scores "similar": shared primary muscles weigh triple, shared secondary muscles single, matching equipment adds two, the same force (push, pull, or static) adds two, and the same exercise category adds one.
17Top set
heaviest weight wins; ties → more reps
The set the engine reads each session. Warm-up sets sit out the top-set race; every other tag is label-only.
Terms
The jargon, translated.
Every term the app uses, in plain words.
1RM
One-rep max. The most weight you can lift once with good form. The app never asks you to test it; it estimates.
%1RM
A percent of your one-rep max. Used to prescribe loads. The app's default is 75%.
Estimated 1RM
What the math says you could lift once, from a logged set's weight, reps, and RPE.
Training max
The 1RM the %1RM math works from. Enter it by hand, or the app uses your best same-rep-range estimated 1RM.
RPE
Rate of perceived exertion, 1–10, in half steps. How hard the set felt. 10 means nothing left.
RIR
Reps in reserve. 10 minus RPE. RPE 8 means about 2 reps left in you.
Top set
The heaviest set of the session; ties go to more reps. The set the progression engine reads.
Rep range
The min and max reps an exercise works inside, e.g. 6–12. Double progression climbs the range, then adds weight and restarts at the bottom.
Hypertrophy
Training for muscle growth. The app's default focus, roughly 6–12 reps.
Strength
Training for maximal force. Roughly 1–5 reps.
Endurance
Training to sustain effort. Roughly 12–20 reps.
AMRAP
As many reps as possible. One all-out set instead of a fixed rep target.
Double progression
Add reps first; at the top of the range, add weight and drop back to the bottom. The default progression mode.
Linear progression
Add the increment every session, no RPE gate. Reps carry over; only the load moves.
Undulating periodization
Varying the rep range (or %1RM) week to week instead of holding it flat. Off by default.
Deload
A planned lighter week. Load drops to a percent of normal (default 60%) every few weeks (default 4).
Wave
The weekly %1RM percentages across a program, e.g. 70, 75, 80.
Hold
What the engine says when the top set was too hard or had no RPE: the target stays put.
Increment
How much weight each progression jump adds. Default 5 lb, or a percent of the load.
Trigger
The RPE threshold that earns progression. Default 8: a top set at RPE 8 or under progresses.
PR
Personal record. The app tracks your best estimated 1RM and your heaviest set per exercise.
Volume
Weight × reps per set, added up. The headline measure of how much work you did.
Sets
Completed sets. A plain count.
Blind spots
Muscles with no work in the selected period. Named, not shamed.
Muscle map
The front-and-back body chart showing where an exercise's, or a whole program's, volume went.
Primary / secondary muscles
The main movers of an exercise, and the helpers. Secondary muscles get 45% of a set's volume in muscle-volume views.
Superset
Two exercises performed back to back, logged as a pair.
Focus
What an exercise or workout is for: strength, hypertrophy, endurance, or custom.
Program
A training block: a name, a length in weeks, workouts in order, and progression rules.
Saved workout
A reusable template. Start it any time; it opens pre-filled with exercises and targets.
Log
A finished workout, written to your history. Completed workouts become logs.
Suggestion card
A tappable card with the engine's computed target for an exercise. Nothing changes until you tap.
Time step
For timed work, how many seconds each progression adds. Default 5 s.
Timed work
Exercises tracked in seconds (planks, holds) instead of reps.
Dumbbell weight
What each hand holds. Entry and display default to per-dumbbell; the app stores the combined total of both bells, and volume and PRs use that stored total.
Set tags
Labels on a set: warmup, dropset, Failure, and more. Labels only — except warmup, which sits out the top-set race.
Settings
Every progression setting.
Settings → Progression defaults. The defaults for new exercises and programs; each exercise can override them.
Progression mode
RPE-based, Linear (add the increment every session, no RPE needed), or %1RM (loads from a percent of your training max).
RPE trigger
Pills: 7, 8, 9 (default 8). Your top set at or under the trigger earns progression.
Increment type & value
Pounds (default 5 lb): new loads land on the increment grid. Percent: weight × (1 + value ÷ 100), rounded to the nearest whole pound.
% of 1RM
The default percent for %1RM mode is 75%.
Focus
Hypertrophy 6–12 is the default; also Strength 1–5, Endurance 12–20, 15+, AMRAP.
Rep range
Defaults to 6–12 — the rails double progression runs on.
Time step
5, 10, 15, or 30 seconds for timed work (default 5s).
Vary rep ranges by week
Optional undulating periodization for new programs. Off by default.
Auto Deload
A lighter week every 4 weeks at 60% intensity, for new programs. Off by default.
Your data lives on your device; Settings → Data downloads a backup copy whenever you like.
Keep it free.
The app is free, forever. Contributions cover hosting and the upkeep that keeps it dependable.