Skip to content

Workout Library — phase-based programming

Each workout is a structured object: an ordered list of steps with duration, intensity target, and description. Structure is not decorative — it's what lets us export to Garmin Connect (.fit), Intervals.icu (JSON), Apple Health / Google Fit, and Strava. See DESIGN.md §9 External integrations.

Intensity targets use two universal scales the user can calibrate to their own metrics:

  • RPE (rate of perceived exertion), 1–10. Universal fallback.
  • Zone (Z1–Z5), matching the standard 5-zone HR/power model most training platforms use.

The library below is the seed content for the prototype. Each entry maps 1:1 to the Workout schema in DATA_MODEL.md.


Phase palette

PhaseDefault focusDefault RPE ceilingRationale
MenstrualRestore + gentle move6Baseline energy is often low; some athletes feel fine here, so we offer "if energy is high" upgrades.
Follicular (late)Strength + power + HIIT9Rising estrogen, best recovery, best window for adaptation.
OvulatoryPeak effort with careful warm-up10Peak strength; higher ligament laxity → longer warm-ups, prefer bilateral over dynamic single-leg for max efforts.
Luteal (early)Endurance base + moderate strength7Progesterone rising, body still performs well; slight thermoregulation cost.
Luteal (late)Aerobic base + mobility5Higher perceived exertion, lower glycogen availability, often lower sleep quality. Do not "push through".

Workout catalog

Menstrual phase

M1 · Restorative flow (20 min, bodyweight)

  • 5 min · RPE 2 · slow diaphragmatic breathing + neck/shoulder rolls
  • 10 min · RPE 3 · yin-style flow: child's pose (2m) → supine twist L/R (2m each) → figure-4 stretch L/R (2m each)
  • 5 min · RPE 2 · legs-up-the-wall + box breathing 4-4-4-4

M2 · Walk + mobility (30 min, outdoor)

  • 25 min · Zone 1 · easy walk, nasal-only breathing if comfortable
  • 5 min · RPE 3 · hip circles, cat-cow, standing side bends

M3 · Easy cycle (30 min, bike/trainer)

  • 5 min · Zone 1 · warm-up spin
  • 20 min · Zone 2 low · steady endurance, conversational
  • 5 min · Zone 1 · cool down

M4 · "If you feel good" strength (35 min, dumbbells) — offered only if user energy self-rating ≥4/5

  • 5 min · RPE 4 · dynamic warm-up
  • 3 rounds · RPE 6 · goblet squat ×8, DB row ×8/side, glute bridge ×12, dead-bug ×8/side
  • 5 min · RPE 3 · walk-out + stretch

Follicular phase

F1 · Full-body strength (45 min, dumbbells)

  • 8 min · RPE 5 · warm-up: leg swings, air squats, band pull-aparts, arm circles
  • 5×5 · RPE 8 · goblet squat, 90s rest
  • 5×5 · RPE 8 · DB bench press or floor press, 90s rest
  • 4×8 · RPE 7 · single-arm DB row per side, 60s rest
  • 3×10 · RPE 7 · RDL, 60s rest
  • 5 min · RPE 3 · finisher stretch

F2 · HIIT bike/run (30 min)

  • 8 min · Zone 2 · warm-up
  • 6× (2 min · Zone 4 / 2 min · Zone 2) · main set — 24 min
  • 5 min · Zone 1 · cool down

F3 · Power + plyo (35 min, gym)

  • 8 min · RPE 5 · warm-up + activation
  • 5×3 · RPE 8 · box jump (moderate box)
  • 4×6 · RPE 8 · trap-bar deadlift
  • 3×5/side · RPE 7 · med-ball rotational throw
  • 5 min · RPE 3 · cool down

F4 · Long run / ride (60 min, outdoor)

  • 10 min · Zone 1–2 · warm-up
  • 45 min · Zone 2–3 · steady aerobic
  • 5 min · Zone 1 · cool down

Ovulatory phase

O1 · Strength PR day (60 min, gym) — extra warm-up because ligament laxity peaks here

  • 15 min · RPE 5 · thorough warm-up: bike 5m + activation + working-up sets
  • Squat: work up to 1RM–3RM · RPE 9
  • Bench or overhead press: 5×3 · RPE 8
  • Accessory · 3×8 · row + hamstring curl
  • 5 min · Zone 1 · walk cool down

O2 · Sprint intervals (30 min)

  • 10 min · Zone 2 · thorough warm-up
  • 6× (30s · RPE 10 / 90s · Zone 1) sprints
  • 5 min · Zone 1 · cool down

O3 · Circuit HIIT (30 min, bodyweight)

  • 8 min · RPE 5 · warm-up
  • 5 rounds · RPE 8 · 40s work / 20s rest — squat jump, push-up, mountain climber, glute bridge
  • 5 min · Zone 1 · cool down

Luteal (early)

L1 · Moderate strength (45 min, dumbbells or gym)

  • 8 min · RPE 5 · warm-up
  • 4×8 · RPE 7 · back squat or goblet squat
  • 4×8 · RPE 7 · bench / DB press
  • 3×10 · RPE 6 · row
  • 3×12 · RPE 6 · RDL
  • 5 min · RPE 3 · stretch

L2 · Zone 2 endurance (60 min, bike/run)

  • 10 min · Zone 1 · warm-up
  • 45 min · Zone 2 · steady — nose-breathing test, conversation possible
  • 5 min · Zone 1 · cool down
  • Note: hydrate more; body temp runs ~0.3°C higher post-ovulation.

L3 · Tempo run (40 min)

  • 10 min · Zone 2 · warm-up
  • 20 min · Zone 3 · tempo effort
  • 10 min · Zone 1–2 · cool down

Luteal (late) / premenstrual

LL1 · Yoga flow (30 min, bodyweight)

  • 5 min · RPE 2 · breath + child's pose
  • 20 min · RPE 4 · sun salutations at slow tempo (5 rounds A · 5 rounds B) with long holds in warrior II
  • 5 min · RPE 2 · savasana

LL2 · Zone 2 walk or easy spin (45 min)

  • 5 min · Zone 1 · warm-up
  • 35 min · Zone 2 low · easy aerobic, conversational
  • 5 min · Zone 1 · cool down

LL3 · Mobility + core (25 min, bodyweight)

  • 5 min · RPE 3 · CARs (controlled articular rotations) — shoulders, hips, spine
  • 15 min · RPE 4 · dead-bug 3×8, bird-dog 3×8, side plank 3×20s/side, glute bridge 3×12
  • 5 min · RPE 2 · stretch — hips, hamstrings, chest

LL4 · Technique/skill session (30 min) — great for late-luteal because low intensity + high cognitive engagement

  • 5 min · RPE 3 · warm-up
  • 20 min · RPE 5 · sport-specific drills at technical, non-fatiguing pace (e.g., empty bar squat form, cadence drills on the bike, dribbling drills)
  • 5 min · Zone 1 · cool down

Tagging schema

Each workout is tagged with:

  • phase: menstrual · follicular · ovulatory · luteal_early · luteal_late
  • minLevel: new · regular · athlete
  • equipment: bodyweight · dumbbells · gym · outdoor · bike
  • goals: strength · endurance · general · weight_management · mobility · recovery
  • durationMin: integer
  • intensityCeiling: RPE integer 1–10
  • exportable: true if the structured steps map cleanly to a .fit file (all steps have a duration + target)

The recommender uses the tags. The exporter uses the structured steps[].

UNDA is a fitness and training support product. It is not a medical device.