How this works
Crave analyses your training data to tell you when you are ready to push hard — and when to rest. We use industry-standard methods (inspired by TrainingPeaks and Coggan) to turn workouts into guidance. These metrics are estimates, not medical advice.
Training load (TSS, CTL, ATL, TSB)
Every workout contributes to training load. Duration, intensity, and heart rate when available become a single score, then that load is tracked over time.
- TSS — stress of a single workout. Estimated from duration and type; heart-rate zones when available.
- CTL — fitness, a 42-day rolling average of daily TSS.
- ATL — fatigue, a 7-day rolling average of daily TSS.
- TSB — form: CTL minus ATL. Below −10 is fatigued, −10 to +5 is neutral, above +5 is fresh.
Daily verdict and readiness
Today shows a train / easy / rest call. Take it easy when sleep is short, HRV is at or below 85% of usual, or training load is fatigued. Ready to push when sleep is fine and form is fresh (TSB above +5). Sleep, HRV, resting heart rate, and training load all feed this when those readings exist in Apple Health.
The numeric readiness score (0–100) uses TSB as the main input, with penalties for 7+ consecutive training days, a big weekly volume jump, and very high recent load.
Race predictions and PBs
Race times are predicted from personal bests using Riegel’s formula: Time(D2) = Time(D1) × (D2/D1)^1.06. PBs come from real efforts at that distance, not the average pace of a longer run.
Data
Moving time is used when available. On iPhone, Apple Health is read-only. You can sync in Settings. Insights flag unusual pace or heart rate, volume spikes, and training patterns.