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
Draft
AIWrites the session from your logs, this week's table, your goals, schedule, equipment, injuries and any photos, with the evidence reference attached.
- 2
Tidy
CodeDrops muscle tags that aren't on the list, undoes supersets that don't qualify, and removes main lifts over your maximum.
- 3
Check
CodeCounts lifts and ab exercises, checks every muscle against today's minimum and the weekly ceiling, and applies the day-before-a-class rules.
- 4
Audit
AIA 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
Check again
CodeThe audited session is tidied and checked the same way.
- 6
Repair
AIIf 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
Verdict
CodeTrimmed 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.
- 1Day role: the session does today's job, not another day's
- 2Counts: your minimum lifts and ab exercises, within your time
- 3The table: every muscle between today's minimum and maximum
- 4Progression: every repeated lift harder than last time
- 5Stalled lifts: each one jumped or swapped
- 6First-time loads: no invented numbers
- 7Your constraints: nothing you ruled out, in any variation
- 8Effort: compounds short of failure, or conservative mode
- 9Photo honesty: weakest first, no flattery, no body-fat figures
- 10Core and exercise choice: loaded ab work, stretch-loaded movements, hardest compound first
- 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.
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.
| Days | Split |
|---|---|
| 1 | Full body |
| 2 | Full body A and B |
| 3 | Full body A, B and C |
| 4 | Upper A, Lower A, Upper B, Lower B |
| 5 | The four above, plus a weak-points day |
| 6 | Push, pull, legs, twice |
| 7 | Push, 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.
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 codeBMR = 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.
| Days a week | Factor |
|---|---|
| 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.
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.
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.
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.