Three phases, one arc: add weight every session until that stops working, then add it every week, then add it every block. You move phases when the current one stops working — never on a fixed date.
Never lifted a barbell before? Start in novice. Read the four lift pages first, then the novice phase page below. Learn the four lifts · Novice phase in full
Already training, or coming back to it? Skip straight to the phase that actually matches where you are — including starting directly in advanced if you have a real, current max. Intermediate phase · Advanced phase · Direct-to-advanced enrollment
Working weight over time, one lift. You move to the next phase when the current one stops working, not on a date.
A new lifter recovers fast enough to add weight after almost every session — that's novice, and it's where everyone who has never run a real program starts. Once daily progress stops (a lift starts missing reps two sessions running), the program doesn't grind the same stimulus forever — it moves to a slower clock: intermediate progresses weekly, on one real test attempt, with lighter days in between for volume and technique. Once weekly progress stops too, advanced runs multi-week blocks against a training max, undulating hard/medium/light days within each week and building toward a real competition date if you have one.
None of these transitions happen automatically. Moving from novice to intermediate, or intermediate to advanced, is always your own call inside the app — it flags a lift as a graduation candidate once it has reset twice, as a signal to consider it, never as a trigger that moves you without asking.
This isn't three arbitrary difficulty settings. See stress, recovery, and adaptation for the real theory — the same one Practical Programming builds its own programming model on — behind why these three clocks are genuinely different, not just three versions of the same idea.
That third path is a real, deliberate feature, not a workaround: an experienced lifter has no stall or reset history in this app to graduate from, so the ordinary novice-then-intermediate-then-advanced ladder doesn't apply to them. Direct-to-advanced enrollment exists specifically for that lifter — declare a current one-rep max for squat, bench press, and deadlift (overhead press needs none, since it's never percentage-tracked in this phase) and the app seeds a training max straight from it. Full detail on the advanced phase page.
| Phase | Sessions/week | What moves the number | Off day |
|---|---|---|---|
| Novice | 3 | Every successful session, on every trained lift | — (deadlift and squat every session by design) |
| Intermediate | 3 (Build, Groove, Test) | Test Day only, once a week per lift | Groove Day is lighter, technique-only |
| Advanced | 3 (Heavy, Medium, Light) | A recomputed training max at the end of each Intensification block | A full deload every 5th week |
Every phase trains the same four lifts — squat, bench press, deadlift, overhead press — just at a different frequency and intensity structure. If you haven't yet, learn the movements themselves first; the program pages above assume you already know how to set up and execute each one.
Every rule on every phase page below — the increments, the stall and reset math, the weekly rep-scheme cycling, the block/deload/peak scheduling — is already built and running in the Resolve app, on a paid plan. You can run the program from these pages with a notebook for free if you'd rather, but the app generates each session, computes the warm-up ramp from your own rack, and tracks every reset and phase change for you.