Flux methodology
A grown-up explanation of why Flux prescribes what it prescribes — written because fitness enthusiasts (correctly) don't follow plans they can't reason about. Every default in the app has a defense here. Where the science is settled, we cite the consensus. Where it's a judgment call, we say so.
Table of contents
- ·Core philosophy
- ·Programming structure
- ·Progression — when we add weight
- ·Regression — when we pull back
- ·RIR vs training to failure
- ·Rep ranges + training styles
- ·Exercise substitution
- ·Time-budgeted sessions
- ·Concurrent training (running + lifting)
- ·Running structure (when Flux isn't your run coach)
- ·Wellness adjustments
- ·Weight finder mode
- ·Nutrition
- ·Sleep + recovery
- ·What Flux deliberately doesn't do
- ·Limitations + honesty
- ·References
Core philosophy
Flux optimizes for useful strength, indefinitely. Not for one-rep records, not for a six-week peak, not for impressing strangers on the internet. The whole system is biased toward decisions that compound over years rather than ones that look great in a six-week before/after.
That choice shows up everywhere in the code:
- ·Never grind a missed rep on compounds. Failure on a heavy squat or bench is where most lifting injuries happen. The cost of a failed top set isn't worth the marginal hypertrophic signal.
- ·Conservative micro-loading. +2.5 lb on upper / +5 lb on lower per successful session means slower progression, but a longer runway before stalling — which is when the deload mechanics kick in.
- ·Substitution over compromise. When the gym doesn't have the prescribed lift, Flux swaps to the same movement pattern with a reasoning callout. Better to do the right pattern with a worse implementation than the right implementation of a wrong pattern.
- ·The user's reality wins. Travel happens, life happens, runs happen. The planner adapts to whatever time, equipment, and recovery you have today — it doesn't punish you for missing a day.
What Flux is not:
- ·A powerlifting peaking program. If you're chasing a meet, use a meet prep template.
- ·A bodybuilding contest prep tool. We don't periodize for stage conditions.
- ·A calorie-tracking, macro-balancing, sleep-stage-analyzing dashboard. We touch nutrition + sleep where they affect training decisions; the rest belongs elsewhere.
Programming structure
Flux defaults to a three-session full-body rotation, three lifting days per week:
- ·Session A — Lower Heavy. Squat-pattern primary, secondary push, row, hip-dominant accessory, side delt, core.
- ·Session B — Upper Heavy. Bench-pattern primary, hip-dominant secondary (RDL / trap-bar), vertical pull, biceps, triceps, core.
- ·Session C — Mixed. Overhead press primary, row, single-leg / lunge, rear delt, calf, core anti-rotation.
The planner picks today's focus by looking at the last seven days and choosing whichever rotation slot is most stale. That gives each big compound a hard session roughly weekly while keeping every muscle group trained at least twice per week.
Why full-body over PPL or Upper/Lower:
- ·Plays nicest with running 4–5 days per week. Body-part splits leave you with cooked legs going into a 10-mile long run.
- ·Lower per-session volume on each muscle, which makes time-budgeted sessions (30/45/60/90 min) more flexible.
- ·Better fit for a single-user app where consistency over weeks matters more than maximum hypertrophy stimulus per session.
Slot priority within a session (the planner fills greedily in this order until the time budget runs out):
- ·Today's primary compound (highest priority — never gets dropped)
- ·Secondary compound
- ·Two assistance lifts
- ·One or two isolation accessories
- ·Ab finisher
Anything that doesn't fit gets logged as skipped and re-ranked for next session. After three consecutive skips of the same slot, you get a "drop from rotation" prompt.
Progression — when we add weight
Flux uses double progression with conservative micro-loading. For each working set:
| Last session outcome | Next session prescription |
|---|---|
| Hit target reps clean (RPE ≤ 8 or completed at failure with reps ≥ target) | Add the increment (+2.5 lb upper / +5 lb lower) |
| Hit target reps but grindy (RPE 9 in RIR mode) | Hold weight — keep building reps before adding load |
| Missed target reps once | Hold weight — one missed session isn't a stall |
The weight increment rounds to whatever your gym can actually load.
Barbells round to the nearest smallest_plate_lb × 2. Dumbbells round to
your gym's increment. Machines round to 5 lb. If the prescribed bump
isn't loadable, Flux skips to the next loadable step.
Why these increments are conservative:
A linear progression like StrongLifts 5×5 prescribes +5 lb per session on every lift. For trained lifters that math goes off the rails inside six weeks — you can't add 30 lb to your bench in a month indefinitely. Flux's +2.5 lb upper / +5 lb lower halves that, which doubles the runway before stalling. Beginner gains still happen at this pace; the difference is real lifters stay on linear progression much longer.
Why we don't use percentages of 1RM:
We don't test 1RMs — explicitly rejected for injury reasons. Without a true 1RM, percentage-based programming is built on an estimate of an estimate. Working-rep-based progression keeps the load math grounded in something you actually did last time.
Regression — when we pull back
Three triggers that drop weight by 10% next session:
- ·Two consecutive missed sessions on the same lift. One miss is noise; two is a real stall.
- ·Three weeks at the same weight without a working-rep PR on that lift. You've plateaued without overt failure — time to back off and re-ramp.
- ·Scheduled deload week every 5–6 weeks. Independent of stalls. Lighter loads, same movements, full recovery.
The 10% number is a balance: too small and you don't actually reset; too large and you waste a week rebuilding. After a deload, you re-climb in the standard increments until the previous top weight, then push past it.
Why scheduled deloads even when you feel fine:
The neural fatigue that wrecks a training cycle accumulates faster than your subjective sense of "I feel okay." Lifters who deload only when they stall ride those plateaus longer than lifters who deload on a schedule. The cost of a planned light week is small; the cost of a six-week grind to a deload is real.
Note: scheduled deloads are not yet active in the planner — they're in the v1.1 roadmap. Stall-triggered deloads are live today.
RIR vs training to failure
RIR = "Reps in Reserve." If a set ended with 1 RIR, you could have done one more clean rep. RPE 8 ≈ 2 RIR, RPE 9 ≈ 1 RIR, RPE 10 = failure.
Flux gives users a choice at onboarding (and in Settings):
- ·To failure (default, recommended for newer lifters). On accessory work, you go until you can't do another clean rep. Your final rep count becomes the calibration signal — if you're consistently hitting 15 on a 12-target set, the weight goes up. If you keep failing at 8, it comes down.
- ·RIR 1–2 (for experienced lifters). You stop with 1–2 reps left in the tank, self-assessed. Lower joint wear, more sustainable for very high training frequency, but requires you to actually know what RIR 1 feels like — which is harder than people think.
The big compounds always stay RIR 1–2 regardless of this setting. Squat, bench, deadlift, OHP, row — failure on these is where most lifting injuries happen. The technique breakdown at true failure on a loaded barbell makes the marginal hypertrophic signal not worth the cost. This rule is hard-coded in the planner.
Why "to failure" is the default for new users:
RIR is a learned skill. Untrained lifters consistently overestimate their reserves — they think they're at RIR 2 when they're at RIR 4. Training to failure on accessories is concrete: you know when you failed, and your rep count is unambiguous data. As you accumulate training experience, RIR becomes more reliable, and you can switch modes in Settings.
Rep ranges + training styles
Three styles, picked at onboarding:
| Style | Primary | Secondary | Assistance | Accessory |
|---|---|---|---|---|
| Strength | 3 reps | 5 reps | 5 reps | 8 reps |
| Mixed (default) | 5 reps | 8 reps | 8 reps | 12 reps |
| Hypertrophy | 8 reps | 10 reps | 10 reps | 12 reps |
These aren't religious numbers — they're sensible centers of well-studied rep-range bands. The research consensus over the last decade is that hypertrophy happens across a wide rep range (roughly 5–30 reps when sets are taken close to failure), and strength is most efficiently trained at lower reps with heavier loads [4] [5].
Why we still have a "Mixed" middle ground:
For a single user lifting for the long haul, a hybrid of strength rep ranges on big compounds (so you actually get stronger) and hypertrophy rep ranges on accessories (so you build muscle that supports the lifts) is the highest-ROI choice. Pure strength training under-stimulates hypertrophy; pure hypertrophy under-trains the neural force-production component. Mixed gets you most of both without overspecializing.
The rest of the session adapts to the style too — strength mode adds a 25% multiplier to rest times (heavier loads need more recovery between sets), hypertrophy mode shortens rest by 15% (volume + density matter more).
Exercise substitution
Every exercise in Flux's catalog is tagged with a movement pattern:
horizontal_push, vertical_push, horizontal_pull, vertical_pull,
knee_dominant, hip_dominant, lunge, carry,
biceps_curl, triceps_ext, lateral_delt, rear_delt, calf,
core_anti_ext, core_anti_rot, core_flexion, ...
When the planner picks a slot, it asks "what's the best movement in this pattern that this gym can actually do?" The substitution rules:
- ·Filter by equipment. If the gym profile doesn't have a barbell, barbell bench is out. The candidate list narrows to what's physically doable.
- ·Filter by drops. Exercises the user has explicitly dropped (via the 3-strike re-rank prompt) get removed.
- ·Apply wellness penalties. Sore knees? Back squat drops ~60 rank points so leg press or hip thrust win. Sore back? Bent-over barbell row gets penalized so chest-supported row wins. These keep you training around the issue without lying about it.
- ·Pick the highest-preference survivor. Each catalog entry has a
preference_rank0–100. Gold-standard movements are 90+; bodyweight fallbacks are 30–50. The winner becomes today's prescription.
The user sees an honest callout: "Bench Press unavailable in this gym — substituting DB Bench Press (same primary mover)." You can swap to any ranked alternate in the detail modal at any point during the session.
Why a substitution engine instead of fixed templates:
A fixed program ("Mon: Bench / Wed: Squat / Fri: Deadlift") falls apart the first time you're in a hotel gym without a squat rack. The substitution model means your training plan keeps working anywhere — you might do leg press instead of squat on a Tuesday, but you're still hitting the knee-dominant pattern, still loading the quads, still making progress.
Time-budgeted sessions
When you start a session, Flux asks: 30, 45, 60, or 90 minutes? Then immediately: cardio in this session? (0/15/30/45 min). If you're running, biking, or rowing inside the same time budget, that block is subtracted from the lifting share so the total stays honest.
The planner builds today's prescription against the lifting share (total minus cardio), estimates the time per slot, and greedy-fills from priority 1 (primary compound) down. Whatever doesn't fit is logged as "skipped for budget" and re-ranked for next session. The primary compound never gets dropped.
Time math (per slot):
- ·4 seconds per rep (eccentric + concentric + pause + breath)
- ·60 seconds setup per exercise (walk to it, change weight, get in position)
- ·Rest time × 1.1 slack (people rest a bit longer than prescribed in practice)
- ·90 seconds reserved per session for water, towel, phone glances, general slack
Net: when you say "60 min" the planner targets ~55 min of prescribed work, so the session actually fits in 60 min of wall time. The previous math (3s/rep + 30s setup + no slack) was honest stopwatch theory but overpromised by ~20%. Fuzziness now matches reality.
Skipped lifts are first-class data, not failure. Three consecutive skips of the same slot triggers a "drop from rotation?" prompt at the end of the session. If you keep skipping ab work, maybe that's data that ab work isn't a priority for you — Flux respects that instead of guilt-tripping you about it.
Concurrent training (running + lifting)
Flux is built around the reality that the user runs 10–20 mi/wk in addition to lifting 3×/wk. That's "concurrent training" — running endurance + resistance training in the same week — and it has real interactions the planner accounts for:
- ·
48-hour rule between heavy lower lift and long run. Heavy squat/deadlift creates microtrauma that takes 48+ hours to recover from. Long runs into that recovery window degrade run quality AND re-injure healing tissue. Flux defers heavy lower work when you announce a long run within 24h, or when a long run happened in the last 48h.
- ·
Lower-body volume scales with running mileage. Higher weekly mileage → smaller lift-day leg volume. Concurrent training research going back to Hickson's 1980 paper that named the "interference effect" [1] shows that high-volume endurance training blunts strength and hypertrophy gains in lower body more than upper, with the effect proportional to endurance volume + frequency [2]. Flux mitigates by dialing back lower-body sets when running volume is high, not by cutting running.
- ·
Acute:chronic workload ratio (ACWR) as a soft warning. ACWR = acute (last 7d) ÷ chronic (last 28d, weekly average). The original work on this metric (Gabbett's "training-injury prevention paradox" [3]) reported elevated injury risk above ~1.5 across multiple sports. Worth noting: ACWR's predictive validity has been challenged by later work (Impellizzeri and others have argued the ratio adds little beyond simple acute load), so Flux treats it as a soft warning, not a hard rule. It surfaces on the progress dashboard as an amber pill — a "hey, your load is climbing fast" nudge, not a diagnosis.
- ·
Same-day run-then-lift adjustments. If you tell Flux "long run today" at session start, the planner dials back lower-body sets in today's session and may swap squat/deadlift for a less knee-flexion- demanding alternative (leg press, hip thrust).
Why we don't auto-prescribe runs:
Running on-when-life-allows is the user's reality. The planner reads recent runs (auto-imported from iOS Shortcuts → Apple Health, or manually entered) and adapts lifting around them, but doesn't tell you when to run. That's a different planning problem with different constraints.
Running structure (when Flux isn't your run coach)
What Flux does with running: imports your runs (Apple Health via iOS Shortcut, or manual entry), factors them into lifting decisions, and surfaces the ACWR injury-risk signal on the progress dashboard. It does not prescribe runs.
Why Flux doesn't program runs: running programming done well is its own deep discipline (Daniels Running Formula, Hansons, Pfitzinger, McMillan) and replicating their work in-app would bloat Flux without adding much over using one of those frameworks directly. But running is half the training picture for anyone who runs, so here's the framework that meshes well with how Flux is structuring the lifting side. Take what's useful; ignore what isn't.
The 80/20 rule (polarized distribution)
The single highest-ROI structural decision in any running plan: roughly 80% of weekly mileage should be easy, 20% should be hard. Not the other way around. Not 50/50. Not "every run is moderate."
This is the polarized-training distribution that Stephen Seiler's work on elite endurance athletes converged on across sports and decades [13], and that Stöggl & Sperlich's controlled comparison in trained runners found beat threshold-focused, high-intensity-focused, and high-volume mediocre-pace approaches across multiple endurance markers [14].
The trap most recreational runners fall into is the moderate-pace middle — runs that feel pretty hard but aren't quite intervals, done day after day. Felt heroic. Builds neither aerobic base nor top-end power. It's the worst of both worlds.
The practical version for a 15 mi/wk lifter:
- ·3 easy runs of ~3 mi each (~9 mi total, conversational pace)
- ·1 longer easy run of 5–6 mi
- ·That leaves ~0–1 hard runs/week. Tempo or intervals, alternating weeks.
If you're running 4–5 days a week with one harder session and one long run, you're already polarized.
Run types defined
| Type | Pace | Duration | Feel | What it trains |
|---|---|---|---|---|
| Easy | Conversational | 20–45 min | Could chat in full sentences. Almost suspiciously easy. | Aerobic base, mitochondrial density, capillary growth, fat oxidation |
| Long | Easy-pace, sometimes "long slow distance" | 60–120 min for most | Same effort as easy, just more of it. Last 15 min may feel grindy. | Glycogen storage, mental durability, fat oxidation, capillarization |
| Tempo | "Comfortably hard" | 20–40 min continuous | Could speak short phrases, not full sentences. Sustained discomfort. | Lactate threshold (the speed you can hold without lactate accumulating) |
| Threshold reps | Tempo pace, broken | 4–8 × 1k or 2k with short rests | Same effort as tempo, longer total at pace via rest breaks | Same as tempo with more total volume at intensity |
| Intervals (VO2) | Hard | 4–8 × 400–800m with full recovery | Last 30 sec hurts. Mile-pace-ish. | VO2max, neuromuscular power, running economy |
| Strides | Near-sprint, very short | 6–10 × 100m with full walk-back | Form-focused, not lactate-producing | Mechanics, leg turnover, sprinter neural patterns |
For a recreational runner not training for a specific race, mixing easy runs + one long run weekly with occasional tempo or intervals is plenty. Don't over-engineer this.
Heart rate zones (if you wear one)
Five-zone model, percentages of max HR:
- ·Zone 1: 50–60%. Active recovery. Walk pace. Most people never run this slow.
- ·Zone 2: 60–70%. Easy aerobic. Where most of your running should live.
- ·Zone 3: 70–80%. The danger zone — the moderate-pace middle. Not easy, not hard. Avoid for the bulk of training.
- ·Zone 4: 80–90%. Threshold. Tempo runs live here.
- ·Zone 5: 90–100%. VO2max + above. Intervals.
Find max HR honestly: the 220 − age formula is famously bad
(individual variance is huge). A 30-min all-out run with your highest
recorded HR is closer. Or use the Tanaka formula: 208 − 0.7 × age,
which holds better at older ages.
No watch, no problem: the talk test is the highest-ROI substitute. Z2 = can chat in full sentences. Z3 = short phrases. Z4 = single words. Z5 = nothing.
Weekly mileage progression
The classic 10% rule says don't increase weekly volume by more than 10% week over week. This rule is older than most running research and doesn't have a clean trial backing it (the one rigorous test of it [Buist 2008] actually found it didn't reduce injuries compared to a larger increase, suggesting individual recovery capacity matters more than the exact ramp rate). But it's still a sensible upper bound.
Better framework for non-racing recreational running:
- ·Hold a steady weekly mileage for 3–4 weeks
- ·One down week (~70% of usual mileage) for recovery
- ·Then bump base mileage 10–15% if you want to grow
- ·Repeat
This mirrors the deload structure Flux uses for lifting — periodic intentional drops are how the body actually consolidates the adaptations. ACWR > 1.5 (which Flux flags) is a sign you've ramped faster than your recovery is keeping up.
Long-run sizing
How long should the long run be relative to weekly mileage?
- ·Recreational, not racing: 25–30% of weekly mileage as the long run is the common consensus (Daniels). So at 15 mi/wk, your long run is 4–5 mi. At 20 mi/wk, 5–6 mi.
- ·Marathon training: scales up dramatically (long runs of 16–22 mi for a 40–60 mi/wk runner) but you should use a dedicated marathon plan for this — Hansons, Pfitz, Daniels all have well-known templates.
Long-run progression: add ~1 mi to the long run every 2–3 weeks, not weekly. Then take a down week at 70% length to consolidate.
Lifting + running on the same day
If you do both in one day, order matters, and the priority decides the order:
- ·Priority strength → run after. Lift first when fresh, then easy run as a cooldown / additional aerobic stimulus. Common pattern for Flux's typical day.
- ·Priority running → lift after. Run first when fresh, then lift (lower volume than a dedicated lift day — half-sessions are fine).
- ·Both serious → ideally not same day. If you have a hard run and a heavy lift planned, separate by 6+ hours (morning + evening) or split to different days.
Specifically for hard lower-body work + hard runs: at least 24 hours between them. Heavy squats + a tempo run on the same day is a recipe for both being mediocre. Flux's planner already enforces the 48-hour rule between heavy lower lift and a long run — same logic, but self-impose it for tempo + intervals too.
Strength training's payoff for running
This is the underappreciated piece. Strength training improves running economy (oxygen cost at a given pace) by 2–8% in trained endurance athletes, with the meta-analytic effect well-replicated [15] [16]. Running economy directly improves race times at all distances without changing your cardiovascular fitness — you're just more efficient at producing power.
It does not make you slower, even in the short term, despite folk wisdom. The original 1980s evidence for the "interference effect" looked at sequential same-session training and high-volume endurance work crowding out strength. For the reverse direction — strength helping running — the evidence is much cleaner: do both, time them well, run better.
What kind of strength training helps running most:
- ·Heavy compound lifts (squat, deadlift, hip thrust) build the force-production capacity that lets each footstrike be a little more efficient.
- ·Plyometrics + stiff-ankle work improve elastic energy return. Don't need to be elaborate — pogo hops, A-skips, single-leg hops are the toolkit.
- ·Heavy is the keyword. Endurance-style high-rep "for the legs" doesn't move running economy. The Berryman meta found 3–8 rep ranges did the most.
Flux's Mixed training style hits both — strength reps on compounds + a volume of accessory work. That's the right shape for a runner-lifter who isn't doing this for the powerlifting meet.
Race-specific training (if you're racing)
If you're training for a specific race (5K PR, half marathon, marathon), Flux is not the right tool for the running side. Use a dedicated plan:
- ·5K / 10K: Daniels' "Running Formula" 2Q plan (two key workouts per week + easy filler). Free templates everywhere; the book itself is worth owning.
- ·Half marathon: Hal Higdon's intermediate plans for first-timers, Pfitzinger's "Faster Road Racing" for repeat racers.
- ·Marathon: Hansons Marathon Method (lower mileage, density-focused, for non-elites) or Pfitz "Advanced Marathoning" (higher mileage, competitive-focused).
These plans periodize toward a specific race date and prescribe pace targets based on goal time. Flux just logs what you did. The two layers coexist fine — run the dedicated plan, log the runs, let Flux's lifting side adjust around them.
Wellness adjustments
At session start, the planner asks three quick questions:
- ·Legs readiness 1–5. Below 3 dials back lower-body sets.
- ·Sore tags. Knees, back, shoulders, hips, elbows, wrists. Each tag
triggers movement-pattern-specific substitutions:
- ·Knees → no deep-knee-flexion squats. Leg press / hip thrust / step-up wins.
- ·Back → no bent-over rows or heavy hinges. Chest-supported row / hip thrust / RDL with light load wins.
- ·Shoulders → no overhead press. DB floor press / pushdowns win.
- ·Wrists → favor machines/cables over barbells (no thumb-around grip on heavy bars).
- ·Sleep hours. Auto-imported from iOS Shortcut if available, manual otherwise. Below 6 hours dials back working-set sets across the board.
These aren't dogmatic — they're conservative defaults that you can override mid-session by editing any prescribed weight/reps. Flux assumes you know your body better than the algorithm does on any given day.
Weight finder mode
When you mark a lift as "Not sure" during onboarding (or it's a lift with no logged history), Flux switches to weight finder mode:
- ·5 sets at progressively heavier weights instead of N sets at the same weight
- ·Barbell ramp: bar → bar+2 plates → bar+4 plates → bar+6 plates → bar+8 plates worth (per side)
- ·DB ramp: min → min+2inc → min+4inc → min+6inc → min+8inc
- ·Machine ramp: 25 → 35 → 45 → 55 → 65 lb
You go until it gets to RPE 7+ (1 clean rep left in the tank), then stop the remaining sets early. Whatever you finished at becomes the baseline weight for next session, after which the standard linear progression takes over.
The amber "Find your starting weight" banner in the session UI flags when this mode is active. It's transparent — you know exactly why this session looks different from a normal one.
Why this beats "just start at the empty bar":
Empty-bar starts undertrain experienced lifters for weeks while the progression climbs back to a meaningful working weight. A controlled ramp lets you find a real working weight in one session, then progress honestly from there.
Nutrition
Flux doesn't track nutrition directly — that's a separate problem space (MyFitnessPal, Cronometer, etc. exist). But training decisions are downstream of nutrition decisions, so the framework matters.
The four numbers that actually move the needle, in rough priority:
- ·Total daily calories drive whether you gain, maintain, or lose weight. Everything else is rounding error compared to this.
- ·Protein intake drives muscle protein synthesis. Aim for 0.7–1.0 g protein per lb bodyweight per day (~155–220 g for a 180 lb lifter), which is roughly the range the ISSN's protein position stand identifies as supportive for resistance-trained individuals [6]. Higher end if you're cutting calories. Lower end is fine in a clear surplus. Spread across 3–5 meals; per-meal timing matters far less than total daily intake.
- ·Carbs around training. A pre-training meal with 30–60 g carbs 1–3 hours out improves training quality. Post-training carbs help glycogen replenishment but only matter if you're training again within 8–12 hours. Don't fear them.
- ·Hydration. Roughly half your bodyweight in ounces of water per day as a floor (~90 oz for 180 lb), more if you're sweating in a gym or running. Coffee + tea count. Beer doesn't.
What doesn't matter as much as the internet says:
- ·Meal timing windows. The "anabolic window" is at least several hours wide, not 30 minutes — Aragon and Schoenfeld's review on the topic is the standard citation [7].
- ·Specific macronutrient ratios (40/30/30, keto, etc.) — these are preference / adherence tools, not magic.
- ·Fasting protocols — work for some people, do nothing special metabolically.
- ·Supplements beyond creatine + protein powder + vitamin D for most people. Pre-workout is caffeine. BCAAs are protein you could've just eaten.
The one supplement worth singling out: creatine monohydrate. Most-studied performance supplement in existence — the ISSN's position stand catalogs the evidence base across strength, hypertrophy, and safety [8]. 3–5 g per day, timing irrelevant, loading phase optional, no cycling needed. Modest but consistent training-volume gains. Cheap, safe, well-tolerated.
For weight goals:
- ·Maintenance while training: don't over-engineer this. Eat to satiety on whole foods, hit the protein target, see how the scale moves over 2–4 weeks.
- ·Lean gain (surplus): 200–400 cal/day above maintenance. Slow bulks let you add muscle with less fat. Strength gains tell you it's working better than the scale does.
- ·Fat loss (deficit): 300–500 cal/day below maintenance, protein fixed or higher. Strength typically holds at moderate deficits; expect more grindy sessions, hold weight before bumping it.
Disclaimer: Flux is not a nutritionist. If you have medical conditions, are using medications that affect appetite or metabolism, or are pursuing aggressive composition changes, talk to a registered dietitian. This section is consensus advice for healthy adults training recreationally.
Sleep + recovery
Sleep is the single highest-leverage recovery input in the entire training system. Not nutrition, not stretching, not active recovery — sleep.
Target: 7–9 hours per night, consistent timing. The variance matters — sleeping 9 / 5 / 9 / 5 across four nights is worse than sleeping 7 / 7 / 7 / 7.
What sleep deprivation does to training:
- ·24h without sleep: meaningful drop in peak force production and a noticeable RPE-at-load shift (a 7/10 set feels like 9/10). Reilly and Piercy's classic 1994 study on partial sleep deprivation in weightlifters quantified this in the ~10–15% range on submaximal loads [9].
- ·Chronic short sleep: Milewski et al. found that adolescent athletes sleeping under 8 hours had a substantially higher in-season injury rate, with the effect persisting after controlling for training load [10]. The population is adolescent, so adult extrapolation is inference, not direct evidence — but the mechanism is consistent across ages.
- ·Reduced testosterone production after even short-term sleep restriction in healthy young men was shown in Leproult and Van Cauter's 2011 study (~10–15% drop after one week at 5 hours) [11]. Growth hormone secretion and muscle protein synthesis follow similar patterns in the broader sleep-restriction literature.
What Flux does with your sleep input:
- ·Below 6 hours → dials back the working-set count on lower-body lifts (highest recovery cost).
- ·Below 5 hours → may trigger an early-deload suggestion if it's sustained.
- ·Above 8 hours → no special adjustment, but it shows up on the progress dashboard so you can correlate good sleep weeks with PRs.
Active recovery + mobility:
- ·Z2 cardio (low-intensity, conversational pace) accelerates recovery between hard lifting sessions. 20–40 min on a non-lift day is the sweet spot. Flux's planner respects this — easy-run days are good complements to lift days.
- ·Walking is undervalued. 8–12k steps/day is meaningfully better than 4k for everything from cardiovascular fitness to mood to glucose control. Not a substitute for harder training, but the floor.
- ·Dynamic warmup before lifting matters more than static stretching after. Flux's warmup ramp on compounds handles this — by set 3 of the warmup you're prepared for the working weight.
- ·Foam rolling before training helps with self-reported tightness. Doesn't change tissue length. Doesn't replace warmup.
- ·Mobility work (CARs, banded distractions, etc.) on a separate rest day if you have a specific restriction. Not daily ritual unless you enjoy it.
Stress + cortisol:
Acute stress (heavy training) is fine — that's the signal you're adapting to. Chronic stress (work pressure, sleep loss, life chaos) is the killer. It elevates cortisol, blunts muscle protein synthesis, slows recovery, and erodes consistency. If you're going through a stressful period, deload sooner and more often. The training won't catch up if everything else is on fire.
Disclaimer: sleep numbers are population averages from well-controlled studies — Mah et al.'s sleep-extension protocol in collegiate basketball players is the cleanest demonstration that the other direction works too: extending sleep to 10 h/night improved shooting accuracy, sprint times, and reaction time over the control period [12]. Individual response varies. If you have a sleep disorder, a sleep physician is the right person to talk to, not a workout app.
What Flux deliberately doesn't do
Decisions explicitly made against doing things that are common in fitness apps:
- ·No 1RM testing. Maximal singles are where most injuries happen. We estimate 1RM from working-rep PRs via the Epley formula (good enough for the PR list) and never prescribe a true 1RM attempt.
- ·No grind reps on compounds. Stop with 1–2 in the tank, always. If you reliably hit grindy reps on the squat, you're either too heavy or too tired. Flux's deload triggers should catch this.
- ·No drill-sergeant motivation. No "you got this!" exclamation marks, no streak counters, no shame copy for missed days. The four voice variants are all calm, even the "dry" one — none of them yell.
- ·No leaderboards or social comparison. Flux is for you. The weight your friend can squat is irrelevant to your progression decisions, and we don't want to make it salient.
- ·No supplement recommendations beyond creatine + protein + vitamin D as honest-to-god research-backed defaults. We're not selling supplements.
- ·No fat-loss prescriptions. Calorie deficit + protein target + consistency is the answer. There's no "fat-burning rep range" we can prescribe that compares with eating less.
- ·No Strava / Garmin / Nike OAuth. Apple Health via iOS Shortcuts is the v1 import path. Building one more "connect your fitness apps" surface is more work than the marginal benefit justifies for a single-user app.
- ·No Capacitor wrapper / native iOS app. PWA is enough for v1. When Dynamic Island Live Activities for the rest timer becomes meaningfully better than the in-app fill bar + push notifications, we'll revisit.
Limitations + honesty
What Flux is not good at — yet, or maybe ever:
- ·Olympic lifting. The catalog has no snatch, clean, jerk, or any of the derivative movements. The technique demands are high enough that a coach is a much better choice than an app.
- ·Powerlifting peaking. Linear progression + scheduled deloads is good general training but not a meet-prep template. If you're 8 weeks out from a meet, use a peaking program.
- ·Sport-specific conditioning. Plyometrics, speed work, sport-specific drills — not in scope. Lift with Flux, condition separately.
- ·Rehab from injury. If you're working back from a real injury, a PT designs the program, not a planner. Flux's "sore tags" handle ongoing minor stuff (cranky knees, tweaky back); they're not a substitute for actual rehab work.
- ·Beginner-friendly mechanics coaching. The exercise detail modal shows step-by-step instructions from the Free Exercise DB (CC0), but text instructions are no substitute for watching someone do the movement or having a coach correct your form. If a lift feels wrong, swap to a more familiar alternative — Flux's substitution engine will respect that.
Where the methodology is heuristic, not proven:
Most of the specific numbers in this document are well-supported by the research consensus (rep ranges, deload triggers, sleep targets). A few are pragmatic estimates that Flux ships with because the alternative is doing nothing:
- ·The exact 10% deload depth is convention, not gospel.
- ·The 5–6 week scheduled deload interval is a midpoint of common recommendations; some lifters need deloads more often, some less.
- ·The 4-second-per-rep time math is a population average; tempo on individual lifts varies a lot.
- ·The ACWR > 1.5 injury threshold has been replicated across multiple sports but the exact number drifts depending on the population.
If you've got a specific reason to think any of these defaults are wrong for you, the override is in your hands — edit weights/reps in session, drop lifts you don't want, adjust your training style in Settings. Flux is opinionated but not stubborn.
References
Citations for the empirical claims in this document. These are the papers I'd point to if you wanted to verify the underlying evidence yourself. Where a claim is heuristic or consensus rather than from a specific study, I've labeled it that way inline rather than fake a citation.
- ·
Hickson, R.C. (1980). Interference of strength development by simultaneously training for strength and endurance. European Journal of Applied Physiology and Occupational Physiology, 45(2–3), 255–263. — The original paper naming the concurrent-training "interference effect."
- ·
Wilson, J.M., Marin, P.J., Rhea, M.R., Wilson, S.M., Loenneke, J.P., & Anderson, J.C. (2012). Concurrent training: a meta-analysis examining interference of aerobic and resistance exercises. Journal of Strength and Conditioning Research, 26(8), 2293–2307.
- ·
Gabbett, T.J. (2016). The training–injury prevention paradox: should athletes be training smarter and harder? British Journal of Sports Medicine, 50(5), 273–280. — The paper that popularized acute:chronic workload ratio. Subsequent work (Impellizzeri et al. and others) has challenged the ratio's predictive value beyond just acute load; Flux treats ACWR as a soft warning rather than a hard threshold.
- ·
Schoenfeld, B.J., Grgic, J., Ogborn, D., & Krieger, J.W. (2017). Strength and hypertrophy adaptations between low- versus high-load resistance training: a systematic review and meta-analysis. Journal of Strength and Conditioning Research, 31(12), 3508–3523.
- ·
Schoenfeld, B.J., Contreras, B., Krieger, J., Grgic, J., Delcastillo, K., Belliard, R., & Alto, A. (2019). Resistance training volume enhances muscle hypertrophy but not strength in trained men. Medicine & Science in Sports & Exercise, 51(1), 94–103.
- ·
Jäger, R., Kerksick, C.M., Campbell, B.I., Cribb, P.J., Wells, S.D., Skwiat, T.M., Purpura, M., Ziegenfuss, T.N., Ferrando, A.A., Arent, S.M., Smith-Ryan, A.E., Stout, J.R., Arciero, P.J., Ormsbee, M.J., Taylor, L.W., Wilborn, C.D., Kalman, D.S., Kreider, R.B., Willoughby, D.S., Hoffman, J.R., Krzykowski, J.L., & Antonio, J. (2017). International Society of Sports Nutrition position stand: protein and exercise. Journal of the International Society of Sports Nutrition, 14, 20.
- ·
Aragon, A.A., & Schoenfeld, B.J. (2013). Nutrient timing revisited: is there a post-exercise anabolic window of opportunity? Journal of the International Society of Sports Nutrition, 10(1), 5.
- ·
Kreider, R.B., Kalman, D.S., Antonio, J., Ziegenfuss, T.N., Wildman, R., Collins, R., Candow, D.G., Kleiner, S.M., Almada, A.L., & Lopez, H.L. (2017). International Society of Sports Nutrition position stand: safety and efficacy of creatine supplementation in exercise, sport, and medicine. Journal of the International Society of Sports Nutrition, 14, 18.
- ·
Reilly, T., & Piercy, M. (1994). The effect of partial sleep deprivation on weight-lifting performance. Ergonomics, 37(1), 107–115.
- ·
Milewski, M.D., Skaggs, D.L., Bishop, G.A., Pace, J.L., Ibrahim, D.A., Wren, T.A., & Barzdukas, A. (2014). Chronic lack of sleep is associated with increased sports injuries in adolescent athletes. Journal of Pediatric Orthopaedics, 34(2), 129–133.
- ·
Leproult, R., & Van Cauter, E. (2011). Effect of 1 week of sleep restriction on testosterone levels in young healthy men. JAMA, 305(21), 2173–2174.
- ·
Mah, C.D., Mah, K.E., Kezirian, E.J., & Dement, W.C. (2011). The effects of sleep extension on the athletic performance of collegiate basketball players. Sleep, 34(7), 943–950.
- ·
Seiler, S. (2010). What is best practice for training intensity and duration distribution in endurance athletes? International Journal of Sports Physiology and Performance, 5(3), 276–291. — The foundational analysis of polarized training distribution in elite endurance athletes (Seiler's "80/20" observation).
- ·
Stöggl, T., & Sperlich, B. (2014). Polarized training has greater impact on key endurance variables than threshold, high intensity, or high volume training. Frontiers in Physiology, 5, 33. — Controlled comparison of training distributions in trained endurance athletes; polarized outperformed threshold-focused approaches across multiple markers.
- ·
Berryman, N., Mujika, I., Arvisais, D., Roubeix, M., Binet, C., & Bosquet, L. (2018). Strength training for middle- and long- distance performance: a meta-analysis. International Journal of Sports Physiology and Performance, 13(1), 57–63. — Meta-analytic estimate of strength training's effect on running economy and endurance performance (~2–8% running economy improvement).
- ·
Beattie, K., Kenny, I.C., Lyons, M., & Carson, B.P. (2014). The effect of strength training on performance in endurance athletes. Sports Medicine, 44(6), 845–865. — Broader review supporting the same conclusion across endurance disciplines.
What's not cited here — and why
Several specific numbers in this document are pragmatic defaults rather than citations of a single study. To stay honest about which is which:
- ·+2.5 lb upper / +5 lb lower micro-loading is consensus practice among intermediate-strength coaches, not from a single paper. The underlying principle (smaller loadable increments extend linear progression) is well-established mechanically but doesn't have a trial backing the exact numbers.
- ·10% deload depth is convention from popular templates (5/3/1, RTS, others). No specific study has compared 5% vs 10% vs 15% deload depths head-to-head in a way that would let us pick a single number.
- ·5–6 week scheduled deload interval is a midpoint of common programming advice. Individual recovery capacity varies widely; treat it as a starting point.
- ·4 seconds per rep, 60 seconds setup, 1.1× rest slack, 90s session buffer are estimates tuned to keep the time-budget math honest in practice. They're not from a study — they're from "previous numbers underpredicted session length by ~20%."
- ·The "10% rule" for weekly mileage progression is older than most running research and lacks a rigorous trial backing it; the most-cited attempted test (Buist 2008) didn't find it reduced injuries compared to a faster progression. Treat it as a reasonable upper bound, not a law.
- ·Long run = 25–30% of weekly mileage is consensus advice (Daniels among others) but isn't a hard physiological threshold. Lower-mileage runners can run higher percentages of weekly volume in a single long effort and be fine; high-mileage marathoners often run lower percentages because the absolute distance is what matters.
The intent throughout: give defaults grounded in what we actually know, label heuristics as heuristics, and let users override anything that doesn't match their experience.
This document lives at docs/METHODOLOGY.md in the source tree. It's
also rendered in-app at /methodology for reference during use.
Suggestions, corrections, and disagreements welcome — file an issue
on the repo or just edit the markdown and PR.