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.

Target 610 @ RIR 2 · ceiling = round((6+10)/2) + 2 = 10 · step 2.5 kgReps above the ceiling (10) → progressadd one step (+2.5 kg) and start the range again at 660 kg × 11 → 62.5 kg × 6Reps from 6 to 10 → holdsame load; the rep target stays inside the range60 kg × 8 → 60 kg × 8Reps under the floor (6) → back offtake one step off (−2.5 kg) and aim for 6 again60 kg × 5 → 57.5 kg × 6No history → no recommendation. Failure sets (RIR 0): ceiling = top of the range (10).
Fig. The progression rule the app applies between sessions, for a 6–10 @ RIR 2 target on a barbell (step 2.5 kg). The ceiling is the midpoint of the rep range plus the RIR target — here round((6 + 10) ÷ 2) + 2 = 10; sets taken to failure (RIR 0) use the top of the range instead. Beat the ceiling → add a step; fall under the floor → take a step off; anything between → hold. Dumbbells and stacks step by 2 kg, bodyweight moves progress by reps. A deterministic rule, not a coaching judgement.

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:

CycleBase RIR 2 (e.g. back squat, 6–10 reps)Base RIR 1 (e.g. lateral raise, 10–15 reps)
1RIR 3RIR 2
2RIR 3RIR 2
3RIR 2RIR 1
4RIR 2RIR 1
5RIR 1RIR 0
6RIR 1 — or the deload, see belowRIR 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.

PatternWhat movesWhere the app stands
Linear RIR rampRIR down one step every two cycles, sets and reps fixedgenerated automatically (six cycles)
Daily undulatingtargets differ between days within a cycle (heavy / moderate / light)manual entry on the cycle cards
Block build / deloadseveral build cycles then one lighter cycle, repeatedmanual 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.