An RIR ramp is a plan in which the reps-in-reserve target falls cycle by cycle while the sets and rep ranges stay the same, so identical-looking sets get progressively harder across a block. RIR (reps in reserve) is how many more reps you judge you could have done; a lower RIR is a harder set. Zyra Workouts writes a six-cycle ramp into every generated program, and the exact numbers are below.
Zyra Workouts is in development and not yet on the App Store; the screens described here may change before release.
Cycles, not weeks
The unit of a Zyra Workouts program is the cycle: one pass through the program's days in order. A 3-day full-body program has a three-day cycle; a 6-day push/pull/legs program has a six-day cycle. Generated programs have 6 cycles; a program built from scratch can have anywhere from 1 to 52.
A cycle is not a week. If you train the three days of a three-day cycle on Monday, Wednesday and Friday, cycle and week coincide; if you miss Friday and train Sunday, the cycle simply finishes two days later. The targets for cycle 2 are waiting whenever cycle 1 ends. This is why the app can ramp effort without punishing a missed session — the ramp advances by completed cycles, never by the calendar. The missed-week page follows that thread.
Each exercise carries a base target — sets, a rep range and an RIR — and, when periodization is on, a per-cycle override. Periodization is on by default for generated programs. Switch it off and every cycle uses the base target; the ramp disappears without deleting anything.
The ramp we generate (table)
The generator computes the per-cycle RIR from the goal's base RIR with one formula. With top = base + 1, bottom = max(0, base − 1) and six cycles indexed c = 0…5:
rir(c) = round(top − (c / 5) × (top − bottom))
Most targets use a base RIR of 2 (strength, general, and hypertrophy compounds); hypertrophy isolation targets use a base of 1. Evaluating the formula:
| Cycle | Base RIR 2 (e.g. back squat, 6–10 reps) | Base RIR 1 (e.g. lateral raise, 10–15 reps) |
|---|---|---|
| 1 | RIR 3 | RIR 2 |
| 2 | RIR 3 | RIR 2 |
| 3 | RIR 2 | RIR 1 |
| 4 | RIR 2 | RIR 1 |
| 5 | RIR 1 | RIR 0 |
| 6 | RIR 1 — or the deload, see below | RIR 0 — or the deload |
The step from cycle 2 to cycle 3 and from 4 to 5 is where the rounding lands: the unrounded values for base 2 are 3, 2.6, 2.2, 1.8, 1.4, 1.0, and rounding to the nearest whole RIR gives the pairs above. Sets and rep ranges do not change across the ramp; only the RIR does.
Two things follow. First, the first two cycles are deliberately easier than the base — a program starts one RIR above the goal's target, not at it. Second, the ramp ends one RIR below the base, which for a base of 1 means RIR 0: the last two cycles of a hypertrophy isolation target are taken to failure by design. If that is not what you want, the cycle cards are editable per cycle, per day or for the whole program.
With the deload option on, cycle 6 is replaced: the same exercise gets one fewer set (never fewer than one) at base + 2 RIR — RIR 4 for a base of 2, RIR 3 for a base of 1. The ramp then reads 3-3-2-2-1-4 rather than 3-3-2-2-1-1. How the deload positions and the design's three modes differ is on the deload page.
In plain terms: same sets, same reps, one RIR step harder every two cycles, and optionally a lighter sixth cycle.
How the ramp meets the progression engine
The ramp changes the *target*; the progression engine changes the *load*. They interact through the ceiling rule: for a target with RIR above 0 the engine's ceiling is the midpoint of the rep range plus the RIR, and logging more reps than the ceiling triggers a weight increase.
For a 6–10 rep target the midpoint is 8, so the ceiling is 11 at RIR 3, 10 at RIR 2 and 9 at RIR 1. As the ramp lowers the RIR, the same logged set clears the ceiling more easily — 10 reps holds in cycle 1 and progresses in cycle 5. That is the mechanism by which effort rising across a block turns into load rising across a block, without anyone editing the weights by hand. This is arithmetic, not a trial result: it describes what the two rules do together, not what a study measured.
Other presets — daily undulating, block
The app's design notes list three autoramp presets: the linear RIR ramp, "daily undulating" and "block 3:1 build/deload". Honest status: the linear ramp is what the generator writes today. The other two are described as presets in the design and are not something the current build fills in for you; they can be entered on the cycle cards by hand.
| Pattern | What moves | Where the app stands |
|---|---|---|
| Linear RIR ramp | RIR down one step every two cycles, sets and reps fixed | generated automatically (six cycles) |
| Daily undulating | targets differ between days within a cycle (heavy / moderate / light) | manual entry on the cycle cards |
| Block build / deload | several build cycles then one lighter cycle, repeated | manual entry; the last-cycle deload option covers the simplest 5:1 case |
The short version
An RIR ramp holds sets and rep ranges fixed and lowers the RIR target across a block. Zyra Workouts generates six cycles at round(top − (c/5)(top − bottom)) with top = base + 1 and bottom = max(0, base − 1): 3-3-2-2-1-1 from a base of 2, 2-2-1-1-0-0 from a base of 1, with an optional lighter sixth cycle at base + 2 RIR and one fewer set. Cycles advance when you complete them, not when the week ends. Convert any RIR to RPE in the RIR / RPE converter.
Educational overview only — training guidance, not medical advice.