Method

How it decides.
The rules, written down.

“Research-grounded” is easy to claim, so here is the work: the rules the app follows when it writes your training and sets your nutrition targets, taken from the code as it runs today.

Most of it isn't the AI's judgement. The weekly maths, the checks and the nutrition targets are plain code. The AI writes each session inside them, and a second AI pass audits what code can't check. Every rule below is marked with what holds it in place.

  • Calculated in code

    Worked out by code before the AI writes a word, and handed to it as fact: your split, your weekly minimums, which week of the block you're in, which lifts have stalled. Nutrition targets are all this kind.

  • Enforced in code

    Checked by code after the AI writes, or corrected by code directly. A session that fails gets a repair pass when time allows, and the result, pass or fail, is printed at the top of the session.

  • Rule for the AI

    Part of the AI's written instructions. The audit pass checks it whenever the audit runs. Code does not.

01 · Weekly volume

Every muscle has a weekly minimum.

Hard sets per muscle per week are the strongest driver of growth you control, so the week is planned muscle by muscle, Monday to Sunday. These are the minimums the code sets for someone lifting four days a week who isn't a beginner and trains their core:

Weekly minimum, effective sets

Calculated in code
chest
14
lats
14
upper back
12
side delts
14
rear delts
10
front delts
6
biceps
12
triceps
12
quads
14
hamstrings
14
glutes
12
calves
12
adductors
4
traps
6
forearms
6
abs
16
obliques
6

1 + ½

How a set counts: 1 for the main muscle, half for each other muscle tagged

~11

Effective sets for one muscle in one session, past which extra sets add little

22

The weekly ceiling per muscle (35 for abs and obliques)

  • Calculated in code

    The minimums scale to your week

    The table above is for four lifting days. Lift three days and every number is multiplied by 0.75, five by 1.25, six or more by 1.3, and never by less than 0.65, then rounded. Beginners get 70% of that. Abs and obliques have minimums only if you train core, which is the default.

  • Rule for the AI

    Tagging the muscles

    The AI tags each exercise with up to three muscles, main muscle first, from a fixed pattern list: a press is chest, front delts and triceps; a row is upper back, lats and biceps; a pulldown is lats and biceps.

  • Enforced in code

    Counting the sets

    Code does the counting. A set is worth 1 to the first muscle tagged and 0.5 to each of the others. Tags outside the list of 18 muscle names are dropped, and an exercise left with no recognized tag fails the check.

  • Calculated in code

    Sharing the week out

    Each muscle's minimum is shared across the days that train it. Every day the AI gets a table: for each muscle, what earlier days this week delivered, what later days hold, and the least and the most today may add.

  • Enforced in code

    Today's minimum

    After the AI writes, code adds the session up muscle by muscle. Any muscle more than half a set short of today's minimum fails the check.

  • Enforced in code

    The weekly ceiling

    A muscle whose week would go past 22 effective sets (35 for abs and obliques) fails the check. Most lifters keep gaining up to roughly 20 hard sets a week; past that, returns shrink and recovery costs climb.

  • Rule for the AI

    About 11 per muscle per session

    Past about 11 effective sets for one muscle in one session (10 for calves), extra sets add little. Code uses this cap to share out the week, and each day's table gives the AI its maximum for every muscle. The audit checks it; code checks the weekly ceiling instead, except on the day before a class.

  • Calculated in code

    A missed day is not a debt

    Earlier days this week count as done: their logged sets, or the prescription where nothing was logged, or the day's planned share if it was never built. Missed work is never crammed into the days that remain.

  • Calculated in code

    When the schedule leaves no room

    If a muscle can't reach its minimum on the days available, its target for the week comes down and the table says why. The usual case is hamstrings when their only other day falls before a class. See it in the sample week.

02 · Session size

Your counts, not ours.

