Skip to content

Exercise

Exercise tracking covers four engine classes (cardio / resistance / HIIT / recovery), three energy modes for how workouts interact with your calorie budget, and feeds the simulation for cortisol, growth hormone, and glucose disposal effects.

Engine classes

When logging a workout, you pick one of four classes. The choice affects how the simulation models the workout and what default MET values are used:

ClassDefault METExamples
Cardio6.0Running, cycling, swimming, hiking.
Resistance5.0Weightlifting, calisthenics, bodyweight strength.
HIIT8.0Sprints, intense interval work, CrossFit-style.
Recovery2.5Walking, mobility, yoga, stretching, low-effort activity.

The classes aren't interchangeable. Cortisol response is much sharper for HIIT than recovery; growth hormone burst patterns differ; glucose disposal varies. The simulation reads the class.

Logging a workout

  1. Tap Quick Log → Exercise (or open the Log page).
  2. Pick from your enabled exercises (or type a freeform name).
  3. Pick the engine class.
  4. Enter duration in minutes.
  5. (Optional) intensity slider — 0.5× (very easy) to 1.5× (very hard); defaults to 1.0×.
  6. (Optional) detailed metadata: sets/reps/weight for resistance, distance/pace for cardio.
  7. Save.

Calories burned compute automatically: kcal = MET × kg × hours × intensity. Editable if you have a wearable that reports a more accurate number.

Energy modes

How workouts interact with your daily calorie target. Three modes — pick one in Profile → Exercise → Energy mode.

Baseline (default)

Workouts are tracked but don't change your daily target. Your TDEE setting (e.g., "Moderate activity") already includes typical exercise. Adding logged workouts on top would double-count.

Daily target: 1,800 kcal (regardless of exercise)
Burn shown: yes

Best for users who set TDEE realistically. Most users.

Earn

Each workout adds calories to today's target. Pairs with a sedentary TDEE — you assume zero activity baseline, then earn your way up.

Daily target: 1,800 + (today's burn)
Workout burn 400 kcal → today's target becomes 2,200

Best for users who set TDEE to sedentary on purpose. Rewards exercise visibly.

Hidden (deprecated)

Old mode that hid exercise burn entirely. New code paths treat it as baseline. Not user-selectable for new users.

Strict-universal exclusion

When a day is marked untracked, exercise drops out of the rolling earn-budget pool — even though the workout is still in the simulation:

Vacation Tuesday — marked untracked. You went for a run. The run is logged in ExerciseLog (and feeds the simulation). The run does not add calories to the weekly earn-budget pool.

Rationale: marking the day untracked means the day doesn't count, period. Counting the workout while excluding food creates an asymmetric mental model.

What energy mode does NOT change

  • Macro targets (protein/carbs/fat) — fixed across modes.
  • Simulation curves — cortisol, growth hormone, glucose, etc. all respond to logged workouts regardless of mode.
  • Per-workout calorie estimate — computed the same way; what changes is how the budget consumes it.

Custom exercises

Add your own exercises to the catalog (e.g., "Sunday hike," "Climbing session"). Custom exercises remember their last MET, intensity, and class so re-logging is one tap.

Profile → Exercise → Catalog → + Add.

How exercise affects the simulation

Each engine class has a distinct pharmacology profile:

  • Cardio: glucose uptake, lactate, modest cortisol.
  • Resistance: growth hormone pulse, sharp cortisol, glucose disposal post-workout.
  • HIIT: large cortisol response, growth hormone burst, longer recovery window.
  • Recovery: minimal acute response; useful for the "don't double-count moderate movement" path.

Intensity modifies amplitude. Duration modifies AUC.

Cumulative effect across the day is what the simulation actually solves — three short workouts vs one long workout produce different downstream patterns even at equal kcal.

Common questions

"My wearable says I burned 600 kcal but the app says 400." Edit the caloriesBurned field on the entry. Wearable numbers tend to be more accurate for cardio with HR data; MET-table estimates work better for resistance training.

"Why is the MET formula clamped at 1.5× intensity?" Above 1.5×, the linear MET model stops being honest. A 5× intensity slider on Running (MET 7.0) doesn't mean 5× the burn — at that effort you'd be in HIIT territory, which has a different MET base entirely.

"What if I forget to pick a class?" The default is cardio (MET 6.0). For accuracy, pick the right class — the simulation uses it.

"Does exercise affect the trend line for weight?" Indirectly. Weight responds to net energy balance. The trend line is computed from your weigh-ins, which already reflect whatever your exercise + intake did.

Privacy

Exercise data is included in your export and removed on deletion.

Help docs for Protokol Lab.