Under the hood · 05
The Live Set Coach
How the card under your sets grades today against last session and your best, estimates what you have left in the tank, and solves for the next set that beats a target.
While you train, a card under the set grid shows how today compares with last time and suggests what the next set could be. It is pure arithmetic on the sets you have logged so far, plus a small model of how tired you are getting.
In plain terms. Logex knows what you did last session and what your best ever is. It grades today against both, guesses how much strength you have left, and then answers: “to beat last time, you could do 170 × 6, or 175 × 5, or 185 × 3.”
Step 1: what counts, and the baselines
The coach counts a set once weight and reps are both above zero and the row is not being edited. Warmup and Warmdown sets add nothing to volume or set count. e1RM also ignores Dropsets. This is the same rule the Progress badge and exercise history use, so the coach never calls a target “beaten” while a badge says otherwise.
Three baselines come from your history for this exercise:
| Baseline | Meaning |
|---|---|
last |
Last session’s volume and best e1RM |
best |
All-time best e1RM (the larger of the stored max and last session) and best-ever session volume |
avg |
Average volume of your last 4 sessions |
If the lift has no logged working sets (even if you have only ever logged warm-ups of it), no baseline is returned. There is nothing to beat yet, and today becomes the baseline.
One adjustment matters: last session’s e1RM is rescaled to today’s exercise order, last × m_today ÷ m_last, where m is the fatigue multiplier from Warmups and fatigue. A press done third today is not graded against the same press done first last week. When that adjustment is more than 2% the target reads “Beat last e1RM · order-adjusted”. Your best stays raw, because a record is still a record.
Step 2: grading a metric
Volume and e1RM are each graded against a reference, which is last session if it exists, otherwise your best.
ratio = current ÷ reference
| Tier | Condition |
|---|---|
| none | no reference exists |
| start | nothing logged yet |
| record | current is above your best |
| beat | ratio above 1.005 |
| matched | ratio at least 1 (within half a percent above) |
| close | ratio at least 0.95 |
| building | ratio at least 0.85 |
| far | ratio below 0.85 |
The constants are TIER_FAR_BELOW = 0.85, TIER_CLOSE = 0.95 and TIER_MATCHED_BAND = 0.005.
Step 3: the targets
The coach turns baselines into concrete targets, each cleared only when you are strictly above the threshold:
| Target | Threshold | Shown when |
|---|---|---|
| Beat last e1RM | last e1RM | last e1RM is above 0 |
| New e1RM PR | best e1RM | best is above last |
| Beat last volume | last volume | last volume is above 0 |
| Beat recent average | average of last 4 volumes | average differs from last by more than 3% |
| Best-ever volume | best volume | best is above last |
Which one it chases first depends on your goal setting: the volume goal prefers last volume, then average, then best; strength prefers last e1RM, then PR; orm (peak) prefers the PR. If none of the preferred targets is open, it picks whichever open target you are closest to crossing. If you queued a PR attempt for this lift on the last “Workout saved” screen, the coach opens on the record target instead, until you pick another target or log a set.
Step 4: how much is left in the tank
To say what is realistic, the coach estimates today’s capacity: your true 1RM today, after the hard sets already done.
prior = max(last e1RM, best e1RM × 0.97 × m) × (1 + 2 ÷ 30)
capacity = prior × (1 − loss)^(hard sets done)
each logged set: capacity = max(capacity, e × (1 − loss)^(sets after it + 1))
where e = weight × (1 + (reps + RIR) ÷ 30), RIR = 10 − RPE (8 if blank)
The prior assumes you come in about as strong as last time, with a top set taken around RPE 8 (two reps in reserve, hence the 2 ÷ 30). Logged sets can only raise the estimate.
Loss per set defaults to a function of effort, 0.04 + (RPE − 7) × 0.02, using RPE clamped to 7 to 10 (so 4% at RPE 7, 6% at RPE 8, 8% at RPE 9, 10% at RPE 10). The coach uses the RPE 8 value. The docs call this a product heuristic: about 6% at RPE 8, rising toward failure, with logged descending sets in this app running about 10%.
Learned loss. If at least 4 pairs of consecutive work sets in your history have RPE on both sets and the second is not heavier, Logex measures your own loss per set (how much e1RM dropped from one set to the next), takes the median, and clamps it to 3% to 15%. The coach uses that learned value in place of the 6% default.
Predicted effort
For any candidate set the coach predicts the RPE:
repsAtFailure = 30 × (capacity ÷ weight − 1)
predictedRPE = round to 0.5 of clamp(10 − (repsAtFailure − reps), 5, 11)
A prediction of 11 is a flag, not a number: it means “beyond your estimated capacity today”. A set is feasible if reps are between 1 and 20 and the predicted RPE is 10 or lower.
Step 5: solving for the next set
For an e1RM target T, the solver proposes up to three options:
- Same weight, more reps.
reps = floor(30 × (T ÷ weight − 1)) + 1, at least 1. - Same reps, more weight. The smallest loadable weight whose e1RM is strictly above
T, where “loadable” is a step on your equipment in your unit (barbell 5 lb or 2.5 kg, dumbbell 5 lb or 2 kg, cable 2.5 lb or 1.25 kg, and so on). - A balanced alternative. The easiest feasible combination within 2 reps either side of the usual reps.
For a volume target with R still remaining:
- Same weight:
reps = floor(R ÷ weight) + 1. - Same reps: the smallest loadable weight with
weight × reps > R. - Balanced: the usual reps plus 2 or plus 4.
If no single realistic set closes a volume gap, the coach estimates how many sets at your hint load it would take, losing reps to fatigue each time (up to 6 sets), and reports setsNeeded. If even that fails, it says so rather than inventing a plan.
If your chosen target is out of reach today and you did not pick it by hand, the coach moves to the next target that a single set can still clear. The set it leads with is the same-weight option if its predicted RPE is 9.5 or lower, otherwise the easiest feasible option.
The “what if” ghost line under a set you are typing uses the same maths: it adds your hypothetical set to the totals without touching the real sets, and lists which targets that one set would newly clear.
Worked example
Last session you did 3 × 170 × 5 at RPE 8. That gave volume 2550 and e1RM 170 × (1 + 5 ÷ 30) = 198.3. Nothing is logged yet today, and the fatigue multiplier is 1.
- Capacity: 198.3 × (1 + 2 ÷ 30) = 211.6.
- Target: Beat last e1RM, threshold 198.3.
- Same weight:
floor(30 × (198.3 ÷ 170 − 1)) + 1 = 6, so 170 × 6 (e1RM 204). Predicted RPE: repsAtFailure = 30 × (211.6 ÷ 170 − 1) = 7.3, RPE = 10 − (7.3 − 6) = 8.7, shown as 8.5. - Same reps: the next 5 lb step above 170 that beats the target is 175, so 175 × 5, also about RPE 8.5.
- Balanced: 185 × 3, also about RPE 8.5.
Now suppose you do 170 × 6 at RPE 9. The set’s e1RM is 204, above your best of 198.3, so the e1RM grade is record. Your capacity estimate falls to 198.9 (the prior, after one set at 6% loss), so the coach no longer thinks a big volume jump is available in one set: the volume target is graded far and the 2550 volume target needs more than one realistic set.
Edge cases and limits
- Mid-edit sets never count, so the card does not flash while you type “1” on the way to “12”.
- First sessions: with no baseline there is no target, and the coach waits.
- Unit awareness: all maths is in pounds, but the solver rounds loads to steps in your display unit, so a kilogram user gets 2.5 kg steps, not an awkward conversion.
- Bodyweight and assisted lifts are graded on the load actually moved (a share of your bodyweight plus what you added, or minus the assistance), and suggestions are turned back into what you type: “BW+15” for a pull-up, an assistance setting for the assisted machine. Without a bodyweight the coach has no load to grade.
- Plans finish. When the exercise follows a plan or a routine, the coach proposes the plan’s next row. Once the prescribed working sets are logged (warm-ups do not count) the routine says “All N working sets done”, and if a target is still open the coach offers one bonus set to clear it. After that set, it stops suggesting.
- It cannot know your day. Capacity is a model from your last session and your logged RPE. A bad night’s sleep is invisible to it, which is why the options come with a predicted RPE so you can judge.