At intake you set your own minimum number of main lifts and ab exercises per session (6 and 2 unless you change them) and how long you have, or no limit. Those are requirements, not suggestions.

  • Enforced in code

    Too few

    A main lift counts if it's a distinct movement with at least 2 working sets. Fewer main lifts or ab exercises than your minimum fails the check.

  • Enforced in code

    Too many

    More than your minimum plus two main lifts, and code removes extras from the end: never one of the first two, and never one that today's muscle minimums depend on.

  • Enforced in code

    Fitting your time

    Code estimates every session: 8 minutes of warm-up, then 35 seconds per working set plus the rest prescribed after it. More than 10% over your time and it trims: sets off accessory movements first (never below 2), then whole accessory movements, and only then sets off the two lead lifts. Never below your counts or today's minimums, and the session says what was trimmed. With no time limit, nothing is.

  • Enforced in code

    Rest is never what gives

    Trimming takes sets, never rest. Rest written on paper that you can't actually take is how a session quietly loses its quality.

  • Rule for the AI

    The shape of a session

    2 to 4 working sets per movement. The first two movements are the day's lead lifts, straight sets at full rest. After that, movements that don't compete can be paired as supersets.

  • Enforced in code

    Supersets

    A superset's 0-second rest stands only if its partner trains a different main muscle, the pair isn't two ab exercises, and the first movement has no more sets than the second. Otherwise code gives the rest back.

03 · The passes

Two AI passes, a code check, and a repair.

Every session goes through the same steps. The AI is Google's Gemini, run through Vertex AI. The code is ours.

  1. 1

    Draft

    AI

    Writes the session from your logs, this week's table, your goals, schedule, equipment, injuries and any photos, with the evidence reference attached.

  2. 2

    Tidy

    Code

    Drops muscle tags that aren't on the list, undoes supersets that don't qualify, and removes main lifts over your maximum.

  3. 3

    Check

    Code

    Counts lifts and ab exercises, checks every muscle against today's minimum and the weekly ceiling, and applies the day-before-a-class rules.

  4. 4

    Audit

    AI

    A second pass re-reads the draft against an 11-point checklist, is told exactly what the code check failed, and corrects it. Its note says what it changed. On by default as Deep review; you can switch it off.

  5. 5

    Check again

    Code

    The audited session is tidied and checked the same way.

  6. 6

    Repair

    AI

    If anything still fails, one more pass gets the list of failures and is told to fix only those. Its version is kept only if it fails on fewer points.

  7. 7

    Verdict

    Code

    Trimmed to your time, checked once more, and printed at the top of the session: “Meets your requirements”, or “Short of your requirements” with what is short.

The audit's checklist

A checklist rather than “improve this”, because specific questions get specific catches.

  1. 1Day role: the session does today's job, not another day's
  2. 2Counts: your minimum lifts and ab exercises, within your time
  3. 3The table: every muscle between today's minimum and maximum
  4. 4Progression: every repeated lift harder than last time
  5. 5Stalled lifts: each one jumped or swapped
  6. 6First-time loads: no invented numbers
  7. 7Your constraints: nothing you ruled out, in any variation
  8. 8Effort: compounds short of failure, or conservative mode
  9. 9Photo honesty: weakest first, no flattery, no body-fat figures
  10. 10Core and exercise choice: loaded ab work, stretch-loaded movements, hardest compound first
  11. 11Rest and supersets

When time runs short

Each build runs against a clock. If too little time is left after the draft, the audit is skipped rather than cut off halfway, and the session says “Audit did not run” with a button to run it. The repair pass is skipped the same way.

Either way, the verdict at the top is worked out on the session you actually got. A session that fails is shown failing, never passed off as checked.

See an audit note and verdict from the engine

04 · Progression

More than last time, or something changes.

Muscle is built by doing measurably more over time, so repeating last week's session is treated as a wasted one. Your logged weights and reps decide what comes next.

  • Calculated in code

    Finding stalled lifts

    Code reads your logs for any movement whose best set, weight and reps, was identical in its last two sessions, and hands the AI that list as a stagnation watch. Sets logged with one tap from the prescription are marked assumed and ignored here.

  • Rule for the AI

    Double progression

    Hit the top of the rep range on every set and the load goes up, back to the bottom of the range. Hit the middle and the load holds while the reps climb. Every repeated movement must be harder than last time.

  • Rule for the AI

    Stalled: jump or swap

    Every lift on the stagnation watch gets a concrete jump in load or reps, or is swapped for another variation for the same muscle, and its note says which.

  • Rule for the AI

    Missed twice, swapped

    Miss a rep target on the same exercise twice in a row and it is swapped for a machine equivalent or a different variation.

  • Rule for the AI

    Small steps

    Upper-body isolation may only move 2.5 to 5 lb at a time. Forcing bigger jumps breaks form and stalls the lift.

  • Rule for the AI

    Assumed sets prove nothing

    A set filled in with one tap counts as done, but never as proof you can go heavier. If every set last time was assumed, the prescription repeats and the note asks for your real numbers.

  • Rule for the AI

    No invented first loads

    The first time you do a movement, there is no number to progress from, so none is made up. The target reads “Find it: a weight you could lift for 3 more reps”. The same rule applies when you swap an exercise.

  • Rule for the AI

    Rotation

    Variations rotate every 4 to 6 weeks, but never away from a lift that is still progressing.

