← Primed Journal

From 12 Weeks of Data to Today’s Workout: A Worked Primed Example

How does an AI coaching engine actually take three months of multi-wearable telemetry, power files, and sleep logs to decide what you should do today? Here is a step-by-step technical teardown.

Editorial illustration of layered paper leading toward one clearly defined card.

Most descriptions of AI coaching are abstract. They talk about "machine learning models" and "personalized algorithms," but rarely show the actual mechanics of how a workout gets generated.

To make the process concrete, here is an exact, step-by-step walkthrough of how Primed takes 12 weeks of historical training data, overnight wearable signals, and today's schedule constraints to produce a specific workout on the Today screen.


Key takeaways

  • Macro-periodization sets the phase, but daily telemetry shapes the execution.
  • Primed evaluates 12-week chronic load, 7-day acute fatigue, and overnight recovery.
  • Applies athlete preferences and time constraints before writing workout specs.
  • Generates downloadable structured interval files (ZWO/FIT) ready for your device.

The Athlete Profile: Meet "Alex"

  • Discipline: Road & Gravel Cycling
  • Age: 46
  • Target Event: 160km Gravel Race in 8 weeks
  • Hardware: Garmin Edge 1040 (dual-sided power meter), Oura Ring Gen 3, Apple Watch Ultra
  • Available Time Today: 60 minutes (lunch window)

Step 1: The Macro Context (12-Week Chronic Training Load)

Before looking at what Alex did yesterday, Primed’s engine examines his macro-periodization trajectory over the preceding 84 days:

12-Week Load Pipeline:
├── Chronic Training Load (CTL / Fitness): 72 TSS/day (up from 54 over 10 weeks)
├── Acute Training Load (ATL / Fatigue):   68 TSS/day
├── Training Stress Balance (TSB / Form):  +4 (Neutral / Productive)
├── Current Macro Phase:                  Build 2 (Week 3 of 4-week block)
└── Target Weekly Volume:                 8.5 hours (80/20 polarized distribution)

The Engine's Constraint Check:

  • Alex is in the 3rd week of a Build block. The macro goal for this microcycle is Threshold Power Durability (extending time at 95–102% of FTP).
  • Ramp rate is healthy (+3.5 CTL/week), safely below the hard safety cap of +5.0 CTL/week.

Step 2: The Micro Context (Past 7 Days & Yesterday's Load)

Next, the system reviews Alex's acute microcycle to understand localized and systemic fatigue accumulation:

  • Monday: Rest day (0 TSS, foam rolling).
  • Tuesday: 75-min VO2 Max intervals (5x3 min @ 115% FTP, 92 TSS).
  • Wednesday: 60-min Easy Aerobic Z2 recovery spin (45 TSS).
  • Yesterday (Thursday): Work meeting overrun; skipped scheduled 60-min endurance ride.

The Context Synthesis: Alex had a high-intensity session 48 hours ago followed by a recovery day and a rest day yesterday. Neuromuscular recovery is complete, and his legs have had adequate rest between hard stimuli.


Step 3: Overnight Telemetry Ingestion (Oura & Apple Health)

At 06:15 AM, Primed's webhook pipeline receives Alex's overnight sleep data:

  • Oura Sleep Score: 86/100 (7h 42m total sleep, 1h 48m Deep sleep, 1h 55m REM).
  • Nocturnal HRV (rMSSD): 68 ms (baseline: 62 ms ± 6 ms → +9.6% above baseline).
  • Resting Heart Rate: 47 bpm (nadir: 45 bpm → nominal).
  • Skin Temperature Deviation: -0.1°C (normal immune status).

The Readiness Evaluation: All physiological signals indicate green readiness. The autonomic nervous system is in a receptive state, cardiac recovery is optimal, and there are no signs of illness or parasympathetic exhaustion.


Step 4: Schedule & Athlete Preferences

Alex opens the Primed app at 07:30 AM. He has a note on his profile: "Lunch training window limited to 60 minutes today."

A static plan that originally scheduled a 90-minute threshold workout would fail here. Alex would either run out of time mid-workout or skip it entirely.


Step 5: The Prescription Engine at Work

The deterministic engine and the AI reasoning layer collaborate to construct today's session:

  1. Target Stimulus Selection: Alex needs the scheduled Build 2 threshold stimulus (missed yesterday's volume, but fresh from 48h rest).
  2. Time Compression: The session is compressed from 90 minutes into a dense, highly efficient 60-minute format.
  3. Interval Geometry: To maximize time in zone within 60 minutes, the engine prescribes 4 x 8-minute Threshold Intervals at 98–102% FTP with 3-minute recoveries.
Alex's Today Session: "Threshold Over-Under Intervals"
Duration: 1h 00m | Target TSS: 68 | Intensity: Zone 4 (Hard)

00:00 - 12:00 │ Warm-up: Progressive ramp from 50% → 75% FTP + 3x30s openers
12:00 - 20:00 │ Interval 1: 8 min @ 280W (100% FTP)
20:00 - 23:00 │ Recovery 1: 3 min @ 150W (54% FTP)
23:00 - 31:00 │ Interval 2: 8 min @ 280W (100% FTP)
31:00 - 34:00 │ Recovery 2: 3 min @ 150W (54% FTP)
34:00 - 42:00 │ Interval 3: 8 min @ 280W (100% FTP)
42:00 - 45:00 │ Recovery 3: 3 min @ 150W (54% FTP)
45:00 - 53:00 │ Interval 4: 8 min @ 280W (100% FTP)
53:00 - 60:00 │ Cool-down: 7 min easy spin @ 130W

Step 6: The Coach Explanation

Alex sees the workout on his Today screen accompanied by a clear explanation:

"Your recovery signals are strong—HRV is 10% above baseline and resting HR is at 47 bpm. You have 48 hours of recovery since Tuesday’s VO2 session. We’ve compressed today's threshold block into a focused 60-minute session: 4 x 8 minutes right at your 280W threshold. Focus on smooth cadence and controlled breathing through the final three minutes of each block."

With one tap, Alex exports the .zwo structured workout file directly into Zwift or syncs it to his Garmin Edge.

Summary

This is what endurance intelligence looks like in practice. It is not an arbitrary workout generated from a prompt.

It is the synthesis of 12 weeks of fitness history, 48 hours of muscular recovery, overnight biometric telemetry, and real-world schedule constraints, distilled into a single, executable workout that moves you closer to your goal.

FROM READING TO TRAINING

Your next session.
A clearer direction.

Bring your training, recovery and how you feel to a conversation with your coach.

Primed Coach conversation about heavy legs after a long ride, recovery and today's training.
An actual Primed Coach conversation.View full-size screenshot (opens in a new tab)