Energy target methodology
This reference governs sections ## Daily energy target and ## Full-day macro targets.
Body mass and FFM sourcing
Use this hierarchy:
- measured current body mass in
athlete/PROFILE.md - most recent body mass in canonical daily logs or athlete notes
- typical in-season body mass in
athlete/PROFILE.md - explicit fallback placeholder
When body mass comes from a recent note rather than the profile, state the source in the BMR Notes column. When FFM is not measured, estimate cautiously and state the assumption. For elite female cyclists without a measured FFM value, an estimated FFM around 80-85% of body mass may be used only if clearly labelled as estimated.
BMR formulas
Use Mifflin-St Jeor as the default first estimate. Use exactly one second comparison column:
- Harris-Benedict revised when measured FFM is unavailable.
- Cunningham only when reliable measured FFM exists.
Do not combine Harris-Benedict and Cunningham in one column label; they are separate methodologies.
Female Mifflin-St Jeor:
BMR = 10 x weight_kg + 6.25 x height_cm - 5 x age_years - 161
Male Mifflin-St Jeor:
BMR = 10 x weight_kg + 6.25 x height_cm - 5 x age_years + 5
Female Harris-Benedict revised:
BMR = 447.593 + 9.247 x weight_kg + 3.098 x height_cm - 4.330 x age_years
Male Harris-Benedict revised:
BMR = 88.362 + 13.397 x weight_kg + 4.799 x height_cm - 5.677 x age_years
Cunningham, when reliable FFM exists:
RMR = 500 + 22 x FFM_kg
Lifestyle multiplier
Use non-training lifestyle multiplier x1.4 unless current context clearly indicates a different value. This represents normal daily movement, coaching-life activity, errands, and basic non-exercise activity while avoiding double-counting the planned training session.
BMR x 1.4 is a subtotal for non-training daily expenditure. It is not an additional component to add on top of BMR. The normal target calculation is:
normal_target = BMR x lifestyle_multiplier + training_expenditure
Do not calculate BMR + BMR x lifestyle_multiplier + training_expenditure.
Training expenditure
Use the strongest available evidence:
- device or TrainingPeaks calories for completed sessions
- planned workout TSS, IF, and duration
- calendar duration and intensity estimate
- rolling-plan fallback
If estimating from session type, be conservative and state the fallback source. Quality sessions with meaningful intensity usually require materially more carbohydrate availability than easy endurance sessions of the same duration.
Energy availability floor
The RED-S energy availability floor is based on IOC consensus framing: avoid chronic low energy availability by keeping energy availability at or above 45 kcal/kg FFM for normal physiological function.
Use this check:
minimum_intake = 45 x FFM_kg + exercise_energy_expenditure
Treat this as a risk screen unless the athlete has a confirmed LEA intervention, measured FFM, and a reliable exercise expenditure estimate. If FFM and exercise expenditure are both estimated, do not automatically make the 45 kcal/kg FFM screen the operating target. State the screen value, state the uncertainty, and choose an operating target from the normal target plus any justified context buffer.
If this floor is truly the binding constraint, the Operating target Notes column must say that the RED-S/LEA floor is binding and why. If FFM is estimated, the row must say so.
For athletes with Hashimoto's, recurring underfueling, recent heavy block fatigue, travel disruption, or race-week loading, bias toward the higher estimate rather than a lower neat-looking target.
Target validation checks
Before writing the plan, verify these arithmetic checks:
- BMR formula outputs match the displayed body mass, height, age, and sex.
- The non-training lifestyle row equals
BMR x multiplierand is labelled as a subtotal. - The operating target is explainable as
BMR x multiplier + training_expenditure + context_buffer, unless the LEA floor is explicitly binding. - The full-day macro calories equal carbohydrate grams x 4, protein grams x 4, and fat grams x 9.
- Timing breakdown calories roughly equal
CHO x 4 + protein x 4 + fat x 9for each row and the totals row. - If a target is more than 10% above the normal target, the plan must state the reason and identify which windows can be trimmed without compromising session fueling.
Macro rate sources
Use Thomas, Erdman, and Burke 2016, the Academy of Nutrition and Dietetics, Dietitians of Canada, and ACSM joint position statement, for carbohydrate and protein periodization ranges.
Common working ranges:
Use the IOC RED-S framework as the basis for avoiding low fat and low energy patterns when health context makes chronic restriction a risk. Fat has no single universal g/kg target in the same way carbohydrate does, so state the practical rationale when fat is deliberately elevated to repair a recent low-fat pattern.
Overshoot logic
Intentional overshoot is appropriate when at least one of these is active:
- LEA watch or documented underfueling pattern
- glycogen debt before a quality session
- tomorrow has a poor eating environment or travel disruption
- current block has accumulated fatigue and evidence of low intake
- race-week carbohydrate loading is active
When overshoot applies, add one plain-text fallback line under the energy target table and one italic note under the timing table. The fallback must name which lower-priority window can be trimmed and which priority window must stay intact.