Most fitness apps claim to be "science-based." Few will tell you which science. This page does. Every rule our program generator enforces is documented here, traced to peer-reviewed research, and linked to the original publication.
If a finding evolves, the framework evolves with it. This document is versioned — the current revision is v2026.1, and prior versions are archived.
Meso organizes training into mesocycles: 4–8 week blocks, each emphasizing a small number of adaptations in sequence — accumulation, then intensification, then peak, then deload — rather than training all qualities at once.
This is the block periodization model, developed in Soviet sport science and systematized by Issurin as an alternative to traditional "mixed" periodization for higher-level athletes. The core argument: concurrent development of many abilities dilutes the stimulus for each; consecutive development of a few abilities at a time produces cleaner, larger adaptations.
4–8 weeks. Phase proportions are set at generation time based on the user's goal (hypertrophy-leaning vs. strength-leaning) and their current training status.
Open the Phase explainer to see exactly which block you're in, what comes next, and why this week is shaped the way it is. The macro cycle isn't hidden — it's two taps from the home screen.
Fixed percentages of 1RM assume your strength, sleep, and recovery are constant. They aren't. Meso uses RPE (Rating of Perceived Exertion) anchored to RIR (Repetitions in Reserve) to let the target stay the same while the weight floats with your daily capacity.
An RPE 8 set means "I could have done 2 more reps" — regardless of whether today that's 142.5 kg or 135. Zourdos and colleagues validated the RIR-based scale for resistance training, showing tight correlation between called RPE and actual proximity to failure.
RPE (6–10). When you log reps + RPE, Meso adjusts the next week's load by a scheme-specific rule — rather than adding fixed % increments that may or may not match your current state.
Every set on the Today screen carries its target weight and an RPE cap. Hit the cap a rep early and the next session adjusts down; finish with reps in reserve and the next target steps up. The autoregulation rule is visible, not buried.
More volume is not infinitely better. Each muscle has a floor below which training doesn't grow it (MEV — Minimum Effective Volume), a range where growth is efficient (MAV — Maximum Adaptive Volume), and a ceiling beyond which recovery fails (MRV — Maximum Recoverable Volume).
These landmarks — measured in working sets per muscle per week — synthesize findings from Schoenfeld and colleagues on dose-response to resistance training, and were systematized for practitioners by the Renaissance Periodization group.
volume audit on every generated program. For each muscle, weekly working sets must land in [MEV, MRV]. Accumulation sits near MAV; deload drops below MEV. Programs that fail the audit are rejected and regenerated.
A growing body of research suggests that training a muscle in a lengthened position — where it's mechanically under stretch — produces greater hypertrophy than training it in a shortened position, at equated volume and effort.
The meta-analysis by Wolf et al. (2023) found full range of motion (which includes the stretched position) generally superior to partial ROM, with subsequent work pointing specifically to long-muscle-length training as the driver. Meso uses this at the exercise-selection stage: movements are tagged by length bias, and each muscle group gets at least one stretch-biased movement per week.
length_bias label: stretched, mid-range, or shortened. The validator requires at least one stretched option per muscle per microcycle, unless the user's injury profile contraindicates it.
The meta-analytic consensus: training a muscle at least twice per week produces more hypertrophy than once per week, at equated volume. Going beyond 2× doesn't produce significantly more growth when volume is held constant — but it lets you distribute that volume across sessions more tolerably.
Meso picks a split (Upper/Lower, Push/Pull/Legs, Full-Body, or variations) based on your available frequency per week. The rule — ≥ 2× per muscle per week — is non-negotiable. If you can only train 2 days a week, full-body is the only valid choice.
days_per_week intake. Internal constraint: frequency(muscle) ≥ 2 for all trained muscles in the program. Splits that violate this for the given day count are pruned before the LLM sees them.
Chronic accumulation of training stress without sufficient recovery produces what the literature calls non-functional overreaching or, in the extreme, overtraining syndrome — marked by performance decline, hormonal disruption, and weeks-to-months of impaired recovery.
A deload — a planned reduction in training stress — allows accumulated fatigue to dissipate while preserving adaptive gains, producing the supercompensation response that underlies long-term progress. Meso schedules a deload at the end of every mesocycle, regardless of how the lifter "feels."
4 ≤ weeks ≤ 6 of loading + 1 week deload. Deload week: volume reduced 40–50%, intensity reduced ~20%, RPE capped at 6. This is a hard schedule constraint — no opt-out at generation time.
The Plan's 30-day calendar marks deload weeks ahead of time so you can see them coming. When the engine pulls one in early based on your readiness signals, you'll see why — not just a sudden lighter session.
"Add weight every week" is not a progression scheme — it's wishful thinking. Meso assigns each exercise one of four explicit progression schemes, chosen to match the movement and the phase:
Linear — a fixed micro-load added per week. Best for compound lifts in intermediate lifters (e.g., +2.5 kg/week on squats). Simple, durable, and backed by a long history of novice and early-intermediate programs.
Double progression — keep weight fixed, add reps within a target range, then jump weight and restart the rep range. Ideal for hypertrophy accessories where small plate jumps aren't available.
Wave loading — intensity undulates across weeks (e.g., 3 × 6, 4 × 4, 5 × 3, back down), letting volume and intensity both progress across multiple weeks. Useful in intensification blocks.
RPE-based — load is not prescribed in advance; it's derived from the previous session's RPE. The most individualized scheme, paired with Pillar 02.
progression_scheme ∈ {linear, double, wave, rpe}. Assignment is deterministic, based on movement type (compound vs. isolation), current phase, and the user's training status. Schemes do not change mid-cycle except when audit triggers a retry.
The History heatmap shows training density at a glance, with PR markers on each lift and session-to-session weight increments visible in the timeline. The progression rule isn't just a promise — it's a chart.
The order in which you perform exercises within a session affects performance on later exercises — a phenomenon studied extensively under the umbrella of exercise order effects. The consensus: exercises performed earlier are done with better performance (more reps, more load, better technique), and strength and hypertrophy adaptations follow.
This means the heaviest, most technically demanding, most fatiguing lifts — the compound multi-joint movements (squat, deadlift, bench press, overhead press, row, pull-up) — should lead the session. Isolations, machines, and accessories come after.
compound_rank < isolation_rank within every session. Exercises tagged compound occupy positions 1–N; isolation and machine fill positions N+1 onward. Violations trigger a regeneration retry.
Beginners grow on a whisper of stimulus. Advanced lifters need a shout. The meta-analysis by Rhea and colleagues quantified this: the volume and intensity that maximize strength gains differ substantially by training experience. Applying an intermediate's program to a beginner overtrains them; applying it to an advanced lifter under-stimulates them.
Meso asks for your training status at intake — novice, intermediate, or advanced — and uses it as a global multiplier on starting volume, progression increments, MRV, and phase length. The same framework, tuned per lifter.
training_status sets the phase-length range, starting volume multiplier, and default progression aggressiveness. A novice's linear progression might add 2.5 kg/week; an advanced lifter's might be 1 kg/month on the same lift.
Sports science doesn't stand still. Findings are refined, meta-analyses are re-run, and our framework updates accordingly. Every change to this document is archived with a version number and a dated changelog.
If you spot a rule we've missed, a source we should cite, or a study that supersedes one of ours — research@meso.app. We read every email.