05 · Effort, reps and rest

Close to failure, not past it.

Sets taken close to failure drive nearly all of the growth. Going all the way on heavy free-weight lifts costs more recovery than it returns, so true failure is kept for machines and isolation work.

  • Rule for the AI

    Reps in reserve

    Most working sets end 1 to 3 reps short of failure. The last set of a machine or isolation movement may go to technical failure. Free-weight compounds never go to outright failure.

  • Rule for the AI

    Rep ranges

    5 to 10 for the first compound while you're fresh, 8 to 15 for most of the work, 12 to 20 for isolation and finishers.

  • Rule for the AI

    Rest between sets

    2 to 3 minutes after heavy compounds, 60 to 90 seconds on isolation.

  • Rule for the AI

    Order and selection

    The hardest compound goes first, isolation later. Movements that load a muscle in its stretched position are preferred, as are machines and cables for stable, joint-friendly work. Redundant pairs are cut.

  • Calculated in code

    Conservative mode switches on

    The health check at intake switches on conservative mode when any answer flags a health condition, pregnancy, or a birth in the past six months.

  • Rule for the AI

    Conservative mode rules

    Every set stops at least 3 reps short and nothing goes to failure. No heavy low-rep work: main lifts stay at 8 reps or more. Machines and supported positions are favoured, reps go up before load, and the session suggests checking in with your doctor before pushing hard. In pregnancy, also no long spells flat on the back, no heavy bracing or breath-holding, nothing with a fall or impact risk, and no heavy loaded ab work.

06 · Frequency

Each muscle about twice a week.

Training a muscle twice a week beats once. At the same weekly sets the difference is small, so the real gain is practical: splitting a muscle's sets over two sessions keeps each dose productive instead of piling extra sets into one. Your split comes from how many days you lift.

Training split by number of lifting days a week
DaysSplit
1Full body
2Full body A and B
3Full body A, B and C
4Upper A, Lower A, Upper B, Lower B
5The four above, plus a weak-points day
6Push, pull, legs, twice
7Push, pull, legs twice, plus a weak-points day
  • Calculated in code

    Your split

    Code picks the split from how many days you lift, in the order of your week, as in the table. From two days up, each muscle is trained about twice a week.

  • Enforced in code

    Lower days stay lower

    Lower days carry leg work plus only delts, traps and forearms. Chest, lats, upper back, biceps or triceps as an exercise's main muscle on a lower day fails the check. The day before a class is the exception: the upper body fills it.

  • Rule for the AI

    Upper days stay upper

    Upper, push and pull days carry no lower-body work, and each day does its own job rather than another day's.

  • Rule for the AI

    Covering the gaps

    Hamstrings get both a hip-extension and a knee-flexion movement across the week, and arms get some direct work. A weak-points day goes to the two or three muscles furthest behind.

07 · Four-week blocks

Three weeks pushing, one lighter.

Training runs in four-week blocks. Weeks 1 to 3 push for more; week 4 is a deload, a lighter week that lets recovery catch up without losing the movements you're progressing.

Week 4 keeps

Rule for the AI
  • Every movement, so skill is kept
  • Your exercise counts
  • Today's muscle minimums

Week 4 changes

Rule for the AI
  • Loads hold: no increases
  • Every set stops 3 to 4 reps short, nothing to failure
  • 3- and 4-set movements lose one set, but only where the muscle still meets today's minimum
  • Calculated in code

    Which week it is

    Code counts weeks from the Monday of your first session: weeks 1 to 3, then a lighter week 4, then the next block. The session header shows it.

  • Rule for the AI

    Weeks 1 to 3

    Push progressive overload against your recent numbers.

  • Rule for the AI

    Week 4

    Keeps the movements and lowers the stress, as set out above.

  • Enforced in code

    Still checked

    A lighter week is checked against your counts and muscle minimums like any other.

  • Calculated in code

    Trends know the difference

    Your trends page shows lighter weeks but leaves them out of every comparison, so a planned easy week never reads as a decline.

08 · Schedule awareness

The day before a class is different.

