Morning brief · 2026-08-12
🚩 Watch: respiratory rate 16.99 elevated. Cross-check before adding load.
Today's call
Green light — 83% recovery, TSB +4. Today is your quality day: 🚴 Aerobic ride is the call.
State & Goals · whole-athlete
/fitness-check for the why
Fitness · CTL
49
↑ +2.3/wk
Freshness · TSB
+4
loaded
Recovery
83%
HRV 24ms · RHR 67
Consistency
0.8h
of 10h · sleep 8.9h
Goals → race · building to elite-AG / world-class
Sustained NP/kg1.95 → race 2.0
short 1.85 · elite-AG 2.7 · world-class 4.2
Run km/week2.8 → race 40
short 25 · elite-AG 55 · world-class 90
CTL (fitness)49 → race 70
short 45 · elite-AG 90 · world-class 140
Weekly hours0.79 → race 10
short 7.5 · elite-AG 14 · world-class 25
Coach's read · whole-athlete
Fresh and building — CTL 49 (+2.3/wk), TSB +4, recovery 83%. Green light to push quality. Your binding limiter is the run: ~3 km/wk (0 runs/wk) against a 25 km short-term target. The bike is ahead of the run — the race is won by closing the run gap, so protect bike fitness but make the run the priority.
Deep insights — cross-signals · recovery × load × terrain × weight
🔻What a hard day costs. High-strain days (Whoop ≥14) drop next-day recovery a median -16 pts; easy days (<10) rebound +10 (n=82). Don't stack two hard days — bank an easy day to get the recovery back.
💗Adapting, not overreaching. As fitness built (CTL 35→49), your HRV has risen with it (21→22 ms). Autonomic system is keeping pace with the load — a healthy build.
83
WHOOP RECOVERY
🟡 Moderate — Z2 aerobicHRV
23.6
ms
Rest HR
67
bpm
Sleep
8.9h
94%
Strain
5.4
/21
CTL · TSB
49
TSB +4
SpO₂
94.2%
altitude
Skin °C
33.7
temp
Wk hrs
0.8
of 10h
ACWR · INJURY RISK INDEX
ATL 45.1 / CTL 49.1
0.92
⬤ LOW · training safe
Yesterday TSS
0 training
Recent workouts
🏃
Morning Run
6.1 km
🏃
Morning Run
5.2 km
DAILY CHECK-IN · ENERGY · FOCUS · MOOD
▶ OPEN FORM
Tap daily on iPhone — add to home screen in Safari for one-tap access. Responses sync for correlation with HRV, TSB, and recovery.
Energy
—
Focus
—
Mood
—
💚 Autonomic recovery
Green — quality OK
HRV · TODAY
24
+2ms vs 30d avg 22ms
RESTING HR · TODAY
67
-0bpm vs 30d avg 67bpm
RECOVERY SCORE
83
7d HRV avg 22ms (+1.0ms wk)
Recovery & longevity goals → race · building to elite-AG / world-class
Resting HR68 → race 57
short 60 · elite-AG 52 · world-class 40
HRV (RMSSD)22 → race 40
short 32 · elite-AG 60 · world-class 85
HRV benchmark · best-in-class (sea level, 35 y/o male)
trained-rec 45–60
elite-AG 72
world-class 102
Altitude method: at 2240 m, RMSSD runs ~17% below sea level, so CDMX targets above = sea-level benchmark × 0.83. Your 22 ms ≈ 26 ms sea-level-equivalent. Personalize the factor by logging HRV on any sea-level trip (≥3 nights).
RECOVERY SCORE — 60 DAYS · 14d 62.9 · 30d 62.8
HRV (RMSSD) ms — 60 DAYS · 14d 22 · 30d 22
RESTING HR bpm — 60 DAYS · 14d 68 · 30d 67
ACWR 0.92 and HRV 24ms (vs 30d avg 22ms) are moving in the same direction — load and autonomic state are aligned. RHR flat at 68bpm week-over-week — stable autonomic baseline. Recovery response to load is consistent across session types in your data.
RECOMMENDATION
Quality session is appropriate today. Your data shows hard sessions should be spaced 48h+ apart minimum — HRV reliably suppresses the day after TSS 100+ in your 60-day history. Exploit the green score but respect the lag.
🔗 Signals — forecast & correlations
AMBER forecast
Tomorrow · predicted recovery
54% ±16
for 2026-06-30 · from 2026-06-29 · model R²=0.24
deep sleep · lowering recoverystrain · lowering recovery
😴 Deep sleep was low last night (1.6h vs ~2.2h baseline) — RHR tends to rise and recovery dip (rhr↔deep-sleep r=-0.52). Tonight: cool, dark room, earlier wind-down to bank slow-wave sleep.
🔻 Hard day (strain 14.6) — next-day recovery takes a modest hit. Don't stack another hard session tomorrow; bank an easy day to get it back.
Cross-domain correlations · 41 signals
From 93 days. Gates: |r|≥0.3 · p≤0.05 · n≥20 days · cross-domain only — definitional/same-family pairs removed so only independent, actionable links surface. Bar = strength; warm = positive, cool = inverse.
Skin temp ↔ Sleep performance
-0.48
Light sleep ↔ Strain
-0.45
Resting HR ↔ Awakenings
+0.44
Resting HR ↔ Skin temp
+0.42
Resting HR ↔ Sleep performance
-0.42
Resting HR ↔ Deep sleep (SWS)
-0.42
Disturbances ↔ Strain
-0.41
Micro-arousals ↔ Strain
-0.41
Resting HR ↔ Awake time
+0.40
Resting HR ↔ Awake-after-onset
+0.40
Fragmentation ↔ Daytime HR elevation
-0.40
Max HR ↔ Light sleep
-0.39
Resting HR ↔ Sleep efficiency
-0.39
Fragmentation ↔ Sedentary HR floor
-0.38
Avg HR ↔ Sleep performance
-0.36
Recovery % ↔ Deep sleep (SWS)
+0.36
Avg HR ↔ Resting HR
+0.35
Max HR ↔ Disturbances
-0.35
Max HR ↔ Micro-arousals
-0.35
Recovery % ↔ Sleep efficiency
+0.35
Disturbances ↔ Daytime HR elevation
-0.35
Fragmentation ↔ Median daytime HR
-0.35
Micro-arousals ↔ Daytime HR elevation
-0.35
Avg HR ↔ Recovery %
-0.34
Recovery % ↔ Awake-after-onset
-0.34
Avg HR ↔ Light sleep
-0.33
Recovery % ↔ Strain (prev day) lead-lag
-0.33
Strain (prev day) ↔ Daytime HR elevation lead-lag
+0.33
Recovery % ↔ Awakenings
-0.32
Recovery % ↔ Sleep performance
+0.32
Skin temp ↔ Awakenings
+0.32
Kilojoules ↔ Light sleep
-0.31
Recovery % ↔ Awake time
-0.31
Recovery % ↔ Longest sleep bout
+0.31
Recovery (prev day) ↔ Fragmentation lead-lag
-0.31
Resting HR ↔ Fragmentation
+0.31
Disturbances ↔ Median daytime HR
-0.31
Micro-arousals ↔ Median daytime HR
-0.31
Avg HR ↔ Sedentary HR floor (prev) lead-lag
+0.30
Recovery % ↔ Fragmentation
-0.30
Resting HR ↔ SWS front-load
+0.30
🌙 Sleep quality
Architecture OK
SWS · 30d AVG
2.26h
deep sleep · target ≥1.5h
REM · 30d AVG
1.79h
cognitive recovery · target ≥1.5h
EFFICIENCY · 30d AVG
93.1%
resp rate 16.99 brpm
SLEEP CONSISTENCY · 30 NIGHTS
bed ±29 min · wake ±73 min — wake time is the #1 lever
49%
Sleep goals → race · elite-AG / world-class
7-NIGHT DEBT −2.0h
Sleep h7.7 → race 7.5
short 7.0 · elite-AG 8.0 · world-class 8.5
Sleep eff %93 → race 90
short 85 · elite-AG 92 · world-class 95
Debt = hours under the 7.5h race target across the last 7 nights. Cross-metric: good sleep (≥85%) lifts your next-day HRV — sleep is your highest-leverage recovery lever after training load.
SLEEP STAGES — SWS · REM · LIGHT (30 NIGHTS)
SLEEP PERFORMANCE % — 30 DAYS
SLEEP DURATION — HOURS IN BED
Last night: 8.9h / 94% performance / SWS 2.27h / REM 1.72h. 30-night averages: SWS 2.26h, REM 1.79h, efficiency 93.1%. SWS 2.27h and REM 1.72h last night are both at or above your 30-day avg (SWS 2.26h, REM 1.79h) — architecture is solid. Sleep performance and next-day HRV show weak correlation in your data — your HRV response is more load-driven than sleep-driven currently. Resp rate 16.99 brpm is elevated — sustained >16 brpm is an early overreach or illness signal. Watch for convergence with rising RHR and falling HRV over the next 72h.
RECOMMENDATION
Sleep architecture is your strongest recovery asset. SWS 2h+ is rare — most trained athletes average 1.0–1.5h. Protect it: consistent wake time ±30 min daily, room 18–20°C, no training within 3h of bed. Current architecture supports continued CTL build.
🏆 Race readiness — 70.3 March 2027
201d to race
CYCLING · 4WK
66%
target 55%
RUNNING · 4WK
5%
target 30%
SWIMMING · 4WK
9%
target 15%
TRAINING BALANCE — LAST 4 WEEKS
LOAD → NEXT-DAY RECOVERY (60d)
HRV vs CTL FITNESS (60d)
With 201 days to race day, sport balance is Cycling 66% / Running 5% / Swimming 9% — target is 55/30/15 for a 70.3. Running exposure last 4 weeks: 2 sessions — running economy risk is HIGH. Running at 2 sessions/4wk is below the 3–4/week required to maintain economy heading into the Oct build phase. CTL 49 requires +0.6 pts/week average to reach 65 by Jan 2027 — achievable at current build rate.
RECOMMENDATION
Close the running (+25% gap from target) and swimming (+6% gap from target) volume gap by Oct — not before, or it disrupts the cycling priority block. Swimming: 1 technique session/week now (not fitness — technique). At 70.3 Ironman pace, swim is ~30 min — economy matters far more than fitness here. Cycling: maintain current priority through Aug, then shift to multi-sport balance in the Sept build. Finish-strong target: hold 2.0 W/kg across the 90 km bike. You currently sustain 1.95 W/kg on 30 km+ rides — close the remaining 0.05 W/kg with sustained tempo work.
Daily Strain
7-DAY LOAD
461
TSS this week
MONOTONY
0.63
<1.5 good · >2 risky
FOSTER STRAIN
290
load × monotony
Monotony = how same-y your daily load is (mean ÷ SD of the last 7 days' TSS). High monotony with high load is the classic illness/overtraining setup — vary hard and easy days rather than grinding the same load daily.
Whoop strain — 30 days
⚡ Training load & fitness
LOW · training safe
CTL · TODAY
49.1
+2.3/wk · cyc CTL 48 (98%)
TSB · TODAY
+4.1
ATL/CTL 0.92
STRAIN · YESTERDAY
5.4
/21 · no session
PERFORMANCE MANAGEMENT — CTL · ATL · TSB (180 DAYS)
CTL rose 44 → 49 in 15 days (+5.1 pts). That's 2.4 pts/week — within the sustainable band of 3–4 pts/week. TSB has averaged -13 over the last 14 days, ranging -37 to +4 — in the recoverable zone. Load distribution is appropriate — ACWR 0.92 is in the safe band.
RECOMMENDATION
CTL target: 65–80 by Jan 2027. At current pace (2.4 pts/wk), you hit 65 around Sep 2026. Sustainable path: 3–4 pts/wk gain through Oct, then a 3-week de-load before the build phase begins. Protect easy days — the aerobic base built in Z2 now is what race-pace tolerance is built on.
Running
🏃 Run — your race limiter
Dormant — rebuild now
VOLUME · /WEEK (28d)
3km
0 runs/wk · target 25
LONGEST · RECENT
10km
race leg 21.1 km
BEST PACE
5:06/km
T-pace target 4:50/km
Run goals → race · building to elite-AG / world-class
Run km/week2.8 → race 40
short 25 · elite-AG 55 · world-class 90
Runs/week0.5 → race 4.5
short 3.5 · elite-AG 5.0 · world-class 6.0
Long run km9.52 → race 21
short 16 · elite-AG 25 · world-class 32
T-pace /km5:06 → race 4:50
short 5:00 · elite-AG 3:55 · world-class 3:05
Run volume is ~3 km/wk (0 runs/wk). This is your race-defining limiter: a 21.1 km leg off the bike is built on weekly run volume, and you're ~22 km/wk short of the Aug Base-1 target of 25. The key insight: your aerobic engine is far ahead of your legs — bike CTL 49 means your cardiovascular system can absorb much more running than 3 km/wk; the limiter is musculoskeletal durability, not fitness. So rebuild frequency FIRST — 3–4 easy Z2 runs/wk (HR <137, ~7:00/km) — before any speed work. Speed isn't the problem: your best pace is 5:06/km against a 4:50/km race T-pace target. Bank easy volume now; sharpen pace in the Build phase.
THIS WEEK
This week: 4 easy runs of 20–40 min at Z2 (~7:00/km, HR <137), with one slightly longer building toward 16 km. No intervals yet — frequency and time-on-feet are the adaptation that protects the legs. Grow weekly volume ≤10%/wk. Add a short bike-to-run brick once you're running 3+×/wk — that's the missing race-specific session.
Pace min/km — last 25 runs · lower = faster
HR zone distribution — last 10 runs · % time in zone
Weekly volume km — 12 weeks
Cycling · priority block
🚴 Cycling — finish strong
1.95 / 2.0 W/kg
EF · NP/HR
1.87
8wk 1.58 (+18.4%)
LONG-RIDE NP/kg
1.95
target 2.0 · target met ✓
CYCLING CTL
48
98% of load
Efficiency Factor (NP/HR) is 1.87 on your last 5 rides vs 1.58 over 8 weeks — the aerobic engine is improving (+18.4%). EF is the truest fitness read here since it needs no FTP. Long-ride power is already at/above the 2.0 W/kg finish-strong target (1.95 on 30 km+ rides) — protect it and extend time at this intensity. Distance is largely solved — longest 108 km of the 90 km leg. Pacing is surgy (VI 2.32); on long rides, smoother output will leave more for the run. Cycling-specific fitness (cyc CTL 48) is 98% of total load — the block is cycling-led, as intended.
RECOMMENDATION
Hold the long ride steadier (target VI < 1.15): smoother power is more economical and protects the run. Skip FTP testing this block — EF and sustained long-ride NP/kg are your truer signals.
🎯 Finish-strong — sustained NP/kg on long rides vs 2.0 W/kg target
Long-ride progression — EED vs 65–75 km target band
Recent rides — tap for full detail vs your medians
08-07 · 28 km
651 kJ
08-06 · 46 km
1089 kJ
08-02 · 45 km
1033 kJ
07-29 · 44 km
987 kJ
07-24 · 28 km 🏅
653 kJ
07-22 · 33 km
753 kJ
07-18 · 104 km
1802 kJ
07-11 · 101 km 🏅
2204 kJ
07-10 · 29 km
643 kJ
07-03 · 32 km
525 kJ
06-26 · 46 km
1047 kJ
06-24 · 33 km
780 kJ
Efficiency Factor (NP/HR) — aerobic fitness · last 20 rides
Total work kJ — last 20 rides
Grade-Adjusted Speed km/h · calibrated coeff 0.045 km per m
Variability Index (pacing steadiness) — last 20 rides
Normalized Power W — last 20 rides with power
TSS per ride — last 20 · 🏠 Zwift
Outdoor cadence vs 85 rpm target — avg 67.3 rpm · Zwift 85.1 rpm
Weekly volume km — 12 weeks
FTP device reference — back-calc, not a fitness signal
🔬 Last ride debrief
2026-08-06 · 46.3 km
moving 125 min · elapsed 163 min · stopped 38 min · 15 stops
Recovery
77%ride-morning
HRV
23.5 ms+9% vs base
Resting HR
64 bpm
Day strain
16.0
NP
197 W
NP/kg
2.26target 2.0
Avg W
149 W
Gap to 2.0
-0.26
Durability: strong — EF held 115% of baseline over the ride's work (high confidence).
VI
1.321.0 = perfectly steady
1st half
178 W
2nd half
120 W
Split
-32.6%
Surges
69matches burned
faded — 2nd half easier (positive split) · lower VI = fewer wasteful surges (terrain can inflate both).
Climbs · 7 detected
Climb 1 · km 6.02.24 km · 67 m · 3.0% · 73 W
Climb 2 · km 8.42.97 km · 100 m · 3.4% · 200 W
Climb 3 · km 11.50.92 km · 23 m · 2.5% · 178 W
Climb 4 · km 12.70.62 km · 22 m · 3.6% · 242 W
Climb 5 · km 14.34.49 km · 179 m · 4.0% · 209 W
Climb 6 · km 19.44.28 km · 200 m · 4.7% · 115 W
Climb 7 · km 33.40.51 km · 26 m · 5.1% · 132 W
Fueling · 1116 kJ over 2.1 h
Target 60–90 g carb/h → ~125–187 g total for this ride.
Most comparable rides you've done
Ciclismo · 2026-08-0245 km · NP/kg 1.82 · EF 1.34 · sim 84%
Ciclismo · 2026-06-2646 km · NP/kg 1.79 · EF 1.17 · sim 83%
Ciclismo · 2026-05-1747 km · NP/kg 1.77 · EF 1.31 · sim 78%
Recent long-ride NP/kg 1.99 · best 2.12 · target 2.0 W/kg
Debriefed 2026-08-10 14:02 · ride 19627780106
🚴♂️ Group-ride readiness
IN THE DRAFT
Teotihuacan out-and-back (79 km / 256 m, flat) · power ladder on your own scale — a drafted pace costs far less than the solo-equivalent. snapshot 2026-07-03 · /route-check to refresh
Solo · 35 km/h
on the front / dropped
Ceiling today
sustainable max
Draft · 35 km/h
sitting in the bunch
Your cruise
measured · you live here
Your cruise
1.56 W/kg
136 W · HR 134 Z2
Draft 35 demand
1.55–1.67
136–146 W · achievable
Solo 35 demand
2.22
194 W · can't hold 2h
Surge headroom
36 bpm
Z2→thr 170
Benchmark rides · steady-flat cruise
Teoti 2026-06-13134 W · 1.53 W/kg · 29.5 km/h · HR 136 · 136min
Flat-75 2026-06-20137 W · 1.57 W/kg · 27.3 km/h · HR 132 · 163min
Sitting in the bunch at 35 km/h costs ~136–146 W (1.55–1.67 W/kg) — the power you already cruise at solo (1.56 W/kg). The draft is worth ~5 km/h free. Solo at 35 needs 194 W (2.22 W/kg) — don't get dropped.
⛰️ Climbing · Gran Fondo
STRONG
Piramides con Escape · per-climb power/VAM + climb-to-climb retention — the finish-strong axis for the Gran Fondo (flat NP says nothing on a rolling course). snapshot 2026-07-18 · /fondo-debrief to refresh
Best sustained climb
2.36 W/kg
3+ min · target 2.2
Climb-to-climb
98%
2.36→2.31 W/kg · fading
Median VAM
585 m/h
vertical ascent rate
Climbing load
128 m
13 min under tension
Climb ladder · in ride order (watch left-to-right fade)
#1 · 1.43 km @ 3.3%
@16.9 km · 16% in
#2 · 0.72 km @ 3.0%
@42.7 km · 41% in
#3 · 0.83 km @ 2.6%
@51.1 km · 49% in
#4 · 1.03 km @ 3.7%
@91.5 km · 88% in
📈 Progress · rate of improvement
ACCELERATING
22 rides · 2026-01-08 → 2026-07-11 · are you improving, how fast, and are you training smart. /progress-review to refresh + coach
Aerobic EF /mo
+0.044
1.043→1.252 · accelerating
Long NP/kg
1.71
+0.0228/mo · not converging
CTL ramp
40.0
+3.5987/mo
CP estimate
2.26 W/kg
197 W · W′ 20.0kJ
Intensity distribution · true time-in-zone (streams, n=10 rides)
easy 60% · tempo 11% · threshold+ 28%
Weekly load (TSS) · ramp 1.01× · monotony 0.45
Milestones / PRs
best 20-min 2.45 W/kg · 05-30best 5-min 3.02 W/kg · 05-23best EF 1.789 · 07-10best long NP/kg 1.99 · 07-03longest 101.1 km · 07-11
Swimming
🏊 Swim — distance there, sharpness missing
Below frequency
VOLUME · /WEEK (28d)
1.6km
1×/wk · target 3×
CSS · BEST RECENT
2:15
untested · per 100m
LONGEST SWIM
2.5km
race 1.9 km ✓
Swim goals → race · building to elite-AG / world-class
Swim CSS /100m2:15 → race 1:58
short 2:05 · elite-AG 1:35 · world-class 1:12
Swim km/week1.6 → race 8.0
short 6.0 · elite-AG 12 · world-class 25
⚠ Open-water sessions logged: 0 — sighting, wetsuit and mass-start are untrained race variables. CSS shown is a proxy from your best session pace; run a formal test to set it properly.
Swim volume is ~1.6 km/wk (1×/wk). Distance isn't the worry — you've swum 2.5 km in one session vs the 1.9 km race leg. The two real gaps are sharper: (1) CSS is unverified — your best recent pace is ~2:15/100m but you've never run a formal CSS test, so race pacing is guesswork; (2) zero open-water sessions — all pool, so sighting, wetsuit feel and mass-start chaos are completely untrained. Swim gains are frequency-driven, not volume-driven: 3×/wk with technique focus beats one long grind. Your race CSS target of 1:58/100m would put the 1.9 km swim around 37 min.
THIS WEEK
This week: swim 3×. One is a CSS test — warm up, then 400 m time-trial, rest 5 min, 200 m time-trial; CSS pace = 200 ÷ (T400 − T200). One technique/drill session (frequency builds feel for the water). One aerobic 1.5–2 km continuous. And book your first open-water session this month — it's the single biggest unpracticed race variable.
Pace sec/100m — last 25 swims · lower = faster
Weekly volume m — 12 weeks
Body Metrics
⚖️ Body composition — your W/kg lever
Track composition
WEIGHT
88.8kg
race target 82 kg
BODY FAT
—
race target 14%
MUSCLE · HOLD
—kg
protect through the cut
Body goals → race · building to elite-AG / world-class
Weight kg89 → race 82
short 85 · elite-AG 78 · world-class 76
Body fat %— → race 14
short 16 · elite-AG 11 · world-class 7.0
VO₂max (est)— → race 52
short 48 · elite-AG 60 · world-class 80
⚠ VO₂max is untested — it's the #1 longevity predictor and your aerobic ceiling. Set it with a field test (Cooper 12-min run or a ramp test). Body-fat 7% world-class rung is a healthy elite floor, not a target to undercut.
Add Withings weigh-ins to populate body-composition coaching.
Body composition — Fat mass kg & Muscle kg trend
Weight kg & body fat % — dual axis
Muscle mass kg
Health Metrics
❤️ Health & altitude
SpO₂ 94%
Oxygenation goal → race · altitude watch
SpO₂ %94 → race 93
short 92 · elite-AG 94 · world-class 96
SpO₂ 94% at 2240 m — normal acclimatized range. Altitude cuts both ways: a natural hypoxic stimulus that lifts your aerobic ceiling, but it also caps overnight SpO₂ and depresses HRV (same reason the HRV targets are altitude-adjusted).
SpO₂ % — 30 days
Skin temperature °C — 30 days
Generated 2026-08-12 15:01 · FTP device est. 200W · 339 activities