Tell intake which days you do a class or your own conditioning. Many classes involve sprinting, and sprinting on hamstrings still sore from yesterday's lifting is a common way to strain one.

  • Calculated in code

    The hinge day moves

    If your hamstring-and-hinge day would land the day before a class, it trades places with a lower or full-body day that doesn't. Same sessions, different order.

  • Enforced in code

    No hamstrings, calves or hinges

    The day before a class, no exercise may have hamstrings or calves as its main muscle, and no hinge may appear: back extensions, glute-ham raises, Nordics, reverse hypers, pull-throughs, Romanian deadlifts, good mornings or deadlifts.

  • Enforced in code

    Light legs

    That day quads get at most 9 effective sets, glutes 4 and adductors 3, with a set and a half of slack because those arrive in halves from compound lifts. Hamstrings and calves are held to zero, with half a set of slack.

  • Rule for the AI

    How the legs are trained

    Legs first while fresh: quads only, 2 to 3 machine movements you've done before, about 8 to 9 sets at 2 to 3 reps in reserve, nothing to failure, no slow eccentrics, no jumping. The rest of the session is upper-body work at moderate effort.

  • Calculated in code

    A class is not lifting

    Classes never count toward your weekly sets, and a class day gets guidance for the class rather than a lifting session.

See a session the engine wrote for the day before a class

09 · Injuries and exclusions

What you rule out stays out.

  • Rule for the AI

    Hard constraints

    Whatever you write at intake under injuries, or movements you must avoid, is given to the AI as absolute: it is told never to prescribe it under any implement, variation or alternate name, and to replace it with a movement for the same muscles. A banned squat or hinge becomes its machine alternative.

  • Rule for the AI

    Swaps too

    Every exercise swap is written under the same constraints.

This one rests on the AI

Injuries are written in your own words, which code can't check reliably, so this rule depends on the AI and its audit. If a session ever includes something you ruled out, don't do it: swap it, and tell us at info@thechrisworkout.com.

10 · Nutrition maths

Your targets are arithmetic.

Code works out your targets from your bodyweight, height, age, sex, goal and training days, and the app shows the working. The AI's only part in nutrition is reading the meals you type or photograph.

Resting energy: Mifflin-St Jeor

Calculated in code

BMR = 10 × weight (kg) + 6.25 × height (cm) − 5 × age, then + 5 (male) or − 161 (female)

With no sex on file, the male constant is used and the working says so. Maintenance is BMR times an activity factor from your lifting days and class days together.

Activity factor by training and class days a week
Days a weekFactor
0 to 1× 1.3
2 to 3× 1.45
4 to 5× 1.55
6 or more× 1.725
  • Calculated in code

    Protein

    2.2 g per kg of bodyweight, rounded to 5 g. That sits comfortably above the roughly 1.6 g per kg where research puts the plateau for muscle gained from training.

  • Calculated in code

    Fat, carbohydrate, fibre

    Fat 0.8 g per kg, as a floor. Carbohydrate takes whatever calories remain, because it fuels training. Fibre is 14 g per 1,000 kcal.

  • Calculated in code

    Gaining muscle

    Aim for 0.25% of bodyweight a week and never more than 0.5 lb, with the surplus held between 5% and 10% over maintenance. Faster than that on a trained lifter is mostly fat.

  • Calculated in code

    Strength, recomposition, general health

    Strength: 5% over maintenance. Recomposition and general health: maintenance.

  • Calculated in code

    Losing fat

    0.5% of bodyweight a week, a rate chosen to keep muscle. The deficit is capped at 25% of maintenance, and the target never goes below the higher of your BMR and 1,200 kcal (female equation) or 1,500 kcal (male).

  • Calculated in code

    Reading the scale

    Bodyweight moves 2 to 4 lb a day on water and food alone, so no decision rests on a single weigh-in. The trend is the average of the last 7 days of weigh-ins against the 7 days before, and needs at least 3 weigh-ins in each.

  • Calculated in code

    Calorie suggestions

    None until at least 8 weigh-ins and a trend. Losing fat: if the trend isn't falling, it suggests 150 kcal less (never below the floor); if you're losing more than 1% of bodyweight a week, 150 kcal more. Any other goal: if the trend is off target by 0.25 lb a week or more, it suggests closing the gap at 3,500 kcal per lb, rounded to 50 kcal and capped at 400 either way. A suggestion only: your targets never change on their own.

  • Calculated in code

    Screening switches

    Answer yes to the intake question about eating and weight and there is no calorie deficit, no scale-driven suggestion or weight prompt, no weight numbers on the dashboard, and no photo analysis. Pregnant or within six months of giving birth: maintenance instead of a deficit, and no scale-driven suggestions, because the scale is supposed to move.

11 · Photo analysis

Honest about what it sees, and what it can't.

Progress photos are there to find what's lagging, so the AI is told to assess, not encourage. A coach who says everything is progressing well is no use to anyone.

  • Calculated in code

    What it reads

    Photos are optional. When you add them, up to your six most recent go to the AI with each session request, oldest to newest.

  • Rule for the AI

    Weakest first

    The report opens with the single weakest thing it can see, stated plainly, not softened with praise.

  • Rule for the AI

    What hasn't changed

    If a region looks the same as in your oldest photo, it says so, and for how long.

  • Rule for the AI

    No flattery

    No “great work” or “keep it up”, and no improvement claimed unless something visibly differs between photos. If body fat rather than muscle is what limits the look you want, it says that too.

  • Rule for the AI

    Honest about the camera

    Lighting, pump, angle, posture and time of day change how a body looks more than months of training. When photos differ too much to compare, it says so instead of inventing a change. No body-fat percentages or measurements, which a photo can't give.

  • Rule for the AI

    Ranked, then trained

    Three to five lagging areas, worst first. Each session targets the top one that fits the day, and that exercise's note names the finding. If none fit, the strategy names the day that will.

  • Rule for the AI

    Audited without the photos

    The audit strips flattery, unsupported improvements and body-fat figures. It never sees the photos, so it is told not to rewrite the findings otherwise.

  • Enforced in code

    Off when it should be

    If your intake answers say food or weight is a sensitive subject, photos are never sent to the AI and any photo commentary is blanked.

12 · Sources

The research the code names.

The evidence reference sent with every session is written as principles, in our own words: weekly volume, frequency, effort, rep ranges, exercise choice, rest, progression, recovery and ab training. It isn't copied from any paper, and most of it isn't tied to one.

Where the code does name a source, here it is.

  1. Schoenfeld BJ, Ogborn D, Krieger JW (2016). Effects of resistance training frequency on measures of muscle hypertrophy: a systematic review and meta-analysis. Sports Medicine 46(11): 1689–1697. doi:10.1007/s40279-016-0543-8

    Used for: Training each muscle about twice a week.

  2. Pelland JC, Remmert JF, Robinson ZP, Hinson SR, Zourdos MC (2026). The resistance training dose response: meta-regressions exploring the effects of weekly volume and frequency on muscle hypertrophy and strength gains. Sports Medicine 56(2): 481–505. Published online December 2025; first posted as a SportRxiv preprint in 2024. doi:10.1007/s40279-025-02344-w

    Used for: The cap of about 11 effective sets per muscle per session.

  3. Mifflin MD, St Jeor ST, Hill LA, Scott BJ, Daugherty SA, Koh YO (1990). A new predictive equation for resting energy expenditure in healthy individuals. American Journal of Clinical Nutrition 51(2): 241–247. doi:10.1093/ajcn/51.2.241

    Used for: Resting energy (BMR), the base of every calorie target.

Code comments also name Schoenfeld 2019, on keeping each session's dose for a muscle productive, and Schoenfeld again beside the per-session cap. They don't say which papers, so rather than guess, no reference is given for them here.

13 · Limits

What this doesn't promise.

  • It's an AI, and it can be wrong

    It can misjudge a load, tag a muscle wrongly, misread a photo or miss a constraint. The rules above make that less likely. They don't make it impossible.

  • Code checks arithmetic, not judgement

    It can count sets against your minimums. It can't tell whether a load suits you today, or whether an exercise is right for an injury described in words.

  • The audit isn't always there

    You can switch it off, and it's skipped when time runs short. The session always says when it wasn't audited.

  • Not medical advice

    Stop if anything hurts. The health check makes coaching more conservative; it doesn't make it supervised. If you have a condition, talk to your doctor.

  • No professional reviews your program

    Chris is not a certified trainer or a dietitian, and nobody checks sessions by hand. Every session is written and checked by software, and the AI is told never to claim to be a person or to hold a qualification.

See the rules at work.

A real session from the engine, start to finish, written for a test member: the AI's notes in full, what the audit changed, the code's verdict, and a week counted muscle by muscle.